<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <title-group>
        <article-title>Mobile Widget Sharing by Mining Peer Groups</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Xi Bai</string-name>
          <email>xi.bai@ed.ac.uk</email>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Baoping Cheng</string-name>
          <email>chengbaoping@chinamobile.com</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Dave Robertson</string-name>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>China Mobile Research Institute</institution>
          ,
          <addr-line>Beijing</addr-line>
          ,
          <country country="CN">China</country>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>School of Informatics, University of Edinburgh</institution>
          ,
          <country country="UK">UK</country>
        </aff>
      </contrib-group>
      <abstract>
        <p>Developers have began to wrap desired functionalities into widgets based on Web 2.0 techniques on mobile devices. Demand for these light-weight Web applications is expected to grow rapidly in near future. Since a widgets can be recognized as a unit providing a speci¯c service, from the perspective of choreography, this paper adapts widgets into a mobile Peer-to-Peer (P2P) environment and proposes a light weight group discovery approach to assist service discovery based on domain ontologies and semantic clustering. Latent Semantic Indexing (LSI) and Singular Value Decomposition (SVD) are employed and assist our approach in building up a Knowledge Base (KB) on each peer. This approach can prune the service search space and trigger the initial formation of peer communities. Its performance is also assessed via simulation results. A framework for porting widgets to di®erent widget engines has been designed, making use of the above ontologies, and a basic widget transformation platform is implemented and tested in a case study.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>Introduction</title>
      <p>
        A widget is a light-weight Web application, which can be used to implement a
single function and access to Internet with Web 2.0 techniques. At time of this
writing, there is no uni¯ed de¯nition for a widget and di®erent organizations
gave diverse descriptions for this kind of Web application, such as widget [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ],
gadget [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ] or widget desktop application. W3C also gave a de¯nition for a widget in
order to normalize the development of widgets [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ]. In terms of di®erent run time
environments, widgets mainly fall into three categories: Desktop Widgets (DW,
e.g., Dashboard Widgets, Yahoo! Widgets, Sidebar Gadgets, Opera, DesktopX,
Google Gadgets, Klip Folio, AveDesk, Adobe Air, Samurize etc.); Web Widgets
(WW, e.g., Myspace, iGoogle, Facebook, Friendster, eBlogger etc.); Mobile
Widgets (MW, e.g., Nokia WidSets and Mojax Moblets). There is a high possibility
that widgets will become the next generation of applications on mobile devices
taking the place of traditional techniques like J2ME.
      </p>
      <p>
        Each widget or mobile application can be treated as a unit providing a
speci¯c service. Several solutions [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ] [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ] [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ] have been proposed to describe service
semantics from the perspective of orchestration, but little work has been done
on service description and service discovery from the perspective of
choreography. This paper proposes an mobile widget sharing and reuse strategy within
a Peer-to-Peer (P2P) environment from the perspective of choreography that is
achieved through the Interaction Model (IM) such as the one depicted in
Figure 2. A light weight group discovery approach is proposed based on domain
ontologies and semantic clustering. This machine-learning-driven approach can
not only prune the service search space but also assist each peer in building up
its Knowledge Base (KB) that acts like a pro¯le describing its interests and
further triggers the initial formation of peer communities that provide peers with a
better environment for sharing their knowledge. For widget publishers, generic
ontology is not required and any type of ontology matchmaker can be plugged
into our implementation. Its performance is then accessed through simulation.
Unlike traditional applications, widgets make use of normalized Web techniques
including HTML, XML, CSS and Javascript. It is possible to port them to
diverse engines on mobiles or PCs. However, it is not easy to run a widget directly
on another type of widget engine and the reasons will be introduced in
Section 5. Existing transforming tools like Amnesty Generator 1 and Widgetop 2
are too limited to be taken as general solutions. In this paper, a framework for
transforming widgets with diverse formats is designed with the aid of the above
ontologies and its initial implementation is presented via a case study.
      </p>
      <p>The remainder of the paper is organized as follows. Section 2 present related
