- From: David Booth <david@dbooth.org>
- Date: Fri, 30 Oct 2020 22:30:20 -0400
- To: public-rdf-star@w3.org
On 10/30/20 5:59 PM, Peter F. Patel-Schneider wrote: > This doesn't necessarily have anything to do with blank node canonicalization. > > In fact, the scheme that I was toying with completely ignored anything about > the blank nodes except their co-occurence (so that <<_:a :x _:a>> ended up > with a different IRI than <<_:b :x _:c>>. Sorry, I guess I misunderstood your previous point. David > > peter > > > On 10/30/20 5:49 PM, David Booth wrote: >> On 10/30/20 2:53 PM, Peter F. Patel-Schneider wrote: >>> I had thought that it might be possible to produce something useful by >>> employing non-injective mappings when determining the IRI for an embedded >>> triple. But this approach has potential problems because embedded statements >>> with different subjects, predicates, or objects will end up being the same. >>> Even if the the only thing that mapping is insensitive to is the actual >>> identity of blank nodes then you end up with situations like: >>> >>> :Mary :said s:Johnsaw_ . >>> s:Johnsaw_ rdf:type rdf:statement . >>> s:Johnsaw_ rdf:subject :John . >>> s:Johnsaw_ rdf.predicate :saw . >>> s:Johnsaw_ rdf:object _:b1 . >>> >>> :Mary :said s:Johnsaw_ . >>> s:Johnsaw_ rdf:type rdf:statement . >>> s:Johnsaw_ rdf:subject :John . >>> s:Johnsaw_ rdf.predicate :saw . >>> s:Johnsaw_ rdf:object _:b2 . >>> >>> Here the statement s:Johnsaw_ has two objects, which appears to have >>> unintended consequences. I have not yet convinced myself that there is no way >>> to make this work, although I do believe that there are unintended >>> consequences. >> >> Yes, presumably those should have been two different URIs, instead of using >> s:Johnsaw in both places. >> >> This is essentially the blank node canonicalization problem, i.e., the >> problem of relabeling or skolemizing blank nodes in a predictable repeatable >> way when doing RDF canonicalization. Aiden Hogan (copied) has done a lot >> of work on this, and -- if I'm remembering correctly -- one basic result is >> that, when renaming each blank node, you need to consider the whole >> blank-node-connected subgraph in which it appears. In other words, you need >> to consider the whole subgraph that is reachable via blank node >> connections. (Hopefully Aiden will correct me if I got this wrong or did >> not express it correctly!) >> >> David Booth >> >
Received on Saturday, 31 October 2020 02:30:34 UTC