Re: Expressing complex regions with media fragments - use cases + possible solution

Silvia,

I set up some examples that should better illustrate our use case and what we need MF for...

The following snippet (taken from http://www.w3.org/2001/Annotea/User/Protocol.html) shows how "document"-based annotations worked back in 2002, when the Web was still quite document-centric. At that time, XPointer was sufficient for addressing regions in Web documents:

<?xml version="1.0" ?>
<r:RDF xmlns:r="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
       xmlns:a="http://www.w3.org/2000/10/annotation-ns#"
       xmlns:d="http://purl.org/dc/elements/1.1/">
 <r:Description>
  <a:annotates r:resource="http://serv1.example.com/some/page.html"/>
  <a:context>
    http://serv1.example.com/some/page.html#xpointer(id("Main")/p[2])
  </a:context>
  <d:title>Annotation of Sample Page</d:title>
  ...
 </r:Description>
</r:RDF>


In the last decade people started building multimedia annotation tools that require more sophisticated fragment identification mechanisms than XPointer. Because there was no specification for how to represent complex media fragments, they introduced their own solution with the side-effect that interoperability among annotation clients is not given anymore. Another annotation client would probably understand the <a:annotates> property but since there is no fragment identifier and no <a:context> property it would simply assume that there is no fragment.

Here is an example of how we represent an image annotation with a polygon region using SVG fragments, which does not mean that any other client can interpret this. In our SVG definition we embedded the annotated image so that also any non-RDF but SVG-capable client (e.g., browsers) can render the annotation.

<?xml version="1.0" encoding="UTF-8"?>
<rdf:RDF .... >
  <rdf:Description rdf:about="http://example.com/annotations/1">
    <a:annotates rdf:resource="http://example.com/image1.jpg"/>
	<d:title>Some annotation text....</d:title>
   	
	<x:svg-fragment rdf:parseType="Literal">
		<svg:svg height="7522px" viewbox="0px 0px 13500px 7522px" width="13500px" xmlns:svg="http://www.w3.org/2000/svg">
		<svg:defs xmlns:svg="http://www.w3.org/2000/svg">
			<svg:symbol id="Polygon" xmlns:svg="http://www.w3.org/2000/svg">
				<svg:polygon fill="none" points="52,203 0,124 186,0 238,80 52,203 " stroke="rgb(255,0,0)" stroke-width="0" xmlns:svg="http://www.w3.org/2000/svg"/>
				</svg:symbol>
		</svg:defs>
		<svg:image xmlns:xlink="http://www.w3.org/1999/xlink" height="7522px" preserveAspectRatio="none" width="13500px" x="0px" xlink:href="http://example.com/image1.jpg" xmlns:svg="http://www.w3.org/2000/svg" y="0px"/><svg:use xmlns:xlink="http://www.w3.org/1999/xlink" height="203px" width="238px" x="3932px" xlink:href="#Polygon" xmlns:svg="http://www.w3.org/2000/svg" y="4109px"/>
		</svg:svg>
	</x:svg-fragment>

 </rdf:Description>
</rdf:RDF>


With the MF specification there is - at least in my opinion - a chance to bring this back on the interoperability track. We could, for instance, allow for the specification of complex segments in MF URIs, which could result in something like this (I am skipping the <a:context> property here):

<?xml version="1.0" encoding="UTF-8"?>
<rdf:RDF .... >
  <rdf:Description rdf:about="http://example.com/annotations/1">
    <a:annotates rdf:resource="http://example.com/image1.jpg#mp(~region(polygon(.....)))"/>
	<d:title>Some annotation text....</d:title>
</rdf:Description>
</rdf:RDF>


...which does not really make sense, because there is such a variety of possible fragment types that it is hardly possible to cover them all in a single spec. Therefore we propose to introduce a by-reference MF identification, which is a key/value pair telling the clients that there is some more info about (spatial) fragments available at some other resource. Here is an example how this could look like:

<?xml version="1.0" encoding="UTF-8"?>
<rdf:RDF .... >
	<rdf:Description rdf:about="http://example.com/annotations/1">
		<x:annotates rdf:resource="http://example.com/image1.jpg#ref=urn:uuid:123234234235235"/>
		<d:title>Some annotation text....</d:title>
	</rdf:Description>
	<rdf:Description rdf:about="urn:uuid:123234234235235">
		<dc:format>image/svg+xml</dc:format>
		<x:svg-frag>...</x:svg-frag>
	</rdf:Description>
</rdf:RDF>


This tells a client, which receives that RDF document and should now render the annotation that the annotation annotates an image (http://example.com/image1.jpg) and that there is information about the fragment available at resource <urn:uuid:123234234235235>. In this example I used a URN instead of a URL to illustrate that a URI in RDF is not necessarily dereferencable. In this case it is simply defined in the annotation RDF document.

Technically, we can achieve the same by defining a new annotation standard that provides means (additional classes and properties) for representing complex media fragments. However, if we can reuse the MF spec for addressing complex segments in media objects we can avoid the divergence between MF browser implementations and annotation use cases.

In 2002 it was possible to address segments in documents with existing Web specs (XPointer). IMHO it should be possible to address complex segments in media objects on the Web with existing and upcoming Web specs (e.g., MF).

Best,
Bernhard


______________________________________________________
Research Group Multimedia Information Systems
Department of Distributed and Multimedia Systems
Faculty of Computer Science
University of Vienna

Postal Address: Liebiggasse 4/3-4, 1010 Vienna, Austria
Phone: +43 1 42 77 39635 Fax: +43 1 4277 39649
E-Mail: bernhard.haslhofer@univie.ac.at
WWW: http://www.cs.univie.ac.at/bernhard.haslhofer

Received on Thursday, 9 September 2010 10:06:04 UTC