work. Section 3 illustrates the P2P network structure for mobile widget
sharing. Section 4 presents our light-weight group discovery approach and gives a
choreography-based solution for widget searching. Section 5 describes a
framework for porting widgets to di®erent widget engines. Section 6 discusses our
group discovery approach through a simulation and gives a case study of widget
transformation. Section 7 concludes the paper and outlines our future directions.
2</p>
    </sec>
    <sec id="sec-2">
      <title>Related Work</title>
      <p>
        Widgets, created based on standard Web 2.0 techniques, are becoming widely
used on mobile devices day by day. Due to the traditional structure of the
mobile network, bandwidth and widgets provided are both limited by servers in
a centralized network. It is therefore interesting to explore if a P2P
environment that caters to the user's needs could be designed and applied to widget
sharing. One of the core problems of adapting P2P architectures and Sematic
Web techniques to mobile devices is how to cope with the computational costs.
Orchestration and choreography are two perspectives from which researches
currently investigate Web Services. The former describes the behaviors of a single
peer and the latter describes a service system in a top view manner. Focusing on
orchestration, several approaches have been proposed for applying semantics to
Web Services, such as OWL-S [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ], WSDL-S [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ] and SAWSDL [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ]. Consequently,
several matchmakers such as OWLS-MX [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ] and SAWSDL-MX [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ] have been
proposed and used for service discovery. However, little work has been done on
service description and service discovery from the perspective of choreography.
      </p>
      <sec id="sec-2-1">
        <title>1 http://www.amnestywidgets.com/GeneratorWin.html</title>
      </sec>
      <sec id="sec-2-2">
        <title>2 http://www.widgetop.com</title>
        <p>Moreover, limited computation capability of the mobile device also hampers the
progress of service description strategies.</p>
        <p>At time of this writing, there are two transformation tools for widgets in
di®erent formats as follows: Amnesty Generator and Widgetop. Amnesty
Generator gives a way of transforming from Google Gadget, GrazrRSSreader and
YouTube video to gadgets in the side bar. Widgetop is a Web desktop service
based on AJAX techniques using the MAC UI style. However, these two tools
both have their limitations. Amnesty Generator can only transform from Google
Gadgets to gadgets running in the side bar of Window Vista and Widgetop can
only transform from Apple Dashboard widgets to Web widgets.
3</p>
      </sec>
    </sec>
    <sec id="sec-3">
      <title>Network Structure For Mobile Widget Sharing</title>
      <p>The overall P2P network structure for widgets sharing among mobile devices
is depicted in Figure 1. In this ¯gure, each peer has an operating system, a
PAMP bundle, a KB including an RDF repository and widget ontologies, and
a searching UI. The ontologies and UI are provided and updated by a peer
that plays the provider role. Here, we also assume that this role can assure
that the exchanging process is quick and secure. When a requester asks for a
widget, based on his or her inputs, several groups will be established based on the
approach described in Section 4. Then IMs will be invoked as a protocol between
peers in a group until all members are searched. Then the searched widgets,
regarded as candidates, will be returned to the original requester. Meanwhile,
these candidates are sorted by the values of their rank properties descendingly.
Finally, the requester decides which widgets will be downloaded.
4</p>
    </sec>
    <sec id="sec-4">
      <title>Peer Group Discovery</title>
      <p>In order to e±ciently search for required widgets on peers, a possible strategy is
discovering a peer group that can prune the search space for each query. A group
is a collection of peers that have common interests. In this section, we present
our approach for clustering peers into groups. Suppose each peer holds an RDF
snippet that describes all the widgets holden by itself. This RDF snippet can
describe the relevant properties of each widget such as its URL, title, publisher,
platform, categories, size, rank and so on. Due to the heterogeneity of widget
properties described by di®erent Web sites, we de¯ned widget domain ontologies
that will be introduced in Section 5. So it is unnecessary diverse Web sites use
a generic ontology vocabulary to describe their issued widgets but just o®er
their matchmakers. After being mapped, the aliases will be uni¯ed by speci¯c
prede¯ned concepts in widget ontologies. Based on these ontologies and a speci¯c
matchmaker, the RDF snippets could be automatically generated from a widget
publication page in virtue of information extraction techniques. Finally, all the
installed widgets on each peer are described by a single RDF ¯le that forms its
pro¯le and will be stored in its local repository.</p>
      <p>
        If an RDF snippet is matched with the requirer's query, the host peer will
provide its address for download. Alternatively, the peer can provide the original
URL of the widget on another peer from which it downloaded this widget before
in case the peer has removed this widget but still retained the old version of
the RDF repository. By analyzing the widgets on Widgipedia3, we assume that
features and descriptions are capable of indicating the functionalities of widgets
and the peers that a requester originally wants to contact are previously recorded
in its contact list. For instance, widget °ickrstrator has following features:
article, blog, °ash, °ickr, images, photo, random, and web. Given these assumption,
we present our group discovery process including feature extraction, dimension
reduction, group-name extraction and peer distribution as follows:
-Feature Extraction. Several methods have been proposed for selecting
document features. Taking e±ciency and limited computation resources into
consideration, we use a Vector Space Model (VSM) to model the features of peers by
querying the RDF repository on each peer. From the following query described
in SPARQL [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ], we can get all features and descriptions, which indicate the
functionalities of services a peer can o®er.
      </p>
      <sec id="sec-4-1">
        <title>SELECT ?feature ?description</title>
        <p>WHERE f
?wi rdf:type wp:WidgetInfo.
?wi wp:feature ?feature.</p>
        <p>?wi wp:description ?description.g
According to VSM, each peer can be denoted by a feature vector with n
dimensions: (®w1 ¢ tfw1 ; ®w2 ¢ tfw2 ; :::; ®wn ¢ tfwn ), where n denotes the number of
values for node \feature" in the local repository, tfwi denotes the frequency of
the ith values and ®i denotes the weighting factor of the ith value. We use the
inverse document frequency, denoted by idfwi , as the weighting values so the
feature vector can be denoted by (tfw1 ¢ idfw1 ; tfw2 ¢ idfw2 ; :::; tfwn ¢ idfwn ). Here,
idfwi = log(N=dfwi + 0:01), where dfwi is the document frequency that denotes
the number of peers in which the ith value appears, and N denotes the total
number of peers in the requester's contact list. The requester's contact list can</p>
        <sec id="sec-4-1-1">
          <title>3 http://www.widgipedia.com/widgets</title>
          <p>
            be represented by a feature-peer matrix. Here, a feature denotes the value of a
feature node. Suppose there are in total m peers in the contact list and they
contain n di®erent features. Then this contact list can be denoted by a m £ n
matrix M . The row vectors of M are named feature vectors, and the column
vectors of M are named peer vectors. We use the su±x array [
            <xref ref-type="bibr" rid="ref13">13</xref>
            ] to calculate
the frequency of each feature. Moreover, we also omit the frequencies that do
not exceed a prede¯ned frequency-threshold value f reqmin.
-Dimension Reduction. Though the average number of the feature values in
an RDF snippet is small, the number of peers and the number of widgets on
each peer will be increased day by day and the dimension of feature vector will
be very large consequently. Since some of features are redundant, here we reduce
the dimension of the feature vector using Latent Semantic Indexing (LSI) [
            <xref ref-type="bibr" rid="ref12">12</xref>
            ].
The feature-peer matrix M is ¯rst constructed. Then Singular Value
Decomposition (SVD) is applied to this matrix and we have M = U SV T , where U denotes
the left singular vectors of M , V denotes the right singular vectors of M , and S
denotes a matrix that has the singular values of M sorted decreasingly along its
diagonal. After selecting the value of k, we can get a k-rank approximation Mk of
matrix M , Mk = UkSkVkT , where Uk and Vk denote two matrices whose columns
are the ¯rst k columns of U and the ¯rst k columns of V , respectively, and Vk
denotes a matrix whose diagonal elements are the k largest singular values of
M . Here, we select the minimum integer k by the following inequation:
(1)
(2)
jjMkjjF =
jjM jjF
s k
          </p>
          <p>P (¾i2)
