Generating rdfs:seeAlso links for Tabulator with SPARQL CONSTRUCT

Hi all,

in a recent talk about Tabulator and linked data on the Web 
(http://www.w3.org/2006/Talks/1019-tab-tbl/), Tim says that "The biggest 
challenge is links to other systems." 
http://www.w3.org/2006/Talks/1019-tab-tbl/#(12), meaning that the Web of 
Data can only be browsed or queried 
(http://sites.wiwiss.fu-berlin.de/suhl/bizer/ng4j/semwebclient/), if there 
are enough links connecting the RDF documents on different servers.

So how to we get these links?

One approach is to set them manually, by including rdf:seeAlso triples and 
by using dereferencable URIs from different servers in RDF documents. For 
instance, by FOAF profile 
(http://sites.wiwiss.fu-berlin.de/suhl/bizer/foaf.rdf) contains lots of 
seeAlso links to other profiles and the triple:
 <http://www.bizer.de#chris> foaf:based_near 
<http://ws.geonames.org/rdf?geonameId=2950159>
which is a link to data about Berlin, that people can follow by 
dereferencing the object of the triple.

An alternative to manually set links is to generate them with a SPARQL 
CONSTRUCT query.

We are currently setting up a D2R Server 
(http://sites.wiwiss.fu-berlin.de/suhl/bizer/d2r-server/) which will publish 
the DBLP bibliographic database (800000 articles, 200000 authors) as linked 
data on the Web. The server will go live some time next week and will allow 
you to query the DBLP database with SPARQL and to dereference all generated 
URIs.

So let's assume, I want to set links from my FOAF profile to my papers in 
the DBLP database 
(http://www.informatik.uni-trier.de/~ley/db/indices/a-tree/b/Bizer:Christian.html). 
I could do the following:

1. Ask the server for his URI identifying me.
SELECT ?me
WHERE {?me foaf:name "Chris Bizer"}
This will return a URI like http://[DBLPServerRoot]/persons/person15437. Our 
server will for example return 
http://www4.wiwiss.fu-berlin.de/DBLP/persons/person15437

2. Then I could add a rdfs:seeAlso link to my foaf profile that contains the 
following SPARQL CONSTRUCT query as target:

CONSTRUCT   { ?paper dc:author <http://www.bizer.de#chris> }
WHERE       { ?paper dc:author 
<http://www4.wiwiss.fu-berlin.de/DBLP/persons/person15437> }

encoded into a seeAlso link the query would look like

 <http://www.bizer.de#chris> rdfs:seeAlso 
<http://www4.wiwiss.fu-berlin.de/DBLP/sparql?query=CONSTRUCT+%3Chttp%3A%2A%....>

When an RDF browser like Tabulator dereferences the object of the triple, it 
gets an RDF document like:

 <http://www4.wiwiss.fu-berlin.de/DBLP/papers/paper234137> dc:author 
<http://www.bizer.de#chris> .
<http://www4.wiwiss.fu-berlin.de/DBLP/papers/paper436178> dc:author 
<http://www.bizer.de#chris> .
<http://www4.wiwiss.fu-berlin.de/DBLP/papers/paper554632> dc:author 
<http://www.bizer.de#chris> .
<http://www4.wiwiss.fu-berlin.de/DBLP/papers/paper444188> dc:author 
<http://www.bizer.de#chris> .

and the user can browse to my papers in the database by dereferencing the 
subjects of the triples.

Thus, combining rdfs:seeAlso with SPARQL CONSTRUCT allows you to set dynamic 
links in the Web of Data, that reflect changes in the target data source (If 
a new paper I have authored is added to the DBLP database, there will also 
be a new link in my FOAF profile).

Any comments on this idea?

We will demo this kind of links at our poster presentation about D2R Server 
at ISWC in two weeks. So if you think this is interresting, just drop by.

Cheers

Chris 

Received on Saturday, 28 October 2006 08:11:00 UTC