- From: Patrick Stickler <patrick.stickler@nokia.com>
- Date: Tue, 04 Jun 2002 10:21:50 +0300
- To: Patrick Stickler <patrick.stickler@nokia.com>, ext Michael Kifer <kifer@cs.sunysb.edu>, Seth Russell <seth@robustai.net>
- CC: Aaron Swartz <me@aaronsw.com>, "Sean B. Palmer" <sean@mysterylights.com>, RDF Interest <www-rdf-interest@w3.org>
On 2002-06-04 9:42, "ext Patrick Stickler" <patrick.stickler@nokia.com> wrote: > > On 2002-06-04 3:11, "ext Michael Kifer" <kifer@cs.sunysb.edu> wrote: > >>>>>>> "SR" == "Seth Russell" <of Mon, 03 Jun 2002 10:35:26 PDT> writes: >> >> MK> NTriples can be naturally encoded in XML and exchanged. >> >> SR> Is that actually true? How? >> >> <triple><subject ...>subj</subject><property>...</property> <object> ... >> </object> </triple> > > Why of course. Why did we not see this before?! > > We can just use a subset of RDF instead of NTriples: > > <rdf:RDF ...> > <rdf:Statement> > <rdf:subject rdf:resource="http://foo.com/bar"/> > <rdf:predicate rdf:resource="voc://abc.org/blarrg"/> > <rdf:object rdf:resource="#node12345"/> > </rdf:Statement> > <rdf:Statement> > <rdf:subject rdf:resource="#node12345"/> > <rdf:predicate rdf:resource="voc://abc.org/booga"/> > <rdf:object>Gumby</rdf:object> > </rdf:Statement> > ... > </rdf:RDF> > > I hereby propose we toss NTriples altogether and just use RDF/XML > as above for all test cases output. > > RDF/XML provides all the mechanisms needed to explicitly express > the precise triples existing in any RDF graph, as RDF/XML. Taking this a bit further, we could also provide for "dark triples" (should they be determined to be needed) simply using reified statements, and in the context of NTriples, making the additional distinction for asserted statements based on a subclass of rdf:Statement. Thus: Given <rdfs:Class rdf:about="&rdf;Assertion"> <rdfs:subClassOf rdf:resource="&rdf;Statement"/> </rdfs:Class> then the following is asserted in the graph <rdf:RDF ...> <rdf:Assertion> <rdf:subject rdf:resource="http://foo.com/bar"/> <rdf:predicate rdf:resource="voc://abc.org/blarrg"/> <rdf:object rdf:resource="#node12345"/> </rdf:Assertion> <rdf:Assertion> <rdf:subject rdf:resource="#node12345"/> <rdf:predicate rdf:resource="voc://abc.org/booga"/> <rdf:object>Gumby</rdf:object> </rdf:Assertion> ... </rdf:RDF> which is semantically equivalent to <rdf:RDF ... xmlns:abc="voc://abc.org/"> <rdf:Description rdf:about="http://foo.com/bar"> <abc:blarrg> <rdf:Description> <abc:booga>Gumby</abc:booga> </rdf:Description> </agc:blarrg> </rdf:Description> </rdf:RDF> whereas the following is not asserted in the graph (i.e. is "dark") <rdf:RDF ...> <rdf:Statement> <rdf:subject rdf:resource="http://foo.com/bar"/> <rdf:predicate rdf:resource="voc://abc.org/blarrg"/> <rdf:object rdf:resource="#node12345"/> </rdf:Statement> <rdf:Statement> <rdf:subject rdf:resource="#node12345"/> <rdf:predicate rdf:resource="voc://abc.org/booga"/> <rdf:object>Gumby</rdf:object> </rdf:Statement> ... </rdf:RDF> Thus (using, ahem, N3 ;-) { ?s ?p ?o . } log:implies { ?a a rdf:Assertion ; rdf:subject ?s ; rdf:prediate ?p ; rdf:object ?o . } . and { ?a a rdf:Assertion ; rdf:subject ?s ; rdf:prediate ?p ; rdf:object ?o . } log:implies { ?s ?p ?o . } . As for issues such as xml:lang and parseType of literals, just use the existing RDF/XML mechanisms: <rdf:object xml:lang="en">Gumby</rdf:object> <rdf:object parseType="Literal"><b>Gumby</b></rdf:object> etc... ;-) Patrick -- Patrick Stickler Phone: +358 50 483 9453 Senior Research Scientist Fax: +358 7180 35409 Nokia Research Center Email: patrick.stickler@nokia.com
Received on Tuesday, 4 June 2002 03:18:47 UTC