<!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>Semantic Clipboard - Semantically Enriched Data Exchange Between Desktop Applications</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Gerald Reif</string-name>
          <email>reif@ifi.unizh.ch</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Martin Morger</string-name>
          <email>martinmorger@hispeed.ch</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Harald Gall</string-name>
          <email>gall@ifi.unizh.ch</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>University of Zurich, Department of Informatics</institution>
          ,
          <addr-line>8050 Zurich</addr-line>
          ,
          <country country="CH">Switzerland</country>
        </aff>
      </contrib-group>
      <fpage>2</fpage>
      <lpage>14</lpage>
      <abstract>
        <p>The operating system clipboard is used to copy and paste data between applications even if the applications are from different vendors. Current clipboards only support the transfer of data or formatted data between applications. The semantics of the data, however, is lost in the transfer. The Semantic Web, on the other hand, provides a common framework that allows data to be shared across application boundaries while preserving the semantics of the data. In this paper we introduce the concept of a Semantic Clipboard and present a prototype implementation that can be used to copy and paste RDF meta-data between desktop applications. The Semantic Clipboard is based on a flexible plugin architecture that enables the easy extension of the clipboard to new ontology vocabularies and target applications. Furthermore, we show how the Semantic Clipboard is used to copy and paste the meta-data from semantically annotated Web pages to a user's desktop application.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>Users frequently use the clipboard of the operating system to exchange data
between desktop applications. They select the data they want to copy in the
source application, the data is then temporarily stored by the clipboard, and
inserted into the target application selected by the user. With current clipboard
applications the data is transferred as text or binary data. The semantics of the
data, however, is lost. As a consequence, the user has to restore the semantic
context when pasting the data to the target application.</p>
      <p>For example, a user orders a cinema ticket in an online-store and gets a
Web page with the ticket’s receipt. Using the operating system clipboard to add
the event to the calendar or the cinema’s address to the address book can not
be done in one step. Instead, the user has to select each information item in
an individual step (e.g., the movie title as event name, the street name, etc.)
and paste it to the according field of the target application. This way the user
manually restores the semantic context of the data.</p>
      <p>
        To overcome this semantic gap, the Semantic Web provides a common
framework that allows data to be shared and reused across application, enterprise,
and community boundaries [
        <xref ref-type="bibr" rid="ref22">22</xref>
        ]. To make the semantics of the data
machineprocessable, the Semantic Web employes ontology-based meta-data that is
formalized using the the Resource Description Framework (RDF) [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ]. Therefore,
Web pages in the Semantic Web have to be annotated with RDF meta-data that
describe the semantics of the content.
      </p>
      <p>Using a clipboard that is based on Semantic Web technologies enables the
transfer from RDF meta-data between applications. This way a clipboard is
able to preserve the data semantics during the data transfer. In the scenario
described above, the clipboard can now paste the performance data in RDF
format from the cinema’s online-store receipt page to the user’s desktop
application. The desktop application interprets the well-defined semantics and performs
the appropriate actions (e.g., creating a new event for the performance in the
calendar, adding the cinemas address to the address book) without having the
user to restore the semantic context of the data.</p>
      <p>In this paper we discuss the semantic implications when pasting data to
different desktop applications and introduce the architecture and a prototype
implementation of a Semantic Clipboard. To enable the easy adaptation of the
clipboard to new ontology vocabularies and target desktop applications, the
Semantic Clipboard is based on a flexible plugin architecture. To demonstrate
the potential of the Semantic Clipboard, we implemented plugins for several
ontology vocabularies and desktop applications for the Apple MacOS and MS
Windows operating systems.</p>
      <p>The remainder of the paper is structured as follows. Section 2 discusses the
idea that target applications define the semantic implications of the transferred
data. Section 3 introduces the plugin architecture of the Semantic Clipboard
and Section 4 presents the prototype implementation. Section 5 discusses related
work and Section 6 presents future work and concludes the paper.
2</p>
    </sec>
    <sec id="sec-2">
      <title>Semantic Implications Defined by Target Application</title>
      <p>
        An ontology formally defines the semantics of the common terms that are used
to describe the domain of discourse [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ]. Since RDF meta-data is based on the
terms defined in the ontology, machines have access to the semantics of the data.
RDF data can be exchanged between applications without losing its semantics
and the applications have the same semantic understanding of the data. The
implications of the exchanged data, however, depend on the target application.
The target application processes the data received and handles the data based on
its semantic context. Therefore, pasting the data to different target applications
can cause different semantic implications.
      </p>
      <p>For example, the Web page of an online-banking application presents the
