Hi Hector,
Thanks for your update.
The transitive-ness of
rdfs:subPropertyOf doesn't seem to be RL reasoned either (may be the
same propblem as the previous post, depending on how you guys
implemented the reasoning and query expansion)
Again, apologies if there are typos in the handwriten testcases
tst:Pr
a owl:ObjectProperty .
tst:Pr0
a owl:ObjectProperty ;
rdfs:subPropertyOf tst:Pr .
tst:Pr1
a owl:ObjectProperty ;
rdfs:subPropertyOf tst:Pr0 .
tst:Cl1
a owl:Class .
tst:In1
a tst:Cl1 ;
tst:Pr1 tst:In2 .
tst:In2
a tst:C1 .
Query:
SELECT * { ?i1 <http://tst#Pr1> ?i2 . }Returns:
i1 =
http://tst#In1 i2 =
http://tst#In2 (Asserted and Correct)
Additional Expected Results:
none
Query:
SELECT * { ?i1 ?p ?i2 . ?p rdfs:subPropertyOf <http://tst#Pr1>}Returns:
nothing
Additional Expected Results:
i1 =
http://tst#In1 p =
http://tst#Pr1 i2 =
http://tst#In2 (All properties are subPropertyOf self? )
Query:
SELECT * { ?i1 ?p ?i2 . ?p owl:samePropertyAs <http://tst#Pr1> . }Returns:
nothing
Additional Expected Results:
i1 =
http://tst#In1 p =
http://tst#Pr1 i2 =
http://tst#In2 (All owl properties are owl:samePropertyAs self? )
Note:
owl:samePropertyAs is mentioned in some drafts of OWL 1, but I don't
see it in the final language specs for OWL 1 or OWL 2
Query:
SELECT * { ?i1 ?p ?i2 . ?p owl:equivalentProperty <http://tst#Pr1> . }Returns:
nothing
Additional Expected Results:
i1 =
http://tst#In1 p =
http://tst#Pr1 i2 =
http://tst#In2 (All owl properties are owl:equivalentProperty self? )
Query:
SELECT * { ?i1 ?p ?i2 . ?p rdfs:subPropertyOf <http://tst#Pr0>}Returns:
i1 =
http://tst#In1 p =
http://tst#Pr1 i2 =
http://tst#In2 (correct subPropertyOf reasoning )
Additional Expected Results:
none
Query:
SELECT * { ?i1 ?p ?i2 . ?p rdfs:subPropertyOf <http://tst#Pr>}Returns:
nothing
Additional Expected Results:
i1 =
http://tst#In1 p =
http://tst#Pr1 i2 =
http://tst#In2 (Transitivity of subPropertyOf is not used in query)
Query:
SELECT * { ?p rdfs:subPropertyOf <http://tst#Pr>}Returns:
p =
http://tst#Pr (Reasoned property is subPropertyOf self)
p =
http://tst#Pr0 (Asserted)
p =
http://tst#Pr1 (Transitivity of subPropertyOf is used)
Additional Expected Results:
none
Query:
SELECT * { ?p owl:equivalentProperty <http://tst#Pr1> . }Returns:
p =
http://tst#Pr1 (Reasoned property is equivalentProperty self)
Additional Expected Results:
none
Query:
SELECT * { ?p owl:samePropertyAs <http://tst#Pr1> . }Returns:
nothing
Additional Expected Results:
p =
http://tst#Pr1 (Reasoned property is samePropertyAs self)
Note:
owl:samePropertyAs is mentioned in some drafts of OWL 1, but I don't
see it in the final language specs for OWL 1 or OWL 2