<!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>Tabulator Redux: Browsing and Writing Linked Data</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>T Berners-Lee</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>J. Hollenbach</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Kanghao Lu</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>J. Presbrey</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>E. Prud'ommeaux</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>mc schraefel</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>MIT CSAIL</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Cambridge</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Electronics and Computer Science, University of Southampton</institution>
          ,
          <country country="UK">UK</country>
        </aff>
      </contrib-group>
      <pub-date>
        <year>2008</year>
      </pub-date>
      <abstract>
        <p />
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>A first category of Semantic Web browsers was designed to
present a given dataset (an RDF graph) for perusal in various
forms. These include mSpace, Exhibit, and to a certain extent
Haystack. A second category tackled mechanisms and display
issues around presenting linked data gathered on the fly. These
include Tabulator, Oink, Disco, Open Link Software's Data
Browser, and Object Browser. The challenge of once that data is
gathered, how might it be edited, extended and annotated has so
far been left largely unaddressed. This is not surprising: there are a
number of steep challenges for determining how to support
editing information in the open web of linked data. These include
the representation of both the web of documents and the web of
things, and the relationships between them; ensuring the user is
aware of and has control over the social context such as licensing
and privacy of data being entered, and, on a web in which anyone
can say anything about anything, helping the user intuitively
select the things which they actually wish to see in a given
situation. There is also the view update problem: the difficulty of
reflecting user edits back through functions used to map web data
to a screen presentation. In the latest version of the Tabulator
project, described in this paper we have focused on providing the
write side of the readable/writable web. Our approach has been to
allow modification and addition of information naturally within
the browsing interface, and to relay changes to the server triple by
triple for least possible brittleness (there is no explicit 'save'
operation). Challenges that remain include the propagation of
changes by collaborators back to the interface to create a shared
editing system. To support writing across (semantic) Web
resources, our work has contributed several technologies,
including a HTTP/SPARQL/Update-based protocol between an
editor (or other system) and incrementally editable resources
stored in an open source, world-writable 'data wiki'. This begins
enabling the writable Semantic Web.</p>
    </sec>
    <sec id="sec-2">
      <title>Classification</title>
    </sec>
    <sec id="sec-3">
      <title>General Terms</title>
      <sec id="sec-3-1">
        <title>H.3.5 Online Information Services: Web Based Services Documentation, Performance, Design, Security, Human Factors.</title>
      </sec>
      <sec id="sec-3-2">
        <title>Tabulator, semantic web, read/write, provenance.</title>
        <sec id="sec-3-2-1">
          <title>1. INTRODUCTION</title>
          <p>
            While the Semantic Web has been developed much as a data
integration technology for the last few years, it has lacked an
essential element which the hypertext WWW had from the start:
the immediate gratification for information providers of seeing the
results of their efforts on a screen. The viral spread of the HTML
web was largely powered by the process of seeing a web page,
viewing the source, copying it with small changes, and then
having one's own page to show off to others immediately. For the
first few years, however, Semantic Web development focused on
back-end technologies. Many large sources of Semantic Web data
were largely consumed off-line, and not generally available to
others. Worse still, off-line processing reduced the social pressure
to use dereferencable URLs for Semantic Web identifiers, and to
back them with useful, machine and human-redable web pages.
Recently, collections of offline or zipped RDF data have
increasingly been replaced by Linked Data [
            <xref ref-type="bibr" rid="ref2">3</xref>
            ]. Linked Data is
data using RDF technology that (i) uses HTTP URIs to denote
things; (ii) provides useful information about a thing at that thing's
URI; and (iii) includes in that information other Linked Data
URIs.
          </p>
          <p>
            The Tabulator [
            <xref ref-type="bibr" rid="ref4">5</xref>
            ] was originally written as a linked data browser
(Figure 1), designed to navigate the web of links, without any
domain-specific programing by the user or the information
provider. It has the inherent knowledge of a few common global
concepts, such as time and geographical location, to give it the
power of typical Web 2.0 applications such as on-the-fly calendar
and mapping mashups. Using the Tabulator, anyone publishing
e.g. a personal FOAF [
            <xref ref-type="bibr" rid="ref7">8</xref>
            ] document can see their own information
on the screen and follow links from it to the FOAF descriptions of
their friends, not to mention their publications and projects. They
become part of an open social network. Since the inception of the
Tabulator project, a number of linked data projects [
            <xref ref-type="bibr" rid="ref16">18</xref>
            ] have
emerged, including several similar data browsers: Oink [
            <xref ref-type="bibr" rid="ref15">17</xref>
            ],
Open Link Software's Data Browser [20], and Object Browser
[19].
          </p>
          <p>While these developments have been satisfying, the authors were
concerned that a major potential of the system was
unimplemented: the web of things (i.e., the Semantic Web), like
much of the web of documents, was a read-only web from the
point of view of the user. Given the goal of making the web in
general a read-write space, surely it is important that a linked data
application allow editing as well as browsing. Adding write
functionality, however, introduced a number of technical and user
interaction design challenges.</p>
          <p>One challenge, faced by the read-only Tabulator and exacerbated
by the read-write requirement, is that the semantic web provide an
extra level of abstraction -- the graph of connected things
-above the web of documents with which the web browser user is
familiar. We refer to those features that complicate things by
introducing dependencies or connections between otherwise clean
architectural layers as "Level-breakers". We explain why they are
needed to allow operation in both web spaces where necessary,
for social reasons and for helpful error reports. Another challenge
is to enable the user to express themselves with relationships and
fields selected from a portion of a potentially unbounded web.
Also, there is the View Update problem making it less than
straightforward to understand what affect and on which RDF
document is implied by a given user change to the display.
We will present and motivate these choices, and describe the
design and the underlying network protocol and software
architecture. We will describe a 'data wiki' space that allows
remote editing, and the technology used to support it on the server
side. We will then discuss plans for future work.</p>
        </sec>
        <sec id="sec-3-2-2">
          <title>2. Writing as (Mainly) Editing</title>
          <p>The Semantic Web is two structures, at different levels. There is a
space, we call here the 'web', of directed, untyped links between
documents, and there is a space we call here the 'graph', of
directed, typed of relationships between the things described by
the documents. The goal of the project is that the user of the
interface should work effectively with co-workers by exploring,
analyzing, and collaboratively co-authoring the shared graph of
knowledge. We do this in a domain-independent way so that the
tool can be used on new fields without programming.</p>
        </sec>
        <sec id="sec-3-2-3">
          <title>2.1 The Web of documents vs Graph of things</title>
          <p>
            In the Semantic Web, primarily, users read aggregated
information in the graph, ignoring the fact that the data about
them may have been assimilated from many sources, possibly
with inference. The original tabulator experience [
            <xref ref-type="bibr" rid="ref4">5</xref>
            ] demonstrated
that readers must also be able to determine the source documents,
and so understand the provenance of the data (we use the term
document, though the source may be the sort of thing more often
referred to as a store, and may be accessed using SPARQL rather
than a simple HTTP dereferencing; the same social aspects of the
information apply in either case). The reader can then ask
questions such as: Who wrote this? Who is maintaining it? Can I
trust it? May I re-use it? and related social questions. These
attributes follow from the source of the data. Just as, to trust a
document on the web, one peeks at the domain name of the web
site, so to trust a statement in the graph, one peeks at the URI of
(and metadata about) the document.
          </p>
          <p>This peeking between levels breaks the consistency of the user
interface that would have been possible at a single homogeneous
level. This level-breaking is also necessary to make errors
understandable. Just as, when a web error occurs in a web
browser, the user checks the URI and may check the network
connectivity to the host, so the reader at the graph level must be
able to understand what document or network operation produced
an error. A strength of web browsers when compared with many
distributed systems built of less familiar components, is that they
allow the user to understand the nature of network errors. We
therefore assumed that an editor of the graph must allow users to
understand the nature of errors at the document level and below.
One must be able to distinguish, for example, between data which
is missing in a file, files which have syntax errors, and network
errors which prevent us reading them at all.</p>
          <p>The tabulator handles these breaks by representing the document
layer by coloured balls near each concept as shown on left side of
images in Figure 1. The color of the ball indicates the state
(unfetched, fetching, ok, error) of documents holding information
about the concept. Clicking or hovering over the balls provides
more information, and a cogwheel 'under the hood' button
provides access to details of HTTP transactions, parsing, etc in
case the user needs to explore further. Likewise, a list of all
sources is maintained in another window, and clicking on any fact
(data field or table cell) causes the source of that fact to be
highlighted.</p>
        </sec>
        <sec id="sec-3-2-4">
          <title>2.2The Writing/Editing Process</title>
          <p>
            When considering editing or writing RDF data, most people will
have social concerns beyond and complimentary to those of
reading data. These concerns include who will make sure this data
is stored persistently; who will be able to read it; who will they be
allowed to re-use it, and if so under what terms. For example,
when entering certain information, one must be aware of whether
it will be part of a personal address book or a public resource. A
challenge for an editing application is to ensure that these
questions are answerable, without themselves distracting from the
main purpose of editing existing or creating new data.
Though the graph a person may wish to edit by changing existing
or adding new data is effectively an aggregation of many graphs
from different sources, a simple design of a semantic web editor
would be to allow the user to edit one graph at a time. This would
obviate the need for connections between graphs and documents.
Several single graph editors exist including RDFAuthor [
            <xref ref-type="bibr" rid="ref21">25</xref>
            ] and
IsaViz [
            <xref ref-type="bibr" rid="ref17">21</xref>
            ]. We considered two ways to apply this working
model. One was the model in which a given single document is
selected for editing, and changes are only allowed to be made to
that graph of that document. The interface becomes a single
document editor, effectively like an HTML document editor such
as Amaya in normal editing mode [2]. Another way is to allow the
entire graph to be browsed in a read only mode, but annotations
made on it and stored on a specific annotation document. This is
like the Amaya browser operating in annotation mode [
            <xref ref-type="bibr" rid="ref14">16</xref>
            ]. Both
modes are evidently useful, and will be considered for future
work, but did not, we feel, meet the goal of allowing the user to
operate at the abstract level of the giant global graph.
          </p>
          <p>Neither single-graph solution allows the granularity necessary for
the social questions of understanding the provenance and
controlling the destiny of data; nor do they scale across a web
where anyone must be able to buy, rent, borrow or be given
storage space under all kinds of arrangements in an open market.
We decided to allow users to edit data, even if derived from
multiple sources, as simply as if it were a single graph, making
changes to different documents throughout the web.</p>
          <p>The interface to support this approach must therefore determine
where in the web to store a user's addition to the graph. The
algorithm we chose for deciding where to store a triple is as
follows:
•
•
•</p>
          <p>When a triple is modified, the revised data is stored in
place of the old.</p>
          <p>When a triple is added, it is stored in the same place as
the triple immediately above it in the property/value list.
Successive additions with the same subject will be
consistently written to the same place.</p>
          <p>If a statement is added to an item which has no other
statements, if it has a URI like x#y where x is the URI
of an editable document, then the triple is added to that
document.</p>
          <p>
            In general when creating a new project from scratch, a user must
be able to define a new data file and its social properties. Where a
new data file is started, it must have well-defined properties. In
many Web 2.0 sites, such as Facebook or Google Groups, the
policies are set by that site. In general, our approach is that users
should be both aware of the policy, but also able to create and
select new ones. We cannot yet create policies in Tabulator, but
people can select data sources that use particular policies such as
creative commons [
            <xref ref-type="bibr" rid="ref5">6</xref>
            ] policies.
          </p>
          <p>In this iteration of Semantic Web editing in tabulator, we have
avoided the complexities of access control, and out of interest in
the wiki model of open collaboration, we chose to open an
experimental area of URI space as a form of data wiki. This is a
space of data documents that anyone may edit as linked data using
the Tabulator or compatible client. As a test site for Tabulator, for
example, within the data wiki URI space, any URI starting with
http://dig.csail.mit.edu/2007/wiki/ identifies a document that the
server considers existent, though possibly empty. A fetch to a
document which has not been previously stored returns an empty
RDF document, flagged editable by an HTTP header. Any data
added to such a document causes the actual file to be created to
hold the data. Looking up, for example,
http://dig.csail.mit.edu/2007/wiki/foo/fruit#A if
http://dig.csail.mit.edu/2007/wiki/foo/fruit does not exist, will
return no error, and an item 'Apple' with no data. Adding
information about Apple, for instance, that it is a Class, would
cause the directory foo and the file fruit to be created, and a triple
&lt;http://dig.csail.mit.edu/2007/wiki/foo/frui
t#apple&gt; rdf:type rdfs:Class. stored in it.</p>
        </sec>
        <sec id="sec-3-2-5">
          <title>3.TABULATOR INTERFACES</title>
          <p>
            Reviewing the basic interfaces provided by the tabulator for
editing, recall that, as described in [
            <xref ref-type="bibr" rid="ref4">5</xref>
            ] it is designed to support two
interconnected user modes of operation: exploration, to see what
information is available, and querying to gather similar subgraph
patterns into tables similar to a spreadsheet table presentation for
analysis. Exploration is done in a mode in which a given thing is
presented using a table of predicate/object pairs. In the case that
the object is something about which more is known, the user may
recursively open a nested view of its property objects in turn. We
refer to this nested hierarchical form as outline mode, by analogy
with outline writing systems. This is strictly a tree view, but like
many trees views, it is used for what is in fact a graph, and the
same node can in principle be found more than once. The icons
chosen mimic the (Mac OS X) nested directory interface,
analogous to tree-like navigation aids in web sites which actually
have many cross-links, and hierarchical file systems which have
soft links.
          </p>
          <p>The user, then, explores sources by opening up related things,
occasionally refocusing by restarting a new tree at any given
point. The jump to analysis mode is made by selecting a number
of fields in outline mode, and pressing a "Find All" button. The
linked data graph is then searched for subgraphs matching the
given fields. The results form a table, and, if geospatial or time
coordinates are include in the columns, a map or a timeline
respectively. The jump back is made by selecting any item in the
analysis display and opening as a new outline mode display.
Note that whether exploring under user control in outline mode or
performing a graph-matching query, the Tabulator store looks up
the URIs of any objects which are opened in outline view, or
matched as part of a subgraph matching algorithm. It also looks
up any property and class, recursively, as ontologies help with
inference and user interface. All the data retrieved in this process
if kept in the local store.</p>
          <p>The description of outline mode above is a slight simplification.
In fact, at each level, various styles of predicate/object table may
be available. These are called panes. If more than one is available
then they are stacked vertically and each may be turned on an off
by icon-decorated buttons. If only one is available, then no icons
are shown (see Figure 2).</p>
          <p>
            A class has a special pane to list instances. A document may have
panes for inspecting the network transactions involved in fetching
it, its human-readable content, or its RDF content reserialized.
Other user interfaces for exploration used elsewhere include a
circles-and-arrows graph (Isavix, Foafnaut, Object browser, etc),
which tend to be insufficiently compact on the screen for practical
quantities of data [
            <xref ref-type="bibr" rid="ref12">14</xref>
            ] and property linked predicate/object tables
without outlining [
            <xref ref-type="bibr" rid="ref15">17</xref>
            ], which tabulator supports as a special case.
The former could be used for selection of a subgraph query,
whereas the latter could not as only the arcs from a given node are
available on the screen at one time.
          </p>
          <p>
            Other modes of analyzing similar datasets are many and varied,
