Pardon, a couple of things that are not completely clear to me: - is :a :b :c {| :d "object" |} a valid Turtle syntax? I've never seen it before
- if I load this with Fuseki/Jena << :a :b :c >> :d :e . will Jena automatically create the :a :c :c triple? This is important for me to know, or if there is a switch to enable this behavior Otherwise great explanation as always, thank you Andy. > Sent: Monday, December 21, 2020 at 12:21 PM > From: "Andy Seaborne" <a...@apache.org> > To: users@jena.apache.org > Subject: Re: Turtle* same term twice > > > > On 21/12/2020 07:47, Lorenz Buehmann wrote: > > > > On 20.12.20 17:19, Andy Seaborne wrote: > >> > >> > >> On 20/12/2020 09:20, Lorenz Buehmann wrote: > >>> > >>> On 19.12.20 21:14, Laura Morales wrote: > >>>> Is this > >>>> > >>>> << :a :b :c >> :d ; :e . > >>>> > >>>> the equivalent of this? > >>>> > >>>> << :a :b :c >> :d . > >>>> << :a :b :c >> :e . > >>>> > >>>> Will Fuseki/Jena store them and treat them the same exact way? > >>> https://w3c.github.io/rdf-star/rdf-star-cg-spec.html#turtle-star-grammar > >> > >> Yes - there is no changes to Turtle except to add <<>> as a new kind > >> of RDF term. For syntax, the new annotation syntax (in issue 9) is > >> likely to happen and is a way to write <<>> and assert the triple in > >> one form. > > > > Yep - something that I think might be confusing for people start using > > RDF* might be the fact that > > > > << :a :b :c >> :d . > > > > is just an annotation but doesn't add the triple itself. > > << :a :b :c >> :d "object" . > > is a triple. It is a triple about another ":a :b :c" These <<>> things > behave like literals in the sense that their representation tells you > everything you need to know about them. > > The subject is the (new) RDF term << :a :b :c >>. > > > I'm also > > wondering how triple stores will handle this if the triple itself > > doesn't exist > > << :a :b :c >> is a new kind of Node in Jena (Node_Triple). > > > - will it simply be dropped after parsing the whole > > document is done? Given that the triple could occur after the annotation > > in a stream, this needs some more effort for triple stores, right? > > Not in Jena the <<>> is a new RDF Term (node) and is a first-class > object in the system. It does not need triple ":a :b :c" to exist. > > Annotations are not stored directly with the triple they annotate. There > is an indirection through the <<>> term. > > > Also, > > what happens if a SPARQL INSERT does add just the annotation? I guess > > nothing, or will the annotation be kept nevertheless - I don't think so? > > > > On the other hand, the annotation syntax will add both, the triple and > > the annotation in a step - this is nice. > > For our readers: this is annotation syntax: > > :a :b :c {| :d "object" |} > > it is syntax for two triples: > > :a :b :c . > << :a :b :c >> :d "object" . > > Modelling in the data is used for complex use cases - > Here is a larger example where we have two separate sources for a triple: > > PREFIX : <http://example/> > PREFIX xsd: <http://www.w3.org/2001/XMLSchema#> > > :s :p :o {| :source [ :graph <http://host1/> ; > :date "2020-01-20"^^xsd:date > ] ; > :source [ :graph <http://host2/> ; > :date "2020-12-31"^^xsd:date > ] > |} . > > It is: > > @prefix : <http://example/> . > @prefix xsd: <http://www.w3.org/2001/XMLSchema#> . > > :s :p :o . > > << :s :p :o >> > :source [ :date "2020-12-31"^^xsd:date ; > :graph <http://host2/> > ] . > << :s :p :o >> > :source [ :date "2020-01-20"^^xsd:date ; > :graph <http://host1/> > ] . > > or (same triples) > > << :s :p :o >> > :source [ :date "2020-12-31"^^xsd:date ; > :graph <http://host2/> > ] ; > :source [ :date "2020-01-20"^^xsd:date ; > :graph <http://host1/> > ] . > > Like every use of "1"^^xsd:integer or <http://example/> is the same RDF > term (and unliek the []-syntax) , every use of <<:s :p :o>> is the same > term. > > Andy > > > > >> > >> Everything else is left untouched. > >> > >> ";" and "," are just syntactic sugar in Turtle. > >> > >> How the triples are written makes no difference - a graph is a set of > >> triples. > >> > >> Syntax test suite: > >> > >> https://w3c.github.io/rdf-star/tests/turtle/syntax/manifest.html > >> > >> Andy >