W3C

– DRAFT –
RDF-star semantics TF

26 July 2024

Attendees

Present
AndyS, enrico, gkellogg, niklasl, pfps, Souri, TallTed, thomas
Regrets
-
Chair
-
Scribe
enrico

Meeting minutes

<niklasl> Agree.

<TallTed> << :a :b :c >> a lpg:edge

<niklasl> I've seen LPG examples with edge attributes like "probability: 0.5". I don't know if that cleanly maps to an "asserted triple" in RDF.

<TallTed> +1

<AndyS> Not all LPG have edge ids esp newer ones - is it in GQL?

<thomas> +1 to Souri

<AndyS> RDF can publish information like p=0.5 (if careful) -- it can't use that info in the base semantics.

<Souri> Each LPG edge has a unique id: say e1, and e2 -- for identical (s) -[:p]-> (o). RDF: :e1 rdf:asserts <<( :s :p :o )>> . :e2 rdf:asserts <<( :s :p :o )>> .

But Souri, what do you think of https://github.com/w3c/rdf-star-wg/wiki/RDF-star-and-LPGs

<niklasl> Is it really too hard to A) assert the triple, B) refer to it from :e1 and :e2 ?

<TallTed> to be specific: https://lists.w3.org/Archives/Public/public-rdf-star-wg/2024Jul/0109.html

CREATE (a1)-[:TRANSACTION {date: "2002-09-24Z"}]->(a2)

CREATE (a1)-[:TRANSACTION {date: "2002-09-24Z"}]->(a2)

<niklasl> The lines are the edges. (It's not predicate logic by any means IIUC.)

CREATE (a1)-[my-fancy-tran:TRANSACTION {date: "2002-09-24Z"}]->(a2)

<Souri> Niklas, An LPG edge e => (s) -[:p]-> (o) requires two RDF triples: :s :p :o . :e rdf:reifies <<( :s :p :o )>> .

<niklasl> Souri, yes, that is the steps "A" and" B" in my wording above.

<niklasl> Example sent to the list with an LPG with two labels on one edge: https://lists.w3.org/Archives/Public/public-rdf-star-wg/2024Jul/0104.html

<Souri> absolutely ... fully agree

<niklasl> easy != simple

<thomas> @TallTed the charter says specify statements about statements, and teh background to chartering a WG was enable RDF/LPG interop. that guides what we do

<AFS> :s :p :o {| :p :r |}

<AFS> :s :p :o {| id |}

A formal proposal about this discussion: https://github.com/w3c/rdf-star-wg/wiki/Extending-the-baseline-with-%22asserted%22-stuff

<AFS> :s :p :o {| id |} is :s :p :o . id rdf:reifies <<(:s :p :o)>>

<niklasl> enrico, does that proposal extend simple entailment?

niklasl: no, rdf entailemnt

<niklasl> OK

<niklasl> then it is not true anymore (e.g. when all marriages have ended)

<AFS> << id | :s :p :o >> .

<AFS> :s :p :o {| id |} is :s :p :o . << id | :s :p :o >> .

<niklasl> +1 for the idea

<niklasl> (of what AndyS writes now)

<AFS> :s :p :o {| id |} is :s :p :o . << id | :s :p :o >> . is :s :p :o . id rdf:reifies <<(:s :p :o)>>

<Souri> :s :p :o {| id1, id2 |} . Then DELETE :s :p :o happens.

<AFS> DELETE2:s :p :o CASCADE can be defined that does that.

<AFS> DELETE :s :p :o CASCADE can be defined that does that.

<niklasl> I have replied about this case (see "Separate Assertion" in https://lists.w3.org/Archives/Public/public-rdf-star-wg/2024Jul/0094.html )

<thomas> "Asserting an RDF triple says that some relationship, indicated by the predicate, holds between the resources denoted by the subject and object." https://www.w3.org/TR/rdf11-concepts/

<Souri> What if we say every RDF :s :p :o triple actually has an id and is independently asserted or not asserted?

<AFS> How to handle set semantics?

<Souri> set of <id, sub, pred, obj>

<AFS> SELECT * { :s :p :o } is a count of 2?

<Souri> yes, but we can do DISTINCT :s :p :o

<AFS> :s :p :o . :s :p :o . ==> SELECT * { :s :p :o } is a count of 2? (multiple occurrences of triples is common in data integration usage)

<niklasl> w3c/rdf-ucr#27

<gb> Issue 27 Integrating different ontology designs through entailment upon triple terms (by niklasl) [use case]

<Souri> :s :p :o . :s :p :o . ==> Without an explicit id these collapse into one, possibly with foo(s,p,o) as the id. So, count will be 1.

<AFS> :s :p :o {id } . :s :p :o . ?

<TallTed> SELECT ( COUNT (*) AS ?count ) { :s :p :o } == 2

<TallTed> SELECT ( COUNT ( DISTINCT (*) ) AS ?count ) { :s :p :o } == 1

<TallTed> ?

<TallTed> can work when the 2 triples are in different named graphs

<Souri> explicit id cannot match a hypothetical foo(s,p,o). So, these are two distinct triples considering <id, sub, pred, obj> as the uniqueness criteria.

<AFS> :s :p :o {id } :s :p :o then DELETE :s :p :o then SELECT * { ?x ?y ?z } ?

<TallTed> "a triple with an id" is "a quad" though not the quads commonly discussed in RDF 1.1

https://github.com/w3c/rdf-star-wg/wiki/Extending-the-baseline-with-%22asserted%22-stuff

<Souri> :s :p :o . is equivalent to => foo(:s,:p,:o) rdf:asserts <<( :s :p :o )>> .

<niklasl> It is indeed a very strong notion.

<Souri> People can always write: :id rdf:asserts <<( :s :p :o )>> . as well

<Souri> also, :id rdf:reifies <<( :s :p :o )>> .

:a rdfs:subclass :b. : rdfs:subclass :c. |= :a rdfs:subclass :c.

<Souri> Not inferred. :s :p :o is same as => foo(:s,:p,:o) rdf:asserts <<( :s :p :o )>> .

<Souri> With that DELETE has no complications of deleting a portion of a composite.

<niklasl> And if users, "for convenience" adds the triple too; deleting the reifiers leaves the triple there. So it gets very confusing.

Minutes manually created (not a transcript), formatted by scribe.perl version 228 (Tue Jul 23 12:57:54 2024 UTC).

Diagnostics

No scribenick or scribe found. Guessed: enrico

All speakers: niklasl

Active on IRC: AFS, AndyS, enrico, gkellogg, niklasl, Souri, TallTed, thomas