and include the faceted browser of mSpace [
            <xref ref-type="bibr" rid="ref20">24</xref>
            ], Longwell [
            <xref ref-type="bibr" rid="ref11">13</xref>
            ],
Piggybank [10], Exhibit [
            <xref ref-type="bibr" rid="ref8">9</xref>
            ] slideshows, photo contact sheets, and
multidimensional visualizations [
            <xref ref-type="bibr" rid="ref22">26</xref>
            ]. These styles could all be
used just as well as the table, map and timeline modes of
tabulator, could link back just as easily to other start new
explorations, and indeed could be added as alternative views.
          </p>
        </sec>
        <sec id="sec-3-2-6">
          <title>3.1Types of Editing</title>
          <p>Three forms of editing are possible in outline mode: the
modification of a object, the addition of a new object with an
existing predicate, and the addition of a new predicate/object pair
for an existing subject. Consider first the modification of an
object cell that contains a literal value (non-string datatypes are
not currently supported). Cell modification is done by clicking
once, or pressing Return, when a cell is highlighted. The field
becomes editable (Figure 3). Pressing return (etc) again causes the
edit to be committed to the appropriate destination.
3.1.1Object Selection
If the object of the predicate/object pair in question is not a literal
value but something identified by a URI, then it may be selected
by name or by drag-and-drop. Following the goal of primarily
enabling the user to stay at the knowledge level rather than the
document level, URIs are not be shown nor does the user need to
type them in. Whenever possible, the tabulator uses an
appropriate name for something instead of its URI (specifically,
any subproperty of rdfs:label is used, with preference for dc:title
or foaf:name). To refer to something, the user can simply type in
its name. An auto completion dialog box allows selection of the
appropriate object without having to type the entire name. An
alternative is to drag an object from any object the tabulator view,
or the URI icon from any browser navigation bar or tabbed
browsing tab. Note that in both these cases, the system must have
already have seen the thing in question in some form. Various
hacks allowed the expression of a URI explicitly if necessary, but
in general the modus operandi is to first get both things visible
somewhere before recording a relationship between them.</p>
          <p>Figure 3 Addition of another developer. Selection of the
predicate cell causes the plus button to appear.</p>
          <p>A special item in the dialog box is "New...". This makes up a URI
in the target document local namespace, one which the document
does not use already. This creates a new nested property/object
list, and the user is free to add more properties. Once a suitable
name has been added to its properties, the generated URI is no
longer visible. This creation of new nodes in a tree does mimic
outline writing aids, as the user can chose to offload knowledge
into the graph in any order, as it comes to mind Compare this to a
"Wizard" system of cascading forms, for example, which forces a
certain sequence.</p>
          <p>An attempt is made to restrict the items in the dialog box to be
those appropriate for a given situation. As the tabulator currently
only has limited OWL inference, without disjoint classes, it is not
easy to establish that, say, a given document is not a candidate as
a friend of a person. In fact, we note, there are currently few
ontologies such as FOAF, which declare classes as being disjoint
with other classes in other ontologies.</p>
          <p>Consider the addition of a new value to the predicate/object table,
using the same predicate. When this is possible, when the source
of the existing property/object statement is editable by the user, a
blue plus sign shows in the predicate cell whenever it is selected.
Clicking on this icon adds a new predicate/object pair, with the
same predicate and an object selected by the user as above.
3.1.2Predicate Selection
Now consider the need to add a new fact to the property/object
table, with a predicate not currently in the table. For this purpose,
if there is an appropriate editable source, a blue plus is displayed
on the left at the end of the whole table. Pressing this causes a
new pair to be added, prompting with an auto-completion box for
the predicate, and then selecting the object as above.</p>
          <p>In object-oriented or frame-based systems, of course, there is a
finite set of slots for any type of (software) object. This is not so
in the Semantic Web, where RDFS and sometimes OWL
constraints exist, but "Anyone can say anything about anything"
remains effectively true at the user interface. The tabulator can
prompt from a list of all the predicates it has encountered in the
session, either in instance data or in ontologies. The user must
explore enough to expose the tabulator session to see the
necessary predicates before using them to write. Often there is a
large set of valid predicates. Further, some consider it bad form to
use RDFS' domain and range constraints, preferring to OWL
restrictions that for example the friend of a person should be a
person, but not constraining a non-person from having a friend.
This may lead to greater re-use of ontologies, but it also makes it
more difficult to unclutter the interface. In future work, we would
like to add inference to include awareness of disjoint classes.
An alternative design choice that we considered and, while
unimplemented, is still appealing, is to select a similar object
nearby in the graph and provide a form which prompts explicitly
for those properties connected to the those objects. While the
usermust always be able to escape into use of new predicates,
much data is repetitions, so it is useful to optmize for its entry. In
an address book, for example, one typically uses a small set of all
the very many properties one could in principle record about a
person.
3.1.3Editing in Table Mode
Recall that the table is formed by performing a query for a
subgraph pattern across the graph. Row insertion involves
constructing a new subgraph which will match the query template.
The destination store for each arc is copied from that of the arc for
(arbitrarily) the last row in the table. Therefore, if a table is made
from a join of several sources, they can all be updated by adding a
new row. The operation of cell value editing, as in outline mode,
involves removing a statement and inserting a replacement in the
same document.</p>
        </sec>
        <sec id="sec-3-2-7">
          <title>4.NETWORK PROTOCOL FOR WRITING</title>
          <p>
            Driving the design of the network update protocol is the desire to
