As part of SWAD-Europe's dissemination efforts, and continuing on the the theme of Image annotation from the workshop we held in June 2002, we have been collaborating with a number of other groups a project to annotate photos from the WWW series of conferences. Also involved are Greg Elin, who came up with the idea; members of the Mindswap group from Maryland, members of the IAM group from Southampton, and others including Jim Ley, Morten Frederiksen, Masahide Kanzaki and Benjamin Nowack. There is a mailing list, semantic-photolist@unitboy.com, that anyone can join, currently archived at www-archive@w3.org archives), and we have held several IRC meetings on the #rdfig channel on freenode.
From the point of view of the SWAD-Europe project, our interests are:
More information about meetings is on the ESW wiki WWW2004; the specification is at W3PhotoSpec, the vocabularies used are documented at: W3PhotoVocabs.
Discussions on IRC have centred around the requirements for a vocabulary for describing parts of images, which would include
An email from Morten Frederiksen outlines the descisions made and the reasons for those decisions. It is hoped that a home for the RDF/OWL vocabulary can be found on the W3C site. Further discussions are likely to occur on the w3photo list and perhaps on a proposed new list
Discussions about mixing vocabularies for image annotation have sometimes occured on the FOAF mailing list as part of the codepiction project and similar efforts by independent programmers. They have often centred around adding geographical information to photos, but also mixing in event information and Dublin Core data, as well as the core 'depicts/depiction' information about who or what is depicted in the photo, using FOAF and Wordnet classes and properties. The w3photo project is also concerned with rights and licensing of the metadata and images for use as sample data for different systems.
Two very interesting issues have come up, at least one of which deserves its own FAQ entry (although at the moment the answer is unlear). The first is:
This is a very difficult question but I will try to summarise the main points here. Essentially it has to do with technological maturity, processing power, and backwards compatibility. Creating a new OWL ontology with links back to other existing vocabularies means that you get a nice neat description of the vocabulary you want to use, which you can control should the existing vocabularies disappear or redefine their terms. From an OWL point of view, using owl:sameClassAs means there is no difference between using the external classes and properties directly and using the newly defined versions.
However, many tools cannot handle OWL structures; nor even RDFS structures, and so where there is substantial existing data using a pre-existing vocabularies, creating a whole new one reduces interoperability. Even for tools which can handle OWL, extra processing is required to perform the reasoning to link the new terms to the old ones, and so the result of creating a new vocabulary is slower applications. The ESW wiki has a page for notes on this topic.
Supplementary questions include:
RDF is not generally concerned with document-level validation, but nevertheless it is very useful to have this level of validation in certain cases. In the w3photo project the aim is to have several different applications which create RDF describing photos, and several different applications which will consume it for display, and document-level validation will be useful for this.
At the document level, decisions need to be made about the minimal set of properties and classes needed so that the consumers can display what is produced: if a consumer can expect that a typical document has no required parts, the effort expended in API calls or queries will be expensive.
Another reason for using document-level validation is the need for 'referential integrity', or at least the hope that at least some references - to people, events - will be consistent between annotations. If I state that this is a picture of 'Bob Smith', that's not a good identifier for the Bob I'm talking about, even within the limited context of the attendees of the WWW2003 Web Conference. If I state that this picture was taken at the conference with the name 'WWW2003', that might normally disambiguate it, but in some circumstances may not (for example there were two conferences with the acronym 'ISWC' going on at the same time in 2003). Where URIs are not directly used to identify things in the world (like people), identity reasoning depends on the presence of particular properties. In this case, identification of any references to individuals - people or conferences - needs to be at the document level.
A final reason is that for the purposes of w3photo project, licenses are essential, and these need to be present for both the metadata itself (the descriptions of the people for example), as well as for the image. These don't need to to be in the same document (because they reference an Image and a metadata document both by their URL) but it is useful in a distributed project like this one to do the checking at the document level, so that the use of any particular server to access the collection of data will produce consistent results.
So, how can you validate RDF documents like this?
Perhaps the simplest way (implemented here) is to use a 'Schemarama'-like system - a set of RDF queries mixed with if-then blocks. For example an Image MUST be present, and MUST have a dc:description. Or a foaf:depicts property MAY be present, and if one is found, it MUST have some identifier for the person depicted, either a hashed version of their email address, or their homepage, or something else.
An interesting question is whether it is possible to use OWL to specify these kinds of document-level constratints. We are hoping that this and some of the other questions discussed here can be anwsered in due course.