RDF Hyper-linking using rdfs:seeAlso

a few words on the "Web" in "Semantic Web"...

(all slides)

Practical problems

Information in the Web is scattered:

Q: how can we help applications find and merge RDF descriptions?
A: by borrowing ideas from the Web as we know and love it. Hyper-links.

Some simple standalone RDF

<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
        xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
        xmlns="http://xmlns.com/foaf/0.1/">
<Person>
 <name>Dan Brickley</name>
 <workplaceHomepage rdf:resource="http://www.w3.org/" />
 <homepage rdf:resource="http://rdfweb.org/people/danbri/"/>
</Person>
</rdf:RDF>

Simple hyper-linked RDF

<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
        xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
        xmlns="http://xmlns.com/foaf/0.1/">
<Person>
 <name>Dan Brickley</name>
 <workplaceHomepage rdf:resource="http://www.w3.org/" />
 <homepage rdf:resource="http://rdfweb.org/people/danbri/"/>
 <rdfs:seeAlso
  rdf:resource="http://.../danbri-foaf.rdf"/>
</Person>
</rdf:RDF>

5 RDF Statements as a Graph

What does this say?

  • there's a foaf:Person
  • its foaf:name is "Dan Brickley"
  • it has a foaf:workplaceHomepage property with value http://www.w3.org/
  • it has a foaf:homepage property with value http://rdfweb.org/people/danbri/
  • it has an rdfs:seeAlso property with value http://rdfweb.org/people/danbri/rdfweb/danbri-foaf.rdf

This last statement, 'seeAlso' gets us from Semantics to Semantic Web. The property rdfs:seeAlso is a relationship between something and a document which describes it further. This is all we need to link RDF files into a Web.

Real examples?

These are real examples :)

Crawling from danbri-foaf.rdf (or elsewhere) will find 100s or 1000s of inter-linked RDF files. Written by various parties, describing people, documents, organisations... and using a variety of different, complementary, RDF vocabularies.

Uses for crawled data:

  • FOAF crawlers ('scutters') feed data to aggregator UIs (HTML, SVG, chat...)
  • Grassroots directory of practical RDF vocabularies
  • Weblog directories
more links: danbri.rdf, max.rdf, libby.rdf, edd.rdf, norm.rdf, ...

Technical Issues

We started doing this to see how some seemingly academic topics shake out when we have a real live Web of public RDF data files.

  • provenance: RDF stores need to keep track of where they found these files
  • open world: descriptions are scattered, incomplete, partial
  • identity reasoning: tools need to automatically figure out when two files talk about the same thing

Extensions

We can do a lot with just rdfs:seeAlso, but RDF allows more. We can give the type of the things rdfs:seeAlso relates:
<Person>
 <name>Dan Brickley</name>
 <rdfs:seeAlso>
   <x:Bibliography rdf:about="../stuffIwrote.rdf"/>
 </rdfs:seeAlso>
 <rdfs:seeAlso>
   <x:Resume rdf:about="../cv.rdf"/>
 </rdfs:seeAlso>
</Person>

This helps RDF crawlers be more discriminating, eg. by only traversing links to bibliographies or other people, not bothering with CVs.

Recap

RDF hyper-linking and crawling for beginners...

  • W3C's RDF Schema Specification defines a relationship type called 'seeAlso'
  • It relates things to other things that describe them (typically RDF/XML documents)
  • By traversing these references, we can re-discover Web crawling in the RDF world
  • It is entirely domain-neutral; while we prototyped this for FOAF people-descriptions, it works for companies, documents, images, ...
  • RDF's graph data model is designed for information merging; hyper-links are a great way of finding information to merge.
  • If your RDF documents tell just part of the story, add some seeAlso references to further reading...

Further reading