W3C Annotea

An Annotea Bookmark Schema

This version:
http://www.w3.org/2003/07/Annotea/BookmarkSchema-20030707
Latest version:
http://www.w3.org/2001/Annotea/User/BookmarkSchema
Previous version:
-
Authors:
Marja-Riitta Koivunen <marja>
Ralph Swick <swick>
Jose Kahan <jose>
Eric Prud'hommeaux <eric>

Copyright 2003 W3C (MIT, ERCIM, Keio), All Rights Reserved. W3C liability, trademark, document use and software licensing rules apply.


1. Introduction

Annotea [Annotea] is a W3C Semantic Web Advanced Development project that provides a framework for rich communication about Web pages through shared RDF metadata. This metadata can be stored locally or in one or more user selected RDF servers. The first application of the Annotea infrastructure was an RDF schema for Annotations; objects with multiple properties intended to convey comments between human readers of a Web document. The Annotea Annotation schema [AnnotationNS] defines properties for identifying the document being annotated, a specific context within that document to which the body of the annotation refers, the author of the annotation, and more. Annotea clients can provide a variety of presentations of these annotations. As the Annotea framework is designed on top of RDF, it can be easily extended to other shared metadata applications.

Shared bookmarks are easy to model using the same underlying architecture as Annotea annotations. Facilities familiar to users such as arranging bookmarks into hierarchical classifications are straight-forward to model with RDF. An RDF model of bookmark classification permits multiple classification systems to be related to each other; for example, users's informal bookmark folders could be associated with formal ontologies via additional RDF properties. Furthermore, bookmark classification systems in RDF need not be limited to strict hierarchies but can be full graphs.In addition, the Annotea infrastructure makes it simple to add other RDF properties to bookmarks, share individual bookmarks with other users, share individual bookmarks between browsers, and query bookmark data in new ways not supported by current bookmark systems. As bookmarks are RDF metadata it is also easy to define semantic relationships that permit tools to interpret other data, such as RSS newsfeeds to be presented as bookmarks.

The Annotea Bookmark schema [BookmarkNS] provides the basic concepts found in common browser bookmark implementations. These basic concepts are also captured in the XML Bookmark Exchange Language [XBEL]. The use of RDF in Annotea permits bookmarks to express additional semantics. XBEL can be easily mapped into this schema.

2. Basic Architecture

an instance of a bookmark object

Figure 2.1: Annotea bookmark architecture (svg image)

The bookmark application uses the same Annotea architecture as is used for annotations (see Figure 2.1). Each individual bookmark is represented as an RDF resource of type Bookmark. Folder (for arranging bookmarks) have been generalized to Topics. Properties of Bookmarks and Topics are expressed as RDF statements and are stored in local files or in one or more bookmark servers via HTTP. Client implementations are free to present bookmarks in any way the developer chooses.

3. Schemas

The classes and properties described in this document use the following conventions for the namespace definitions:

a:
annotation namespace [AnnotationNS]
b:
bookmark namespace [BookmarkNS]
dc:
Dublin Core namespace [DCNS]
rdf:
RDF namespace [RDFNS]

A bookmark may have additional properties than those presented in the following sections. For example, it can include other properties from the Dublin Core element set [DublinCore]. Client implementations that modify bookmarks should preserve all properties of a bookmark, even if they cannot present or interpret them.

3.1 Bookmark Resources

Figure 3.1 shows the core bookmark properties. An instance of a bookmark is declared by assigning it the rdf:type of b:Bookmark. Each instance of a bookmark is identified with a unique URIref (URI reference; a URI, possibly including a fragment id). When a bookmark URIref is an http: resource it is expected that an HTTP GET using that URI will return RDF content containing properties of the corresponding bookmark.

b:Bookmark
The class to which all bookmarks belong.
rdf:type
Declares the class of the bookmark; the value should be http://www.w3.org/2002/01/bookmark#Bookmark or a subclass of http://www.w3.org/2002/01/bookmark#Bookmark.
dc:title
Title of the bookmark.
b:recalls
Relates the bookmark with the resource that has been bookmarked. The typical user operation of following a bookmark link will use the value of the b:recalls property. This property corresponds to XBEL:href property.
b:hasTopic
Associates the bookmark with a Topic (see below). A bookmark must have at least one b:hasTopic property.
dc:description
The description of or notes about the bookmark.
dc:creator
The name of the creator of the bookmark.
a:created
The date and time on which the bookmark was created. Format should be YYYY-MM-DDTHH:MM[:SS]TZD (see [DATETIME])
dc:date
The date and time on which the bookmark was last modified. Format should be YYYY-MM-DDTHH:MM[:SS]TZD (see [DATETIME])

Figure 3.1: The core bookmark properties.

The document that the user has bookmarked is identified with the b:recalls property. The role of b:recalls is to identify the primary document to which the bookmark refers. The dc:title property is used to assign a title to the bookmark. The dc:description property may be used to give a longer textual description for the bookmark. To facilitate sharing of bookmark data, the dc:creator property is used to name the author who created the bookmark. Thea:created and dc:date properties represent the creation and last modification time, respectively.

Figure 3.2 shows an example of a bookmark instance. In this example the URIref of the bookmark has been abbreviated to "F2C75X5".

an instance of a bookmark object

Figure 3.2: An instance of a bookmark (svg image).

3.2 Topic Resources

A topic defines an informal category for the purpose of classifying bookmarks. Topics may have subtopics and may refer to categories in more formal ontologies. Each instance of a topic is identified with a unique URIref (URI reference; a URI, possibly including a fragment id). When a topic URIref is an http: resource it is expected that an HTTP GET using that URI will return RDF content containing properties of the corresponding topic.

The basic properties of a topic are listed in Figure 3.3. The dc:title property is used to assign a title to the topic. The dc:description property may be used to give a longer textual description for the topic. A topic hierarchy is defined using b:subTopicOf properties.The a:created and dc:date properties have the same meaning as for bookmarks.

b:Topic
The class to which all topics belong.
rdf:type
Declares the class of the topic; the value should be of rdf:type http://www.w3.org/2002/01/bookmark#Topic or a subclass of http://www.w3.org/2002/01/bookmark#Topic.
dc:title
The title of the topic.
b:subTopicOf
Describes a relationship between topics. When a topic T is a sub-topic of a topic U then all bookmarks that have topic T are also considered to have topic U. A topic may be a sub-topic of one or more topics; trivially, every topic is a sub-topic of itself.

More formally; for all B, T, and U: B b:hasTopic T, T b:subTopicOf U implies B b:hasTopic U.
dc:description
The description of or notes about the topic.
dc:creator
The name of the creator of the topic.
a:created
The date and time on which the topic was created. Format should be YYYY-MM-DDTHH:MM[:SS]TZD (see [DATETIME])
dc:date
The date and time on which the topic was last modified. Format should be YYYY-MM-DDTHH:MM[:SS]TZD (see [DATETIME])

Figure 3.3: The core topic properties.

Figure 3.4 presents an instance of a topic hierarchy explaining parts of anatomy by using the b:subTopicOf property. For simplicity, most other core properties are hidden.

an instance of a topic hierarchy

Figure 3.4: An instance of a topic hierarchy (svg image).

3.3 Shortcut Resources

Note: The definitions in this section are not final, we reserve the right to change them in a future version.

When sharing bookmarks, a user may wish to associate a bookmark with a personal classification scheme without declaring that the shared bookmark itself is really in this personal topic. The same user may wish to include Topics from a formal classification structure in a personal topic hierarchy where it may be inappropriate to declare that the formal topic has a b:subTopicOf relationship to the user's personal hierarchy.

In such cases the user may define a "shortcut" to a bookmark or a topic. A shortcut is an indirect reference to another object. Figure 3.5 shows the core shortcut properties.

A shortcut has its own b:hasTopic or b:subTopicOf properties. The indirect reference is made with a b:leadsTo property. The client needs to follow the b:leadsTo property to access the corresponding bookmark or topic.

Each instance of a shortcut is identified with a unique URIref (URI reference; a URI, possibly including a fragment id). When a shortcut URIref is an http: resource it is expected that an HTTP GET using that URI will return RDF content containing properties of the corresponding shortcut.

b:Shortcut
The class to which all shortcuts belong.
rdf:type
Declares the class of the shortcut; the value should be of rdf:type http://www.w3.org/2002/01/bookmark#Shortcut or a subclass of http://www.w3.org/2002/01/bookmark#Shortcut.
b:leadsTo
Connects a shortcut to the bookmark or topic that is being included by reference in some other topic. A shortcut has at most one b:leadsTo property.
dc:creator
The creator of the shortcut.
a:created
The date and time on which the shortcut was created. Format should be YYYY-MM-DDTHH:MM[:SS]TZD (see [DATETIME])
b:hasTopic
Associates the shortcut with a topic; used when the b:leadsTo object is a bookmark.
b:subTopicOf
Indicates that the shortcut is to be regarded as a sub-topic of a topic; used when the b:leadsTo object is a topic.

Figure 3.5: The core shortcut properties.

4. Example

Figure 4.1 shows a sample RDF file presenting some bookmarks and topics. The file describes a topic hierarchy starting with "MyHomeTopic". Under that is topic "FamousPeople", which has three subtopics: "Writers", "Actors", and "FOAF". The bookmarks can belong to one or several topics.

<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
         xmlns:dc="http://purl.org/dc/elements/1.1/#"
         xmlns:a="http://www.w3.org/2000/10/annotation-ns#"
         xmlns:b="http://www.w3.org/2002/01/bookmark#"
>

<rdf:Description rdf:about="file:///home/.amaya/bookmarks.rdf#MyHomeTopic">
  <rdf:type rdf:resource="http://www.w3.org/2002/01/bookmark#Topic"/>
  <dc:title>My Home Topic</dc:title>
  <dc:description></dc:description>
  <dc:creator>Marja</dc:creator>
  <a:created>2003-05-15T09:28:05-05:00</a:created>
  <dc:date>2003-05-15T09:28:05-05:00</dc:date>
</rdf:Description>

<rdf:Description rdf:about="file:///home/.amaya/bookmarks.rdf#FamousPeople">
  <rdf:type rdf:resource="http://www.w3.org/2002/01/bookmark#Topic"/>
  <b:subTopicOf rdf:resource="file:///home/.amaya/bookmarks.rdf#MyHomeTopic"/>
  <dc:title>Famous People</dc:title>
  <dc:description>Famous people</dc:description>
  <dc:creator>Marja</dc:creator>
  <a:created>2003-05-16T00:20:29-05:00</a:created>
  <dc:date>2003-05-16T00:20:29-05:00</dc:date>
</rdf:Description>

<rdf:Description rdf:about="file:///home/.amaya/bookmarks.rdf#Writers">
  <rdf:type rdf:resource="http://www.w3.org/2002/01/bookmark#Topic"/>
  <b:subTopicOf rdf:resource="file:///home/.amaya/bookmarks.rdf#FamousPeople"/>
  <dc:title>Writers</dc:title>
  <dc:description>Famous writers</dc:description>
  <dc:creator>Marja</dc:creator>
  <a:created>2003-05-16T00:24:05-05:00</a:created>
  <dc:date>2003-05-16T00:24:05-05:00</dc:date>
</rdf:Description>

<rdf:Description rdf:about="file:///home/.amaya/bookmarks.rdf#Actors">
  <rdf:type rdf:resource="http://www.w3.org/2002/01/bookmark#Topic"/>
  <b:subTopicOf rdf:resource="file:///home/.amaya/bookmarks.rdf#FamousPeople"/>
  <dc:title>Actors</dc:title>
  <dc:description>Actors</dc:description>
  <dc:creator>Marja</dc:creator>
  <a:created>2003-05-16T00:22:32-05:00</a:created>
  <dc:date>2003-05-16T00:22:32-05:00</dc:date>
</rdf:Description>

<rdf:Description rdf:about="file:///home/.amaya/bookmarks.rdf#FOAF">
  <rdf:type rdf:resource="http://www.w3.org/2002/01/bookmark#Topic"/>
  <b:subTopicOf rdf:resource="file:///home/.amaya/bookmarks.rdf#FamousPeople"/>
  <dc:title>Friends or FOAF</dc:title>
  <dc:description>Friends and famous friend of friends (FOAF)</dc:description>
  <dc:creator>Marja</dc:creator>
  <a:created>2003-05-16T00:27:07-05:00</a:created>
  <dc:date>2003-05-16T00:27:07-05:00</dc:date>
</rdf:Description>

<rdf:Description rdf:about="file:///home/.amaya/bookmarks.rdf#ambookmark1">
  <rdf:type rdf:resource="http://www.w3.org/2002/01/bookmark#Bookmark"/>
  <b:hasTopic rdf:resource="file:///home/.amaya/bookmarks.rdf#Actors"/>
  <b:recalls rdf:resource="http://www.marx-brothers.org/"/>
  <dc:title>The Marx Brothers: Chico, Harpo, Groucho, Gummo, Zeppo</dc:title>
  <dc:description>The Marx Brothers official site</dc:description>
  <dc:creator>Marja</dc:creator>
  <a:created>2003-05-16T03:29:30-05:00</a:created>
  <dc:date>2003-05-16T03:29:30-05:00</dc:date>
</rdf:Description>

<rdf:Description rdf:about="file:///home/.amaya/bookmarks.rdf#ambookmark2">
  <rdf:type rdf:resource="http://www.w3.org/2002/01/bookmark#Bookmark"/>
  <b:hasTopic rdf:resource="file:///home/.amaya/bookmarks.rdf#Actors"/>
  <b:hasTopic rdf:resource="file:///home/.amaya/bookmarks.rdf#Writers"/>
  <b:recalls rdf:resource="http://www.jgkeegan.com/groucho.html"/>
  <dc:title>Groucho Marx: The Writer...</dc:title>
  <dc:description>Groucho was a writer too</dc:description>
  <dc:creator>Marja</dc:creator>
  <a:created>2003-05-16T03:33:05-05:00</a:created>
  <dc:date>2003-05-16T03:33:05-05:00</dc:date>
</rdf:Description>

<rdf:Description rdf:about="file:///home/.amaya/bookmarks.rdf#ambookmark3">
  <rdf:type rdf:resource="http://www.w3.org/2002/01/bookmark#Bookmark"/>
  <b:hasTopic  rdf:resource="file:///home/.amaya/bookmarks.rdf#FOAF"/>
  <b:recalls 
    rdf:resource="http://rdfweb.org/people/danbri/2001/02/semanticweb-and-me/"/>
  <dc:title>The Semantic Web and Me</dc:title>
  <dc:description>Danbri is my friend with many famous foafs</dc:description>
  <dc:creator>Marja</dc:creator>
  <a:created>2003-05-16T03:36:44-05:00</a:created>
  <dc:date>2003-05-16T03:36:44-05:00</dc:date>
</rdf:Description>

<rdf:Description rdf:about="file:///home/.amaya/bookmarks.rdf#ambookmark4"> 
  <rdf:type rdf:resource="http://www.w3.org/2002/01/bookmark#Bookmark"/>
  <b:hasTopic rdf:resource="file:///home/.amaya/bookmarks.rdf#Writers"/>
  <b:recalls rdf:resource="http://www.tolkiensociety.org/tolkien/biography.html"/>
  <dc:title>JRR Tolkien Biography - The Tolkien Society</dc:title>
  <dc:description>J.R.R. Tolkien was inspired by Kalevala and used Finnish language
as the basis for elve language</dc:description> <dc:creator>Marja</dc:creator> <a:created>2003-05-16T03:41:06-05:00</a:created> <dc:date>2003-05-16T03:41:06-05:00</dc:date> </rdf:Description> <rdf:Description rdf:about="file:///home/.amaya/bookmarks.rdf#ambookmark5"> <rdf:type rdf:resource="http://www.w3.org/2002/01/bookmark#Bookmark"/> <b:hasTopic rdf:resource="file:///home/.amaya/bookmarks.rdf#Writers"/> <b:recalls rdf:resource="http://www.moominshop.com/moomin_author.htm"/> <dc:title>Moomin Author</dc:title> <dc:description>Moomins are very popular in Finland and Japan and also in other countries</dc:description> <dc:creator>Marja</dc:creator> <a:created>2003-05-16T03:48:32-05:00</a:created> <dc:date>2003-05-16T03:48:32-05:00</dc:date> </rdf:Description> <rdf:Description rdf:about="file:///home/.amaya/bookmarks.rdf#ambookmark6"> <rdf:type rdf:resource="http://www.w3.org/2002/01/bookmark#Bookmark"/> <b:hasTopic rdf:resource="file:///home/.amaya/bookmarks.rdf#FOAF"/> <b:hasTopic rdf:resource="file:///home/.amaya/bookmarks.rdf#Actors"/> <b:recalls rdf:resource="http://www.coolstamps.com/trk98ss-sinatra-jfk.jpg"/> <dc:title>http://www.coolstamps.com/trk98ss-sinatra-jfk.jpg</dc:title> <dc:description>Sinatra and JFK and danbri's FOAF, and therefore mine too</dc:description> <dc:creator>Marja</dc:creator> <a:created>2003-05-16T03:52:16-05:00</a:created> <dc:date>2003-05-16T03:52:16-05:00</dc:date> </rdf:Description> <rdf:Description rdf:about="file:///home/.amaya/bookmarks.rdf#ambookmark7"> <rdf:type rdf:resource="http://www.w3.org/2002/01/bookmark#Bookmark"/> <b:hasTopic rdf:resource="file:///home/.amaya/bookmarks.rdf#Actors"/> <b:recalls rdf:resource="http://www.bbc.co.uk/films/2003/01/14/kati_outinen_the_man_without_a_past_interview.shtml"/> <dc:title>BBC - Films - Interview - Kati Outinen</dc:title> <dc:description>Kati Outinen</dc:description> <dc:creator>Marja</dc:creator> <a:created>2003-05-16T03:55:23-05:00</a:created> <dc:date>2003-05-16T03:55:23-05:00</dc:date> </rdf:Description> </rdf:RDF>

Figure 4.1: Sample bookmarks and topics file

Acknowledgements

Development of Annotea is supported in part by funding from US Defense Advanced Research Projects Agency (DARPA) and Air Force Research Laboratory, Air Force Materiel Command, USAF, under agreement number F30602-00-2-0593, "Semantic Web Development", by the European Commission Information Society Technologies (IST-7) programme under SWAD-Europe, and by Elisa Communications Oyj (Finland).

References

[also available in bookmark form]

[Annotea] Annotea home page
http://www.w3.org/2001/Annotea/

[AnnotationNS] Annotea Annotation namespace
http://www.w3.org/2000/10/annotation-ns#

[BookmarkNS] Annotea Bookmark namespace
http://www.w3.org/2002/01/bookmark#

[DATETIME] Date and Time Formats, W3C Member Submission, September 1977
http://www.w3.org/TR/1998/NOTE-datetime-19980827

[DCNS] Dublin Core namespace
http://purl.org/dc/elements/1.1/#

[DublinCore] Dublin Core home page
http://dublincore.org/

[RDF] Resource Description Framework (RDF) Model and Syntax Specification, W3C Recommendation 22 February 1999
http://www.w3.org/TR/1999/REC-rdf-syntax-19990222

[RDFNS] RDF namespace
http://www.w3.org/1999/02/22-rdf-syntax-ns#

[XBEL] XML Bookmark Exchange Language
http://pyxml.sourceforge.net/topics/xbel/


$Date: 2003/07/04 19:33:21 $ $Author: swick $