RE: ISSUE-141 (1subject): OWL-R Rules generate literals in subject position


I really think we can't do much there. The problem occurs basically because already the RDFS model theory contains consequences that
cannot be represented using the triple structure. For example, the "pidgin" triple

  ( "1"^^xsd:integer, rdf:type, xsd:integer )

is a consequence of any (even an empty) RDF graph; however, technically speaking it is not a RDF graph. Note that this has nothing
to do with the rules of OWL RF: this fact just holds by the built-in semantics of datatypes. Note, however, that this is a natural
consequence of the RDFS semantics, and it would probably be bad not to have it explicitly. Getting rid of such consequences would be
impossible without completely destroying the semantics of OWL RL.

I've seen several ways of fixing such problems in literature. The preferred solution is to simply say that, during reasoning, one
must generalize the actual structure of RDF graphs and allow literals in the subject positions as well. I don't think this is bad:
even if the RDF graphs that one exchanges between systems do not contain such triples, the data structure that one needs to use for
reasoning can be slightly general. Thus, an OWL RL reasoner can internally handle such triples, and it will correctly implement the
semantics of RDFS and OWL RL.

I kind of got around this issue by saying in the spec that the rules represent a first-order theory and RDF triples represent facts
in this theory. Note that we never said that the T predicate is not allowed to contain literals in the subject position.

Note that it is not just reflexive property and ranges that cause problems: you get similar problems with functionality. By the way,
I think that pD* has the same problem.

To summarize, I think I believe we have no other option but leave things as they are, possibly with a note saying that an
implementation might need to allow for literals in the subject position during reasoning.



> -----Original Message-----
> From: [] On Behalf Of OWL Working
> Group Issue Tracker
> Sent: 15 August 2008 22:35
> To:
> Subject: ISSUE-141 (1subject): OWL-R Rules generate literals in subject position
> ISSUE-141 (1subject): OWL-R Rules generate literals in subject position
> Raised by: Alan Ruttenberg
> On product:
> T(?p, rdfs:range, ?c), T(?x, ?p, ?y) =>  T(?y, rdf:type, ?c)
> Generate triples with a literal in the subject position.
> e.g.
> a:name rdfs:range xsd:string
> a:Alan a:name "Alan"^^xsd:string
> =>
> "Alan"^^xsd:string rdf:type xsd:string
> Similar issues with any other rules that place object in the antecedent in the subject position of
> the consequent, e.g.
> T(?p, rdf:type, owl:FunctionalProperty), T(?x, ?p, ?y1), T(?x, ?p, ?y2)
> => T(?y1, owl:sameAs, ?y2)
> a:age rdf:type owl:FunctionalProperty
> a:Alan a:age "10"^^xsd:integer
> a:Alan a:age "20"^^xsd:integer
> =>
> "20"^^xsd:integer owl:sameAs "10"^^xsd:integer
> RE1, third consequent o sameas o.
> Table 2
> owl2:ReflexiveProperty rule (also note owl2: namespace prefix here and elsewhere in doc)
> owl:SymmetricProperty rule
> owl:inverseOf rule
> Table 3
> last rule
> Also: what is owl2:inverseObjectPropertyExpression?

Received on Tuesday, 19 August 2008 20:26:38 UTC