Question on SOLID and LinkedData Notifications


#1

Hello everyone,

I am having issues understanding the LinkedData Notifications protocol and the best practices of using it within SOLID applications.

Assume the following use case :

Person A creates a resource (let’s say a txt file) to collaborate with Person B. Person A creates an RDF conforming to LDN and sends it to Person B’s Inbox by POST request. Person B retrieves the latest notifications and now he needs to accept/reject the notification, let’s say using Schema’s RsvpResponseYes. What are the further actions :

  1. Person B needs to create a new RDF file linking the Person A’s notification and Rsvp response and send it back to Person A’s inbox, and then Person A needs to somehow read the notification and identify response ?
  2. Person B needs to modify the initial notification in it’s inbox by appending the RsvpResponseYes and somehow notify the Person A to read this RDF file again and identify whether Person B accepted or rejected the notification ?
  3. Person B does not have to actually send response whether he accepts or rejects the notifications invite to collaborate on file, and Person A can just assume that Person B always accepts it and if not he will just clear inbox from that notification ?

As a side note, I was mainly re using some mechanisms from Solid-Chess app, however it uses it for slightly different purposes and it utilises the WebRTC since node-solid-server does not support web socket listeners for changes in whole folder yet (really looking forward for having this feature implemented btw). I have also read the https://www.w3.org/TR/ldn/ description, though it is still not clear how accept/reject response should be handled by Person B in our assumed scenario.

Would really appreciate any help on this :slightly_smiling_face:


#2

Hi,

For solid-chess for the part of inviting players to a game and joining a game I use method 1 you described. This is independent of whether you use WebRTC or not, which do not have to, because you can play the game with WebRTC.

Method 2 is basically the same as method 1, instead you just the “notification file” to store the response instead of creating a new file. Method 3 makes a big assumption: automatic accept. It might be useful for a specific app, but in general where you can have multiple apps by multiple developers having slightly different use cases I would advice against that.


#3

Hey @pheyvaer, thanks for the response, yes I’ve proceeded with option 1 in my implementation. Great stuff with the post on Solid-Chess, the sequence diagrams were really useful :slight_smile::ok_hand:


#4

Cool :slight_smile: Is the code available somewhere? Thanks, happy to hear that :smiley:


#5

@pheyvaer sure, the code is hosted here link. Refer to src/frontend folder for react/solid code :slight_smile: