Ivan’s private site

October 27, 2010

Publication of the Last Call for RDFa Core 1.1

The W3C RDFa Working Group has just published the “Last Call Working Draft” for RDFa Core 1.1. As Manu Sporny, the co-chair of the group, said in his tweet, this W3C jargon is equivalent to a “feature freeze”. Ie, the group does not know of any outstanding technical issues and of missing features that it would reasonably plan to add. Put it another way, this is last round of commenting before proceeding to final implementation testing and, hopefully, to a final W3C Standard. I.e., Last Call doesn’t mean that the group takes no more comments; on the contrary, technical comments are very welcome and necessary to make it sure that the final outcome is correct. Please, send your comments to the groups mailing list: public-rdfa-wg@w3.org (there is also a public archive).

Although lots of things have been discussed in the past few months (i.e., since the last draft published in August) not many things have significantly changed, in fact. Most of the changes are editorial, making the text clearer, more precise, etc. (You can look at the “diff” file, if you are interested.) This document is for the Core, i.e., the generic RDFa processing that can be used for any DOM. It is to be expected to have, in a few days, a similar document published for XHTML+RDFa 1.1 by the same Working Group, and an HTML5+RDFa 1.1 by the HTML Working Group.

I have also worked, in parallel to the specification work, on a modified version of the RDFa distiller. While the “official” service remains unchanged and relies on the current RDFa Recommendation, there is now a “Shadow” version, that relies on RDFa 1.1. The underlying code has undergone some cleanups beyond the adaptation to RDFa 1.1 so I am sure there are bugs…

Finally, a blatant self-promotion: Stéphane Corlosquet, Lin Clark and I will give a tutorial at the upcoming ISWC conference in Shanghai on RDFa and Drupal. The RDFa part relies on 1.1… (There are links to the slides on the page but you do not expect us not to touch them any more before the tutorial itself, do you? So make sure you look at them again after the event…)

August 3, 2010

New RDFa Core 1.1 and XHTML+RDFa 1.1 drafts

Filed under: Semantic Web,Work Related — Ivan Herman @ 20:49
Tags: , , , ,

W3C has just published updated drafts of RDFa Core 1.1 and XHTML+RDFa 1.1. These are “just” new heart-beat documents, meaning that they are not fundamentally new (the first drafts of these documents were published last April) but not yet ”Last Call” documents, i.e., the group does not yet consider the specification work finished. Although… in fact it is not far from that point. The WG has spent the last few weeks to get through open issues, and not many are left open at this moment.

So what has changed since my last blog on the subject where I introduced the new features compared to RDFa 1.0? In fact, nothing spectacular. Lots of minor clarifications issues to make things more precise. There has been a change on the treatment of XML Literals: whereas, in RDFa 1.0, XML Literals are automatically generated any time XML markup is in the text, RDFa 1.1 explicitly requires a corresponding datatype specification; otherwise a plain literal is created in RDF. (This is the only backward incompatibility of RDFa 1.0, as foreseen by the charter.)

Probably the most important addition to RDFa Core was triggered by a comment of Jeni Tenison (though the problem was raised by others, too). Jeni emphasized a slightly dangerous aspect of the profile mechanism in RDFa 1.1. To remind the reader: using the @profile attribute the author of an RDFa 1.1 file can refer to another file somewhere on the Web; that “profile file” may include, in one place, prefix declarations, term specifications, and (this is also new in this version!) a default term URI (see again my earlier blog on the details). The question is: what happens if the profile file is unreachable? The danger is that an RDFa 1.1 would possibly generate wrong triples, which is actually worse than not generate triples at all. The decision of the group (as Jeni actually proposed) was that the whole DOM subtree, i.e., all triples would be dropped starting with the element with the un-referenceable profile.

The profile mechanism has stirred quite some interest both among users of RDFa and elsewhere. Martin Hepp was probably the first to publish an RDF 1.1 profile for GoodRelations and related vocabulary prefixes at http://www.heppnetz.de/grprofile/. To use, essentially, his example, this means that one can use

<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.</a>
</div>

Because Martin’s profile includes a prefix definition for rdfs, too (alongside a number of other prefixes), the profile definition replaces a whole series of namespace declarations that were necessary in RDFa 1.0. I would guess that similar profile files, with term or prefix definitions, will be defined for foaf or for Dublin Core, too. Other obvious candidates for such profile definitions are the “big” users of RDFa information like Facebook or Google, who can specify the vocabularies they understand, i.e., index. (This did come up at the W3C camp in Raleigh, during the exciting discussion on the Facebook vocabulary.) Finally, another interesting discussion generated by RDFa’s profile mechanism occurred at the “RDF Next” Workshop in Palo Alto a few weeks ago: some participants proposed to consider a similar mechanism in a next version of Turtle (I must admit this came as a surprise, although it does make sense…)

