Linking representations in DBpedia

May 23, 2007

I had a brief look at DBpedia.org thanks to PMR’s excitement in the area. I was particularly interested in how they would deal with the problem of describing and linking representations.

In comments to one of PMR’s posts, Richard Cyganiak writes “Note that the DBpedia URIs also work in a web browser, so you can go to http://dbpedia.org/resource/Uppsala and the DBpedia server will generate a web page showing the information it has about the item.”. Well, kind of they work, but actually what happens is that you get redirected to http://dbpedia.org/page/Uppsala (*). DBpedia have chosen for their concept URIs not to resolve to a representation, but to redirect to others.

I imagine the architecture options available to DPpedia for this were something like: –

Assign unique URLs to alternative representations
Pro: simple for people to see the different representations.
Con: need Follow-Your-Nose (FYN) linking system to reach the data, for which there is no formal standard
Use a single URL for all the representations and use content negotiation to switch between them
Pro: no confusion about which URI is the concept URI, URI resolves.
Con: Precious little support in browsers, limited to MIME type switching, no way of finding out which representations are available before you make a request.
Use GRDDL
Pro: Formally defined profiles, developing standard.
Con: Need all of the resource description in the view representation.

So DBpedia went for the first option, and they provide a way for a programmatic client to link from the HTML view to the metadata; you could use something like /html/head/link[@rel=’alternate’ and @type=’application/rdf+xml’ and @title=’RDF’]@href (apologies for any mistakes, my XPath-fu is not very hot). I have a vague recollection that this is a W3C endorsed best practice, but I can’t remember the link.

Why not GRDDL? GRDDL is about extracting metadata from the original XML source, which means that you have to have all the metadata in the HTML. This might not be desirable if you have a lot of metadata or if it’s important to you to keep the HTML small and tight, or if you have a pressing desire not to use XHTML.

Note that you can also make the link solution work in a GRDDL world by transforming the link element to an rdfs:seeAlso statement that points to the bulk of your RDF representation, but that requires a little more sophistication on the part of the GRDDL client.

Of course, both of these approaches assume that once you’re in RDF it’s ponies for everybody; you can describe all the alternative representations, list metadata and properties and describe relationships.

In conclusion: –

  • If we can assume that our description of different resource representations will be in RDF, then the link solution seems to do the trick of describing and linking representations
  • We can make the link solution work with GRDDL, but GRDDL without rdfs:seeAlso won’t be universally applicable.
  • Is content negotiation a dead end?
  • Is there a good reason concept URIs should / should not be directly resolvable?

* In fact, web browsers get redirected. My command line client (curl) just got ditched with no content.

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: