Web Annotation Sharing using P2P

Osamu Segawa
Chubu Electric Power Co., Inc.
Nagoya, 459-8522 Japan

Segawa.Osamu@chuden.co.jp

Abstract:

We have developed a system that allows users to add annotations immediately onto a Web page they are viewing, and share the information via a network. A novel feature of our method is that P2P nodes in the system determine their roles autonomously, and share the annotation data. Our method is based on P2P; however, P2P nodes in the system change their roles and data transfer procedures, depending on their network topology or the status of other nodes. Our method is robust to node or network problems, and has flexible scalability.

H.5.4Information SystemsHypertext/Hypermedia

Algorithms, Design

Annotation, P2P

1 Introduction

In this paper, we propose a method of web annotation sharing using P2P. Several systems[1][2] have been proposed for web annotation sharing. Annotea[2], for example, uses annotation servers for data sharing. On the other hand, our approach is based on P2P architecture, and there is no specific server that manages the whole annotation data. A novel feature of our method is that P2P nodes in the system determine their roles autonomously, and share the annotation data.

2 Web annotation sharing using P2P

1 Architecture

Our method, which differs from ``Pure P2P'', is based on a P2P model in which P2P nodes in the system change their roles autonomously, depending on their network topology or the status of other nodes. Each node in the annotation sharing system has a communication module and an annotation database. A node in the system can update its database, synchronizing events, such as change of annotation data or participation of a new node.

2 Three-layer data sharing by autonomous determination of role

P2P nodes in the system determine their roles, either a ``normal node", a ``primary node" or a ``peer leader" (See Fig.1). Their roles are changed, synchronizing with events, such as participation or withdrawal of a node. Determination and transfer of the role are performed by the following procedures. Here, a ``segment" means a minimum network topology divided by routers.

(1) Determination of role at participation of node

When a new node joins the system, it asks all nodes in the segment that it belongs to about the existence of a primary node using multicast communication.

A node that has become a primary node asks peer leader candidates, whose addresses are previously known in a user group, using unicast communication, or the node asks an address server (fixed role), which is network-reachable, about the existence of a peer leader.

(2) Transfer of role at withdrawal of node

When a primary node withdraws from the system, it sends a role transfer requirement signal to all subordinate normal nodes in the segment that it belongs to. If a normal node responds to the signal, the primary node transfers its role to the normal node.

When a peer leader withdraws from the system, it sends a role transfer requirement signal to all subordinate primary nodes. If a primary node responds to the signal, the peer leader transfers its role to the primary node.

Data sharing and synchronization between nodes are performed by the following procedure, depending on the network topology (See Fig.2).

(1) Within segment

When annotation data is changed (added, edited or deleted) in a node, the node updates its database and sends the difference data to the other nodes in the segment that it belongs to using multicast communication. A node that receives the difference data updates its database.

(2) Between segments

A primary node communicates with its peer leader at certain intervals on behalf of the segment that it belongs to, and performs data synchronization with its peer leader. Then, the peer leader sends the difference data to all subordinate primary nodes.

Figure 1: Category of roles.

Figure 2: Three-layer data sharing by autonomous determination of role.

3 Description and data management of annotation

Data records of an annotation are shown in Table 1. When an annotation data is generated, a unique ID in the system is provided. Data synchronization between nodes is performed by comparing annotation ID lists, and then each node exchanges the difference data.

When an annotation is deleted from a node, the node adds a ``delete flag" into the annotation ID, and it sends the ID with the delete flag to the network. This causes the propagation of the deletion to all the nodes in the system.



Table 1: Data records of annotation.
URL of page in which annotation is added
Location of annotated words in page
Annotation ID
Delete flag
Annotation information
Title, Author, Date, Last update,
Description, Semantic label, Access permission


3 Implementation

We have implemented the proposed method as an IE browser plug-in. A Sample execution of a browser with the plug-in is shown in Fig.3.

When users add a new annotation, they select text strings by dragging the mouse, and push the annotation button in the toolbar. Then an input dialog for annotation is opened (See Fig.4). The input dialog is also available from the pull-down menu that appears by clicking the mouse's right button. Texts in which an annotation was added are displayed with a blue marker and an icon. If users click the annotation icon, a display dialog for the annotation is opened.

Figure 3: Example of page in which annotations are added.


Figure 4: Example of input dialog for annotation.

4 Future work

We will also develop a search function of annotation data based on P2P architecture.


References

1
M.R\(\ddot{o}\)scheisen et al. ``Beyond Browsing: Shared Comments, SOAPs, Trials, and On-line Communities'', in Proc. of the 3rd WWW Conf., 1995.

2
J.Kahan et al. ``Annotea: An Open RDF Infrastructure for Shared Web Annotations", in Proc. of the 10th WWW Conf., pp.623-632, 2001.