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
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.
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.
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.
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.
- If a primary node responds,
the new node is located under the primary node as a normal node,
and it performs data synchronization with the primary node.
- If no primary node responds, the new node becomes a primary node.
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.
- If a peer leader responds,
the new node is located under the peer leader,
and it performs data synchronization with the peer leader.
- If no peer leader responds, the new node becomes a peer leader.
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).
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.
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.
|
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 |
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.
|
We will also develop a search function of annotation data
based on P2P architecture.
- 1
-
M.Rscheisen 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.