user’s latest bank account statement, shown in Figure 1. The semantic
annotation of such a Web page contains information such as the date, the value, the
recipient, and the posting details for each money transfer in RDF format.
DeChapter 1. Introduction
pending on the target application pasting the data will cause different actions,
determined by the semantic context of the application.</p>
      <p>The following list shows the different actions for some possible target
applications:
– Home accounting application (such as MS Money) – A series of accounting
records will be created; one for each money transfer.
– Spreadsheet applications (such as MS Excel) – The data will be formatted
as a table; a new row is created for each posting line.
– Calendar application (such as iCal) – A new calendar entry will be created
for each day a money transfer took place.
– Address book application (such as the MacOS Address Book) – The address
of the recipients will be added to the address book.
– MP3 player (such as iTunes) – Since the semantic context of a MP3 player
does not include money transfers, dates, or addresses the application is not
able to perform any meaningful action with the data and will ignore it.</p>
      <p>As shown in the examples above, using a Semantic Clipboard to paste the
same RDF data to different target applications will cause different application
specific actions. Therefore, the clipboard has to hand-over the RDF data to
some application-specific code which processes the data in the semantic context
of the application. Since the Semantic Clipboard should be easily extensible to
new target applications, this application-specific code is hosted in application
and operating system specific plugins. The plugin architecture of the Semantic
Clipboard is introduced in the following section.
3</p>
    </sec>
    <sec id="sec-3">
      <title>Architecture</title>
      <p>The Semantic Web community defined numerous ontology vocabularies for
various domains. Therefore, it is an important requirement that the Semantic
Clipboard can easily be extended to new ontologies to facilitate these various
domains. On the other hand, there are countless desktop applications that are
potential target applications for a data transfer. Hence, it is a further
requirement that the support for new desktop applications can easily be added to the
Semantic Clipboard.</p>
      <p>Both of requirements concern the extensibility of the Semantic Clipboard. To
meet these requirements we propose to use a flexible plugin architecture for the
Semantic Clipboard. This way the capabilities of the clipboard can be extended
by adding new plugins and leaving the core of the implementation untouched.
The basic components of the plugin architecture are shown in Figure 2.</p>
      <p>The architecture is split into two main parts, the core functionality and the
plugins that are used to increase the capabilities of the clipboard. The task of the
core functionality is to load and manage the plugins, to provide the user interface,
to parse the RDF data, and to manage the clipboard sessions. A clipboard session
starts when the user requests the clipboard to read RDF meta-data. The data
is then stored in the clipboard session and can be repeatedly pasted to the
supported target applications. The current session ends and a new session is
started when the user loads new RDF meta-data to the clipboard.
3.1</p>
      <sec id="sec-3-1">
        <title>Reading from the RDF Source</title>
        <p>The Source Data Processor is responsible for reading the RDF meta-data from
the data source selected by the user. The Semantic Clipboard has to support
several data sources. RDF data can be read from another desktop application
that directly supports copying data in RDF format. RDF data can also be read
form a file on the local hard-disk or from a source in the Internet via HTTP.</p>
        <p>
          Semantically annotated Web pages are a further data source. These pages
do not only provide their content in HTML format to be displayed by a Web
browser but also RDF meta-data describing the semantics of the content. Several
techniques exist to associate the HTML page and its RDF meta-data
description [
          <xref ref-type="bibr" rid="ref17">17</xref>
          ]. When the RDF meta-data is embedded into the HTML page the Source
Data Processor extracts the RDF data from the HTML page. In case the HTML
Chapter 2. Implementation
Plugin Package Contains the reader, data container, and application plugin classes which extract
its ontology-specific data from the RDF source, store it temporarily, and paste the data into
page c otanrtgaetinapspalicarteiofenrs.ence to an external document containing the RDF
metadaStahadreedscPraicpktaigoenP,rtohviedeSsofuunrccteionDaalittyauPserdobcyemssoodruelexstfrroamctbsotthhteherecoferereanndcemaainndparcektargieesv,es
its RDsFucmhaest ath-edaSteassoivoenrcltahsse, Enxectewpotriko.n Oclanscsees,tohnetolSoogyurvcoecabDualatraiesP,arnodcessosmoer ultoilaitdyed
and pacrlsaessdest.he RDF data, the data is handed over to the reader plugins, which
are described in the following section.
        </p>
        <p>2.2 Technologies
