2012-07-10

FRBR in LOV : A Vocabulary is a Work

Along with the migration of LOV to OKFN, as announced in the previous post and now on the OKFN blog, we introduced the version history of vocabularies. The first obvious aspect is a cool visualization, see for example the Geonames Ontology History complete with timeline and links to downloadable versions when available. What's under the hood? It's FRBR all the way down.
We had some discussions about it during the DCMI Vocabulary Management Community meeting at London in April. The opinions of people there, regarding the relevancy of FRBR for vocabularies and their versioning, was far from a consensus. But Pierre-Yves and I decided to use it anyway, so there it is. With living examples, it will be easier to move the discussion forward ... Looking at VOAF last version you'll find things like the following :

<owl:Ontology rdf:about="http://purl.org/vocommons/voaf"> 
   <rdf:type rdf:resource="http://purl.org/vocommons/voaf#Vocabulary"/>
    .... 
   <frbr:realization> 
     <frbr:Expression rdf:about="http://purl.org/vocommons/voaf/v2.0"> 
      <owl:versionInfo>2.0</owl:versionInfo> 
      <dc:date>2012-07-03</dc:date> 
      <rdfs:comment xml:lang="en">Namespace moved to purl....</rdfs:comment>
      ...
       <frbr:embodiment> 
           <frbr:Manifestation rdf:about="http://purl.org/vocommons/voaf/v2.0/voaf_v2.0.rdf"> 
                <frbr:alternate> 
                    <frbr:Manifestation rdf:about="http://purl.org/vocommons/voaf/v2.0/index.html"/> 
                </frbr:alternate> 
           </frbr:Manifestation> 
        </frbr:embodiment> 
     </frbr:Expression> 
   </frbr:realization>
 ...

What does that mean?
  • The Vocabulary VOAF is represented as an abstract Work (frbr:Work)
  • Each version, here version 2.0, is represented as an Expression of this Work
  • Each version physical file, such as voaf_v2.0.rdf, is represnted as a Manifestation of this Expression.  The html file being an alternate form of the RDF file.
In this particular and pionnering case the FRBR descriptions have been included in the vocabulary itself, hoping to promote a (good) practice. In most other cases, like the above quoted Geonames Ontology and many more, the LOV back-office interface allows to define and manage versions, with dates, version number and upload of files when available, and the above code is generated in the LOV data base. We're still in the middle of the quite long and tedious task of harvesting metadata and files, a task in which fortunately many vocabulary authors and publishers have already helped a lot, thanks to them. So there is already quite a few things in the LOV store. And to figure out what is already there, the best is to go to LOV SPARQL endpoint, replace the default query by the following one (just keep the namespaces as they are)
SELECT ?prefix ?title ?versionDate ?versionFile
WHERE
{
    ?vocab a voaf:Vocabulary.
    ?vocab vann:preferredNamespacePrefix ?prefix.
    ?vocab dcterms:title ?title.
    ?vocab frbr:realization ?expr.
    ?expr  dcterms:date  ?versionDate.
    OPTIONAL {?expr frbr:embodiment ?versionFile.}
}
ORDER BY ?prefix  ?date 
The result you will get is an ordered (and bound to grow a lot in the days and weeks to come) table of vocabularies (frbr:Work) with their usual prefix and title, dates of versions (frbr:Expression) and version files when available (frbr:Manifestation).
We are looking forward for feedback on this type of representation, both from the Library and FRBR side, and Vocabulary managers side. Certainly we'll have objections like "It's too complex, people are already too lazy to drop basic metadata in their vocabularies". Yes it's complex to represent things in time, but FRBR seems to provide a good proven framework to represent this complexity. And using it is yet another step towards interoperability of Web and Library representations. 

[edit 2012-08-31] see also :