- From: Florian Kleedorfer <florian.kleedorfer@austria.fm>
- Date: Sat, 18 Nov 2017 16:29:31 +0100
- To: Pat Hayes <phayes@ihmc.us>
- CC: semantic-web@w3.org
- Message-ID: <AB4756AB-2E98-4E20-8ADC-48A156451FBC@austria.fm>
Hi Pat, Thanks for pointing this out to me. I wasnt't aware. If I understand the spec correctly, graph merging in the presence of blank nodes in those graphs is quite the opposite if what we want to achieve. When I chose a term for this operation, I thought about 'unifying', but 'blending' seems better because it has much less baggage. Best, Florian Am 18. November 2017 10:15:56 MEZ schrieb Pat Hayes <phayes@ihmc.us>: >Florian, a quick note. The operation you are describing, involving >identifying two previously distinct URI nodes by replacing two URIs by >one new one, is interesting, but please could you not use the term >‘merging RDF graphs’ to describe it, as this terminology is already in >use in the RDF community and indeed in the RDF specification documents >themselves, to refer to a different operation on RDF graphs (viz, one >in which *blank nodes* in the two graphs are identified). > >Using this already widely used terminology to mean something different >will only cause confusion. If I may suggest an alternative, you might >refer to your operation as ‘blending’ or ‘unifying’ or even ‘node >merging’; but please not ‘graph merging’. > >Thanks > >Pat Hayes > > >> On Nov 16, 2017, at 12:37 PM, Florian Kleedorfer ><florian.kleedorfer@austria.fm> wrote: >> >> Hi, >> >> As you may recall, I've asked this list about messaging/negotiating >using linked data[1], and it led me and my colleagues to a concept of >RDF-based agreements[2]. (Thanks again for your input!) >> >> Now it's time for us to define how the negotiating parties come up >with the data (set of rdf triples) that they agree on. >> >> One Idea we have is that both particpants (P1,P2) specify 'goals', >each consisting of a SHACL shapes graph and a data graph. Two goals can >be tested for compatibility by merging the two data graphs and then >testing if the resulting graph is valid given the shapes defined by >both goals. The problem we face with this approach is merging the two >data graphs. Consider the example in this gist: >> >> https://gist.github.com/fkleedorfer/81b32e3235105a4a4743e9fa76ba9332 >> >> In that example, we would want to merge these two graphs: >> >> ex1:p1g-data { >> ex1:ride1 a taxi:Ride . >> ex1:ride1 taxi:hasDriver ex1:p1 . >> ex1:ride1 taxi:hasPickupLocation ex1:pickup1; >> } >> >> and >> >> ex2:p2g-data { >> ex2:myRide a taxi:Ride. >> ex2:myRide taxi:hasClient ex2:p2 . >> ex2:myRide taxi:hasPickupLocation ex2:myPickupLocation . >> ex2:myPickupLocation a s:GeoCoordinates ; >> s:latitude "48.213814" ; >> s:longitude "16.340870" . >> } >> >> We want that merge to happen in such a way that the shapes in >ex1:p1g-shapes and ex2:p2g-shapes can be evaluated, which will require >to merge some of the nodes. (In the example, we'll find out that a >taxi:hasPickupTime property is missing. One of the participants is then >to add that property, and the whole structure becomes valid according >to both goals' shapes.) >> >> The question is how exactly to achieve that merge. Intuitively, the >result in this case should be >> >> :mergedNode1 a taxi:Ride . >> :mergedNode1 taxi:hasDriver ex1:p1 . # note: p1 links her own >identifier to the structure >> :mergedNode1 taxi:hasPickupLocation :mergedNode2; >> :mergedNode1 a taxi:Ride. >> :mergedNode1 taxi:hasClient ex2:p2 . >> :mergedNode1 taxi:hasPickupLocation :mergedNode2 . >> :mergedNode2 a s:GeoCoordinates ; >> s:latitude "48.213814" ; >> s:longitude "16.340870" . >> >> and after removal of duplicate triples >> >> :mergedNode1 a taxi:Ride . >> :mergedNode1 taxi:hasDriver ex1:p1 . >> :mergedNode1 taxi:hasClient ex2:p2 . >> :mergedNode1 taxi:hasPickupLocation :mergedNode2 . >> :mergedNode2 a s:GeoCoordinates ; >> s:latitude "48.213814" ; >> s:longitude "16.340870" . >> >> (I currently don't care about the URIs of the mergedNodes - just >something one can mint when doing the merge) >> >> >> Do you have any hints on how to perform such a merge reliably, also >with more complex structures? >> >> Thank you very much in advance! >> >> Best regards, >> Florian >> >> >> Links: >> 1. Negotiations discussion thread: >https://lists.w3.org/Archives/Public/semantic-web/2017Jul/0004.html >> 2. Agreements paper: http://ceur-ws.org/Vol-1934/contribution-07.pdf >> >> >>
Received on Saturday, 18 November 2017 15:30:06 UTC