- 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