create a web of editable resources, and to allow the user to
naturally interact with the data. The user should not have to set up
preferences such as 'up-load addresses' or 'publish location', which
are very typical of web hosting services. A subgoal therefore was
to make the system self-configuring. To this end, we send
updates to the URI of the destination document itself. We use two
protocols, the standard WevDav [
            <xref ref-type="bibr" rid="ref24">28</xref>
            ] (not completely
implemented at time of writing) and a version of
SPARQL/Update, the Semantic Web query language, extended to
allow update. 1
An HTTP server may advertise that a given document is editable
by sending an HTTP header when the document was fetched. We
noticed that servers supporting WebDAV authoring often send a
non-standard header "MS-Author-Via: WebDAV". Feeling that
one big pile was, as it were, better than two little ones, we adapted
this to send "MS-Author-Via: SPARQL" to indicate that the
server supports incremental update by SPARQL.
          </p>
          <p>
            Other systems, such as the HTTP PUT method (like Amaya [2])
or the WebDAV protocol [
            <xref ref-type="bibr" rid="ref24">28</xref>
            ] also communicate using the URI
from which the document was read. With these systems, though, a
typical editing session involves more or less off-line editing,
followed by an explicit save user action. This can result in lost
data if the client system crashes or is closed down before the edits
can be written back. While offline/sync systems such as IMAP
clearly have their advantages when disconnected, we decided to
1 The
          </p>
          <p>update extension proposed in SPARUL and
SPARQL/Update [19] is not standardized, but we we derive
comfort from the fact that we successfully used the intersection
of the two current proposals.
implement a real-time online system with small change
granularity. A user immersed in the community knowledge would
ideally be allowed to directly update all the collaborator's screens;
immediate update is a step towards this goal.</p>
          <p>Tabulator's collaborative editing protocol is based on a server-side
document store potentially shared by many clients following a
strategy of optimistic concurrency. When any edited field loses
user focus or is changed and deemed savable, Tabulator uses the
URI of the 'appropriate destination' document to be edited as
described above. It assembles an update message to send to the
document's server. At this point, the modified field is grayed out,
and locked for user input, so no conflicting changes can be made
before the update process completes. This graying out also serves
as feedback to the user that their changes are being saved.
Tabulator submits these statements in the body of a POST request
to the update URI. When an acknowledgment is received from the
server (a "200 OK" HTTP response) confirming that the change
has been made to the document, the edited field will unlock.
If on the other hand, an error occurs, the user is alerted with a
dialog box requiring acknowledgment, and the change in the user
interface is backed out. In a collaborative environment the error
could be a user-level concurrency error that incompatible changes
have been made by another client to the same document.
However, network errors, server unavailability, and so on, may
also have to be explained to the user. The update message, and
ungraying of the field is performed asynchronously so that the user
is free to perform more editing, possibly with several
modifications pending server acknowledgment.</p>
          <p>The protocol builds on HTTP and SPARQL with as few arbitrary
design decisions as possible. It is hoped that the resulting protocol
is largely uncontentious and will gain wide adoption. The
convention of treating each document on a web server as a
SPARQL endpoint is not typical ; most SPARQL endpoint access
one large store, possibly containing many individual graphs from
different files. Our design is, however, it is quite consistent with
the SPARQL semantics. The extensions used for update,
INSERT and DELETE, take a syntactic form based on the
existing CONSTRUCT production, and so are not particularly
novel. This update protocol design also inherits useful
functionalities of HTTP implemented by the client browser.
Document permissions can be implemented and access can be
limited as specifically as for any other URI on the web, using the
standard HTTP authentication mechanisms.</p>
          <p>This is not perfect: it would be nice if they HTTP response
distinguished between an empty document and a non-existent one,
but we would have to have a way of saying that the 'Not Found'
error was merely advisory during a write operation. It is not
obvious how many hoops the user should be made to jump though
to create a new file, whether just to reference it, or confirm their
intentions, or specifically ask to create a new file with a given
URI. HTTP PUT could of course be used for creating a new file,
though our server does not currently support it.</p>
          <p>This approach should be extended to a collaborative system: when
concurrent editing results in a clash, the response form the server
(or the peer-peer system) should be a series of patches (from other
clients), which cause localdata to roll-back to a state consistent
with the server. This roll-back has been implemented in principle,
but not the patch distribution protocol.</p>
        </sec>
        <sec id="sec-3-2-8">
          <title>4.1 Current Implementation</title>
          <p>
            As stated, to explore the social assumptions of a wiki at the graph
level, we set up a sandbox for anyone to create new data by
deploying a data wiki. Any RDF data file could be uploaded to
the wiki, but of course it will be reserialized, losing any comment.
The system is designed to integrate very smoothly with a
filestorebased web server. The data is all stored in RDF files. Setting up a
read/write access to an arbitrary file should not be complicated.
In our implementation (Figure 4), we hold the data in each
document in a file in the file system, represented in the data wiki.
Since every update request is posted its respective document URI,
the server trivially locates the destination of the update request,
parses it, and attempts to apply the update. The DIG RDF wiki
runs Apache and PHP that parses out the update payload. It
instantiates an Algae [
            <xref ref-type="bibr" rid="ref1">1</xref>
            ] RDF store, which reads the file's
