Another abandoned server code base... this is kind of an ancestor of taskrambler.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

881 lines
42 KiB

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Describing and retrieving photos using RDF and HTTP</title>
<style type="text/css">
.figure { margin: 1em 0}
.caption { font-style: italic; margin: 0.5em 1em }
.warning { text-decoration: underline}
.warning { color: #FF0000}
.warning { font-weight: bold}
.exclude { border: solid thin; padding: 0.5em }
BODY .exclude { color: #417F00}</style>
<link rel="stylesheet" type="text/css" href="http://www.w3.org/StyleSheets/TR/W3C-NOTE">
</head>
<body lang="en">
<div class="head">
<a href="http://www.w3.org/"><img height="48" width="72" alt="W3C" src="http://www.w3.org/Icons/w3c_home"></a>
<h1 id="describing">Describing and retrieving photos using RDF and HTTP</h1>
<h2 class="no-num no-toc" id="w3c-note">W3C Note 19 April 2002</h2>
<dl>
<dt>This version:</dt>
<dd><a href="http://www.w3.org/TR/2002/NOTE-photo-rdf-20020419">http://www.w3.org/TR/2002/NOTE-photo-rdf-20020419</a></dd>
<dt>Latest version:</dt>
<dd><a href="http://www.w3.org/TR/photo-rdf">http://www.w3.org/TR/photo-rdf</a></dd>
<dt>Previous version:</dt>
<dd><a href="http://www.w3.org/TR/2000/NOTE-photo-rdf-20000928/">http://www.w3.org/TR/2000/NOTE-photo-rdf-20000928</a></dd>
<dt>Authors:</dt>
<dd><a href="http://www.w3.org/People/Lafon">Yves Lafon</a>, <a href="http://www.w3.org/">W3C</a>, <a href="mailto:ylafon@w3.org">ylafon@w3.org</a><br>
<a href="http://www.w3.org/People/Bos">Bert Bos</a>, <a href="http://www.w3.org/">W3C</a>, <a href="mailto:bert@w3.org">bert@w3.org</a></dd>
</dl>
<p class="copyright"><a href="http://www.w3.org/Consortium/Legal/ipr-notice-20000612#Copyright">Copyright</a>
© 2002 <a href="http://www.w3.org/"><abbr title="World Wide Web Consortium">W3C</abbr></a><sup>®</sup> (<a href="http://www.lcs.mit.edu/"><abbr title="Massachusetts Institute of Technology">MIT</abbr></a>, <a href="http://www.inria.fr/"><acronym lang="fr" title="Institut National de Recherche en Informatique et Automatique">INRIA</acronym></a>,
<a href="http://www.keio.ac.jp/">Keio</a>), All Rights Reserved. W3C <a href="http://www.w3.org/Consortium/Legal/ipr-notice-20000612#Legal_Disclaimer">liability</a>,
<a href="http://www.w3.org/Consortium/Legal/ipr-notice-20000612#W3C_Trademarks">trademark</a>,
<a href="http://www.w3.org/Consortium/Legal/copyright-documents-19990405">document
use</a> and <a href="http://www.w3.org/Consortium/Legal/copyright-software-19980720">software
licensing</a> rules apply.</p>
<hr title="Separator for header">
</div>
<h2 class="no-num" id="abstract">Abstract</h2>
<p>This note describes a project for describing &amp; retrieving (digitized)
photos with (RDF) metadata. It describes the RDF schemas, a data-entry
program for quickly entering metadata for large numbers of photos, a way to
serve the photos and the metadata over HTTP, and some suggestions for search
methods to retrieve photos based on their descriptions.</p>
<p>The data-entry program has been implemented in Java, a specific Jigsaw
frame has been done to retrieve the RDF from the image through HTTP. The RDF
schema uses the Dublin Core schema as well as additional schemas for
technical data.</p>
<p>We already have a demo site and there is sample source code available for
<a href="#dlsoft">download</a>.</p>
<p>The system can be useful for collections of holiday snapshots as well as
for more ambitious photo collections.</p>
<h2 class="no-num" id="status">Status of this document</h2>
<p>This document is a NOTE made available by the W3C for discussion only.
Publication of this Note by W3C indicates no endorsement by W3C or the W3C
Team, or any W3C Members. Please send comments to the authors.</p>
<p>We plan to update this note after some more experience has been gained
with the system and the schemas.</p>
<p>A list of current W3C technical reports and publications, including
Working Drafts and Notes, can be found at <a href="http://www.w3.org/TR/">http://www.w3.org/TR/</a>.</p>
<h2 class="no-num" id="table">Table of contents</h2>
<div>
<!--begin-toc-->
<ul class="toc">
<li><a href="#abstract">Abstract</a>
<li><a href="#status">Status of this document</a>
<li><a href="#table">Table of contents</a>
<li><a href="#goals"><span class="secno">1. </span>Goals of the project</a>
<li><a href="#overview"><span class="secno">2. </span>Overview of the system</a>
<li><a href="#the-data-entry"><span class="secno">3. </span>The data-entry program "rdfpic"</a>
<li><a href="#Jigsaw1"><span class="secno">4. </span>The Jigsaw extension</a>
<li><a href="#the-rdf"><span class="secno">5. </span>The RDF schemas</a>
<ul class="toc">
<li><a href="#the-dublin"><span class="secno">5.1. </span>The Dublin Core Schema</a>
<li><a href="#the-technical"><span class="secno">5.2. </span>The Technical Schema</a>
<li><a href="#the-content"><span class="secno">5.3. </span>The content schema</a>
</ul>
<li><a href="#suggestions"><span class="secno">6. </span>Suggestions for extensions</a>
<li><a href="#the-online"><span class="secno">7. </span>The online demo</a>
<li><a href="#downloading"><span class="secno">8. </span>Downloading the code</a>
<li><a href="#related"><span class="secno">9. </span>Related research and projects</a>
<li><a href="#acknowledgments"><span class="secno">10. </span>Acknowledgments</a>
<li><a href="#references"><span class="secno">11. </span>References</a>
<li><a href="#AppendixA">Appendix A: The RDF schemas</a>
<ul class="toc">
<li><a href="#the-modified">The (modified) Dublin Core schema</a>
<li><a href="#the-technical0">The technical schema</a>
<li><a href="#the-content0">The content schema</a>
</ul>
<li><a href="#AppendixB">Appendix B: example of metadata</a></ul>
<!--end-toc-->
</div>
<hr>
<h2 id="goals"><span class="secno">1. </span>Goals of the project</h2>
<p>The goals of the project are partially personal, partially to promote W3C
technology. The personal reasons are that we, the authors, have large numbers
of photos but always have difficulty finding the exact ones that we want to
show to somebody. Digitizing them and describing them in RDF should make it
quicker to find the ones we are looking for at any moment.</p>
<p>We also think that a concrete example of an RDF schema and a working
system around it can help explain the potential of metadata on the Web,
especially since traditional, text-based search engines as they are used for
HTML document will clearly not work for photos. Also, using metadata will
automatically provide a non-visual description of the photos, hence
contributing to accessibility.</p>
<p>The project, then, is to take the existing pieces of technology (RDF
<a href="#RDF" rel="biblioentry">[RDF]</a>, HTTP <a href="#HTTP" rel="biblioentry">[HTTP]</a> and Jigsaw <a href="#Jigsaw" rel="biblioentry">[Jigsaw]</a> from W3C; JPEG <a href="#JPEG" rel="biblioentry">[JPEG]</a>, Java
<a href="#Java" rel="biblioentry">[Java]</a> from elsewhere) and provide some glue between them to produce an
interesting as well as useful application.</p>
<h2 id="overview"><span class="secno">2. </span>Overview of the system</h2>
<div class="figure">
<p><img src="photordfsystem" alt="Diagram of data entry system"></p>
<p class="caption">Diagram of the parts of the photo-RDF system. Top left:
the pictures are digitized and stored as JPEG images. Bottom left: metadata
is written into the pictures with the data-entry program (and can also be
edited if corrections are necessary). Right: requests from the Web are served
by Jigsaw, by sending either the picture or the metadata, depending on the
form of the request.</p>
</div>
<p>The system comprises the following, largely independent, pieces:</p>
<ol>
<li>Scanning the photos and storing them in JPEG format. We scan from
negatives, for best quality, but any process that yields JPEG could be
used, including digital cameras. We will not deal with this part
below.</li>
<li>A data-entry program that allows easy entry/editing of the metadata for
each photo and stores the data in RDF form inside the JPEG file. This
program is described below.</li>
<li>A module for the Jigsaw server that can serve either the JPEG image
data or the RDF description that is stored in it, using HTTP content
negotiation to determine which of the two a client wants. Described
below.</li>
</ol>
<p>Some digital cameras are already producing information about the picture,
which may be read and reformatted in RDF by scripts. We will not deal with
that in this version of the metadata editor.</p>
<p>The RDF data is expressed in three separate schemas, one of which is the
Dublin Core schema. The other two deal with technical data of the photo and
with subject categories. The reason for using three schemas is solely to
allow each of them to be used in other projects; to the users of the
data-entry program the actual RDF is completely hidden.</p>
<h2 id="the-data-entry"><span class="secno">3. </span>The data-entry program "rdfpic"</h2>
<div class="figure">
<p><a href="screendump-tech-2-1.png"><img src="screendump-tech-2-1-small" alt="Screendump of the metadata edit"></a></p>
<p style="font-style: italic" class="caption">Screen dump of
<strong>rdfpic</strong>, the metadata editor, showing the screen to enter
technical data. (The screen dump has been reduced by 50%)</p>
</div>
<p>The data-entry program is very simple. It has been designed to enable
quick entry of metadata for lots of photos, under the assumption that the
photos will usually be from one or a few series. Most fields therefore show
by default the value that was entered for the previous photo, and give quick
access to the values entered for the last few photos. Typically, only very
few fields will have to be changed from one photo to the next and the amount
of typing will be minimized.</p>
<p>The program is written in Java, but the user interface is in fact
generated at run-time directly from a machine-readable version of the schemas
(currently not the RDF syntax, but a transformation of it, with equivalent
information). This means that the program does not need to be changed when we
change the RDF schemas.</p>
<p>The RDF data is stored in the JPEG file in comment blocks (blocks of type
"COM", as defined by ISO DIS 10918-1). According to the JPEG standard, a
comment block can contain arbitrary text. There is no way to assign a type to
the text. We simply rely on the fact that RDF can easily be distinguished
from plain text by heuristics. JPEG limits each comment block to 64K, but
there can be as many blocks as necessary, so arbitrary amounts of text can be
added. In practice, the descriptions generated by the rdfpic program are
typically only a few hundred bytes long.</p>
<h2 id="Jigsaw1"><span class="secno">4. </span>The Jigsaw extension</h2>
<p>To serve either the RDF version or the complete image using existing
browsers and tools, the best way was to use Content Negotiation. Of course,
that doesn't exclude the use of other techniques, such as HTTP extensions, to
be able to retrieve and store metadata in a better way.</p>
<p>Using Content Negotiation has two benefits: it will work right away with
all text-based browsers (lynx, emacs with emacsspeak, etc.) and the output
can be rendered directly by selecting, e.g., the title or the description
from the RDF. Also, an RDF crawler will be able to get all the descriptions
of a collection of photos to create a knowledge database, just by asking for
the right MIME type.</p>
<p>In Jigsaw <a href="#Jigsaw" rel="biblioentry">[Jigsaw]</a>, a frame has been created, to simulate two different
resources under the same URI, the one of the image itself. Those two
resources have their own set of HTTP values, such as ETags, Content-Length
and others and the result is sent out using the classic Content Negotiation
of HTTP.</p>
<p>The RDF can be also be fetched directly without doing Content Negotiation,
by just adding the wanted MIME type after a semicoln (;) e.g.:
foo.jpg;application%2Frdf+xml ("%2F" is "/", escaped for occurrence in a
URL.)</p>
<p>Note that it is also possible to modify the RDF description using the PUT
method, provided the ETag of the description is in the HTTP header of the
request.</p>
<h2 id="the-rdf"><span class="secno">5. </span>The RDF schemas</h2>
<p>The metadata is separated into three different schemas:</p>
<ol>
<li><em>Dublin Core schema.</em> The Dublin Core <a href="#DC" rel="biblioentry">[DC]</a> schema is a general
schema for identifying original works, typically books and articles, but
also films, paintings or photos. It contains such properties as creator,
editor, title, date of publishing and publisher. It is being developed by
the Dublin Core Metadata Initiative and the version we use is the
RDF-format of version 1.1.</li>
<li><em>Technical schema.</em> This schema captures technical data about
the photo and the camera, such as the type of camera, the type of film,
the date the film was developed and the scanner and software used for
digitizing.</li>
<li><em>Content schema.</em> This schema is used to categorize the subject
of the photo by means of a controlled vocabulary. This schema allows
photos to be retrieved based on such characteristics as portrait, group
portrait, landscape, architecture, sport, animals, etc.</li>
</ol>
<p>All the properties are optional. The more properties are given values, the
better the photo will be described and the easier it will be to find it, but
leaving properties undefined doesn't make the metadata invalid.</p>
<p>There are no dependencies between the properties: each property can be
given a value independent of whether any other property has a value. The
values are also independent, except for restrictions of common sense: a photo
cannot have been taken after the date on which the film was developed...</p>
<h3 id="the-dublin"><span class="secno">5.1. </span>The Dublin Core Schema</h3>
<p>We don't use all properties defined by the Dublin Core (that is to say:
the others can be added, but are ignored by our metadata editor). Here is an
interpretation of the Dublin Core properties, applied to photo material. A
machine-readable schema is included in <a href="#AppendixB">appendix B</a>.
In parentheses the label that is shown in the user interface of rdfpic, if it
is different from the property name.</p>
<dl>
<dt>title</dt>
<dd>a short description of the photo. Example: <em>Marian climbs on the
"elephant"</em></dd>
<dt>subject</dt>
<dd>a set of keywords to describe the photo. See the <a href="#content">content schema</a> below for the list of keywords.
Example: <em>portrait, landscape</em></dd>
<dt>description</dt>
<dd>a longer description of the photo. Example: <em>Marian attempts to
climb on the granite rock that is nicknamed "the elephant"</em></dd>
<dt>creator ("author/creator")</dt>
<dd>the photographer, as a URL that can be further described with other
schemas. Example: <em>http://www.example.org/People/Bos</em></dd>
<dt>publisher</dt>
<dd>the person or institution making the photo available, often the same
as the creator. Example: <em>http://www.example.org/People/Bos</em></dd>
<dt>contributor</dt>
<dd>a person who contributed in some way, e.g., the person who digitized
the photo; may be a URL or a name.</dd>
<dt id="date">date</dt>
<dd>the date and time the photo was taken, conforming to ISO format
<a href="#ISOdate" rel="biblioentry">[ISOdate]</a>. The year is required, everything else can be omitted:
yyyy[-mm[-dd[Thh:mm[:ss[.sTZD]]]]]. The default time zone is UTC.
Example: <em>1999-10-01</em></dd>
<dt>type</dt>
<dd>always "image" (see the Dublin Core's <a href="http://dublincore.org/documents/2000/07/11/dcmi-type-vocabulary/">List
of Resource Types</a>)</dd>
<dt>format</dt>
<dd>always "image/jpeg"</dd>
<dt>identifier ("number")</dt>
<dd>a number for the photo that is meaningful to the publisher. This is
not the URL of the photo and it does not have to be globally unique.
Example: <em>312</em></dd>
<dt>source</dt>
<dd>not used.</dd>
<dt>language</dt>
<dd>not used.</dd>
<dt>relation</dt>
<dd>identifies a series: the event or topic for a series of photographs.
Can be a URL or a string. Example: <em>Marian in Le Sidobre.</em></dd>
<dt>coverage ("location")</dt>
<dd>the location shown on the photo. (Note that we only use the "spatial
coverage," not the "temporal coverage," since we assume that a photo is
instantaneous and thus the date field is enough.). Example: <em>Le
Sidobre (Tarn)</em></dd>
<dt>rights</dt>
<dd>copyright statement, or the URL for one. Example:
<em>http://www.example.org/People/Lafon/Copyright?1998</em></dd>
</dl>
<h3 id="the-technical"><span class="secno">5.2. </span>The Technical Schema</h3>
<p>The <em>technical schema</em> is defined by this RDF schema (for the
formal definition, see <a href="#AppendixB">appendix B)</a>:</p>
<dl>
<dt>camera</dt>
<dd>the brand and type of the camera, or a URL for the camera. If the
latter, the URL identifies one actual camera, not all cameras of that
type. Example:
<em>http://www.example.org/People/Lafon/FooCamera8000i</em></dd>
<dt>film</dt>
<dd>the brand and type of film. In contrast to the camera property, this
is not an individual roll of film, but identifies all films of the same
type. (We assume films of the same type are sufficiently similar;
except for fabrication errors, they are interchangeable.) The value may
be a string or a URL that is further described elsewhere. As a
convention, digital cameras should be considered as "digital" film.
Example: <em>Ilfoo HP5</em></dd>
<dt>lens</dt>
<dd>a definition of the lens used, maybe a URI describing it, a URI
pointing to the camera for compact cameras, or just plain text
description. Example: <em>FooLens AF:70-210</em></dd>
<dt>devel-date</dt>
<dd>date on which the film was developed. The date must be in the same
form as the <a href="#date">date</a> property. Example:
<em>1998-08-04</em></dd>
</dl>
<h3 id="the-content"><span class="secno">5.3. </span>The content schema</h3>
<p>The <a name="content"><em>content schema</em></a> contains the keywords we
use in the "subject" property of the Dublin Core schema. That property should
contain as many of the following keywords as are applicable. The keywords
have the following meaning:</p>
<dl>
<dt>Portrait</dt>
<dd>The photo contains a portrait of one person.</dd>
<dt>Group-portrait</dt>
<dd>The photo contains a portrait of a group of people.</dd>
<dt>Landscape</dt>
<dd>The photo contains a landscape or skyline.</dd>
<dt>Baby</dt>
<dd>The photo contains a baby.</dd>
<dt>Architecture</dt>
<dd>The photo contains interesting buildings.</dd>
<dt>Wedding</dt>
<dd>The photo contains scenes from a wedding.</dd>
<dt>Macro</dt>
<dd>The photo contains an extreme close-up and would, when viewed under
normal circumstances, be larger than life-size.</dd>
<dt>Graphic</dt>
<dd>The photo contains a pattern, texture or design, that is interesting
for its abstract, graphic quality.</dd>
<dt>Panorama</dt>
<dd>The photo contains a wide-angle view of a landscape or skyline.</dd>
<dt>Animal</dt>
<dd>The photo contains an animal.</dd>
</dl>
<h2 id="suggestions"><span class="secno">6. </span>Suggestions for extensions</h2>
<p>Here are some ideas for extensions to the system that we are still
studying. In no particular order:</p>
<ul>
<li>Some digital cameras already include technical data that is similar to
our technical schema in the pictures they produce. A simple script could
convert that data to RDF.</li>
<li>Another Jigsaw extension could automatically generate HTML pages with
thumbnails and descriptions.</li>
<li>Our system currently doesn't include a search engine. A client (or
proxy) that collects RDF of photos on the Web into a database and allows
queries over it could be a follow-on project.</li>
<li>A very limited search system could be provided by the server itself: a
query to the parent resource of a set of photos (i.e., the URL minus the
last path segment) could be handled by a server module that searches in
the set of photos.</li>
<li>Our current list of keywords to describe the contents of a photo is
very limited. There exist categorization systems that are much more
extensive. We are looking for something in between: fairly descriptive,
but still easy to use.</li>
<li>There could be an additional schema for further describing portrait and
group photos, that would allow listing the people in the picture. Similar
topic-specific schemas could exist for other kinds of photos.</li>
<li>Sometimes a detail of a photo is interesting as a picture on its own.
There could be a system to address a region of a photo and attach
metadata to it.</li>
<li>The rdfpic program could support the Adobe XMP format <a href="#XMP" rel="biblioentry">[XMP]</a>.</li>
<li>The rdfpic editor should read &amp; write metadata using HTTP GET &amp;
PUT in addition to read &amp; write from the local file system. The <a href="#Jigsaw1">Jigsaw extension</a> in fact already supports that.</li>
</ul>
<h2 id="the-online"><span class="secno">7. </span>The online demo</h2>
<p>A sample server has been set up, and <a href="http://jigsaw.w3.org/Yves/Australia/1998/04/">some pictures</a> are
available. Any request to text version of those pictures will give you the
RDF description of the picture. I.e., an HTTP request for MIME type
<code>image/jpeg</code> or <code>image/*</code> returns the photo, a request
for <code>application/rdf+xml</code> or <code>application/*</code> returns
the metadata. Or you can just view the metadata by adding
";application%2Frdf+xml" at the end of the pictures URI. Note that the index
page has been created by a script using the RDF embedded in the pictures for
the captions and alt text.</p>
<p>We plan to steadily increase the number of photos that are online.</p>
<h2 id="downloading"><span class="secno">8. </span><a name="dlsoft"></a>Downloading the code</h2>
<p>The Jigsaw extension and the JPEG related classes are a available in the
<a href="/Jigsaw/">Jigsaw</a> 2.0.4 distribution, the metadata editor <em><a href="http://jigsaw.w3.org/rdfpic/">rdfpic</a></em> is available from the <a href="http://jigsaw.w3.org/">Jigsaw demo site</a>.</p>
<h2 id="related"><span class="secno">9. </span>Related research and projects</h2>
<p>An apparently very similar system to ours was developed by Jane Hunter and
Zhimin Zhan <a href="#HunterZhan" rel="biblioentry">[HunterZhan]</a>, but for the PNG image format and with PNG's
built-in keyword/value format rather than RDF to express the metadata,
although they use RDF to specify the metadata schemas.</p>
<p>The <a href="http://www.iptc.org/">IPTC</a> has a list of keywords for
describing photo-journalistic images. <a href="http://www.adobe.com/">Adobe</a> Photoshop supports a subset of
them.</p>
<p>The proposed DIG2000 <a href="#DIG2000" rel="biblioentry">[DIG2000]</a> file format for the JPEG2000 <a href="#JPEG2000" rel="biblioentry">[JPEG2000]</a>
image compression algorithm contains an XML-based metadata block with entries
for people, places, events, GPS location, camera type, etc. It allows
extensions with additional entries. The draft of October 1998 doesn't use
RDF.</p>
<p>Since we first published this note and released the rdfpic program (in
March 2000), Adobe has developed a similar technology, called "Extensible
Metadata Platform" <a href="#XMP" rel="biblioentry">[XMP]</a>. XMP was first published around September 2001. It
stores the RDF in the APP1 chunk of JPEG, rather than the COM (comment) chunk
and it adds a magic string ("W5M0MpCehiHzreSzNTczkc9d") at the start of the
RDF to help distinguish XMP from other things that might be present in the
JPEG file. XMP embedding is also defined for other formats than JPEG, such as
TIFF and PDF. Like us, Adobe recommends the Dublin Core schema and offers
additional schemas for recording version history, image manipulations,
etc.</p>
<h2 id="acknowledgments"><span class="secno">10. </span>Acknowledgments</h2>
<p>The first version of the rdfpic metadata editor has been written by <a href="http://koala.ilog.fr/thierry/">Thierry Kormann</a> (formerly of <a href="http://www.bull.fr/">Bull</a>, France). The second version is the work
of Eamon Nerbonne. <a href="http://koala.ilog.fr/colas/">Colas Nahaboo</a>
(also formerly of <a href="http://www.bull.fr/">Bull</a>) has given valuable
advise.</p>
<p>Janne Saarela (of Pro-Solution, now <a href="http://www.profium.com/">Profium</a>, Finland) has written the original
RDF schema from which the current schemas descend and has helped with
checking and reviewing the schemas. His program <a href="http://www.w3.org/RDF/Validator/">SiRPAC</a> has been a great help in
checking and visualizing the schemas as well as the actual metadata generated
by the metadata editor.</p>
<h2 id="references"><span class="secno">11. </span>References</h2>
<!-- Sorted by label -->
<dl>
<!---->
<dt id="DC">[DC]</dt>
<dd>Dublin Core metadata initiative. <cite>Dublin Core metadata element set, version 1.1.</cite> July 1999.
Dublin Core recommendation. URL: <a href="http://dublincore.org/documents/1999/07/02/dces/">http://dublincore.org/documents/1999/07/02/dces/</a>
</dd>
<!---->
<dt id="DIG2000">[DIG2000]</dt>
<dd>Digital Imaging Group. <cite>DIG2000 file format proposal.</cite> Oct 1998.
Report (draft) ISO/IEC JTC1/SG29/WG1 N1017. URL: <a href="http://www.i3a.org/pdf/wg1n1017.pdf">http://www.i3a.org/pdf/wg1n1017.pdf</a>
</dd>
<!---->
<dt id="HTTP">[HTTP]</dt>
<dd>Fielding, Roy,; et. al. <cite>Hypertext Transfer Protocol - HTTP/1.1.</cite> June 1999.
Internet RFC 2616. URL: <a href="ftp://ftp.isi.edu/in-notes/rfc2616.txt">ftp://ftp.isi.edu/in-notes/rfc2616.txt</a>
</dd>
<!---->
<dt id="HunterZhan">[HunterZhan]</dt>
<dd>Hunter, Jane; Zhan, Zhimin. "An Indexing and Querying System for Online Images Based on the PNG Format and Embedded Metadata" in: <cite>ARLIS/ANZ Conference.</cite> Sep 1999.
Brisbane, Australia. URL: <a href="http://archive.dstc.edu.au/RDU/staff/jane-hunter/PNG/paper.html">http://archive.dstc.edu.au/RDU/staff/jane-hunter/PNG/paper.html</a>
</dd>
<!---->
<dt id="ISOdate">[ISOdate]</dt>
<dd>Wolf, Misha; Wicksteed, Charles. <cite>Date and time formats.</cite> Sep 1997.
Submission to W3C. URL: <a href="http://www.w3.org/TR/1998/NOTE-datetime-19980827">http://www.w3.org/TR/1998/NOTE-datetime-19980827</a>
</dd>
<!---->
<dt id="JPEG">[JPEG]</dt>
<dd>Hamilton, Eric. <cite>JPEG File Interchange Format.</cite> C-Cube Microsystems. Sep 1992.
Milpitas, CA, USA. URL: <a href="http://www.w3.org/Graphics/JPEG/jfif3.pdf">http://www.w3.org/Graphics/JPEG/jfif3.pdf</a>
</dd>
<!---->
<dt id="JPEG2000">[JPEG2000]</dt>
<dd>Joint Photographers Expert Group (JPEG). <cite>Jpeg 2000 image coding system.</cite> 9 Dec 1999.
Report (final committee draft) ISO/IEC CD15444-1:1999. URL: <a href="http://www.jpeg.org/fcd15444-1.zip">http://www.jpeg.org/fcd15444-1.zip</a>
</dd>
<!---->
<dt id="Java">[Java]</dt>
<dd>Gosling, James; Joy, Bill; Steele, Guy. <cite>The Java language specification.</cite> Addison-Wesley. 1998.
URL: <a href="http://java.sun.com/docs/books/jls/index.html">http://java.sun.com/docs/books/jls/index.html</a>
</dd>
<!---->
<dt id="Jigsaw">[Jigsaw]</dt>
<dd>Jigsaw Team (Yves Lafon &amp; Benoit Mahe). <cite>Jigsaw 2.0 internal design.</cite> July 1999.
URL: <a href="http://www.w3.org/Jigsaw/Doc/Programmer/design.html">http://www.w3.org/Jigsaw/Doc/Programmer/design.html</a>
</dd>
<!---->
<dt id="RDF">[RDF]</dt>
<dd>Lassila, Ora; Swick, Ralph R. (eds). <cite>Resource Description Framework (RDF) model and syntax specification.</cite> Feb 1999.
W3C Recommendation. URL: <a href="http://www.w3.org/TR/1999/REC-rdf-syntax-19990222/">http://www.w3.org/TR/1999/REC-rdf-syntax-19990222/</a>
</dd>
<!---->
<dt id="Schema">[Schema]</dt>
<dd>Brickley, Dan; Guha, R. V.. <cite>Resource Description Framework (RDF) Schema Specification.</cite> 1999.
W3C working draft. URL: <a href="http://www.w3.org/TR/1999/PR-rdf-schema-19990303/">http://www.w3.org/TR/1999/PR-rdf-schema-19990303/</a>
</dd>
<!---->
<dt id="XMP">[XMP]</dt>
<dd>Adobe Systems Incorporated. <cite>eXtensible Metadata Platform (XMP).</cite> 2002.
URL: <a href="http://www.adobe.com/products/xmp/main.html">http://www.adobe.com/products/xmp/main.html</a>
</dd>
<!---->
</dl>
<!--
<h2 class="no-num">Appendix A: the KUIL description</h2>
<p>[...]</p>
<p>The KUIL description.</p>
<p>The XSL transformation to generate KUIL from the RDF schemas.</p>
-->
<h2 id="AppendixA" class="no-num">Appendix A: The RDF schemas</h2>
<p>The three schemas below (Dublin Core, technical and content) are
machine-readable schemas in the syntax proposed by the RDF schemas draft
<a href="#Schema" rel="biblioentry">[Schema]</a>.</p>
<h3 class="no-num" id="the-modified">The (modified) Dublin Core schema</h3>
<p>The schema below is a minimal RDF schema for the Dublin Core. The name of
the schema is <code>http://www.w3.org/2000/PhotoRDF/dc-1-0</code>, but as the
schema shows, each property is in fact a restriction of the DC property of
the same name, as found in <code>http://purl.org/dc/elements/1.1/</code> The
French translations of the labels are based on <a href="http://www-rocq.inria.fr/~vercoust/METADATA/DC-fr.1.1.html">those by
Anne-Marie Vercoustre</a>.</p>
<pre id="Technical2" class="no-num"><!--begin-include "dc.html"-->&lt;rdf:RDF
xmlns="http://www.w3.org/TR/1999/PR-rdf-schema-19990303#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" >
&lt;rdf:Property rdf:ID="title">
&lt;label xml:lang="en">Title&lt;/label>
&lt;label xml:lang="fr">Titre&lt;/label>
&lt;label xml:lang="nl">Titel&lt;/label>
&lt;subPropertyOf rdf:resource="http://purl.org/dc/elements/1.1/title" />
&lt;/rdf:Property>
&lt;rdf:Property rdf:ID="creator">
&lt;label xml:lang="en">Author/creator&lt;/label>
&lt;label xml:lang="fr">Auteur/créateur&lt;/label>
&lt;label xml:lang="nl">Auteur/maker&lt;/label>
&lt;subPropertyOf rdf:resource="http://purl.org/dc/elements/1.1/creator" />
&lt;/rdf:Property>
&lt;rdf:Property rdf:ID="subject">
&lt;label xml:lang="en">Subject&lt;/label>
&lt;label xml:lang="fr">Sujet&lt;/label>
&lt;label xml:lang="nl">Onderwerp&lt;/label>
&lt;subPropertyOf rdf:resource="http://purl.org/dc/elements/1.1/subject" />
&lt;range rdf:resource="http://www.w3.org/2000/PhotoRDF/content-1-0#Keywords"/>
&lt;/rdf:Property>
&lt;rdf:Property rdf:ID="description">
&lt;label xml:lang="en">Description&lt;/label>
&lt;label xml:lang="fr">Description&lt;/label>
&lt;label xml:lang="nl">Beschrijving&lt;/label>
&lt;subPropertyOf rdf:resource="http://purl.org/dc/elements/1.1/description" />
&lt;/rdf:Property>
&lt;rdf:Property rdf:ID="publisher">
&lt;label xml:lang="en">Publisher&lt;/label>
&lt;label xml:lang="fr">Éditeur&lt;/label>
&lt;label xml:lang="nl">Uitgever&lt;/label>
&lt;subPropertyOf rdf:resource="http://purl.org/dc/elements/1.1/publisher" />
&lt;/rdf:Property>
&lt;rdf:Property rdf:ID="contributor">
&lt;label xml:lang="en">Contributor&lt;/label>
&lt;label xml:lang="fr">Contributeur&lt;/label>
&lt;label xml:lang="nl">Medewerker&lt;/label>
&lt;subPropertyOf rdf:resource="http://purl.org/dc/elements/1.1/contributor" />
&lt;/rdf:Property>
&lt;rdf:Property rdf:ID="date">
&lt;label xml:lang="en">Date&lt;/label>
&lt;label xml:lang="fr">Date&lt;/label>
&lt;label xml:lang="nl">Date&lt;/label>
&lt;subPropertyOf rdf:resource="http://purl.org/dc/elements/1.1/date" />
&lt;!-- use http://www.w3.org/TR/NOTE-datetime
format: YYYY[-MM[-DD[Thh:mm[:ss[.sTZD]]]]]
example: 1999-10-01T17:53
if TZD is omitted the timezone is UTC -->
&lt;/rdf:Property>
&lt;rdf:Property rdf:ID="type">
&lt;label xml:lang="en">Resource type&lt;/label>
&lt;label xml:lang="fr">Type de ressource&lt;/label>
&lt;label xml:lang="en">Categorie&lt;/label>
&lt;subPropertyOf rdf:resource="http://purl.org/dc/elements/1.1/type" />
&lt;!-- always "image in PhotoRDF -->
&lt;/rdf:Property>
&lt;rdf:Property rdf:ID="format">
&lt;label xml:lang="en">Format&lt;/label>
&lt;label xml:lang="fr">Format&lt;/label>
&lt;label xml:lang="nl">Formaat&lt;/label>
&lt;subPropertyOf rdf:resource="http://purl.org/dc/elements/1.1/format" />
&lt;!-- always "image/jpeg in PhotoRDF -->
&lt;/rdf:Property>
&lt;rdf:Property rdf:ID="identifier">
&lt;label xml:lang="en">Number&lt;/label>
&lt;label xml:lang="fr">Numéro&lt;/label>
&lt;label xml:lang="nl">Nummer&lt;/label>
&lt;subPropertyOf rdf:resource="http://purl.org/dc/elements/1.1/identifier" />
&lt;/rdf:Property>
&lt;rdf:Property rdf:ID="source">
&lt;subPropertyOf rdf:resource="http://purl.org/dc/elements/1.1/source" />
&lt;!-- not used in PhotoRDF -->
&lt;/rdf:Property>
&lt;rdf:Property rdf:ID="language">
&lt;subPropertyOf rdf:resource="http://purl.org/dc/elements/1.1/language" />
&lt;!-- not used in PhotoRDF -->
&lt;/rdf:Property>
&lt;rdf:Property rdf:ID="relation">
&lt;label xml:lang="en">Series&lt;/label>
&lt;label xml:lang="fr">Série&lt;/label>
&lt;label xml:lang="nl">Serie&lt;/label>
&lt;subPropertyOf rdf:resource="http://purl.org/dc/elements/1.1/relation" />
&lt;/rdf:Property>
&lt;rdf:Property rdf:ID="coverage">
&lt;label xml:lang="en">Location&lt;/label>
&lt;label xml:lang="fr">Endroit&lt;/label>
&lt;label xml:lang="nl">Plaats&lt;/label>
&lt;subPropertyOf rdf:resource="http://purl.org/dc/elements/1.1/coverage" />
&lt;!-- restricted to spatial coverage in PhotoRDF -->
&lt;/rdf:Property>
&lt;rdf:Property rdf:ID="rights">
&lt;label xml:lang="en">Rights&lt;/label>
&lt;label xml:lang="fr">Droits&lt;/label>
&lt;label xml:lang="nl">Rechten&lt;/label>
&lt;subPropertyOf rdf:resource="http://purl.org/dc/elements/1.1/rights" />
&lt;/rdf:Property>
&lt;/rdf:RDF>
<!--end-include-->
</pre>
<h3 class="no-num" id="the-technical0">The technical schema</h3>
<p>See <a href="#Technical2">the description above</a> for detailed
explanations of each of the properties. The name of this schema is
<code>http://www.w3.org/2000/PhotoRDF/technical-1-0#</code></p>
<pre><!--begin-include "tech.html"-->&lt;rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns="http://www.w3.org/2000/01/rdf-schema#">
&lt;Class rdf:ID="Technical-data">
&lt;comment xml:lang="en">A class that represents technical
data about a photo&lt;/comment>
&lt;comment xml:lang="fr">Une classe qui réprésente
les données techniques sur une photo&lt;/comment>
&lt;comment xml:lang="nl">Een class die de technische
gegevens van een foto representeert.&lt;/comment>
&lt;/Class>
&lt;rdf:Property rdf:ID="camera">
&lt;label xml:lang="en">Camera&lt;/label>
&lt;label xml:lang="fr">Appareil photo&lt;/label>
&lt;label xml:lang="nl">Camera&lt;/label>
&lt;comment xml:lang="en">Brand and type of camera&lt;/comment>
&lt;comment xml:lang="fr">Marque et type de appareil photo&lt;/comment>
&lt;comment xml:lang="nl">Cameramerk en -type&lt;/comment>
&lt;domain rdf:resource="#Technical-data"/>
&lt;/rdf:Property>
&lt;rdf:Property rdf:ID="film">
&lt;label xml:lang="en">Film&lt;/label>
&lt;label xml:lang="fr">Pellicule&lt;/label>
&lt;label xml:lang="nl">Film&lt;/label>
&lt;comment xml:lang="en">Brand and type of film&lt;/comment>
&lt;comment xml:lang="fr">Marque et type de pellicule&lt;/comment>
&lt;comment xml:lang="nl">Filmmerk en -type&lt;/comment>
&lt;domain rdf:resource="#Technical-data"/>
&lt;/rdf:Property>
&lt;rdf:Property rdf:ID="lens">
&lt;label xml:lang="en">Lens&lt;/label>
&lt;label xml:lang="fr">Objectif&lt;/label>
&lt;label xml:lang="nl">Lens&lt;/label>
&lt;comment xml:lang="en">Brand and type of lens.&lt;/comment>
&lt;comment xml:lang="fr">Marque et type d'objectif.&lt;/comment>
&lt;comment xml:lang="nl">Merk en type van de lens.&lt;/comment>
&lt;domain rdf:resource="#Technical-data"/>
&lt;/rdf:Property>
&lt;rdf:Property rdf:ID="devel-date">
&lt;label xml:lang="en">Development date&lt;/label>
&lt;label xml:lang="fr">Date de développement&lt;/label>
&lt;label xml:lang="nl">Ontwikkeldatum&lt;/label>
&lt;comment xml:lang="en">Date on which the film was developed.&lt;/comment>
&lt;comment xml:lang="fr">Date à laquelle la pellicule a été
developpée.&lt;/comment>
&lt;comment xml:lang="nl">Datum waarop de film is ontwikkeld.&lt;/comment>
&lt;domain rdf:resource="#Technical-data"/>
&lt;!-- use http://www.w3.org/TR/NOTE-datetime
format: YYYY[-MM[-DD[Thh:mm[:ss[.sTZD]]]]]
example: 1999-10-01T17:53
if TZD is omitted the timezone is UTC -->
&lt;/rdf:Property>
&lt;!-- [more?] -->
&lt;/rdf:RDF>
<!--end-include-->
</pre>
<h3 class="no-num" id="the-content0">The content schema</h3>
<p>We left out the human-readable comments; see <a href="#content">the
descriptions of the keywords</a> above. The name of this schema is:
<code>http://www.w3.org/2000/PhotoRDF/content-1-0#</code></p>
<pre><!--begin-include "content.html"-->&lt;rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns="http://www.w3.org/2000/01/rdf-schema#"
xmlns:content="">
&lt;!-- "" is the same as "http://www.w3.org/2000/PhotoRDF/content-1-0#" -->
&lt;Class rdf:ID="Keywords">
&lt;comment xml:lang="en">An enumeration of keywords to
describe the subject of photos.&lt;/comment>
&lt;comment xml:lang="fr">Une énumération de mots-clef
pour décrire le sujet d'une photo.&lt;/comment>
&lt;comment xml:lang="nl">Een opsomming van sleutelwoorden
om het onderwerp van foto's te beschrijven.&lt;/comment>
&lt;/Class>
&lt;content:Keywords rdf:ID="Portrait">
&lt;label xml:lang="en">Portrait&lt;/label>
&lt;label xml:lang="fr">Portrait&lt;/label>
&lt;label xml:lang="nl">Portret&lt;/label>
&lt;/content:Keywords>
&lt;content:Keywords rdf:ID="Group-portrait">
&lt;label xml:lang="en">Group portrait&lt;/label>
&lt;label xml:lang="fr">Portrait de groupe&lt;/label>
&lt;label xml:lang="nl">Groepsportret&lt;/label>
&lt;/content:Keywords>
&lt;content:Keywords rdf:ID="Landscape">
&lt;label xml:lang="en">Landscape&lt;/label>
&lt;label xml:lang="fr">Paysage&lt;/label>
&lt;label xml:lang="nl">Landschap&lt;/label>
&lt;/content:Keywords>
&lt;content:Keywords rdf:ID="Baby">
&lt;label xml:lang="en">Baby&lt;/label>
&lt;label xml:lang="fr">Bébé&lt;/label>
&lt;label xml:lang="nl">Baby&lt;/label>
&lt;/content:Keywords>
&lt;content:Keywords rdf:ID="Architecture">
&lt;label xml:lang="en">Architecture&lt;/label>
&lt;label xml:lang="fr">Architecture&lt;/label>
&lt;label xml:lang="nl">Architectuur&lt;/label>
&lt;/content:Keywords>
&lt;content:Keywords rdf:ID="Wedding">
&lt;label xml:lang="en">Wedding&lt;/label>
&lt;label xml:lang="fr">Mariage&lt;/label>
&lt;label xml:lang="nl">Trouwerij&lt;/label>
&lt;/content:Keywords>
&lt;content:Keywords rdf:ID="Macro">
&lt;label xml:lang="en">Macro&lt;/label>
&lt;label xml:lang="fr">Macro&lt;/label>
&lt;label xml:lang="nl">Macro&lt;/label>
&lt;/content:Keywords>
&lt;content:Keywords rdf:ID="Graphic">
&lt;label xml:lang="en">Graphic&lt;/label>
&lt;label xml:lang="fr">Graphique[?]&lt;/label>
&lt;label xml:lang="nl">Grafisch&lt;/label>
&lt;/content:Keywords>
&lt;content:Keywords rdf:ID="Panorama">
&lt;label xml:lang="en">Panorama&lt;/label>
&lt;label xml:lang="fr">Panorama&lt;/label>
&lt;label xml:lang="nl">Panorama&lt;/label>
&lt;/content:Keywords>
&lt;content:Keywords rdf:ID="Animal">
&lt;label xml:lang="en">Animal&lt;/label>
&lt;label xml:lang="fr">Animal&lt;/label>
&lt;label xml:lang="nl">Dier&lt;/label>
&lt;/content:Keywords>
&lt;/rdf:RDF>
<!--end-include-->
</pre>
<h2 id="AppendixB" class="no-num">Appendix B: example of metadata</h2>
<p>This is an example of the metadata in RDF format that is generated by
rdfpic, and subsequently served by Jigsaw.</p>
<pre><!--begin-include "sample.html"-->&lt;?xml version='1.0' encoding='ISO-8859-1'?>
&lt;rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:rdfs="http://www.w3.org/TR/1999/PR-rdf-schema-19990303#"
xmlns:s0="http://www.w3.org/2000/PhotoRDF/dc-1-0#"
xmlns:s1="http://www.w3.org/2000/PhotoRDF/technical-1-0#"
xmlns:s2="http://sophia.inria.fr/~enerbonn/rdfpiclang#">
&lt;rdf:Description rdf:about="">
&lt;s0:creator>Bert Bos&lt;/s0:creator>
&lt;s0:relation>Marian in the Tarn&lt;/s0:relation>
&lt;s0:rights>Bert Bos&lt;/s0:rights>
&lt;s0:type>image&lt;/s0:type>
&lt;s0:identifier>990621&lt;/s0:identifier>
&lt;s0:coverage>Montredon-Labessonié (Tarn)&lt;/s0:coverage>
&lt;s0:date>1999-06-26&lt;/s0:date>
&lt;s1:camera>Canon Eos 5&lt;/s1:camera>
&lt;s2:xmllang>en&lt;/s2:xmllang>
&lt;s0:title>Marian with sheep&lt;/s0:title>
&lt;s0:subject>Landscape, Animal&lt;/s0:subject>
&lt;s0:publisher>Bert Bos&lt;/s0:publisher>
&lt;s0:description>Marian brings the sheep to the field in the morning. The lamb she carries was born that night.&lt;/s0:description>
&lt;s0:format>image/jpeg&lt;/s0:format>
&lt;/rdf:Description>
&lt;/rdf:RDF><!--end-include-->
</pre>
</body>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-declaration:"~/SGML/HTML4.decl"
sgml-default-doctype-name:"html"
sgml-minimize-attributes:t
sgml-nofill-elements:("pre" "style" "br")
sgml-live-element-indicator:t
End:
-->
</html>