- From: thomas lörtsch <tl@rat.io>
- Date: Sun, 21 Jun 2020 12:14:31 +0200
- To: Tim Finin <finin@umbc.edu>
- Cc: public-rdf-star@w3.org
> On 18. Jun 2020, at 17:44, Tim Finin <finin@umbc.edu> wrote: > > While experimenting with RDF* I realized one issue: for some relations, we may have several properties that should be treated as a group. For example, the provenance of a relation extracted from the text of a web page might include a link to the page and the date retrieved. > > Using the following two RDF* expressions merges the four properties so that we can no longer determine which :source and :retrieved values go together. > > << :man :hasSpouse :woman >> > :source <http://foo.com/>; > :retrieved "2020-06-17"^^xsd:date . > << :man :hasSpouse :woman >> > :source <http://bar.com/>; > :retrieved "2020-01-01"^^xsd:date . > > Using a traditional RDF reification approach maintains the pairing. > > :man2 :hasSpouse :woman2 . > [ ] a rdf:Statement ; > rdf:subject :man2 ; > rdf:predicate :hasSpouse ; > rdf:object :woman2 ; > :source <http://foo.com/> ; > :retrieved "2020-06-17"^^xsd:date . > [ ] a rdf:Statement ; > rdf:subject :man2 ; > rdf:predicate :hasSpouse ; > rdf:object :woman2 ; > :source <http://bar.com/>; > :retrieved "2020-01-01"^^xsd:date . In my understanding of the RDF Standard Reification semantics your two blank nodes are owl:sameAs as the reification quad refers to the abstract triple type, not any concrete token. That contradicts the intuition of the provenance statements (:source and :retrieved) but that’s just how things are right now in RDF. There is no sound meta modelling in RDF. It would of course be possible to define subclasses of rdf:Statement, like rdf:TripleType and rdf:TripleToken, define a context (e.g. a Named Graph) in which a triple becomes an actual token, and then reify such tokens. Only then the above provenance statements would have sound semantics. To the best of my knowledge RDF* binds its reification semantics back to RDF Standard Reification. The RDF* <<…>> construct is syntactic sugar for the RDF Standard Reification quadlet - nothing more, nothing less [0]. So merging those provenance statements is indeed the right thing to do. One might even argue that RDF* has a slight advantage over RDF Standard Reification as it represents the semantics more faithfully. However not what anybody would expect from the solution to reification in RDF. Thomas [0] Well, not exactly, as there are those modes too - SA and PG - which may implicitly add the cited triple to the graph or not. That’s a proposal and I’m not sure if implementations support mode switching or which mode(s) they support. > A possible solution when using RDF* is to encapsulate associated properties as a blank node entity, as in the following > > :man3 :hasSpouse :woman3 . > << :man3 :hasSpouse :woman3 >> > :provenance [ :source <http://foo.com/>; > :retrieved "2020-06-17"^^xsd:date ] . > << :man3 :hasSpouse :woman3 >> > :provenance [ :source <http://bar.com/>; > :retrieved "2020-01-01"^^xsd:date ] . > > However, this approach seems to violate the normal key/value pattern of property graph properties, which could be a compatibility issue. > > > -- > Tim Finin, Willard and Lillian Hackerman Chair in Engineering, Computer Science and > Electrical Engineering, U. Maryland, Baltimore County, 1000 Hilltop Circle, Baltimore MD > 21250. http://umbc.edu/~finin, finin@umbc.edu, tfinin@gmail.com, mobile:410-499-3522
Received on Sunday, 21 June 2020 10:14:50 UTC