- From: Nathan <nathan@webr3.org>
- Date: Fri, 20 Nov 2009 23:46:56 +0000
- To: Georgi Kobilarov <georgi.kobilarov@gmx.de>
- CC: public-lod@w3.org
Georgi Kobilarov wrote: > Hi all, > > I'd like to start a discussion about a topic that I think is getting > increasingly important: RDF update feeds. > > The linked data project is starting to move away from releases of large data > dumps towards incremental updates. But how can services consuming rdf data > from linked data sources get notified about changes? Is anyone aware of > activities to standardize such rdf update feeds, or at least aware of > projects already providing any kind of update feed at all? And related to > that: How do we deal with RDF diffs? After thinking about this (perhaps a bit naive myself as still new) I can't see how this is too complex, infact imho all the existing ways of handling updates for rss, atom etc seem a bit over kill to me. an update (or changeset as I'm thinking about it) is essentially nothing more than "this triple has been removed" and "this one has been added" - on a triple level we don't have a "update", it's very much the equivalent of "replace"; thus an update for a single triple is a case of remove old triple, insert new one. and thus, without thinking about technologies, all I can see we are left with is as simple as: - s1 p1 o1 + s2 p2 o2 i guess even something like n3 could be extended to accommodate this: given the following example @prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> . @prefix foaf: <http://xmlns.com/foaf/0.1/> . @prefix owl: <http://www.w3.org/2002/07/owl#> . @prefix swp: <http://semanticweb.org/id/Property-3A> . @prefix swc: <http://semanticweb.org/id/Category-3A> . @prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> . @prefix swivt: <http://semantic-mediawiki.org/swivt/1.0#> . @prefix sw: <http://semanticweb.org/id/> . sw:ESWC2010 swp:Title "7th Extended Semantic Web Conference"^^<http://www.w3.org/2001/XMLSchema#string> ; rdfs:label "ESWC2010" ; a swc:Conference ; swp:Event_in_series wiki:ESWC ; foaf:homepage <http://www.eswc2010.org> ; swp:Has_location_city sw:Heraklion ; swp:Has_location_country sw:Greece ; swp:Start_date "2010-05-30T00:00:00"^^<http://www.w3.org/2001/XMLSchema#dateTime> ; swp:End_date "2010-06-03T00:00:00"^^<http://www.w3.org/2001/XMLSchema#dateTime> ; swp:Abstract_deadline "2009-12-15T00:00:00"^^<http://www.w3.org/2001/XMLSchema#dateTime> ; swp:Paper_deadline "2009-12-22T00:00:00"^^<http://www.w3.org/2001/XMLSchema#dateTime> ; swp:Notification "2010-02-24T00:00:00"^^<http://www.w3.org/2001/XMLSchema#dateTime> ; swp:Camera_ready_due "2010-03-10T00:00:00"^^<http://www.w3.org/2001/XMLSchema#dateTime> ; rdfs:isDefinedBy <http://semanticweb.org/wiki/Special:ExportRDF/ESWC2010> ; swivt:page <http://semanticweb.org/wiki/ESWC2010> . one could easily add in an operator prefix to signify inserts and deletes; in the following example we change the dates of the conference @prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> . @prefix swp: <http://semanticweb.org/id/Property-3A> . @prefix sw: <http://semanticweb.org/id/> . - sw:ESWC2010 swp:Start_date "2010-05-30T00:00:00"^^<http://www.w3.org/2001/XMLSchema#dateTime> ; swp:End_date "2010-06-03T00:00:00"^^<http://www.w3.org/2001/XMLSchema#dateTime> . + sw:ESWC2010 swp:Start_date "2010-06-01T00:00:00"^^<http://www.w3.org/2001/XMLSchema#dateTime> ; swp:End_date "2010-06-04T00:00:00"^^<http://www.w3.org/2001/XMLSchema#dateTime> . once you've got the notation or concept down then everything else will fall in to place; we can create update streams, or release change sets on X interval, notify by ping, or poll or whatever. I dare say you could even handle the same thing in rdf itself by having graph iri on left, making up a quick ontology with say rdfu:add and rdfu:delete, storing a triple as an xml literal on the right so: graph_iri rdfu:add rdfpacket . http://domain.org/mygraph rdfu:add """<rdf:RDF xmlns:log="http://www.w3.org/2000/10/swap/log#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:sw="http://semanticweb.org/id/" xmlns:swp="http://semanticweb.org/id/Property-3A"> <rdf:Description rdf:about="http://semanticweb.org/id/ESWC2010"> <sw:Property-3AEnd_date rdf:datatype="http://www.w3.org/2001/XMLSchema#dateTime">2010-06-03T00:00:00</sw:Property-3AEnd_date> <sw:Property-3AStart_date rdf:datatype="http://www.w3.org/2001/XMLSchema#dateTime">2010-05-30T00:00:00</sw:Property-3AStart_date> </rdf:Description> </rdf:RDF>"""^^rdf:XMLLiteral . as for implementing, if X server were to build up a changeset in this and release it daily/hourly/incrementally ; and server X could also consume and handle these change sets, then we'd be about done as far as i can see? reminder, i am very new to this so if it's all way off - please disregard. regards, nathan
Received on Friday, 20 November 2009 23:48:14 UTC