- From: Florian Kleedorfer <florian.kleedorfer@austria.fm>
- Date: Tue, 4 Jul 2017 20:47:57 +0200
- To: W3C Semantic Web IG <semantic-web@w3.org>
Thanks for all your contributions! From what I can gather there does not seem to be an existing approach for what I need, so here's an informal attempt: For editing of the message history, I think we only need two properties, one for deleting a previously added named graph from the dataset (e.g., ex:msg1 ex:deletes ex:msg2), and one for undeleting a named graph (e.g., ex:msg3 ex:undeletes ex:msg2). For determining the meaning of the dataset, one would iterate over the named graphs in reverse chronological order and build a set 'del' of named graph URIs that are to be interpreted as deleted. For each message, it is only processed if its URI is not in del. Whenever an 'ex:deletes' triple is encountered, the URI in the object of the triple is added to del. Whenever an 'ex:undeletes' triple is encountered, the URI in the object is removed from del. Both operations are only executed when the sender of the deletes/undeletes message is also the sender of the message to be deleted/undeleted. Each processed message (named graph) is added to the result dataset. The case of negotiation, I think requires two additional properties, 'ex:proposes' (range: Message) and 'ex:agreesWith' (range: Message) . 'ex:proposes' indicates that the 'proposed' message is not just any statement, but one that the sender wants the recipient's agreement on. 'ex:agreesWith' indicates that the sender agrees with the content of another message, the default interpretation being that nobody agrees with anything. Such messages can also be deleted as described above, with a later 'deletes' message - allowing for dynamically proposing, accepting and un-accepting graphs (which may be suggestions for clauses in a contract, for example). So, when the full conversation dataset has been filtered based on deletes/undeletes information as explained above, one can decide whether the agents agree. When all messages that have been 'proposed' by one agent are 'agreed' to by the other, the participants can be said to agree. If there is at least one proposed message that is not agreed to, the participants disagree. Otherwise (if no messages are proposed), there is no agreement status. In case of agreement, the dataset can be filtered easily to select only the graphs that are part of the agreement. In case of disagreement, it should be easily possible to determine agreed-upon graphs and graphs that are proposed by each agent but not agreed to by the other. Again, comments welcome! Cheers, Florian Am 03.07.2017 um 16:17 schrieb Florian Kleedorfer: > Hi, > > Consider a communication channel between two agents who exchange > messages in the form of named RDF Graphs. The channel allows for > adding new messages but not for removing any data. The history of the > channel is unambiguous and always accessible to both agents. This > construct can be seen as an RDF dataset that both agents have > read/write but no replace or delete access to. Its use is that of a > negotiation device that allows for setting up terms of a contract. > > The way the system is built, the messages consist of any number of > 'content' RDF graphs (the message's payload), 'envlope' graphs with > address information (sender, recipient etc), and graphs containing > cryptographic signatures. > > What's needed is an approach that allows these agents to make > assertions about earlier messages (their content graphs) in the > conversation dataset so as to modify the meaning of the dataset. > > The simplest example I can think of is that one agent might realize > they made a typing error in an earlier message and want to correct the > information by sending a message stating that the earlier graph should > be disregarded and another message containing the corrected information. > > Similar situations occur when negotiating aspects of the agreement, > e.g. price. > > For both agents, at any point in the conversation, the meaning of the > conversation dataset must always be unambiguous and equal, and it must > be clear to both agents if they agree (both hold the same graphs true) > or if there is a conflict. > > I am contemplating defining a vocabulary that allows for making such > statements and defining dataset semantics that take these statements > into account, unless I find a suitable existing approach. I found the > SWP (Semantic Web Publishing) vocabulary, which is intended to do > something similar, but does not seem to have a negative property for > rejecting a graph, so I'm not convinced. Any Ideas, pointers, or > followup discussions are greatly appreciated! > > Thanks, > Florian > > > >
Received on Tuesday, 4 July 2017 18:48:41 UTC