3.2The fPolllouwginingstechnologies and libraries have been used to develop the Semantic Clipboard:
UsJianvga aSopftlwuagrienDaervcehloiptemcetnutrKeita(lJl2oSwEs), dVeervseiolnop1.e4r.2sftoor MpraocvTihdeeSfeumratnhteicrCpllipubgoianrsd taoppelnicaa-ble
tion is implemented in the JavaTM programming language1. Being a relativtehlyeyoung
lanthe clipgbuaogaer,dJavtoa hhaasnradpliedlnyebwecoomnetoolnoegoyf tvhoecmaabjuorlalarniegsuaogrestfoorinobcjreectaosreiented npuromgrbamer- of
suppormteidngt. aItrsgveirttuaaplpmlaicchaitnieoanrcsh.itecture allows programmers to write once, run everywhere, as
A pthoessthibelJeavaarccohmitpeilcetruwriell gfoenrertahteeaSpelamtfaornmt-iicndCepliepnbdeonatrbdytew-cooudled,thbaet ctaon bhearvuen oonnly
any platform that provides a Java virtucaalsmeachine. In additioDn to being a moderndoibrjeeccttly
applicaotriioennt-esdpleancgifiucagep, liutsgcionmsm.uInnitytphriosvides a latrhgee amSoouunrtcoef freealtyaavPailraobcleelsisborarries.
hands over the RDF meta-data to the application plugin. This plugin is then
resEpcolinpsstehibeIDldeEeveTlhoep mEcelniptsperIoncteesgsr.aTtehdeDEecvliepFlsoepImDeEnptrEonvvidireosnamleanrgte(IaDrrEa)y2 hoafscobdeiennguassesdisttiongsu,prepfaocrt-the
for analyzing the RD data and for integrating the data into
semanttiocricnog,natnedxdteboufgtghineg afupnpctliiocnaatliitoyn,a.nd its license allows anyone to use the program free of
Such an architecture would have serious drawbacks. To support a new
on1http://java.sun.com/
tolog2hyt,tep:a/c/hwwwa.pepclliicpsaet.ioorng/plugin that is able to handle data in the domain of the
ontology has to be modified. In addition, application plugins that are able to
process data based on the same ontology typically use the same statements to
filter the RDF graph for specific information items such as the street name or
the ZIP code of an address. Therefore, the same code would be found in several
applications plugins.</p>
        <p>To overcome these drawbacks, our proposed plugin architecture processes the
RDF meta-data in three steps. The ontology-specific reader plugins extract the
information from the RDF graph and store it in domain-specific data container
plugins. When the user selects the target application, the data containers are
handed over to the responsible application plugin which communicates with the
desktop application. The three processing steps are shown in Figure 2.</p>
        <p>Introducing these additional steps increases the flexibility and code reuse
in the architecture of the Semantic Clipboard. To support a new ontology in
a domain where a data container already exists, only a new reader plugin for
the new ontology has to be implemented. In addition, the code to extract the
information from the RDF graph is only needed once, in the responsible reader
plugin, even if several application plugins can handle the information encoded
with this ontology.</p>
        <p>In the following we introduce the plugin types in detail.</p>
        <p>
          Reader plugin. A reader plugin is required for each supported ontology
vocabulary (e.g., vCard [
          <xref ref-type="bibr" rid="ref8">8</xref>
          ], iCal [
          <xref ref-type="bibr" rid="ref9">9</xref>
          ], foaf [
          <xref ref-type="bibr" rid="ref7">7</xref>
          ]). The plugin extracts the information
from the RDF graph that is encoded with the ontology vocabulary the
plugin is responsible for. It then instantiates the corresponding data container
plugin to store the extracted information.
        </p>
        <p>A reader plugin can instantiate and write to several data containers. For
example, the ontology provides the vocabulary to represent a person’s
contact information including its current geographical coordinates. The reader
plugin would instantiate a contact container and a geographical container to
store the data.</p>
        <p>
          Data container plugin. The data container plugin is responsible for storing
the information extracted by the reader plugins. A data container is
responsible for a specific domain such as events or contacts. More than one reader
plugin can write information to the same data container. For example, the
RDF graph contains information about a person’s contact encoded using
the foaf [
          <xref ref-type="bibr" rid="ref7">7</xref>
          ] and vCard [
          <xref ref-type="bibr" rid="ref8">8</xref>
          ] ontology. In this case both the foaf reader and the
vCard reader write its information to the same contact data container.
A data container can also store references to other data containers. For
example, the RDF graph contains data about a meeting and its participants.
The data container that stores the meeting event stores references to the
contact data container of the meeting participants.
        </p>
        <p>Application plugin. The application plugin builds the interface between the
Semantic Clipboard and the desktop applications. When a user selects the
target application, the responsible application plugin accesses the
information stored in the data containers. The application-specific code in the plugin
then communicates with the desktop application.</p>
        <p>Depending on the semantic context of the desktop application, the
application plugin can use information from several data containers. For example,
the RDF graph contains data about a person including the current
geographical coordinates and the data is stored in a contact and a geographic
container. If the target application stores the geographic location in the
person’s contact entry, the plugin will access the information of both containers.
On the other hand, if the semantic context of the target application does
not overlap with the data in the current clipboard session no action can be
issued in the target application.
Each application plugin has access to the user interface of the Semantic
Clipboard to present its application-specific dialog. For example, the plugin
asks the user to confirm the modification of an existing contact in the address
book.</p>
        <p>This flexible plugin architecture enables the Semantic Clipboard to be
extended with regard to the number of ontology vocabularies the clipboard can
handle (reader plugin), the domains the clipboard is aware of (data container
plugin), and the target applications the information can be pasted to
(application plugin).
3.3</p>
      </sec>
      <sec id="sec-3-2">
        <title>Manifest Files</title>
        <p>At compile time of the Semantic Clipboard, the number of plugins and their
specific task is not known. To make the clipboard aware of the plugins that are
available, each plugin has to provide a manifest file in a specific directory. The
manifest of a plugin contains information about the plugin type, the associated
class file, and the specific task the plugin was developed for. When the clipboard
starts up, the Plugin Manager reads the manifest files and recognizes the plugins
that are available, their tasks, and the dependencies between the plugins.</p>
        <p>Beside the plugin name, the associated class file, and the plugin type (reader,
data container, or application plugin) the manifest contains information that is
specific to the plugin type. Since the Semantic Clipboard can evolve over time
each manifest also contains a version number. The plugin-specific information in
the manifest is listed below.</p>
        <p>– Reader plugin - The manifest also provides the name and the version
number of the data container(s) the extracted information is stored in.
– Data container plugin - No specific information is needed.
– Application plugin - The manifest contains name and version number of
the data container(s) the plugin is able to handle. Since the
applicationspecific code can depend on the operating system platform, the manifest
contains the name of the operating system the plugin was designed for.
Because the user of the Semantic Clipboard has to select the target application
the data is pasted to, the manifest also contains the human-readable name
and description of the target application, which is displayed to the user.
In this section we present the prototype implementation of the Semantic
Clipboard that is based on the plugin architecture as presented in the section above.
1 &lt; rdf:RDF
2 xmlns:semclip =" http: // seal . ifi . unizh . ch / semclip - rdf /"
3 xmlns:rdf =" http: // www . w3 . org /1999/02/22 - rdf - syntax - ns #" &gt;
4 &lt; rdf:Description
5 rdf:about =" http: // seal . ifi . unizh . ch / semclip - rdf / plugins # ICalAppPl
6 ugin " &gt;
7 &lt; semclip:classname &gt;
8 ch . unizh . ifi . seal . semclip . plugins . applications . ICalAppPlugin
9 &lt;/ semclip:classname &gt;
10 &lt; semclip:plugintype &gt; AppPlugin &lt;/ semclip:plugintype &gt;
11 &lt; semclip:appname &gt;iCal Calendar &lt;/ semclip:appname &gt;
12 &lt; semclip:appdesc &gt;The desktop calendar , redefined . &lt;/ semclip:appdesc &gt;
13 &lt; semclip:platform &gt;Mac OS X &lt;/ semclip:platform &gt;
14 &lt; semclip:containers rdf:nodeID =" A0 "/ &gt;
15 &lt;/ rdf:Description &gt;
16 &lt; rdf:Description rdf:nodeID =" A0 " &gt;
17 &lt; semclip:containername &gt; ICalContainer &lt;/ semclip:containername &gt;
18 &lt; semclip:containerversion &gt;1 &lt;/ semclip:containerversion &gt;
19 &lt;/ rdf:Description &gt;
20 &lt;/ rdf:RDF &gt;</p>
        <p>The prototype is implemented in Java and includes plugins for several ontology
vocabularies as well as desktop applications running on the Apple MacOS and
the MS Windows operating systems.</p>
        <p>Since the prototype of the Semantic Clipboard is not yet integrated in the
clipboard of the operating system, the standard keyboard shortcuts ctrl-c and
ctrl-v do not work. Instead we use a dialog window to select the RDF data
source and the target application. Figure 4 shows the dialog window to select a
local file or a document on the Web. The selected file is loaded by the Source
Data Processor that checks whether the file is an RDF/XML document or an
HTML Web page. If it is an HTML Web page the document is parsed and
checked if an RDF fragment is embedded or if the page links to an external
document with its RDF description.</p>
        <p>
          The current implementation of the Semantic Clipboard supports embedded
RDF in the HTML &lt;script&gt; element [
          <xref ref-type="bibr" rid="ref17">17</xref>
          ]. The used application/rdf+xml
media type (MIMEtype) is defined in the RFC3870 [
          <xref ref-type="bibr" rid="ref20">20</xref>
          ]. An example of the use
of the &lt;script&gt; element is shown below.
        </p>
        <p>&lt;head &gt;
&lt; title &gt;My Document &lt;/ title &gt;
&lt; script type =" application / rdf + xml " &gt;
&lt; rdf:RDF xmlns:rdf =" http: // www . w3 . org /1999/02/22 - rdf - syntax - ns #"</p>
        <p>xmlns:dc =" http: // purl . org / dc / elements /1.1/ " &gt;
&lt; rdf:Description rdf:about =" http: // www . w3 . org /"</p>
        <p>dc:title =" W3C Homepage "/ &gt;
&lt;/ rdf:RDF &gt;
&lt;/ script &gt;
&lt;body &gt;&lt;! -- Web page --&gt;&lt;/ body &gt;
&lt;/ head &gt;</p>
        <p>The HTML document is also searched for a reference to an external RDF
description using the &lt;link&gt; element, which is the recommended technique to
Using the first panel of the Wizard user interface, as shown in Figure 2.5, the user specifies the
RDF source, represented by a plain RDF file or an HTML file with embedded or linked RDF
content. The location of the source is specified either as a URL, or by choosing a local file using a
FileChooser dialog. If the current content of the system clipboard is a text representing a URL,
the user may paste this URL into the corresponding text field by clicking the Paste from Clipboard
button.</p>
        <p>
          After specifying the location of the RDF source, the user clicks the Next button, which causes the
Semantic Clipboard to retrieve the specified RDF source, iterate through the reader plugins to
process the data, and create data container objects from it, as described in Sections 2.4 an9d 2.5.3.
associate th2e.8H.2TMSLelWecetbinpgage anTdarigtsetRADpFpldicesactriiopntion [
          <xref ref-type="bibr" rid="ref19">19</xref>
          ]. An example of the
the
use of the &lt;link&gt; element is shown below.
        </p>
        <p>
          &lt;link relT=h"emseetcoan"dtWyipzea=rd" appapnlelidciastpilaoyns/arpdrfo+gxremsls"bahrr,sehfo=w"icnogntthaecptr.orgdrefs"s/o&gt;f retrieving and
processing the RDF source to the user. Below the progress bar, the list of application plugins that are able
Once thtoehaRndDleFthedcoucruremntesnoturcies draetatrisiedvisepdla,yed, iass Fpigaurrsee2d.6 suhsoiwnsg. TthheedeJsecrnipatioRn DofFa plugin,
it
as defined in its manifest file, see Section 2.5.1, is displayed for the selected plugin upon clicking
parser [
          <xref ref-type="bibr" rid="ref11">11</xref>
          ].thTeGheet PJleungian Dmesocdripetlioinsbtuhtteonn. handed over to the reader plugins. For the
prototype wInethiimsepxlaemmpelen, ttheedGroeoagdleeErasrtfho,rMsaecvAedradlreossnBtooolok,gaineds iiTnundeisffaeprpelnictatdioonmswaoinulsd. bIenpossible
the domaintaorgfectoanpptaliccattsiownsefoimrthpeledmataencotnetdainreedadinetrhsefRoDrFtshoeurvcCeaanrdda[r8e,]thaenrdefotrhe,eshfoowafn[i7n]the
plugin litsht.e domain of calendar events a reader for the iCal ontology [
          <xref ref-type="bibr" rid="ref9">9</xref>
          ]
ontologies,Ainfter the user has selected the application plugin to handle the data and has clicked on the Next
was implembuetntotne,dt.hIenSeamdadnitticioCnl,ipwboearidmipnslteamnteiantetsedtheacrheoasednerapfpolricaatiosnelfp-ldugeifinnaendd mletusstihce plugin
ontology. display its user interface.
        </p>
        <p>To store the information that is extracted from the RDF graph by the reader
plugins, we implemented data containers for contacts, events, geographical
coordinates, and music data.</p>
        <p>In the last step the user is presented a dialog window with the list of
applications the data can be pasted to. Since the manifest file of the application plugins
includes the data containers the plugin is able to handle, the list only includes
applications that are able to process the semantic context of the data in the
current clipboard session. For example, if the RDF graph does not include calendar
data, no event container is instantiated and, therefore, no calendar applications
are listed. Figure 5 shows a screenshot of the application selection dialog of the
Semantic Clipboard.</p>
        <p>The application plugin is then responsible for the communication with the
desktop application and for issuing the required actions. Depending on the
operating system and the desktop application, the plugin uses different techniques to
communicate with the desktop application. On MacOS the plugin can use Apple
2.9 Installation</p>
        <p>
          In the third Wizard panel, the specific user interface provided by the application plugin, as
seScript, whelercetaeds ionntheMpSrevWio uinsdstoepw, sistdhiseplpayluedg.inAsceaanchuapseplitchateioJnapvluagiCn OimMplemBernidtsgiets JspAec-ific user
COB [
          <xref ref-type="bibr" rid="ref10">10</xref>
          ] fionrtertfhacee,cthoemlamyouuntiacnadticoonnt.enAts
gofetnheisraWliztaercdhpnainqeulvea,riwesh,idcehpewndoinrkgsonwtihtehchmosoesntapplication plugin. Therefore, the screenshots shown in Figures 2.7 and 2.8 are only one possible example
operating soyfsstuecmhas,pliusgtino-swperciitfiec tuhseer dinatetrafatceo. a temporary file (e.g., an iCal file) and
call the appFilgicuareti2o.7nshwoiwthsthteheWifizlaerdnadmispelaaysingcothme musaernidn-telirnfaecepoafrtahemMetaecrA.dTdarebssleBo1okpraopp-lication
vides an ovpelurvgiine.wThoefpltuhgeinadpispplliacyastaiolisnt cponlutaginininsg wthee vimCaprdlecmomepnotneedntfsoerxtrtahcetedpfrrootmotthyepseource, in
of the Semtahnisticcase a vCard about the person John Doe. Clicking on the Preview button displays a message
box shoCwlinipgbthoeasrudmmary of the contents of the selected vCard component, as Figure 2.8 shows.
        </p>
        <p>as well as the data containers they can handle.</p>
        <p>Clicking on the Paste Data button results in the application plugin pasting the data into its
target application. In the case of this example, the application plugin pastes the selected vCard
Data data into the Mac TAaddrgreesstBAoopkpalpipclaictaitoionn, resulting in the cArecattiioonnofpaenrefwoardmdreedss entry.
Container After thMedaatcaOisSsuccessfully paMstedSinWtoitnhedtoawrgset application, the user may select and paste
other data into the same application. He may also click on the Back button to return to the
secContactsondMoarcfiOrsStWAidzadrrdepssanBelotookchWooisnedaonwotsheArdtadrrgeestsapBpoliockatiCononortaspcteciisfyaadddieffderent RDF source.</p>
        <p>Clicking on the Finish button closes theOWuiztalordokuser interfacteo, wthheicahdmdaryesbse bdoisopklayed again by
Events selecting the SihCoawlWizard command fromO uthteloFoilke menu bar.New event is added
Depending on the target application, some further user interaction might be
necessary before the pasted information can be integrated in the semantic
context of the application. When pasting contact data to a address book application,
for example, the application requests the user to confirm the modification of an
existing contact entry. Therefore, the application plugins have access to the Java
Swing JPanel of the user interface of the Semantic Clipboard and can use it for
the application-specific interaction.</p>
      </sec>
    </sec>
    <sec id="sec-4">
      <title>Related Work</title>
      <p>
        To our knowledge, the Semantic Clipboard we presented in this paper is the first
implementation of a clipboard that is able to exchange semantically enriched
data between desktop applications. In [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ] Tim Berners-Lee first brought up the
idea of a Semantic Clipboard. He proposed an architecture that uses
conversation rules to convert RDF data from the ontology used by the application that
provides the data to the ontology understood by the target application. In our
implementation this conversation is implicitly done when a reader writes the
extracted data to a data container and when an application plugin accesses this
data.
      </p>
      <p>
        The semiBlog [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ] allows users to drag and drop data from desktop
applications such as the Mac Address Book to the semiBlog editor. Wrappers take the
data in the native data format of the application, convert it to RDF, and use it
as semantic annotation of the blog entry.
      </p>
      <p>
        The Live Clipboard [
        <xref ref-type="bibr" rid="ref16">16</xref>
        ] is a DHTML application that provides copy and
paste functionality for data associated with a Web page. The data can be
transfered within Web pages in XML format which does not address the data
semantics. The Web Clipboard [
        <xref ref-type="bibr" rid="ref23">23</xref>
        ] is a semantic enabled extension of the Live
Clipboard that is able to copy and paste RDF data. Instead of having to parse
a complete resource description with each copy and paste operation, the Web
Clipboard uses a small JSON snippet [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ] which only contains an identifier of
the resource and information where full information can be obtained from.
      </p>
      <p>
        DBin [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ] is general purpose Semantic Web application that enables users to
create semantically enriched discussion groups where users can annotate any
subject of interest. It provides a Semantic Clipboard to transfer data within
DBin features such as queries, visualizers and exporters.
      </p>
      <p>
        In addition, several approaches exist to benefit from Semantic Web
technologies on the user’s desktop [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ]. In gnowsis [
        <xref ref-type="bibr" rid="ref21">21</xref>
        ] information from different
applications is extracted, transferred from its native format into RDF meta-data,
and stored in a central database. In this database information from different
applications is interlinked which enables new views on the information that was
scattered over several applications. In Fenfire [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ], also meta-data from
different sources is stored in a single RDF graph. The Haystack project [
        <xref ref-type="bibr" rid="ref18">18</xref>
        ] aims
to provide users with a unified framework for managing their information, e.g.,
documents, emails, etc. through a single interface. Such a Semantic Desktop
environment provides many RDF data source and target application the Semantic
Clipboard can cooperate with.
6
      </p>
    </sec>
    <sec id="sec-5">
      <title>Conclusion and Future Work</title>
      <p>In this paper we introduced the concept of the Semantic Clipboard that enables
data to be exchanged between desktop applications, without losing its semantics.
We argued that two main requirements for such a clipboard are the possibility
to add support for new ontology vocabularies and new target applications. To
meet these requirements we have developed a flexible plugin architecture that
processes the RDF data in three steps. The ontology-specific reader plugin
extracts the information from the RDF graph and stores it in domain-specific data
container plugins. After the user selected the target application, the application
plugin is responsible for the integration of the data from the containers into the
semantic context of the desktop application.</p>
      <p>
        The presented prototype implementation includes plugins for several ontology
vocabularies, data containers, and desktop applications for the Apple MacOS
and MS Windows operating systems. The prototype is able to process plain
RDF/XML data and HTML Web pages with an associated RDF description.
For the future we plan to add data that is encoded in RDFa format [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ] as
possible data source. RDFa is the W3C working draft for integrating RDF into
XHMTL documents.
      </p>
      <p>The prototype implementation of the Semantic Clipboard uses a different