i=1
s rM</p>
          <p>P (¾i2)
i=1</p>
          <p>&gt; ½
d¤ = dT VkT Sk¡1
Here, rM denotes the rank of matrix M , ¾i denotes the ith singular value, and
jjM jjF denotes the Frobenius norm of matrix M . We can map the original feature
vectors to a new feature space and ¯nally reduce their dimension by:
Here, d denotes the original feature vector of a peer and d¤ denotes the new one
after dimension reduction.
-Group-Name Extraction. Here, the distance between two feature vectors is
calculated by cosine distance. We use this distance to select the most
representative name for each group. Since group names may be not only terms but also
phrases, we reconstruct a new matrix R with the dimension m £ (r + m), which
expresses both terms and phrases in the column space of the feature-peer matrix.
Here, r denotes the total number of the phrases in the requester's contact list.
After SVD, each column vector of matrix Uk denotes the abstract features of
widgets for a peer. We can calculate the cosine distance between a abstract
feature vector and a term-and-phrase vector and get the distance matrix D = UkT R.
For each row vector, we ¯nd out the maximum score. Its corresponding term or
phrase is regarded as a candidate group name. Since a group name should be
concise, we should deal with the names which have duplicate semantics.
Regarding the candidate names as peers, we construct another feature-peer matrix S
with scores as its elements. After length normalization, we can get the matrix
containing similarities between candidate names by formula ST S. For each row
of this matrix, only the name with the highest score will be retained. The e®ect
for this step can be see in Table 2 and Table 3 in Section 6.
-Peer Distribution. After above three steps, we can determine the number of
groups in the requester's contact list. Then we make all the peers fall into these
groups. We de¯ne a matrix P in which each group label is represented by a
column vector. Then we can get a clustering matrix C = P T M whose element cij
denotes the similarity between the jth peer and the ith group, where M is the
original feature-peer matrix. If similarity cij exceeds the prede¯ned distribution
threshold distmin, the jth peer will be classi¯ed into the ith group ¯nally. We
will further discuss the selection of distmin in Section 6.</p>
          <p>
            When a requester sends out a searching request, the local RDF repository
will be ¯rst searched in order to assure that the requested widget has not been
installed locally. Otherwise, the local server will remind the requester of
overwriting or updating the existing widget or substituting it with a di®erent one. If
the requested widget can not be found locally, the requiring message will be sent
to the peers that are in the same group with the requester. Normally, one peer
may belong to several groups simultaneously, and di®erent groups may have
intersection subgroups. So we should ¯nd out which group of the requester should
be searched ¯rst. On the other hand, if peers in the requester's contact list
belong to more than one group to which the requester also belongs, they will be
searched more than once. In order to avoid overlapping searches, we maintain
a list to record peers that has been searched. The overall searching process is
like the above Peer Distribution process. The query phrase (i.e., the request)
is represented by a feature vector, Q, whose dimension is equal to the
dimension of the feature vector after the Dimension Reduction process. Then we can
get a vector C0 = P T Q whose element Ci0 denotes the similarity between the
query phrase and the ith group. By ranking these similarities descendingly, we
can ¯nd out the most relevant group that should be searched ¯rst. If the found
widgets are not satisfactory, the group with the second highest similarity will be
searched consequently. When the requester adds a new peer in his or her contact
list, the new peer will be ¯rst classi¯ed into an existing group or regarded as a
member of a new group and the local group information will be also updated.
The concrete method is analogous to the above method for matching a query
phrase and will not be described here for the sake of brevity. The above group
discovery approach triggers the formation of peer communities by providing the
basic community seeds. Community is a non-empty set of peers that share a
nonempty set of interests that they have in common [
            <xref ref-type="bibr" rid="ref15">15</xref>
            ]. After being discovered,
