[whatwg] RDFa

Dan Brickley danbri at danbri.org
Sat Aug 23 08:16:47 PDT 2008


+cc: Paul Miller of Talis, who worked on the AHDS report mentioned below.

Henri Sivonen wrote:
> On Aug 23, 2008, at 02:43, Ben Adida wrote:
> 
>> Why would you reinvent URIs in a way that they can't be de-referenced?
> 
> To avoid having misleading affordances.
> http://en.wikipedia.org/wiki/Affordance
> 
>> We want one parser, with variability and innovation in the vocabulary 
>> definition only.
> 
> Having one parser seems appealing compared to using the native 
> mechanisms of each of HTML (<meta>, <link>), PDF (document information 
> dictionary), PNG (tEXt chunk), etc. at first, but the vision that tools 
> handle this all when you remix culture already requires the tools to 
> support reading and writing the file formats they remix. When you 
> already have format-native key-value read/write capability, the ability 
> to build and mine RDF *graphs* becomes an additional burden.

It may not be obvious to those who haven't followed the history, or who 
were at school at the time, but many of us did indeed invest a lot of 
time and effort using name/value metadata structures in HTML. For 
example, the Dublin Core project began with this technology base 
beginning back in 1994/5, and the experience of metadata implementors 
using it was one of the drivers for the creation of RDF. At the time 
there no WHATWG to talk to, but the metadata community *did* talk to W3C.

See http://dublincore.org/about/history/

Early on, the Dublin Core community found a lot of pressure for 
feature-creep: new elements/terms to address the needs of various groups 
who liked Dublin Core, but wanted some specifics added. This situation 
gave rise to the 'Warwick Framework', defined in 1996 - 
http://www.dlib.org/dlib/july96/lagoze/07lagoze.html
[[
  While there was consensus among the attendees that the concept of a 
simple metadata set is useful, there were a number of fundamental 
questions concerning the real utility of the Dublin Core as it was 
defined at the end of the preceding workshop. Does the very loosely 
defined Dublin Core really qualify as a "standard" that can be read and 
processed programmatically? Should the number of the core elements be 
expanded, to increase semantic richness, or reduced, to improve 
ease-of-use by authors and/or web publishers? Will authors reliably 
attach core metadata elements to their content? Should a core metadata 
set be restricted to only descriptive cataloging information or should 
it include other types of metadata such as administrative information, 
linkage data, and the like? What is the relationship of the Dublin Core 
to other developing work in metadata schemes, particularly in those 
areas such as rights management information (terms and conditions)?

The workshop attendees concluded that the answer to these questions and 
the route to progress on the metadata issue lay in the formulation a 
higher-level context for the Dublin Core. This context should define how 
the Core can be combined with other sets of metadata in a manner that 
addresses the individual integrity, distinct audiences, and separate 
realms of responsibility of these distinct metadata sets.
]]

For an implementor report typical of the experience from this era, ie. 
with name/value pairs, see the UK Arts and Humanities Data Service 
document http://ahds.ac.uk/public/metadata/discovery.html which was 
presented at the Oct'97 Helsinki workshop of the Dublin Core. At the 
time I was involved with the ROADS internet cataloguing project and can 
vouch that we hit a similar ceiling with attribute/value metadata.

 From the appendix, http://ahds.ac.uk/public/metadata/disc_09.html ... 
here are some of attribute/value structures they were forced to squash 
their metadata records into.


DC.creator.corporateName.1
	Canterbury Archaeological Trust

DC.creator.phone.1
	+44 227 462062


DC.creator.personalName.2
	Paul Miller

DC.creator.affiliation.2
	Archaeology Data Service

...this expresses name, affiliation and contact information for a number 
of contributors to a work. Another example describes several 
contributors along with their roles (actor, director, etc). Again the 
attribute/value representations contained numeric indexes 
('DC.creator.role.9') to disambiguate which individual was being described.


>>> What barrier is there to building reusable vocabularies?
>>
>> The follow-your-nose principle is missing, which is fairly essential for
>> discovering the meaning of vocabularies (partially automatically, not by
>> doing a Google search.)
> 
> The partial automation with RDFa doesn't go very far. If a program 
> automatically dereferences http://creativecommons.org/ns# and parses the 
> result as RDFa, the program now has a human-readable string for each 
> property--not exactly something that the program can act on further 
> without human help.


Looking at this example,

           <div id="license" about="#license" typeof="rdf:Property">
               <h4>cc:license</h4>
               A <a rel="rdfs:domain" href="#Work">Work</a> <span 
property="rdfs:label">has license</span> a <a rel="rdfs:range" 
href="#License">License</a>. <br />

               (a <a rel="rdfs:subPropertyOf" 
href="http://purl.org/dc/terms/license">subproperty of dc:license</a>, 
<a rel="owl:sameAs" 
href="http://www.w3.org/1999/xhtml/vocab#license">the same as 
xhtml:license</a>)
           </div>


Actually we can do a fair bit more than simply have human readable 
strings. For example from the CC case, we've got a sub-property 
relationship between cc:license and dc:license. RDF often (more often, 
even) has relationships amongst classes too, and between classes and 
properties. So for example, the SIOC vocabulary defines a class 
sioc:User as a subclass of foaf:OnlineAccount; this is mechanically 
evident from http://rdfs.org/sioc/ns#    .... similarly, 
http://trac.usefulinc.com/doap defines the DOAP vocabulary, schema here 
- http://usefulinc.com/ns/doap# (webserver misconfigured re mimetype 
right now). DOAP defines a class doap:Project that subclasses FOAF's 
'Project' class, and which comes with a number of properties describing 
opensource software projects. Again this is mechanically evident. As the 
ccREL paper explains, and I can confirm w.r.t. FOAF, it is very useful 
to allow related projects to define related classes and properties but 
manage their evolution separately. It's a strategy for making 
incremental progress without a single project/organization carrying the 
burden of total coordination. Edd and friends in the DOAP project, for 
example, can keep developing new properties for describing projects. 
Elsewhere in the Web, we can be annotating the URI for 'foaf:Project' 
eg. with translations. 
http://svn.foaf-project.org/foaftown/foaf18n/foaf-kr.rdf tells us that a 
Korean rdfs:label for http://xmlns.com/foaf/0.1/Project is "프로젝트 (어 
떤 형태의 협업).". The DOAP list is busy figuring out how they might 
want (within DOAP or elsewhere, depending on complexity) to model 
customer relationships w.r.t. DOAP's notion of project, see 
http://lists.usefulinc.com/pipermail/doap-interest/2008-August/000338.html 
... but whatever they come up with will be linked back to other 
information about FOAF's broader notion of Project.

So while it is useful to have human readable strings (including 
translations) we also get simple relationships between independently 
defined vocabulary terms. RDFS basics here are sub-property, sub-class, 
range and domain. Without clear Web identifiers for vocabulary terms I 
believe this kind of distributed, collaborative approach becomes 
significantly harder. And I believe the experience of many in the Dublin 
Core metadata scene since the mid-90s backs this up...

cheers,

Dan

--
http://danbri.org/

For an example of browsing this kind of data structure btw see 
http://mqlx.com/~david/parallax/




More information about the whatwg mailing list