communication paradigm than the one that is found in current operating system
clipboards. In an operating system clipboard the data source pushes the data
into the temporal storage of the clipboard. The application, the user wants to
paste the data to, pulls the data from this storage. The Semantic Clipboard,
however, pulls the data from a file or the network and pushes it to the target
application. We made this design decision not to establish this communication
paradigm, but to be able to provide a proof of concept implementation with
reasonable means. This way we did not have to modify the source applications
to push RDF data to the clipboard and the target application to pull data
from the clipboard. Regardless of the communication paradigm, the prototype
implementation demonstrates the idea of pasting semantically enriched data
between desktop applications. Nevertheless, a future version of the Semantic
Clipboard should use the standard communication paradigm and be integrated
in the operating system.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <given-names>B.</given-names>
            <surname>Adida</surname>
          </string-name>
          and M. B. eds.
          <source>RDFa Primer 1</source>
          .
          <fpage>0</fpage>
          -
          <string-name>
            <surname>Embedding</surname>
            <given-names>RDF</given-names>
          </string-name>
          <source>in XHTML, 16 May</source>
          <year>2006</year>
          . http://www.w3.org/TR/xhtml-rdfa-primer/.
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <given-names>T.</given-names>
            <surname>Berners-Lee. Semantic Clipboard</surname>
          </string-name>
          ,
          <year>January 2004</year>
          . http://www.w3.org/ DesignIssues/SemanticClipboard.
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <given-names>DBin</given-names>
            <surname>Porject</surname>
          </string-name>
          <string-name>
            <surname>Homepage</surname>
          </string-name>
          ,
          <source>Last visited October</source>
          <year>2006</year>
          . http://dbin.org.
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <given-names>S.</given-names>
            <surname>Decker</surname>
          </string-name>
          and
          <string-name>
            <given-names>M.</given-names>
            <surname>Frank</surname>
          </string-name>
          .
          <article-title>The networked semantic desktop</article-title>
          .
          <source>In Workshop on Application Design, Development and Implementation Issues in the Semantic Web at the 13th International World Wide Web Conference</source>
          , New York, USA, May
          <year>2004</year>
          . CEUR Workshop Proceedings. http://CEUR-WS.org/Vol-
          <volume>105</volume>
          /.
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5. J. H. ed.
          <source>OWL Web Ontology Language Use Cases and Requirements. W3C Recommendation</source>
          , 10
          <year>February 2004</year>
          . http://www.w3.org/TR/webont-req/.
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          <article-title>6. The fenfire project homepage</article-title>
          ,
          <source>Last visited February</source>
          <year>2005</year>
          . http://fenfire.org/.
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          <article-title>7. The friend of a friend (foaf) project homepage</article-title>
          ,
          <source>Last visited February</source>
          <year>2005</year>
          . http: //www.foaf-project.
          <source>org/.</source>
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <given-names>R.</given-names>
            <surname>Iannella</surname>
          </string-name>
          .
          <source>Representing vCard objects in RDF/XML. W3C Note 22 February</source>
          <year>2001</year>
          ,
          <year>2001</year>
          . http://www.w3.org/TR/vcard-rdf.
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9. iCalendar OWL ontology definition,
          <source>April</source>
          <volume>7</volume>
          2004. http://www.w3.org/
          <year>2002</year>
          /12/ cal/ical.
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10. Jacob - java com bridge,
          <source>Last visited August</source>
          <year>2006</year>
          . http://sourceforge.net/ projects/jacob-project/.
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          11.
          <article-title>Jena - a semantic web framework for java</article-title>
          ,
          <source>Last visited August</source>
          <year>2006</year>
          . http://jena. sourceforge.net/.
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          12.
          <article-title>Introducing json (javascript object notation)</article-title>
          ,
          <source>Last visited August</source>
          <year>2006</year>
          . http: //www.json.org/.
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          13. G. Klyne and
          <string-name>
            <given-names>J. J. C. eds. Resource</given-names>
            <surname>Description</surname>
          </string-name>
          <article-title>Framework (RDF): Concepts and Abstract Syntax</article-title>
          .
          <source>W3C Recommendation</source>
          , 10
          <year>February 2004</year>
          . http://www.w3.org/ TR/2004/REC-rdf-schema-
          <volume>20040210</volume>
          /.
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          14.
          <string-name>
            <given-names>K.</given-names>
            <surname>Moller</surname>
          </string-name>
          and
          <string-name>
            <given-names>S.</given-names>
            <surname>Decker</surname>
          </string-name>
          .
          <article-title>Harvesting Desktop Data for Semantic Blogging</article-title>
          .
          <source>In 1st Workshop on the Semantic Desktop at the International Semantic Web Conference</source>
          , pages
          <fpage>79</fpage>
          -
          <lpage>91</lpage>
          , Galway, Ireland,
          <year>November 2006</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          15.
          <string-name>
            <given-names>M.</given-names>
            <surname>Morger</surname>
          </string-name>
          . Semantic Clipboard.
          <source>Master's thesis</source>
          , Department of Informatics, University of Zurich,
          <year>2006</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          16.
          <string-name>
            <given-names>R.</given-names>
            <surname>Ozzie</surname>
          </string-name>
          .
          <article-title>Live clipboard technical introduction</article-title>
          ,
          <source>Last visited August</source>
          <year>2006</year>
          . http://spaces.live.com/editorial/rayozzie/demo/liveclip/ liveclipsample/techPreview.html.
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          17.
          <string-name>
            <given-names>S. B.</given-names>
            <surname>Palmer</surname>
          </string-name>
          . RDF in HTML: Approaches,
          <year>June 2002</year>
          . http://infomesh.net/ 2002/rdfinhtml/index.html.
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          18.
          <string-name>
            <given-names>D.</given-names>
            <surname>Quan</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Huynh</surname>
          </string-name>
          , and
          <string-name>
            <given-names>D.</given-names>
            <surname>Karger</surname>
          </string-name>
          .
          <article-title>Haystack: A Platform for Authoring End User Semantic Web Applications</article-title>
          . In International Semantic Web Conference, pages
          <fpage>738</fpage>
          -
          <lpage>753</lpage>
          , Florida, USA,
          <year>October 2003</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          19.
          <article-title>W3C: RDF issue tracking: Issue faq-html-compliance: The suggested way of including RDF meta data in HTML is not compliant with HTML 4.01 or XHTML</article-title>
          ,
          <year>January 2004</year>
          . http://www.w3.org/
          <year>2000</year>
          /03/rdf-tracking/
          <article-title>#faq-html-compliance.</article-title>
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          20. RFC 3870:
          <article-title>Application/rdf+xml media type registration</article-title>
          .
          <source>IETF RFC</source>
          ,
          <year>September 2004</year>
          . http://www.ietf.org/rfc/rfc3870.txt.
        </mixed-citation>
      </ref>
      <ref id="ref21">
        <mixed-citation>
          21.
          <string-name>
            <given-names>L.</given-names>
            <surname>Sauermann</surname>
          </string-name>
          and
          <string-name>
            <given-names>S.</given-names>
            <surname>Schwarz</surname>
          </string-name>
          . Gnowsis Adapter Framework:
          <article-title>Treating Structured Data Sources as Virtual RDF Graphs</article-title>
          . In International Semantic Web Conference, pages
          <fpage>1016</fpage>
          -
          <lpage>1028</lpage>
          , Galway, Ireland,
          <year>November 2005</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref22">
        <mixed-citation>
          22.
          <string-name>
            <surname>World Wide Web Consortium (W3C) Semantic</surname>
          </string-name>
          <article-title>Web activity homepage</article-title>
          . http: //w3c.org/sw.
        </mixed-citation>
      </ref>
      <ref id="ref23">
        <mixed-citation>
          23. Web clipboard demo,
          <source>Last visited August</source>
          <year>2006</year>
          . http://www.sparqlets.org/ clipboard/home.
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>