Skip to content

Check EYE RDF 1.2 is correct #1854

Description

@jeswr

#1853 upgraded eye-js to use N3.js v2 - which implements RDF 1.2.

Prior to that PR the test was failing in the upgrade with the error attached below. What is unclear to me is whether the change I have made here is correct RDF 1.2 semantics; or whether there is a bug in the output of eye when using deductive_closure.

EYE is called with the following: main(['--nope', '--quiet', 'data_0.n3s', '--pass'])
The input to EYE is:

_:n3-6 <http://www.w3.org/1999/02/22-rdf-syntax-ns#reifies> <<(<http://example.org/socrates#Socrates> a <http://example.org/socrates#Human>)>> .

_:n3-6 <http://example.org/socrates#is> true .

<http://example.org/socrates#Human> <http://www.w3.org/2000/01/rdf-schema#subClassOf> <http://example.org/socrates#Mortal> .

{
  _:n3-8 <http://www.w3.org/1999/02/22-rdf-syntax-ns#reifies> <<(?S ?P ?O)>> . _:n3-8 <http://example.org/socrates#is> true . } => {?S ?P ?O . } . {?S a ?A . ?A <http://www.w3.org/2000/01/rdf-schema#subClassOf> ?B . } => {?S a ?B . } . 

Test Error:

● testing n3reasoner › should execute the n3reasoner [quad input quad output] [output: deductive_closure]

    expected two graphs to be isomorphic.

      Expected:
    [
      {"subject":"http://example.org/socrates#Socrates","predicate":"http://www.w3.org/1999/02/22-rdf-syntax-ns#type","object":"http://example.org/socrates#Human","graph":""},
      {"subject":"http://example.org/socrates#Socrates","predicate":"http://www.w3.org/1999/02/22-rdf-syntax-ns#type","object":"http://example.org/socrates#Mortal","graph":""},
      {"subject":"<<http://example.org/socrates#Socrates http://www.w3.org/1999/02/22-rdf-syntax-ns#type http://example.org/socrates#Human>>","predicate":"http://example.org/socrates#is","object":"\"true\"^^http://www.w3.org/2001/XMLSchema#boolean","graph":""},
      {"subject":"http://example.org/socrates#Human","predicate":"http://www.w3.org/2000/01/rdf-schema#subClassOf","object":"http://example.org/socrates#Mortal","graph":""}
    ]

      Actual:
    [
      {"subject":"http://example.org/socrates#Socrates","predicate":"http://www.w3.org/1999/02/22-rdf-syntax-ns#type","object":"http://example.org/socrates#Human","graph":""},
      {"subject":"http://example.org/socrates#Socrates","predicate":"http://www.w3.org/1999/02/22-rdf-syntax-ns#type","object":"http://example.org/socrates#Mortal","graph":""},
      {"subject":"_:b16_e_n3_MINUS_6_1","predicate":"http://www.w3.org/1999/02/22-rdf-syntax-ns#reifies","object":"<<http://example.org/socrates#Socrates http://www.w3.org/1999/02/22-rdf-syntax-ns#type http://example.org/socrates#Human>>","graph":""},
      {"subject":"_:b16_e_n3_MINUS_6_1","predicate":"http://example.org/socrates#is","object":"\"true\"^^http://www.w3.org/2001/XMLSchema#boolean","graph":""},
      {"subject":"http://example.org/socrates#Human","predicate":"http://www.w3.org/2000/01/rdf-schema#subClassOf","object":"http://example.org/socrates#Mortal","graph":""}
    ]

    Missing Quads (that don't contain Blank Nodes):
    [
      {"subject":"<<http://example.org/socrates#Socrates http://www.w3.org/1999/02/22-rdf-syntax-ns#type http://example.org/socrates#Human>>","predicate":"http://example.org/socrates#is","object":"\"true\"^^http://www.w3.org/2001/XMLSchema#boolean","graph":""}
    ]

    Additional Quads (that don't contain Blank Nodes):
    [

    ]

    Missing Blank Node Patterns:


    Additional Blank Node Patterns:
    _:b16_e_n3_MINUS_6_1 : [
      {"subject":"_:b16_e_n3_MINUS_6_1","predicate":"http://www.w3.org/1999/02/22-rdf-syntax-ns#reifies","object":"<<http://example.org/socrates#Socrates http://www.w3.org/1999/02/22-rdf-syntax-ns#type http://example.org/socrates#Human>>","graph":""},
      {"subject":"_:b16_e_n3_MINUS_6_1","predicate":"http://example.org/socrates#is","object":"\"true\"^^http://www.w3.org/2001/XMLSchema#boolean","graph":""}

The question is whether the result we are now testing for is correct, or whether EYE does not correctly implement RDF 1.2

cc @josd

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions