RDFa 1.1 aims to make adding machine-readable metadata to web pages easier for both authors and developers. New features include using prefixes instead of namespaces, drafting an RDFa API, and separating default and error graphs. The document then demonstrates how to write RDFa, use CURIEs and vocabularies, define multiple entities and connect them, and provides an overview of the RDFa API and useful tools.
RDFa 1.1: Adding Machine-readable Hints to your Webpage
1. RDFa 1.1
Adding Machine-readable Hints
to your Webpage
Neue Fähigkeiten zum einfachen Editieren
und Konsumieren von
RDFa Auszeichnungen
Benjamin Adrian W3C Tag, 15.09.2010, Berlin
http://www.dfki.de/~adrian
2. What is RDFa about?
Goal: Add machine-readable hints to web pages RDF(a)
Generate RDF triples from a web page ...
your personal vision attributes
awesome !!!
your machine's vision
<http://my.safaribooksonline.com/0975841947> a gr:Offering ;
rdfs:label "Safari Books Online" ;
gr:includesObject
[ a gr:TypeAndQuantityNode ;
gr:amountOfThisGood "1"^^xsd:float ;
gr:typeOfGood <urn:x-domain:oreilly.com:product:9780975841945.SAF>
].
...
… and start scripting!
W3C Tag, 15.09.2010, Berlin
3. The RDFa Working Group Member
Bouba Fanta
Ben Adida
Jeffrey Sonstein Markus Gylling
Shane McCarron Abhijit Gaikwad
Manu Sporny Steven Pamperton
Robert Weir
Toby Inkster
Jean-Pierre
Evain Benjamin Adrian
Ivan Herman
Knud Möller Nan Ma Sarah Pulis
John O'Donovan Mark Birbeck
last update, 2010-09-13
4. What is new in RDFa 1.1
Goal: Make RDFa easier:
● for authors to write and to copy/paste content
● for developers to script
Current Contributions:
● Introduced prefix, profile, vocab instead of overloading xmlns
● Draft an RDFa API
● Let RDFa processors separate between a default RDF graph and a
processor RDF graph containing error triples
● Use plain URIs in every RDFa attribute
W3C Tag, 15.09.2010, Berlin
6. How do I tell my computer what this means?
W3C Tag, 15.09.2010, Berlin
7. Your computer understands RDF
Neue Fähigkeiten zum einfachen Editieren und 11:30
Konsumieren von RDFa Auszeichnungen
12:15
Benjamin Adrian
DFKI
8. Speak to your computer in RDF concepts
Neue Fähigkeiten zum einfachen Editieren und 2010-09-15T11:30:00
Konsumieren von RDFa Auszeichnungen
vcal:dtstart
#rdfa_talk
dc:title
vcal:dtend
vcal:organizer
2010-09-15T12:15:00
#ben
foaf:workplaceHomepage
foaf:name foaf:member
http://www.dfki.de
Benjamin Adrian #dfki foaf:homepage
foaf:name
DFKI
9. Same RDF in TURTLE Syntax
@prefix foaf: <http://xmlns.com/foaf/0.1/>
@prefix vcard: <http://www.w3.org/2002/12/cal#>
@prefix dc: <http://purl.org/dc/terms/>
<#ben>
foaf:name „Benjamin Adrian“;
foaf:workplaceHomepage <http://www.dfki.de>;
foaf:member <#dfki>;
vcard:organizer <#rdfa_talk>.
<#dfki>
foaf:name „DFKI“;
foaf:homepage <http://www.dfki.de>.
<#rdfa_talk>
vcard:dtstart „2010-09-15T11:30:00“^xsd:DateTime;
vcard:dtend „2010-09-15T12:15:00“^xsd:DateTime;
dc:title „Neue Fähigkeiten zum einfachen
Editieren und Konsumieren von RDFa
Auszeichnungen“.
W3C Tag, 15.09.2010, Berlin
10. Back to the HTML content
<tr>
<td>
<span>11:30</span> - <span>12:15</span>
</td>
<td>
<div>
Neue Fähigkeiten zum einfachen Editieren und Konsumieren
von RDFa Auszeichnungen
</div>
<a href="/referenten-2010/details/adrian.html">
Benjamin Adrian
</a>
,
<span>DFKI</span>
</td>
</tr>
W3C Tag, 15.09.2010, Berlin
11. CURIEs and prefixes … in RDFa
<tr prefix=“dc: http://purl.org/dc/terms/“>
<td>
<span>11:30</span> - <span>12:15</span> CURIE
</td>
<td>
<div property=“dc:title“>
Neue Fähigkeiten zum einfachen Editieren und Konsumieren
von RDFa Auszeichnungen
</div>
<a href="/referenten-2010/details/adrian.html">
Benjamin Adrian
</a>
,
Use prefix for
<span>DFKI</span> resolving CURIEs.
</td> (xmlns is depricated)
</tr>
W3C Tag, 15.09.2010, Berlin
12. Default Vocabularies … in RDFa
<tr prefix=“dc: http://purl.org/dc/terms/“
vocab=“http://www.w3.org/2002/12/cal#“>
<td>
<span property=“dtstart“>11:30</span> -
<span property=“dtend“>12:15</span>
</td> short name
<td>
<div property=“dc:title“>
Neue Fähigkeiten zum einfachen Editieren und Konsumieren von
RDFa Auszeichnungen
</div>
<a href="/referenten-2010/details/adrian.html">
Benjamin Adrian
</a>
,
<span>DFKI</span>
</td>
</tr>
W3C Tag, 15.09.2010, Berlin
13. Bundle vocabularies, prefixes … in RDFA
<div profile="http://www.heppnetz.de/grprofile/">
<span about="#company" typeof="gr:BusinessEntity“>
<span property="gr:legalName">
Hepp's bakery
</span>
, see also the
<a rel="rdfs:seeAlso" href="http://example.org/bakery">
home page of the bakery.
Use profile documents for defining
</a> a bundle of vocabularies or prefixes.
</div>
Profiles can be defined in RDFa,
RDFXML, or Turtle.
W3C Tag, 15.09.2010, Berlin
14. Refine content … in RDFa
<tr prefix=“dc: http://purl.org/dc/terms/“
vocab="http://www.w3.org/2002/12/cal#">
<td>
<span property=“dtstart“
content=“2010-09-15T11:30:00“>11:30</span> -
<span property=“dtend“
content=“2010-09-15T12:15:00“>12:15</span>
</td>
<td>
<div property=“dc:title“>
Neue Fähigkeiten zum einfachen Editieren und Konsumieren von
RDFa Auszeichnungen
</div>
<a href="/referenten-2010/details/adrian.html">
Benjamin Adrian
</a>
,
<span>DFKI</span>
</td>
</tr>
W3C Tag, 15.09.2010, Berlin
15. Define multiple entities … in RDFa
<tr prefix=“dc: http://purl.org/dc/terms/“ about=“#talk“
vocab=“http://www.w3.org/2002/12/cal#“ typeof=“Vevent“>
<td>
<span property=“dtstart“
content=“2010-09-15T11:30:00“>11:30</span> -
<span property=“dtend“
content=“2010-09-15T12:15:00“>12:15</span>
</td>
<td>
<div property=“dc:title“>
Neue Fähigkeiten zum einfachen Editieren und Konsumieren von RDFa
Auszeichnungen
</div>
<a about=“#ben“ property=“foaf:name“
href="/referenten-2010/details/adrian.html">
Benjamin Adrian
</a>
,
<span typeof=“foaf:Organization“
property=“foaf:name“>DFKI</span>
</td>
</tr>
W3C Tag, 15.09.2010, Berlin
16. Connect entities … in RDFa
<tr prefix=“dc: http://purl.org/dc/terms/“ about=“#talk“
vocab=“http://www.w3.org/2002/12/cal#“ typeof=“Vevent“>
<td>
<span property=“dtstart“
content=“2010-09-15T11:30:00“>11:30</span> -
<span property=“dtend“
content=“2010-09-15T12:15:00“>12:15</span>
</td>
<td>
<div property=“dc:title“>
Neue Fähigkeiten zum einfachen Editieren und Konsumieren von RDFa
Auszeichnungen
</div>
<a about=“#ben“ property=“foaf:name“
rel=“organizer“ resource=“#talk“
href="/referenten-2010/details/adrian.html">
Benjamin Adrian
</a>
,
<span typeof=“foaf:Organization“ property=“foaf:name“
inv=“foaf:member“ resource=“#ben“>DFKI</span>
</td>
</tr>
W3C Tag, 15.09.2010, Berlin
18. 3 steps to get your RDFa objects
1. Parsing DOM objects that contain embedded metadata
2. Extraction of the embedded metadata into a data store
3. Querying a data store in order to retrieve PropertyGroups
W3C Tag, 15.09.2010, Berlin
20. RDFa API
Retrieving PropertyGroups
Retrieves a list of PropertyGroups by their type.
document.getItemsByType(type)
Retrieves a single PropertyGroup by its subject.
document.getItemBySubject(type)
Retrieves a list of PropertyGroups by a particular property and optional value.
document.getItemsByProperty(property, optional value)
W3C Tag, 15.09.2010, Berlin
21. RDFa API
Retrieving DOM Elements
Retrieves a list of DOM Nodes by the type of data that they express.
document.getElementsByType(type)
Retrieves a list of DOM Nodes by the subject associated with the data that they
express.
document.getElementsBySubject(type)
Retrieves a list of DOM Nodes by a particular property and optional value that
each expresses.
document.getElementsByProperty(property, optional value)
W3C Tag, 15.09.2010, Berlin
22. RDFa API
Advanced Processing
Retrieves an array of PropertyGroups based on a set of selection criteria.
document.data.query.select(query, template)
Filters a given DataStore by matching a given triple pattern.
document.data.store.filter(pattern)
Iterates through a DOM, using a low-memory, stream-based approach,
matching on the given triple pattern.
document.data.parser.iterate(pattern)
W3C Tag, 15.09.2010, Berlin
23. RDFa API for beginners
var store = document.data.createStore();
document.data.createParser("rdfa", store).parse();
//document.data.createParser(“hCard“, store).parse();
document.data.context.setMapping(„foaf“,
„http://xmlns.com/foaf/0.1/“);
for(var person : document.getItemsByType(„foaf:Person“)) {
for(var element: document.getElementsBySubject(person.get(„uri“))) {
element.style.setProperty(“color“, “#00cc00“, null);
addPopupOnClickEvent(person.get(„uri“), element);
}
}
W3C Tag, 15.09.2010, Berlin
25. Useful Tools
● Use check.rdfa for checking if your RDFa content is
compliant with Google's Rich Snippet, or Facebook's Open
Graph Protocol (http://check.rdfa.info/)
● Use the CMS system Drupal for adding RDFa data to your
web pages.
● Use the RDFa distiller for extracting RDF triples from
RDFa content (http://www.w3.org/2007/08/pyRdfa/)
W3C Tag, 15.09.2010, Berlin
26. Outlook
What's next in RDFa 1.1?
Improve support of RDFa in HTML lists
Self contained error handling
Publish a good RDFa Primer.
Eat your own dog food, means to really implement the RDFa API.
...
W3C Tag, 15.09.2010, Berlin
27. Thanks for your interest!
Have fun with RDFa
Benjamin Adrian
http://www.dfki.de/~adrian