As for implementations of profiles? Profiles are defined in such a way that an RDFa processor can recursively invoke itself to extract the necessary information for processing; indeed, RDFa is also used to encode the prefix, term, etc, definitions (Turtle or RDF/XML can also be used, but RDFa is the only required format). This means that an RDFa processor does not have to implement a different parser to handle the profile information. My ”shadow” RDFa distiller implements this (as well as all RDFa 1.1 features) and it was not complicated. It actually implements a caching mechanism, too: some well known and well published profiles can be stored locally so that the distiller does not go through an extra HTTP request all the time (yes, I know, this may lead to inconsistencies in theory but if such cache is refreshed regularly via, say, a crontab job, it should be o.k. in practice). At the moment the content of that cache is of course curated by hand. (The usual caveat applies: this is code in development, with bugs, with possibly frequent and unannounced changes…) You are all welcome to try the shadow distiller to see what RDFa is capable of. Of course, other RDFa 1.1 implementations are in the making. If you have one, it would be good to know about them, the Working Group is constantly looking for implementation experiences…

May 28, 2010

Self-documenting vocabularies using RDFa

Filed under: Semantic Web,Work Related — Ivan Herman @ 18:17
Tags: , , ,

This was one of the use cases some of us had in mind when RDFa was being developed, and it is nice to see that happening in practice… Olaf Hartig and Jun Zhao have recently published a provenance vocabulary. I am not knowledgeable enough to get into the detail of the provenance part. However, what also caught my attention is the way the vocabulary is defined: it is using XHTML+RDFa. So, while the URI above leads to a nice XHTML version of the vocabulary, readable by humans, the same source can also be used to get to the formal, RDF version of the vocabulary. Just use a distiller or extractor of any kind. I.e., do not repeat yourself, even when defining a formal vocabulary… I find this cool.

December 15, 2008

W3C’s Validators are Not Only HTML…

Filed under: Semantic Web,Work Related — Ivan Herman @ 18:15
Tags: , , , ,

W3C Validator Button A few days ago W3C launched its validator donation program (see also Olivier’s extra blog on this). The Semantic Web community might think that this is relevant for HTML, CSS, etc, only, but this is not so. The same validator program of W3C also includes the RDF and the Feed validators; also, the HTML validator has also been upgraded recently to handle the RDFa+XHTML DTD. (Although it is not required by RDFa to use this DTD, it is a good idea to have it there if you want to be sure about the validity of your file.) Ie, even if you are interested in the Semantic Web only (which I do not believe is anybody’s case, actually), you should consider the program…

ago

December 7, 2008

RDFa as an RDF serialization syntax

Just a small thing, really… On a blog Sebastian Heath announced that the Greek, Roman and Byzantine Pottery at Ilion (GRPBIlion) database exports its content as Linked Data using RDFa: see the HTML page itself or its RDF representation via RDFa Distiller. Mark Birbeck already blogged about this on RDFa’s blog site.

What caught my attention, however, is a question on the original blog by Sergey Chemyshev who asked:

Is there any reason why you used XHTML+RDFa instead of RDF/XML or N3 for this? It looks like http://classics.uc.edu/troy/grbpottery/database.html doesn’t have any HTML for presentation purpose, just to produce RDF triples – what was your reasoning for embedding them into HTML?

Of course, this is a valid question but… isn’t the answer “so what” (no offense to Sergey!)? What I mean is: for most of the RDF data around RDFa is a valid serialization just as RDF/XML or Turtle are. Of course, the main message around RDFa is that it gives you tools to add RDF data to an (X)HTML page. But we should realize that one can look at it in a different way, too: it is a tool to serialize your RDF graph so that it can be displayed in a human readable form easily via a browser. The HTML side of is not necessarily fancy; it can be, actually, very simple as indeed Sebastian’s page is. But it is readable for humans, certainly more readable than RDF/XML or even Turtle would be. And I think that may be enough of a reason to use RDFa in such circumstances, too!

Theme: Rubric. Blog at WordPress.com.

Follow

Get every new post delivered to your Inbox.

Join 2,512 other followers