index.html 41.6 KB
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830 831 832 833 834 835 836 837 838 839 840 841 842 843 844 845 846 847 848 849 850 851 852 853 854 855 856 857 858 859 860 861 862 863 864 865 866 867 868 869 870 871 872 873 874 875 876 877 878 879 880 881
<!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>