each group can send out invitations to selected peers in terms of the following
query, which allows a peer to start discovering new group members from its
neighborhood instead of °ooding the network which often causes a big burden
on bandwidth and processors.
          </p>
        </sec>
      </sec>
      <sec id="sec-4-2">
        <title>SELECT ?peer</title>
        <p>WHERE f
?peer rdf:type wp:Peer.
?peer foaf:holdsAccount ?user.</p>
        <p>?group sioc:has member ?user.g
for each peeri from ?peer</p>
        <p>SELECT ?friend
WHERE f
?friend rdf:type wp:Peer.
peeri foaf:knows ?friend</p>
        <p>
          g
Peer is a unit that is capable of achieving speci¯c goals. From the perspective of
choreography discussed in Section 2, peers collaborate with each other through
interactions. We use Lightweight Coordination Calculus (LCC) to describe these
interactions. LCC is a language used for describing the interactions between
peers and supporting decentralized systems [
          <xref ref-type="bibr" rid="ref9">9</xref>
          ]. LCC describes the interaction
between peers using an interaction model, which describes the choreography
between peers in appropriate roles in an intended interaction. After being grouped,
a peer searches and retrieves desired widgets in its group using the IM described
in Figure 2.
        </p>
        <p>An requester, R, sends out a message to a potential widget advertiser, A, in order to
