- From: Alberto Reggiori <areggiori@webweaving.org>
- Date: Mon, 24 Jun 2002 11:44:34 +0200
- To: Patrick Stickler <patrick.stickler@nokia.com>
- CC: RDF Interest <www-rdf-interest@w3.org>, RDF Logic <www-rdf-logic@w3.org>
Patrick Stickler wrote: > Note also that unasserted "dark" statements at the RDF-level can be > asserted at any given higher level where they have meaning in a automated > and generic fashion. > > OWL level assertions can be easily automated using this approach > by a single rule: > > { > ?x rdf:type rdf:Statement . > ?x rdf:subject ?s . > ?x rdf:predicate ?p . > ?x rdf:object ?o . > ?p rdf:type owl:OWLPredicate . > } > log:implies > { > ?s ?p ?o . > } > > Done. which you can even try to express in XML/RDF syntax as: <?xml version="1.0"?> <!DOCTYPE rdf:RDF [ <!ENTITY rdf "http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <!ENTITY owl "http://www.w3.org/2001/sw/WebOnt/"> <!ENTITY ex "http://example.org/"> <!ENTITY log "http://www.w3.org/2000/10/swap/log#"> ]> <rdf:RDF xmlns:rdf='&rdf;' xmlns:owl='&owl;' xmlns:log='&log;' xmlns:ex='&ex;'> <rdf:Statement rdf:ID="&ex;st" rdf:bagID="context1"> <rdf:subject rdf:resource="&ex;s" /> <rdf:predicate rdf:resource="&ex;p" /> <rdf:object rdf:resource="&ex;o" /> </rdf:Statement> <owl:OWLPredicate rdf:about="&ex;p" rdf:bagID="#context1"/> <rdf:Description rdf:about="&ex;s" rdf:bagID="context2"> <ex:p rdf:resource="&ex;o" /> </rdf:Description> <rdf:Description rdf:about="#context1"> <log:imples rdf:resource="#context2"/> </rdf:Description> </rdf:RDF> > This, of course, presumes that all OWL predicates are typed > as owl:OWLPredicate, but that's pretty cheap. One problem of the above syntax I can see is that the RDF parsing rules forces to reify statements as soon as rdf:bagID is used, which results in a kind of "explosion" in triples generation; on the other side the above syntax barely uses the original XML/RDF specification to insert some kind of contexts "for free" and can be easily queried with existing RDF query languages :-) IMO what's needed instead is the possibility to make some parsing rules optionals i.e. optional reification; the syntax could be in principle left un-touched. Of course, all this "optionals" can be somehow coded the application self by triggering some retract() triple methods on useless triples i.e. do not change existing software ;-) cheers Alberto
Received on Monday, 24 June 2002 05:38:03 UTC