- From: Kurt Cagle <kurt.cagle@gmail.com>
- Date: Fri, 19 Apr 2024 12:52:16 -0700
- To: "ddooss@wp.pl" <ddooss@wp.pl>
- Cc: Pierre-Antoine Champin <pierre-antoine@w3.org>, "Lassila, Ora" <ora@amazon.com>, RDF-star WG <public-rdf-star-wg@w3.org>
- Message-ID: <CALm0LSGbckej5wqxnqT2KePJNX8CH0g50jhJNO4vccJ+jOYF5A@mail.gmail.com>
>> This is actually an error that arises in LPGs, because they have no way of differentiating #marriage1 from #marriage3. > It's not true. Most PG definitions or implementations allow you to create two edges with the same label and different properties. I'm saying that this is a modelling error with LPGs. The edge contains the identifier in the assertion, not the nodes. In an LPG (specifically Neo4J): (Liz marries Richard) [from 1964; to 1975] and (Liz marries Richard) [from 1985] are distinct because the predicate "marries" carries the (implicit) identifier, and any query is actually an query on the text of the labels. This is equivalent to <<:liz :marries-1 :richard>> [:from 1964 ; to: 1975] . <<:liz :marries-2 :robert>> [:from 1977 ; to: 1981] . <<:liz :marries-3 :richard>> [:from 1985] . :marries-1 rdfs:label "marries" . :marries-2 rdfs:label "marries" . :marries-3 rdfs:label "marries" . The user usually doesn't see the predicate identifiers directly; they only see the label, so they don't recognize that the first and third statements actually have different predicates with the same name. That is CERTAINLY the case for Neo4J; I'm not sure about other LPGs. *Kurt Cagle* Editor in Chief The Cagle Report kurt.cagle@gmail.com 443-837-8725 <http://voice.google.com/calls?a=nc,%2B14438378725> On Fri, Apr 19, 2024 at 12:30 PM ddooss@wp.pl <ddooss@wp.pl> wrote: > Kurt Cagle <kurt.cagle@gmail.com>: > > <<#marriage1 | :liz :marries :richard>> a :Event; > :bride :liz ; > :groom :richard ; > :startYear 1964 ; > :endYear 1975 ; > . > > This works in the case where Liz later marries Bob: > > <<#marriage2 | :liz :marries :robert>> a :Event; > :bride :liz ; > :groom :robert ; > :startYear 1977 ; > :endYear 1981 ; > . > > But gets into trouble when Liz and Richard decide to remarry: > > <<#marriage3 | :liz :marries :richard>> a :Event; > :bride :liz ; > :groom :richard ; > :startYear 1985 ; > . > > This is actually an error that arises in LPGs, because they have no way of > differentiating #marriage1 from #marriage3. > > > It's not true. Most PG definitions or implementations allow you to create > two edges with the same label and different properties. > > Best, > Dominik > >
Received on Friday, 19 April 2024 19:52:50 UTC