I have just read tobyink’s article on how one could cater for 3rd parties wanting to contribute triples to an RDF file you own. Firstly, great stuff, this follows on from some things I have been thinking about recently, which include, that of how best to inform RDF documents of when they have been mentioned elsewhere.
tobyink and various other people have been talking about such things recently you can find them of the irc://irc.freenode.net/swig chatlogs here (thanks phenny…). I first started thinking about this when I read this email and when I was thinking about how technologies like linkback, inc. trackback and pingback changed blogging for the better.
I like tobyink’s approach, but I think I would prefer to use a SPARQL endpoint for updating any RDF I own. And I would definitely protected this behind some sort of security mechanism, from .htaccess rules to techniques such as OAuth or FOAF+SSL or similar, I would stress that I would be very careful who I allowed access to any data I owned.
I guess I come from a world of triple-stores, and do enjoy being able to SPARQL quads efficiently as apposed to coming to this from a linked data standpoint. In JXT the SPARQL Endpoint implements a HTTP DELETE and HTTP PUT to allow for graph’s to be updated in the quad store. Give the following SPARQL endpoint :
We would delete a graph like so :
'curl -X DELETE http://example.com/sparql/http://mmt.me.uk/foaf.rdf'
and similarly for adding triples we use PUT to add triples into the quad store, in the form of a string of RDF and its graph URI. There is work underway to get a SPARUL implementation working so that we can update individual triples in future quad stores.
I was more envisaging the mechanism that would pingback to my FOAF file (or any RDF document I own) as soon as it has been used elsewhere. So for example if Alice befriends Bob, in the form of I know this chap with some URI, then the Alice should somehow ping Bob, like bloggers do, with a simple request, something like what tobyink describes in the section 2.2 POST of the aforementioned post. I would definately not let other people add triples to my FOAF file, and would rather have the triple which mentioned my FOAF URI and have the graph URI where the statement was made, so that I can decide on any future action I may take. If Alice doesn’t know Bob’s FOAF URI, but knows another identifier for him, they could always use a service like the QDOS FOAF search to find a URI for Bob before befriending him.
So something like 2.2 sounds good, but I would prefer if they simply sent me the triple(s) authored that mentioned me, along with the graph URI, than triples they would like to insert into one of my graphs.
I understand how the approach tobyink mentions could be beneficial in a linked data world, and do kind of like the idea of have some sort of “RDF scrap book” which my FOAF friends could write to, but I still think I prefer to not let anyone but me author triples on my domain. If I where to implement an “RDF scrap book” which my foaf:friends could add triples to, whatever they may be ? dbtune scrobbles, their dbpedia interests, I would much rather that information be hosted on one of their sites, which in turn I would store in my quad store for future SPARQL goodness.
Finally, tobyink, why did you decide to use