- From: Ian Davis <iand@internetalchemy.org>
- Date: Wed, 19 Oct 2005 09:29:48 +0100
- To: semantic-web@w3c.org
I've been working on an enhanced way to embed RDF into XHTML that
doesn't require any new markup. There are existing methods such as the
recommendations for expressing Dublin Core in HTML[1] but these are
limited in scope and expressivity.
I've also spent quite a lot of time studying the underlying principles
espoused by the Microformats community[2] who are reusing the semantics
of XHTML to express commonly used data structures such as contact
details or event descriptions. Some of the most important principles are:
* Visible Metadata - by making metadata visible consumers can easily
form an opinion on whether to trust the author. Metadata hidden away in
meta tags is easily abused for search engine placement or other gain
since most visitors don't inspect the source code of the page. This
principle also helps keep the metadata relevant. Hidden metadata is
easily forgotten and can easily go stale whereas if it were visible to
humans incaccuracies would soon be discovered and fixed.
* DRY (don't repeat yourself) - very often we maintain separate RDF
documents with HTML equivilents. Unless these are automatically
generated it's very easy for them to get out of synch. This principle
suggests that the metadata should be expressed only once whether it's
for humans or machines
* Reuse Not Reinvention - if we reuse existing formats then we
immediately gain the benefit of being able to use existing tools to
generate and consume the metadata. We also hook into the experience and
knowledge of the thousands of people who have invested time and money
getting to grips with existing technologies.
I've taken these principles on board in my design. Embedded RDF uses
XHTML attributes such as 'rel', 'rev', 'class','href','src' and 'id' to
embed RDF triples into an XHTML document. Triples can have a subject of
the embedding document or of a fragment within that document. It's
possible to use the 'rev' attribute to embed triples about other
resources but the object of the triple must be the embedding document or
a fragment within it.
For example, the following XHTML:
<div><address class="dc-creator">Ian Davis</address> wrote this</div>
embeds the triple:
<> dc:creator "Ian Davis" .
Schema prefixes are declared using link elements in the head of the
document, exactly as defined in the Dublin Core specification:
<link rel="schema.dc" href="http://purl.org/dc/elements/1.1/" />
The 'id' attribute is used to denote a seperate resource:
<p id="ian"><span class="foaf-name">Ian Davis</span> wrote this</p>
This generates a triple like this:
<#ian> foaf:name "Ian Davis" .
Anchor elements are used to refer to other resources:
<p id="ian">
<a rel="foaf.homepage" href="http://example.org/home">my home page</a>
</p>
embeds the following triple:
<#ian> foaf:homepage <http://example.org/home> .
I hope this has given you a flavour of how Embedded RDF works. There is
comprehensive documentation on our wiki here:
http://research.talis.com/2005/erdf/wiki/Main/RdfInHtml
I'm also working on some examples. An example FOAF in XHTML document is
here:
http://research.talis.com/2005/erdf/foaf-in-html.html
And a sample DOAP in XHTML document:
http://research.talis.com/2005/erdf/doap-in-html.html
There is also an RDF extraction service that scans an XHTML document for
Embedded RDF and generates RDF/XML from it
http://research.talis.com/2005/erdf/extract
This work is by no means complete, but I'm soliciting early feedback on
the approach and the utility of embedding RDF into XHTML. Please feel
free to share your thoughts on the wiki or email me if you have specific
questions you'd like to have answered.
Cheers,
Ian
[1] http://www.dublincore.org/documents/dcq-html/
[2] http://microformats.org/
--
http://internetalchemy.org | http://purl.org/NET/iand
Working on... Silkworm <http://silkworm.talis.com/>
Received on Wednesday, 19 October 2005 10:09:47 UTC