RDFa

From Wikipedia, the free encyclopedia

This is an old revision of this page, as edited by Elseware (talk | contribs) at 16:00, 30 June 2010 (→‎XHTML+RDFa 1.0 example: prevent a URI example hyperlinking). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

RDF – in – attributes
AbbreviationRDFa
StatusPublished
Year started2004
EditorsBen Adida, Mark Birbeck
Base standardsRDF
Related standardsRDF Schema, OWL
DomainSemantic Web
WebsiteRDFa Primer

RDFa (or Resource Description Framework – in – attributes) is a W3C Recommendation that adds a set of attribute level extensions to XHTML for embedding rich metadata within Web documents. The RDF data model mapping enables its use for embedding RDF triples within XHTML documents, it also enables the extraction of RDF model triples by compliant user agents.

The W3C RDF in XHTML Taskforce is also working on an implementation for non-XML versions of HTML.[1] The primary issue for the non-XML implementation is how to handle the lack of XML namespaces.

The RDFa community runs a wiki to host tools, examples, and tutorials.[2]

History

RDFa was first proposed by Mark Birbeck in the form of a W3C note entitled XHTML and RDF,[3] which was then presented to the Semantic Web Interest Group at the W3C's 2004 Technical Plenary.[3] Later that year the work became part of the sixth public Working Draft of XHTML 2.0.[4] Although it is generally assumed that RDFa was originally intended only for XHTML 2, in fact the purpose of RDFa was always to provide a way to add a metadata to any XML-based language. Indeed, one of the earliest documents bearing the RDF/A Syntax name, has the sub-title A collection of attributes for layering RDF on XML languages.[5] The document was written by Mark Birbeck and Steven Pemberton, and was made available for discussion on October 11, 2004.

In April 2007 the XHTML 2 Working Group produced a module to support RDF annotation within the XHTML 1 family.[6] As an example, it included an extended version of XHTML 1.1 dubbed XHTML+RDFa 1.0. Although described as not representing an intended direction in terms of a formal markup language from the W3C, limited use of the XHTML+RDFa 1.0 DTD did subsequently appear on the public Web.[7]

October 2007 saw the first public Working Draft of a document entitled RDFa in XHTML: Syntax and Processing.[8] This superseded and expanded upon the April draft; it contained rules for creating an RDFa parser, as well as guidelines for organizations wishing to make practical use of the technology.

In October 2008 RDFa reached Recommendation status.[9]

An additional RDFa Primer document was last updated in June 2008.[10] (The first public Working Draft dates back to March 2006.)

Essence

The essence of RDFa is to provide a set of attributes that can be used to carry metadata in an XML language (hence the 'a' in RDFa).

These attributes are:

  • about and src – a URI or CURIE specifying the resource the metadata is about
  • rel and rev – specifying a relationship or reverse-relationship with another resource
  • href and resource – specifying the partner resource
  • property – specifying a property for the content of an element
  • content – optional attribute that overrides the content of the element when using the property attribute
  • datatype – optional attribute that specifies the datatype of text specified for use with the property attribute
  • typeof – optional attribute that specifies the RDF type(s) of the subject (the resource that the metadata is about).

Benefits of RDFa

Five "principles of interoperable metadata" met by RDFa.[1]

  • Publisher Independence – each site can use its own standards
  • Data Reuse – data is not duplicated. Separate XML and HTML sections are not required for the same content.
  • Self Containment – The HTML and the RDF are separated
  • Schema Modularity – The attributes are reusable
  • Evolvability – additional fields can be added and XML transforms can extract the semantics of the data from an XHTML file

Additionally RDFa may benefit web accessibility as more information is available to assistive technology.[2]

Examples of RDFa

The following is an example of adding Dublin Core metadata to an XHTML file. Dublin Core data elements are data typically added to a book or article (title, author, subject etc.)

<div xmlns:dc="http://purl.org/dc/elements/1.1/"
  about="http://www.example.com/books/wikinomics">
  <span property="dc:title">Wikinomics</span>
  <span property="dc:creator">Don Tapscott</span>
  <span property="dc:date">2006-10-01</span>
</div>

Moreover, RDFa allows the passages and words within a text to be associated with semantic markup:

<p xmlns:dc="http://purl.org/dc/elements/1.1/"
   about="http://www.example.com/books/wikinomics">
  In his latest book
  <cite property="dc:title">Wikinomics</cite>,
  <span property="dc:creator">Don Tapscott</span>
  explains deep changes in technology,
  demographics and business.
  The book is due to be published in
  <span property="dc:date" content="2006-10-01">October 2006</span>.
</p>

XHTML+RDFa 1.0 example

