Re: A few thoughts on RDF-star, Reification, and Labeled Property Graphs

I think a lot of this message is based on a fundamental misconception.

It is not the case that adding any form of edge property will "align" RDF and 
Labelled Property Graphs, even at a simplistic level.   RDF and Labelled 
Property Graphs will remain unaligned even after the addition.  For example, 
Labelled Property Graphs do not allow things like numbers and strings as the 
objects of edges.

As a result, there is no good reason to limit what the working group does to 
something that matches a part of a particular kind of Labelled Property Graph 
or a part of Labelled Property Graphs in general.  As well, the original 
proposals for RDF* went well beyond what can be done with edge properties in 
Labelled Property Graphs in several aspects.


I can see where modifying an existing system that implements some version of 
Labelled Property Graphs to allow a reifier to reify multiple edges would 
require more work than modifying it for the situation where a reifier only 
reifies one edge.   But as far as I can see, this difficulty of implementation 
consideration can only be significant for RDF systems that already implement 
edge properties as allowing the many-to-many case only requires that edge 
properties be kept one link more separate from the edge.  There might be a 
slight performance penalty for this separation, but there also might be a 
performance advantage for it.

peter





On 4/8/24 17:42, Lassila, Ora wrote:
> The Amazon Neptune team is committed to lowering the barriers to the adoption 
> of graph databases and graph-based computing. Our customers benefit when we 
> reduce the conceptual and technological gap between RDF graphs and Labeled 
> Property Graphs (LPGs). Over the last several years we have seen LPGs increase 
> their popularity thanks to easy-to-understand and easy-to-use features, even 
> when RDF offers more sophisticated features such as (for example) easy graph 
> merging, federated queries, and expressive schema languages. The importance 
> and relevance of interoperability between RDF and LPG was established several 
> years ago at the W3C workshop on Web Standardization for Graph Data (Creating 
> Bridges: RDF, Property Graph and SQL) [1]. While its origins are much older, 
> the RDF-star Community Group was established in the wake of this event. We 
> believe that improving the ability for RDF and LPG graphs to interoperate will 
> benefit the entire graph community.
> 
> As we see it, the most critical outcomes of the work of the RDF-star working 
> group should include:
> 
>   * Efficient RDF support for “edge properties”, including the ability to have
>     different property sets for otherwise identical edges (LPGs do not have
>     the restriction RDF has where triples are unique in a graph).
>   * Simple and clear RDF support for statements about statements (supporting
>     provenance mechanisms and other identified use cases).
>   * Laying the groundwork for interoperability “in the data” between RDF and
>     LPG languages (e.g., a single database that can expose both LPG and RDF
>     based query languages over the same data).
> 
> The alignment of features and capabilities between RDF and LPGs is possible if 
> there are no fundamental incompatibilities between the two graph models. The 
> RDF-star Working Group’s original goal, an easy mechanism for making 
> “statements about statements”, would make the gap between the two models 
> significantly smaller; statements about statements are a feature similar to 
> “edge properties” in LPGs, the lack of which in RDF we often hear cited as the 
> reason users choose LPGs. On the other hand, the current proposal the WG is 
> entertaining, the “single reifier multiple triples” model, has no clear 
> counterpart in LPGs, renders the two graph models even more different than 
> they are today, adds significant complexity (there are more expressive 
> alternatives with simpler semantics), and makes it even more difficult to 
> understand RDF reification rather than offering a conceptually simple framework.
> 
> Limiting reifiers to single statements – and classifying scenarios with a 
> single reifier for multiple statements as “non-well formed” – will bring the 
> greatest benefit to the graph community at large. On the other hand, allowing 
> a single reifier for multiple statements will make it /very difficult/ to 
> align the LPG and RDF models. Please see the examples below.
> 
> We strongly believe that the continued relevance of RDF depends on 
> establishing interoperability with LPGs. As stated above, RDF brings some 
> tremendous advantages, and we are committed to bringing these advantages to 
> the community of LPG users as well. We believe that this reflects the spirit 
> of the W3C workshop on Web Standardization for Graph Data and resonates with 
> inputs from some other members of the working group.
> 
> 
> [1] https://www.w3.org/Data/events/data-ws-2019/ 
> <https://www.w3.org/Data/events/data-ws-2019/>
> 
> Examples:
> 
> 
> # (A) An LPG edge with a single edge property.
> (s) - [p {ep: 1}] → (o)
> 
> # (B) An interpretation of that in an SPOI model (where I is a statement 
> identifier).
> # The OneGraph model is based on such SPOI tuples.
> s p o :sid1
> :sid1 ep 1 :sid2
> 
> # (C) An RDF-star expression consisting of an asserted triple and a statement 
> about
> # that.
> :s :p :o {| :ep 1 |} # with an anonymous identifier for the (s p o) statement.
> 
> # (D) The RDF interpretation of that RDF-star expression.
> :s :p :o . # The asserted triple.
> _:b rdf:reifies <<( :s :p :o )>> . # A reifier for that triple.
> _:b :ep 1 . # Using that reifier to make an assertion about a triple occurrence.
> 
> # Note that the LPG example (A), the SPOI interpretation (B), and the RDF 
> model (D)
> # can be handled as exactly the same data within possible database implementations
> # such as proposed by Souri or by a OneGraph implementation.  The case where 
> _:b is
> # replaced by an IRI can also be handled under LPG, 1G, etc.
> 
> # Now, let us look at the case where different statements are assigned the same
> # reifier:
> 
> # (E) Same reifier used in two expressions about different triples.
> :s1 :p :o {| :b | :ep 1 |} # a statement about a statement with reifier ":b".
> :s2 :p :o {| :b | :ep 2 |} # a statement about a different statement, same 
> reifier.
> 
> # This last case (E) has no sensible intepretation under LPG.
> 
> # If we accept a constraint that using the same reifiers for different TripleTerms
> # is not well-formed, then we can maintain a consistent interpretation with 
> LPG edge
> # properties.  Further, we can use explicit modeling to group statements and 
> retain
> # transparency about the functional or semantic roles in such groupings.
> 
> # (F) Two statements are being grouped by an explicit semantic relationship 
> (:partOf).
> :s1 :p :o {| :b1 | :ep 1 |}
> :s2 :p :o {| :b2 | :ep 2 |}
> :b1 :partOf :b
> :b2 :partOf :b
> 
> # We submit that this explicit modeling is more useful and preserves the alignment
> # with LPG and RDF which has such great value to the world wide graph community.
> 
> -- 
> 
> Dr. Ora Lassila
> 
> Principal Technologist, Amazon Neptune
> 

Received on Tuesday, 9 April 2024 18:41:59 UTC