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://
<niklasl> Is it really too hard to A) assert the triple, B) refer to it from :e1 and :e2 ?
<TallTed> to be specific: https://
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://
<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://
<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://
<thomas> "Asserting an RDF triple says that some relationship, indicated by the predicate, holds between the resources denoted by the subject and object." https://
<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/
<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://
<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.