- From: Pierre-Antoine Champin <pierre-antoine.champin@univ-lyon1.fr>
- Date: Wed, 11 Sep 2019 19:08:27 +0200
- To: Jeff Lerman <jeff.lerman@invitae.com>
- Cc: Olaf Hartig <olaf.hartig@liu.se>, Joshua Shinavier <joshsh@uber.com>, "public-rdf-star@w3.org" <public-rdf-star@w3.org>
- Message-ID: <CA+OuRR-0bL8j+RpGJ3sVTbGVQSJwOF3wujM=4XRTHVh8G69h5A@mail.gmail.com>
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? 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... > > [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 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... > > [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 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 Wednesday, 11 September 2019 17:09:06 UTC