retrieve required widgets, Widgets; then A sends back a message to R and transfers
the found widgets to R. The set W idgets contains all the widgets that R wants to
retrieve. A receives the message containing the R's required widgets; then A changes
role to being the advertiser over the set W idgets and ¯nds out if A contains the
widgets in W idgets; then all the found widgets are saved into set F ound and sent back
to R. F ound is a set containing all the found widgets required by R. The advertiser
A searches for a widget, W , in turn from the set W idgets; then if W is found in
A's local widget repository, W will be added in set F ound; otherwise, W will be ignored.
a(requester; R) ::
require(W idgets) ) a(advertiser; A) Ã need(W idgets)then
transf er(F ound) ( a(advertiser; A)
a(advertiser; A) ::
require(W idgets) ( a(requester; R)then
a(advertiser(W idgets; [ ]; F ound); S)then
transf er(F ound) ) a(requester; R)
a(advertiser(W idgets; BuildU p; F ound); S) ::
null Ã W idgets = [ ] ^ F ound = BuildU p
or
0 a(requester(WR; new; F ound); S) Ã W idgets = [W jWR] ^ f ind(W; WF ) ^ add 1
BB@ (WFo;rBuildU p; N ew) ACC
a(advertiser(WR; N ew; F ound); S) Ã W idgets = [W jWR] ^ not(f ind(W; WF ))</p>
        <p>Fig. 2. Widget retrieving IM</p>
      </sec>
    </sec>
    <sec id="sec-5">
      <title>Widget Format Transformation Based on Domain</title>
    </sec>
    <sec id="sec-6">
      <title>Ontologies</title>
      <p>
        In Table 1, we can see that each type of the widget contains a
con¯guration ¯le, a main ¯le and several JavaScript ¯les. Although requesters can use
the group discovery approach and the IM described in Section 4 to search other
peers and ¯nd out the expected widget with formats they support, usually the
widget publishers, especially independent developers, do not provide multiple
versions of their widgets. In this section, we propose an automatic transforming
framework based on domain ontologies, see in Figure 3. This process will be also
wrapped in an OKC held by each peer acquiescently. Following this ¯gure, we
now describe the transforming process as follows:
-Template Repository. According to the requester's requirement, the target
template corresponding to a target widget is ¯rst selected. A Template is a kind
of description that depicts the ¯le buildup, the naming method, the
con¯guration ¯le and the main ¯le of a widget with a speci¯c format.
-Unpacking and Packing Modules. We use java.util.zip package included in
JDK for unpacking and packing widget ¯les.
-Preprocessing Module. This module uni¯es formats of main ¯les from
di®erent types of widgets and prepares inputs for the next mapping process. Basically,
there are two types of main ¯les: HTML ¯les and XML ¯les. Here, we use XML
to standardize the format of main ¯les.
-Analyzing Module. This module identi¯es the format of the original widget
by analyzing the ¯le bundle after the unpacking process.
-Mapping Module. This module associates the elements within the original
template with the elements within the target template.
-Updating Module. Our widget ontologies should be updated constantly,
according ontology evolution [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ] theory. We are going to compare new elements
and existing elements by the similarity based on edit distance [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ], but there is
no implementation for this module currently.
We use S60 Platform SDKs for Symbian OS (3rd Edition Feature Pack 2) 4 and
PAMP 5 to simulate our mobile P2P environment. We collect widgets randomly
from Widgipedia to create our test set. Since there is no template or matchmaker
o®ered by this Web site, we crawl the information of most popular widgets using
our own XSL template and ontology matchmaker. We get 1715 widgets in total
and consequently generate 1715 RDF snippets. It is hard to know which users
downloaded which widgets since this kind of information is private, and normally
Web sites will keep this con¯dential. On the other hand, dispatching widgets
randomly is not realistic, since users tend to just install widgets associated with
their interests. Therefore, we assume for simplicity that each peer initially owns
a single widget. After dispatch, the average number of triples about the widget
stored on each peer is 15.6. Most widget publishers, especially those who are
professional, use natural language to give a brief introduction (description) about
their widgets. So we also make use of both features and descriptions to do the
simulation of group discovery and the comparison of two discovery methods. We
discuss the selection of the distribution threshold distmin de¯ned in Section 4
experimentally. We run our group discovery programme 100 times, starting with
the threshold from value 0.01 and increasing it by 0.01 each time. Then we get
the changing process of the number of discovered groups as depicted in Figure 4.
From this ¯gure, when distmin &gt; 0:65, the group structures become stable.
We take 0.8 as the value of distmin. Finally, all the peers in the requester's
contact list are classi¯ed into 22 groups based on features and 25 groups based
on descriptions respectively. Table 2 and Table 3 describe the group discovery
results ( GN stands for Group Name; NOP stands for Number of Peers; P stands
for Percentage).
      </p>
      <sec id="sec-6-1">
        <title>4 http://www.forum.nokia.com</title>
      </sec>
      <sec id="sec-6-2">
        <title>5 http://wiki.opensource.nokia.com/projects/Mobile_Web_Server</title>
        <p>Features-Based</p>
        <p>Descriptions-Based
0.2</p>
        <p>Though description-based discovery (Table 3) contains 3 more groups than
feature-based discovery (Table 2), there are 100 more widgets that can not be
grouped in Table 3 than in Table 2. Moreover, some of the GN s in Table 3 are
obscure, e.g., Save Time, List and so on. The reason for this is because natural
language is more °exible but less uncontrollable and the descriptions are more
heterogenous compared to features. We can also see this from Blog and Blog
Website in Table 3, which actually have the same meaning. Feature-based group
discovery outperforms description-based group discovery. According to Table 2,
627 peers, accounting for 36.56% of the contact peers, ¯nally fall into other group.
They do not associate with other peers very well. Studying the RDF snippets, we
¯nd that most of them use unusual words (or phrases) to describe their features.
Moreover, a few of them lack feature information or are very badly tagged using
just one or two unrepresentative words (or phrases).</p>
        <p>For the format transformation part, we take a widget with unknown
format as an example and give a case study of changing it to Nokia S60 widget
supported by Symbian 60 Feature Pack 2. Needless to say, the target template
should be the one for Nokia S60 widgets. After being unpacked, the original
widget is converted to a bundle of ¯les. This bundle contains a con¯guration ¯le
named info.plist whose content will be compared to the templates in the
template repository. Then the original format will be identi¯ed by the comparison
result, e.g., a Dashboard widget. The Mapping Module uses our widget ontologies
to associate the elements in the original ¯les with the ones in the target
template. For example, the property CFBundleIdenti¯er from a Dashboard widget
is corresponding to the property Identi¯er from a Nokia S60 widget and the
property CFBUndleVersion from a Dashboard widget is corresponding to the
property Version from a Nokia S60 widget. Based on the above semantic
alignments, the values in the original widget are ¯lled in the target template in the
end. Sometimes, the corresponding target elements will not be found after the
mapping process and this means the target widget engine does not have these
functionalities that the original widget engine has. In this case, these elements
will be ignored by the Mapping Module. Alternatively, this kind of elements can
be made up manually. Under this circumstance, our transformation approach
will still save a great deal of manpower. Figure 5 illustrates the transformation
from a prevailing Dashboard widget iStatpro (top sub¯gure) to a widget running
on Nokia S60 FP2 (bottom sub¯gure). Within the process of creating onologies,
we do our best to guarantee the °exibility and extendability of the hierarchy. The
We propose an approach for sharing and reusing widgets between mobile devices
and also adapt it in P2P environment. Based on domain ontologies and semantic
clustering, a light-weight group discovery approach is presented for pruning the
search space and cutting down the bandwidth limited by each peer. We also
propose a framework for transforming widgets with diverse formats and give a
case study to demonstrate it. After being grouped, a peer can more e±ciently
¯nd others that have similar interests with itself in the pruned search space.
Also, these basic groups trigger the initial formation of the peer community.
Any peer can invite friends who have similar interests to join its group and
then bene¯t the overall community. Our future work includes adding
multilanguage support within group discovery. A peer ranking approach should be
applied to our widget transferring process for possibly enhancing the widget
search. In order to expedite search, generated RDF ¯les should be indexed, which
is also a challenge. Currently we are working on the evolvement of discovered
groups, including peer-membership update (entering or leaving a group) and
group merging.</p>
      </sec>
    </sec>
    <sec id="sec-7">
      <title>Acknowledgement</title>
      <p>The research has been supported by the Open Knowledge project (FP6-027253).</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <surname>Martin</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          , et al:
          <article-title>OWL-S: semantic markup for web services</article-title>
          .
          <source>W3C Member Submission</source>
          . Available at http://www.w3.org/Submission/OWL-S/,
          <year>2004</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <surname>Akkiraju</surname>
          </string-name>
          , R.:
          <article-title>Web service semantics - WSDL-S (Version 1</article-title>
          .0). Available at http://www.w3.org/Submission/WSDL-S/,
          <year>2005</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <surname>Farrell</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Lausen</surname>
          </string-name>
          , H.:
          <article-title>Semantic annotations for WSDL and XML schema</article-title>
          .
          <source>W3C Recommendation</source>
          . Available at http://www.w3.org/TR/2007/ REC-sawsdl-
          <volume>20070828</volume>
          /,
          <year>2007</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <surname>Klusch</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Fries</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Sycara</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          :
          <article-title>Automated semantic web service discovery with OWLS-MX</article-title>
          .
          <source>In: Proceedings of the Internatinoal Conference on Autonomous Agents and Multi-Agent Systems (AAMAS'06)</source>
          , pp.
          <fpage>915C922</fpage>
          , ACM Press,
          <year>2006</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <surname>Klusch</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kapahnke</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          :
          <article-title>Semantic web service selection with SAWSDL-MX</article-title>
          .
          <source>In: Proceedings of the International Workshop on Service Matchmaking and Resource Retrieval in the Semantic Web (SMR2'08) on ISWC'08</source>
          , pp.
          <fpage>3</fpage>
          -
          <lpage>18</lpage>
          ,
          <year>2008</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <article-title>Getting started with nokia web widget development (Version 1</article-title>
          .0). Available at http://www.forum.nokia.com/info/sw.nokia.com/id/ 7df9d735-3fe8
          <string-name>
            <surname>-</surname>
          </string-name>
          4719
          <string-name>
            <surname>-</surname>
          </string-name>
          aeef-219a85d13552/Getting_Started_with_Nokia_ Web_Widget_Development.html,
          <year>2007</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <article-title>Promote your website's content using gadgets</article-title>
          . Available at http://www. google.com/webmasters/gadgets/guidelines.html,
          <year>2007</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <surname>Caceres</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          :
          <article-title>Widgets 1.0 requirements</article-title>
          . Available at http://www.w3.org/TR/ 2007/WD-widgets-reqs-
          <volume>20070209</volume>
          /,
          <year>2007</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9.
          <string-name>
            <surname>Robertson</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          <article-title>: Multi-agent coordination as distributed logic programming</article-title>
          .
          <source>In: Proceedings of the International Conference on Logic Programming (ICLP'04)</source>
          ,
          <source>LNCS 3132</source>
          , pp.
          <fpage>416</fpage>
          -
          <lpage>430</lpage>
          , Springer-Verlag,
          <year>2004</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10.
          <string-name>
            <surname>Noy</surname>
            ,
            <given-names>N.F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Chugh</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Liu</surname>
            ,
            <given-names>W.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Musen</surname>
            ,
            <given-names>M.A.</given-names>
          </string-name>
          :
          <article-title>A framework for ontology evolution in collaborative</article-title>
          .
          <source>In: Proceedings of the International Semantic Web Conference (ISWC'06)</source>
          ,
          <source>LNCS 4273</source>
          , pp.
          <fpage>544</fpage>
          -
          <lpage>558</lpage>
          , Springer-Verlag,
          <year>2006</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          11.
          <string-name>
            <surname>Angles</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Gutierrez</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          :
          <article-title>The expressive power of SPARQL</article-title>
          .
          <source>In: Proceedings of the International Semantic Web Conference (ISWC'08)</source>
          ,
          <source>LNCS 5318</source>
          , pp.
          <fpage>114</fpage>
          -
          <lpage>129</lpage>
          , Springer-Verlag,
          <year>2008</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          12.
          <string-name>
            <surname>McCarey</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          , Cinn¶eide, M.O¶ .,
          <string-name>
            <surname>Kushmerick</surname>
          </string-name>
          , N.:
          <article-title>Recommending library methods: an evaluation of the vector space model (VSM) and latent semantic indexing (LSI)</article-title>
          .
          <source>In: Proceedings of the International Conference on Software Reuse (ICSR'06)</source>
          ,
          <source>LNCS 4039</source>
          , pp.
          <fpage>217</fpage>
          -
          <lpage>230</lpage>
          , Springer-Verlag,
          <year>2006</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          13.
          <string-name>
            <surname>SchuÄrmann</surname>
          </string-name>
          , K.B.,
          <string-name>
            <surname>Stoye</surname>
          </string-name>
          , J.:
          <article-title>Counting su±x arrays and strings</article-title>
          .
          <source>In: Proceeding of the String Processing and Information Retrieval (SPIRE'05)</source>
          ,
          <source>LNCS 3772</source>
          , pp.
          <fpage>55</fpage>
          -
          <lpage>66</lpage>
          , Springer-Verlag,
          <year>2005</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          14.
          <string-name>
            <surname>Ferraro</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Godin</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          :
          <article-title>An edit distance between quotiented trees</article-title>
          .
          <source>Algorithmica</source>
          , vol.
          <volume>36</volume>
          , no.
          <issue>1</issue>
          , pp.
          <fpage>1</fpage>
          -
          <lpage>39</lpage>
          , Springer New York,
          <year>2008</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          15.
          <string-name>
            <surname>Khambatti</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Ryu</surname>
            ,
            <given-names>K.D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Dasgupta</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          :
          <article-title>Structuring Peer-to-Peer networks using Interest-based communities</article-title>
          .
          <source>In: Proceedings of the International Workshop on Databases, Information Systems and Peer-to-Peer Computing (DBISP2P'04) on VLDB</source>
          <year>2004</year>
          , LCNS 2944, pp.
          <fpage>48</fpage>
          -
          <lpage>63</lpage>
          , Springer-Verlag,
          <year>2004</year>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>