The following is an example of a complete XHTML+RDFa 1.0 document. It uses Dublin Core and FOAF, an ontology for describing people and their relationships with other people and things:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML+RDFa 1.0//EN"
    "http://www.w3.org/MarkUp/DTD/xhtml-rdfa-1.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
    xmlns:foaf="http://xmlns.com/foaf/0.1/"
    xmlns:dc="http://purl.org/dc/elements/1.1/" 
    version="XHTML+RDFa 1.0" xml:lang="en">
  <head>
    <title>John's Home Page</title>
    <base href="http://example.org/john-d/" />
    <meta property="dc:creator" content="Jonathan Doe" />
    <link rel="foaf:primaryTopic" href="http://example.org/john-d/#me" />
  </head>
  <body about="http://example.org/john-d/#me">
    <h1>John's Home Page</h1>
    <p>My name is <span property="foaf:nick">John D</span> and I like
      <a href="http://www.neubauten.org/" rel="foaf:interest"
        xml:lang="de">Einstürzende Neubauten</a>.
    </p>
    <p>
      My <span rel="foaf:interest" resource="urn:ISBN:0752820907">favorite
      book is the inspiring <span about="urn:ISBN:0752820907"><cite
      property="dc:title">Weaving the Web</cite> by
      <span property="dc:creator">Tim Berners-Lee</span></span>
     </span>
    </p>
  </body>
</html>

In the example above, the document URI can be seen as representing an HTML document, but the document URI plus the "#me" string http://example.org/john-d/#me represents the actual person, as distinct from a document about them. The foaf:primaryTopic in the header tells us a URI of the person the document is about. The foaf:nick property (in the first span element) contains a nickname for this person, and the dc:creator property (in the meta element) tells us who created the document. The hyperlink to the Einstürzende Neubauten website contains rel="foaf:interest", suggesting that John Doe is interested in this band. The URI of their website is a resource.

The foaf:interest inside the second p element is referring to a book by ISBN number. The resource attribute defines a resource in a similar way to the href attribute, but without defining a hyperlink. Further into the paragraph, a span element containing an about attribute defines the book as another resource to specify metadata about. The book title and author are defined within the contents of this tag using the dc:title and dc:creator properties.

Here are the same triples when the above document is automatically converted to RDF/XML:

<?xml version="1.0" encoding="UTF-8"?>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:foaf="http://xmlns.com/foaf/0.1/"
    xmlns:dc="http://purl.org/dc/elements/1.1/">
  <rdf:Description rdf:about="http://example.org/john-d/">
    <dc:creator xml:lang="en">Jonathan Doe</dc:creator>
    <foaf:primaryTopic>
      <rdf:Description rdf:about="http://example.org/john-d/#me">
        <foaf:nick xml:lang="en">John D</foaf:nick>
        <foaf:interest rdf:resource="http://www.neubauten.org/"/>
        <foaf:interest>
          <rdf:Description rdf:about="urn:ISBN:0752820907">
            <dc:creator xml:lang="en">Tim Berners-Lee</dc:creator>
            <dc:title xml:lang="en">Weaving the Web</dc:title>
          </rdf:Description>
        </foaf:interest>
      </rdf:Description>
    </foaf:primaryTopic>
  </rdf:Description>
</rdf:RDF>

Web Based RDFa Extractors

There are tools that are available on the Web to extract RDF information embedded within Web documents as RDFA, these tools include:

  • Sindice Inspector a tool for showing the structured data (such as microformats or RDFa) contained in HTML documents. It can also accept input in RDF/XML, Turtle or N-Triple format.
  • Ubiquity RDFa parser can be used as a bookmarklet to extract RDF information from RDFa embedded pages.

See also

  • Microformats, a simplified approach to semantically annotate data in websites
  • Microdata (HTML5), a proposed feature of HTML5 that improves on the capabilities of microformats
  • eRDF, an alternative to RDFa
  • GRDDL, a way to extract (annotated) data out of XHTML and XML documents and transform it into an RDF graph

References

  1. ^ HTML+RDFa – A mechanism for embedding RDF in HTML
  2. ^ RDFa community Wiki
  3. ^ a b "XHTML and RDF W3C Note 14 February 2004". World Wide Web Consortium. 2004-02-14. Retrieved 2007-12-27. Cite error: The named reference "xhtml_and_rdf_note" was defined multiple times with different content (see the help page).
  4. ^ "XHTML 2.0 W3C Working Draft 22 July 2004, 19. XHTML Metainformation Attributes Module". World Wide Web Consortium. 2004-07-22. Retrieved 2007-10-06.
  5. ^ "RDF/A Syntax: A collection of attributes for layering RDF on XML languages". 2004-10-11. Retrieved 2009-05-14.
  6. ^ "XHTML RDFa Modules, Modules to support RDF annotation of elements, W3C Editor's Draft 2 April 2007". World Wide Web Consortium. 2007-04-02. Retrieved 2007-10-06.
  7. ^ For examples of this, see: http://www.joost.com/09400ax http://weborganics.co.uk/files/hAudio-RDFa.xhtml
  8. ^ "RDFa in XHTML: Syntax and Processing, A collection of attributes and processing rules for extending XHTML to support RDF, W3C Working Draft 18 October 2007". World Wide Web Consortium. 2007-10-18. Retrieved 2007-10-20.
  9. ^ "RDFa in XHTML: Syntax and Processing, A collection of attributes and processing rules for extending XHTML to support RDF, W3C Recommendation 14 October 2008". World Wide Web Consortium. 2008-10-14. Retrieved 2008-10-15.
  10. ^ "RDFa Primer, Bridging the Human and Data Webs, W3C Working Draft 20 June 2008". World Wide Web Consortium. 2008-06-20. Retrieved 2008-06-20.

External Links