contents, applies the update, and writes the file back to generate
the document's revised edition.
          </p>
        </sec>
        <sec id="sec-3-2-9">
          <title>5. Challenges, Future Work</title>
          <p>While we have made good progress in enabling real-time editing
of semantic web resources, a number of challenges remain that are
part of our agenda for Tabulator, described below.</p>
          <p>Browser integration. The integration of the tabulator data
browser-editor and the Firefox browser posed some technical
difficulties due to the assumptions that the Firefox design made.
The Firefox browser assumes that one document is displayed in
one window. As a matter of security, it makes sure that the URI
in the bar always matches that of the page being shown. This user
interface guarantee makes no sense when the URIs the user is
interested in are those of things in the graph, not items in the web.
This is one of the tensions between the user interfaces at the graph
and web level.</p>
          <p>Updating Information. There are many ways in which the
existing implementation needs rounding out to have simply the
power that a conventional application: the handling of datatypes,
explicit or implicit; the implementation of offline working mode;
update using WebDav for those who need to source editable RDF
but have ISPs who do not support SPARQL (yet). The table view
should have the facilities of a typical spreadsheet. All views
should allow update, the map view and the time line view for
example should allow the dragging of objects whose coordinates
are editable. And so on.</p>
          <p>Collaboration. Improving the collaborative aspects of the system
could involve the subscription by clients to streams of and
changes to any sources which currently affect the display seen by
the user. Peer-peer distribution on differences for editing of data
between local network neighbors without a common server would
be another possibility.</p>
          <p>Predicates. We discussed above the need for better selection of
predicates and objects for user input. If the number of predicates
could be cut down to something of order 10, then a form (as a
tabulator pane) could be created for every new object, which
would mimic typical applications more easily. Obviously, the
provision of forms languages such as Xforms would allow
tailored user input experience, but we wanted in this project to
push the boundaries of what could be built up from ontologies,
with forms seeming to emphasize the application domain
boundaries which we had wished to dissolve.</p>
          <p>
            Social Policy. In the longer term, we are interested in adding user
interfaces for creating an awareness of policy, in adding workflow
actions in the style of papertrail [
            <xref ref-type="bibr" rid="ref3">4</xref>
            ].
          </p>
          <p>User Interface (UI). The goal of Tabulator is to make it easy for
non-semantic web specialists to be able to explore and now edit
RDF data. To that end, how to communicate RDF graphs for
querying and editing to such neophytes is non-trivial. Many
approaches may be possible: present graph visualization like
IsaViz or database style interfaces like Microsoft Access.
In Tabulator, we have leveraged two familiar models: (1) an
outline style of interaction to enable information points to be
expanded or collapsed on demand, and (2) form editing similar to
an address book applications where existing fields can be edited
or new instances of a field added, like pressing a plus sign to add
a new Work phone number. This hybrid approach of Outliner +
Field Editor has let us share a prototype for exploring both
requirements elicitation for the user interface and for the back end
protocols to support the interaction.</p>
          <p>We do not claim that these UI approaches are the optimal
interface for exploring and editing RDF data. These approaches
do however provide a basis for exploring the implementation of
the concepts we have described here. We look forward to using
the findings from this work to develop a variety of UI prototypes
in the near future for effective usability design.</p>
          <p>One of the key advantages of the Semantic Web approach is that
once we have the data and the protocols, a variety of interfaces
can be applied to these data sets. Likewise, we encourage
interaction designers to leverage our back end work to support
innovative front end designs for exploration and editing.
Longer term developments. In the future, we plan to address the
prompt update of all users' displays when one user changes the
data, to make collaboration clearer. This will require changes to
the network protocols, and an upgrade of the local store to a full
Truth Maintenance System. We would like to allow system
sheets, possibly in the style of Fresnel (but for editing) to define
forms (tabulator panes) appropriate to different data patterns.</p>
        </sec>
        <sec id="sec-3-2-10">
          <title>6. Conclusion</title>
          <p>Recent years have seen an explosion in user-generated content on
the web, which can be divided into two categories. On the one
hand, the blogs and wikis are human-readable content which
thrive by being linked together globally. On the other hand are the
social networking sites, where users add relationships between
people, but where linking is only site-wide. We set a goal to
create an editable data space not limited to a particular domain
(not just friends, photos or events), and linked across domains, to
break it open into a globally linked system linked across websites;
to make it collaboratively editable as a shared store of knowledge
and thus to bring about a step change in the power of an
individual.</p>
          <p>We have shown that live semantic web editor is a non-trivial
