- From: Olaf Hartig <olaf.hartig@liu.se>
- Date: Thu, 19 Sep 2019 11:02:06 +0000
- To: Pierre-Antoine Champin <pierre-antoine.champin@univ-lyon1.fr>
- CC: "public-rdf-star@w3.org" <public-rdf-star@w3.org>
Pierre-Antoine, On Wed, 2019-09-11 at 19:08 +0200, Pierre-Antoine Champin wrote: > Thanks Joshua and Jeff, for your answers. > > That confirms my hunch, and reveals that bridging between RDF and PG > may be more complex than I expected -- and, I think, other people on > the list expected. > > As I now see it, the existence of an edge in a PG may or may not > translate to the corresponding triple in RDF. This depends on the > attributes (if any) of that edge. > > Now, am I right to assume that, in PG land, if the edge has no > attribute, it will typically be considered asserted, but if I add an > attribute 'until: 2000-01-01', it is not asserted anymore? I think when comparing PGs and RDF/RDF*, it is not so important to distinguish whether an edge in a PG--or, more precisely, whatever the edge is supposed to represent--can be considered to be asserted or not. In PGs, every edge that has attributes (edge properties) exists in the graph. There is no way to associate attributes with a non-existent edge. In contrast, in RDF, and also in RDF* (assuming SA mode), we can make statements about a triple that is not part of the graph itself. Olaf > If that's the case, we have an additional problem to represent this > in RDF land, because we can not infer anything from the *absence* of > a triple (in this case, the 'until' annotation). We work under the > open world assumption... > > > On Fri 30 Aug 2019, 20:56 Jeff Lerman, <jeff.lerman@invitae.com> > wrote: > > Ah, that’s more in-line with much of the other discussion so far in > > the group. > > > > I would prefer a model in which it’s not possible to assert a > > property on a non-existent edge. RDF/SPARQL provide us at least > > two ways to handle edges that, as a consequence of their > > properties, should not be considered to “exist” from the > > perspective of a query: > > > > 1. Queries can be written to filter out any edges with properties > > that indicate that they are not valid (e.g., if we are interested > > in considering/recognizing only edges about marriages in existence > > at a given time, we should exclude those that have started after > > that time, or ended before that time) > > > > 2. We can segregate those edges to a named graph which we exclude > > from SPARQL queries. > > > > I have more to say about ways to handle/leverage named graphs, > > which might make my 2nd suggestion more palatable, but not sure > > that this is the right forum for that. If the extension I have in > > mind would solve this issue with RDF* though, maybe it is... > > > > Jeff Lerman AI Scientist Mobile: 510-495-4621 www.invitae.com > > > > > > On Fri, Aug 30, 2019 at 11:23 AM Olaf Hartig <olaf.hartig@liu.se> > > wrote: > > > Jeff, > > > > > > These are great examples for cases in which the properties > > > associated with edges in a graph may change over time without > > > affecting the existence of the edges themselves. However, I think > > > Pierre-Antoine's question was focusing on the opposite: does the > > > existence of an edge property always assume the existence of the > > > edge with which it is associated. > > > > > > Olaf > > > > > > -----Original Message----- > > > From: Jeff Lerman <jeff.lerman@invitae.com> > > > To: Joshua Shinavier <joshsh@uber.com> > > > Cc: Pierre-Antoine Champin <pierre-antoine.champin@univ-lyon1.fr> > > > , public-rdf-star@w3.org > > > Sent: Fri, 30 Aug 2019 18:27 > > > Subject: Re: do Property Graphs always assert annotated arcs? > > > > > > Hi all, > > > > > > Most of my experience with graphs is with a frame-based approach > > > that most > > > closely resembles a triple-store - not explicitly RDF but close > > > enough. > > > I’ve been exploring both RDF/triple-stores and PGs as candidates > > > to support > > > a new project. I’ve been following the RDF* discussion with > > > interest. > > > > > > For what it's worth, I wouldn’t assume that edge-metadata (edge- > > > properties > > > in PG world) must be asserted at the time an edge is asserted. > > > There are a > > > variety of scenarios in which one might wish to update that > > > metadata, and > > > I’m pretty sure there’s nothing technically preventing such > > > updates in > > > existing PG implementations. For example, one might: > > > > > > - update metadata: alter the value of an already-asserted > > > property:value > > > pair (e.g., a newer model indicates that the weight of an edge > > > should be > > > adjusted from 0.2 to 0.8) > > > - add or subtract metadata: assert (or remove) a value for a > > > property > > > that was previously un-populated (or populated), to reflect > > > new knowledge > > > we have about a relationship. The change could be incremental > > > and need not > > > affect other properties, so deleting-and-reasserting the edge > > > with all of > > > the other pre-existing (and unaffected) properties would be > > > inappropriate. > > > > > > —Jeff > > > > > > > > > > > > [image: email_sig_logo_vert.png] > > > > > > Jeff Lerman > > > > > > AI Scientist > > > > > > Mobile: 510-495-4621 > > > > > > www.invitae.com > > > > > > [image: email_sig_social_linkedin.png] > > > <https://www.linkedin.com/in/jefflerman/> > > > > > > > > > On Thu, Aug 29, 2019 at 10:03 AM Joshua Shinavier < > > > joshsh@uber.com> wrote: > > > > > > > Hi Pierre, > > > > > > > > Just a quick response from a representative "property graph" > > > user. I have > > > > not been active on this list so far, and actually mistook your > > > email for a > > > > gremlin-users post. So let me just say what I would have said. > > > > > > > > First of all, property graph frameworks are usually not > > > prescriptive about > > > > semantics, so your property-qualified edge "means what you want > > > it to > > > > mean". At the same time, it is generally not the case that an > > > edge > > > > qualified with a property like "since" would be considered to > > > be asserted, > > > > independently of the property. A canonical example is the > > > TinkerPop toy > > > > graph > > > > < > > > http://tinkerpop.apache.org/docs/current/reference/#graph-computing > > > >, > > > > which has a "weight" property on each edge. The edge > > > created{peter, lop} > > > > has a weight of 0.2, which basically means that the statement > > > "Peter is a > > > > creator of LOP" is a non-assertion. I read your :since and > > > :until example > > > > exactly as you do: the statement spouse{alice, bob} is asserted > > > > conditionally on a logical point in time. > > > > > > > > Josh > > > > > > > > > > > > On Thu, Aug 29, 2019 at 8:36 AM Pierre-Antoine Champin < > > > > pierre-antoine.champin@univ-lyon1.fr> wrote: > > > > > > > >> Hi all, > > > >> > > > >> here is a question for those on the list who have discussed > > > more than I > > > >> have with Property Graph users. > > > >> > > > >> There seem to be a consensus here that in PG, arcs with > > > metadata are > > > >> asserted at the same time as they are annotated. This is > > > reflected in the > > > >> PG interpretation of RDF*, where: > > > >> > > > >> <<:alice :spouse :bob>> :since 2001-02-03^^xsd:date . > > > >> > > > >> asserts exactly two triples. > > > >> > > > >> But as I understand, PG people are also likely to express > > > things like: > > > >> > > > >> <<:alice :spouse :bob>> :since 2001-02-03^^xsd:date ; > > > >> :until 2004-05-06^^xsd:date . > > > >> > > > >> if Alice and Bob eventually got divorced. > > > >> In that situation, the arc <<:alice :spouse :bob>> should *no > > > longer* be > > > >> considered asserted in the graph. > > > >> > > > >> Question: is this scenario a plausible one in a PG context? > > > >> > > > > > > > > > On Fri 30 Aug 2019, 20:56 Jeff Lerman, <jeff.lerman@invitae.com> > wrote: > > Ah, that’s more in-line with much of the other discussion so far in > > the group. > > > > I would prefer a model in which it’s not possible to assert a > > property on a non-existent edge. RDF/SPARQL provide us at least > > two ways to handle edges that, as a consequence of their > > properties, should not be considered to “exist” from the > > perspective of a query: > > > > 1. Queries can be written to filter out any edges with properties > > that indicate that they are not valid (e.g., if we are interested > > in considering/recognizing only edges about marriages in existence > > at a given time, we should exclude those that have started after > > that time, or ended before that time) > > > > 2. We can segregate those edges to a named graph which we exclude > > from SPARQL queries. > > > > I have more to say about ways to handle/leverage named graphs, > > which might make my 2nd suggestion more palatable, but not sure > > that this is the right forum for that. If the extension I have in > > mind would solve this issue with RDF* though, maybe it is... > > > > Jeff Lerman AI Scientist Mobile: 510-495-4621 www.invitae.com > > > > > > On Fri, Aug 30, 2019 at 11:23 AM Olaf Hartig <olaf.hartig@liu.se> > > wrote: > > > Jeff, > > > > > > These are great examples for cases in which the properties > > > associated with edges in a graph may change over time without > > > affecting the existence of the edges themselves. However, I think > > > Pierre-Antoine's question was focusing on the opposite: does the > > > existence of an edge property always assume the existence of the > > > edge with which it is associated. > > > > > > Olaf > > > > > > -----Original Message----- > > > From: Jeff Lerman <jeff.lerman@invitae.com> > > > To: Joshua Shinavier <joshsh@uber.com> > > > Cc: Pierre-Antoine Champin <pierre-antoine.champin@univ-lyon1.fr> > > > , public-rdf-star@w3.org > > > Sent: Fri, 30 Aug 2019 18:27 > > > Subject: Re: do Property Graphs always assert annotated arcs? > > > > > > Hi all, > > > > > > Most of my experience with graphs is with a frame-based approach > > > that most > > > closely resembles a triple-store - not explicitly RDF but close > > > enough. > > > I’ve been exploring both RDF/triple-stores and PGs as candidates > > > to support > > > a new project. I’ve been following the RDF* discussion with > > > interest. > > > > > > For what it's worth, I wouldn’t assume that edge-metadata (edge- > > > properties > > > in PG world) must be asserted at the time an edge is asserted. > > > There are a > > > variety of scenarios in which one might wish to update that > > > metadata, and > > > I’m pretty sure there’s nothing technically preventing such > > > updates in > > > existing PG implementations. For example, one might: > > > > > > - update metadata: alter the value of an already-asserted > > > property:value > > > pair (e.g., a newer model indicates that the weight of an edge > > > should be > > > adjusted from 0.2 to 0.8) > > > - add or subtract metadata: assert (or remove) a value for a > > > property > > > that was previously un-populated (or populated), to reflect > > > new knowledge > > > we have about a relationship. The change could be incremental > > > and need not > > > affect other properties, so deleting-and-reasserting the edge > > > with all of > > > the other pre-existing (and unaffected) properties would be > > > inappropriate. > > > > > > —Jeff > > > > > > > > > > > > [image: email_sig_logo_vert.png] > > > > > > Jeff Lerman > > > > > > AI Scientist > > > > > > Mobile: 510-495-4621 > > > > > > www.invitae.com > > > > > > [image: email_sig_social_linkedin.png] > > > <https://www.linkedin.com/in/jefflerman/> > > > > > > > > > On Thu, Aug 29, 2019 at 10:03 AM Joshua Shinavier < > > > joshsh@uber.com> wrote: > > > > > > > Hi Pierre, > > > > > > > > Just a quick response from a representative "property graph" > > > user. I have > > > > not been active on this list so far, and actually mistook your > > > email for a > > > > gremlin-users post. So let me just say what I would have said. > > > > > > > > First of all, property graph frameworks are usually not > > > prescriptive about > > > > semantics, so your property-qualified edge "means what you want > > > it to > > > > mean". At the same time, it is generally not the case that an > > > edge > > > > qualified with a property like "since" would be considered to > > > be asserted, > > > > independently of the property. A canonical example is the > > > TinkerPop toy > > > > graph > > > > < > > > http://tinkerpop.apache.org/docs/current/reference/#graph-computing > > > >, > > > > which has a "weight" property on each edge. The edge > > > created{peter, lop} > > > > has a weight of 0.2, which basically means that the statement > > > "Peter is a > > > > creator of LOP" is a non-assertion. I read your :since and > > > :until example > > > > exactly as you do: the statement spouse{alice, bob} is asserted > > > > conditionally on a logical point in time. > > > > > > > > Josh > > > > > > > > > > > > On Thu, Aug 29, 2019 at 8:36 AM Pierre-Antoine Champin < > > > > pierre-antoine.champin@univ-lyon1.fr> wrote: > > > > > > > >> Hi all, > > > >> > > > >> here is a question for those on the list who have discussed > > > more than I > > > >> have with Property Graph users. > > > >> > > > >> There seem to be a consensus here that in PG, arcs with > > > metadata are > > > >> asserted at the same time as they are annotated. This is > > > reflected in the > > > >> PG interpretation of RDF*, where: > > > >> > > > >> <<:alice :spouse :bob>> :since 2001-02-03^^xsd:date . > > > >> > > > >> asserts exactly two triples. > > > >> > > > >> But as I understand, PG people are also likely to express > > > things like: > > > >> > > > >> <<:alice :spouse :bob>> :since 2001-02-03^^xsd:date ; > > > >> :until 2004-05-06^^xsd:date . > > > >> > > > >> if Alice and Bob eventually got divorced. > > > >> In that situation, the arc <<:alice :spouse :bob>> should *no > > > longer* be > > > >> considered asserted in the graph. > > > >> > > > >> Question: is this scenario a plausible one in a PG context? > > > >> > > > > > > >
Received on Thursday, 19 September 2019 11:02:33 UTC