design challenge, but capable of providing a collaborative editing
environment in at a level of abstraction above that of the web of
documents: the graph of things. Though the Tabulator prototype
lacks some usability features and polish, it demonstrates the
feasibility of direct editing of semantic web data across multiple
servers and interconnected domains of discourse. It does this
adapting many familiar interface metaphors from current hum
interface practice. Unlike in object oriented and frame-oriented
system, there is no fixed set of slots for each object for the user to
fill in. There are no forms: instead, we explored the balance
between ontology and existing data to help guide the user when
adding more data. Just as semantic web readers need to be aware
of the provenance of the data they read, and its social
implications, so writers must be aware of the destiny of the data
they write - and its social implications.</p>
          <p>The system works. Its greatest value we feel is as a basis for other
things. We encourage others to experiment with different styles
of client and of server built to the same HTTP/SPARQL network
protocol. We hope to tackle many of the large set of request for
enhancement. A hope is that it will become sufficiently intuitive
for, say, a spreadsheet user to use effectively. Already at this
stage, though, we feel that the feasibility of this architecture has
been conclusively demonstrated. We have resolved a number of
design questions. We have created an application-independent
architecture in which application-specific features can be
smoothly blended. We demonstrate that there is no good reason
why the semantic web should not be collaboratively writable, such
that the fusion of the ideas of humanity and machine-processable
knowledge of machines becomes ever closer.</p>
        </sec>
        <sec id="sec-3-2-11">
          <title>7. ACKNOWLEDGMENTS</title>
          <p>This work has been supported by Nokia Research Center
Cambridge, MIT/CSAIL’s UROP Summer Student Program, and
by a Royal Academy of Engineering Global Research Award.
[2] Amaya. http://www.w3.org/Amaya/
[19] Object Browser.</p>
          <p>http://webseitz.fluxent.com/wiki/ObjectBrowser.
[20] Open Link Software's Data Browser.</p>
          <p>http://demo.openlinksw.com/DAV/JS/rdfbrowser/index.html.</p>
        </sec>
      </sec>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <given-names>Algae</given-names>
            <surname>How</surname>
          </string-name>
          <article-title>To</article-title>
          . http://www.w3.org/
          <year>1999</year>
          /02/26- modules/User/Algae-HOWTO.html
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [3]
          <string-name>
            <surname>Berners-Lee</surname>
            ,
            <given-names>T. Linked</given-names>
          </string-name>
          <string-name>
            <surname>Data</surname>
          </string-name>
          . http://www.w3.org/DesignIssues/LinkedData
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [4]
          <string-name>
            <surname>Berners-Lee</surname>
          </string-name>
          , T. PaperTrail http://www.w3.org/DesignIssues/PaperTrail.
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [5]
          <string-name>
            <surname>Berners-Lee</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          <string-name>
            <surname>Chen</surname>
            ,
            <given-names>Y.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Chilton</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Connolly</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Dhanaraj</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Hollenbach</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Lerer</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Sheets</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          <article-title>Tabulator: Exploring and Analyzing linked data on the Semantic Web</article-title>
          . SWUI06 Workshop at ISWC06, Athens, Georgia.
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [6]
          <string-name>
            <given-names>Creative</given-names>
            <surname>Commons</surname>
          </string-name>
          . http://creativecommons.org/
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [7]
          <string-name>
            <surname>Cunningham</surname>
          </string-name>
          , Ward and Leuf,
          <string-name>
            <surname>Bo</surname>
          </string-name>
          (
          <year>2001</year>
          ):
          <article-title>The Wiki Way</article-title>
          .
          <source>Quick Collaboration on the Web. Addison-Wesley.</source>
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          <article-title>[8] Friend of a Friend</article-title>
          . http://www.foaf-project.
          <source>org/.</source>
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [9]
          <string-name>
            <surname>Huynh</surname>
            ,
            <given-names>D</given-names>
          </string-name>
          . Exhibit http://simile.mit.edu/exhibit/.
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          [11]
          <string-name>
            <surname>Kagal</surname>
            ,
            <given-names>L</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Berners-Lee</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Connolly</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Weitzner</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          <article-title>Using Semantic Web Technologies for Policy Management on the web</article-title>
          .
          <source>AAAI</source>
          <year>2006</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          [12]
          <string-name>
            <surname>Kagal</surname>
            ,
            <given-names>L</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Berners-Lee</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Connolly</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Weitzner</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          <article-title>Selfdescribing Delegation Networks for the Web</article-title>
          ,
          <source>IEEE Workshop on Policy for Distributed Systems and Networks (POLICY</source>
          <year>2006</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          [13]
          <string-name>
            <surname>Karger</surname>
            ,
            <given-names>David R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Bakshi</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Huynh</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Quan</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          , and
          <string-name>
            <surname>Sinha</surname>
            ,
            <given-names>V.</given-names>
          </string-name>
          <string-name>
            <surname>Haystack</surname>
            :
            <given-names>A General</given-names>
          </string-name>
          <string-name>
            <surname>Purpose</surname>
          </string-name>
          <article-title>Information Management Tool for End Users of Semistructured Data</article-title>
          .
          <source>Conference on Innovative Database Research (CIDR)</source>
          ,
          <year>2005</year>
          :
          <fpage>13</fpage>
          --
          <lpage>26</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          [14]
          <string-name>
            <surname>Karger</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          and schraefel, m.c..
          <source>The Pathetic Fallacy of RDF. SWUI06 Workshop at ISWC06</source>
          , Athens, Georgia.
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          [15]
          <string-name>
            <surname>Kolovski</surname>
            ,
            <given-names>V</given-names>
          </string-name>
          , Katz,
          <string-name>
            <surname>Y</surname>
          </string-name>
          , Hendler,
          <string-name>
            <given-names>J.</given-names>
            ,
            <surname>Weitzner</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Berners-Lee</surname>
          </string-name>
          ,
          <string-name>
            <given-names>T.</given-names>
            <surname>Towards</surname>
          </string-name>
          <article-title>a Policy-Aware Web},The Semantic Web</article-title>
          and Policy Workshop at ISWC,
          <year>2005</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          [16]
          <string-name>
            <surname>Koivunen</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Swick</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          , and Prud'hommeaux, E. (
          <year>2003</year>
          )
          <article-title>Annotea shared bookmarks</article-title>
          .
          <article-title>KCAP 2003 Knowledge Markup and Semantic Annotation workshop</article-title>
          . http://www.w3.org/2001/Annotea/Papers/KCAP03/annoteab m.
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          [17]
          <string-name>
            <surname>Lassila</surname>
            ,
            <given-names>O:</given-names>
          </string-name>
          <article-title>"Browsing the Semantic Web"</article-title>
          ,
          <source>17th International Conference on Database and Expert Systems Applications (DEXA'06)</source>
          , 5th International Workshop on Web Semantics, pp.
          <fpage>365</fpage>
          -
          <lpage>369</lpage>
          ,
          <string-name>
            <surname>Krakow</surname>
          </string-name>
          (Poland),
          <year>September 2006</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          [18]
          <article-title>Linked Data Project</article-title>
          . http://linkeddata.org.
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          [21]
          <string-name>
            <surname>Pietriga</surname>
          </string-name>
          , E. IsaViz. http://www.w3.org/
          <year>2001</year>
          /11/IsaViz/.
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          [22]
          <string-name>
            <surname>Prud'hommeaux</surname>
          </string-name>
          ,E.,
          <string-name>
            <surname>Seaborne</surname>
          </string-name>
          , A., eds, SPARQL Query Language for RDF http://www.w3.org/TR/rdf-sparql-query/.
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          [23]
          <string-name>
            <surname>Seaborne</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Manjunath</surname>
            ,
            <given-names>G.</given-names>
          </string-name>
          <article-title>SPARQL/Update: A Language for Updating RDF Graphs</article-title>
          .
          <year>Version2</year>
          :
          <fpage>2007</fpage>
          -08-09. http://jena.hpl.hp.com/~afs/SPARQL-Update.
          <source>html.</source>
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          [24] schraefel, m. c.,
          <string-name>
            <surname>Smith</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          <year>a</year>
          .,
          <string-name>
            <surname>Owens</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Russell</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Harris</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          and Wilson,
          <string-name>
            <surname>M. L.</surname>
          </string-name>
          (
          <year>2005</year>
          )
          <article-title>The evolving mSpace platform: leveraging the Semantic Web on the Trail of the Memex</article-title>
          .
          <source>In Proceedings of Hypertext</source>
          ,
          <year>2005</year>
          , Salzburg.
        </mixed-citation>
      </ref>
      <ref id="ref21">
        <mixed-citation>
          [25]
          <string-name>
            <surname>Steer</surname>
          </string-name>
          , D. RDFAuthor. http://rdfweb.org/people/damian/RDFAuthor/
        </mixed-citation>
      </ref>
      <ref id="ref22">
        <mixed-citation>
          [26]
          <string-name>
            <surname>Tufte</surname>
          </string-name>
          ,
          <string-name>
            <surname>Edward</surname>
            <given-names>R. Envisioning</given-names>
          </string-name>
          <string-name>
            <surname>Information</surname>
          </string-name>
          . Graphics Press, Michigan, USA,
          <year>1990</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref23">
        <mixed-citation>
          [27]
          <article-title>W3C ACL System</article-title>
          . http://www.w3.org/
          <year>2001</year>
          /04/20- ACLs.
        </mixed-citation>
      </ref>
      <ref id="ref24">
        <mixed-citation>
          [28]
          <string-name>
            <surname>Whitehead</surname>
          </string-name>
          ,
          <string-name>
            <surname>Jr.</surname>
          </string-name>
          , E. J. World Wide Web Distributed Authoring and
          <string-name>
            <surname>Versioning (WEBDAV) -- An Introduction</surname>
          </string-name>
          .
          <source>ACM StandardView</source>
          , Vol
          <volume>5</volume>
          ., No. 1,
          <string-name>
            <surname>March</surname>
            <given-names>1997</given-names>
          </string-name>
          , p.
          <fpage>3</fpage>
          -
          <lpage>8</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref25">
        <mixed-citation>
          [29]
          <string-name>
            <surname>Weitzner</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Hendler</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Berners-Lee</surname>
            ,
            <given-names>T..</given-names>
          </string-name>
          <string-name>
            <surname>Connolly</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          <string-name>
            <surname>Creating</surname>
          </string-name>
          <article-title>a policy-aware web: Discretionary, rule-based access for the world wide web</article-title>
          .
          <source>Web and Information Security</source>
          , Elena Ferrari and Bhavani Thuraisingham, eds, IRM Press,
          <year>2006</year>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>