<!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>End-User Programming and the Advent of Sharable, Social Machines</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Evan W. Patton</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Dominic DiFranzo</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Deborah L. McGuinness</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Tetherless World Constellation Rensselaer Polytechnic Institute Winslow</institution>
          <addr-line>Bldg 110 8th Street Troy, NY 12180</addr-line>
          ,
          <country country="US">USA</country>
        </aff>
      </contrib-group>
      <abstract>
        <p>We present a web application that allows users to reuse RDF content from existing sites (e.g., DBpedia), extract data from the social networks like Facebook and Twitter, and manipulate those data through JavaScript applets. Users combine these applets for processing and visualizing data in a Graphical User Interface, similar to scienti c workow systems. Unlike work ow systems, users are encouraged to view and interact with data interactively and manipulate it in an exploratory fashion. User-constructed applet pipelines are encoded as RDF les, allowing publication and collaboration, thus taking a critical step forward in moving to an end-user programmable social machine environment.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>Introduction</title>
      <p>
        Web 2.0 services (e.g., MediaWiki, Facebook) have transformed the web into
a collaborative space for creation and consumption of content. The success of
these tools is in large part to simple WYSIWYG interfaces accessible to
endusers and third party applications that extend their functionality. The content
created by these sites are designed for human consumption, often making it less
convenient for machines to make use of the wealth of data they contain.
Machinereadable annotations, notably RDFa [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ] are helping to bridge this gap, but users
are often unaware of such annotations. Our Semantic Application Framework
(SAF) enables web consumers to identify machine-encoded resources on the web,
manipulate them through a series of applets, and build and share applications
to exploit machine-understandable content.
      </p>
      <p>
        Mashups are a popular form of combining rich heterogeneous data together
in visualizations, allowing for new patterns and correlations to be seen.
Generating them, however, requires programming experience to create web pages,
JavaScript, etc. Projects such as MIT's Simile (cf. [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ]) or JavaScript libraries,
like those from MITRE [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ], help lower the barrier to entry, but more needs to be
done so that web consumers can easily become producers of mashups. SAF is
designed to bridge this knowledge gap and encourage users to combine algorithms
and visualizations in a WSYIWYG manner to manipulate data and share the
products with friends, family, and colleagues.
      </p>
    </sec>
    <sec id="sec-2">
      <title>Use Case</title>
      <p>Consider a group of friends interested in following social interactions on the web
during the election of a new government. This group of friends who are tracking
online posts may be interested in a few of di erent topics: Healthcare Reform,
De cit Spending, and the Environment. They wish to collect posts from Facebook
and Twitter, lter them according to these key words, and plot the information
on a timeline and a map to better visualize concerns across the country. They
also want to be able to annotate their ndings with possible explanations.</p>
    </sec>
    <sec id="sec-3">
      <title>Semantic Application Framework</title>
      <p>The Semantic Application Framework (SAF) provides the necessary tools for
individuals to build a web application that loads data from one or more sources
and renders them via JavaScript applets. Each applet is a self-contained
collection of JavaScript and server-side scripts that are used to provide interactions
between the user and web data. The Facebook applet, for example, loads
necessary scripts for interacting with Facebook and extracts posts as RDF using the
OpenGraph Protocol (OGP) and the Semantically-Interlinked Online
Communities (SIOC) vocabulary. These applets each have inputs and outputs that can
be piped together, creating a mashup that others can view, interact with, and
(with permission) edit.</p>
      <p>The applets are hosted online, identi ed by publicly dereferenceable URIs.
There are two reasons for this. First, making all of the source code publicly
available allows for review of code, thus potentially improving its trustworthiness.
Second, the world wide web is open, so as long as one can provide a URI to an
applet, it can be included. This allows users to discover and use new applications
without needing a centralized repository. Our framework includes a launcher
applet that makes it easy for individuals to instantiate social networking and
visualization applets.</p>
      <p>SAF requires that an applet provide some interface for the user, but no
restrictions are placed on how the applet presents its content. For example, the
Timeline applet uses the Google Timeline Visualization, written in Flash, to
render data encoded using OWL Time in a timeline. Most applets also serve as
mediators, translating RDF content from other applets into objects the uderlying
tool understands and then translating its output into RDF for other applets to
consume. Applets can also act as lters, selecting resources for other applets to
render to the user.</p>
      <p>The individuals in the previous example could aggregate the data from
Facebook and Twitter applets, passing that output to a lter applet that selects
resources when its values for a particular property contain keywords (e.g., de cit,
HCR, etc.). All data are passed along, even if they weren't marked important by
any applet. This is an important distinction from work ow systems where data
can be discarded at each step, and it allows applets further along in the ow to
revisit data overlooked by previous applets.
3.1</p>
      <sec id="sec-3-1">
        <title>Applet Development</title>
        <p>
          SAF provides developers with a set of classes to make it easy to create applets.
An applet begins by creating bindings, settings, and a user interface. End users
link bindings of di erent applets to combine them into an application (see Fig. 2)
in a manner similar to work ow systems (e.g. [
          <xref ref-type="bibr" rid="ref7">7</xref>
          ]) or XML pipelining systems
(e.g. [
          <xref ref-type="bibr" rid="ref5 ref6">5, 6</xref>
          ]). Users then use the applet interfaces to manipulate data or identify
a subset for further processing by other applets. These interfaces can take on
many forms, from simple &lt;select&gt; elements to more complex interfaces such as
the Maps applet, which utilizes the Google Maps API to render location data.
        </p>
        <p>Unlike existing systems, SAF allows for users to continually explore, visualize,
and link data as they build their application. By exploring data, users can nd
new ways to present the data to their audience. Changes to applets at di erent
points in the workspace propagate from one to the next in real time, keeping
consistency throughout the application.</p>
        <p>In addition, applets that make use of the SAF API make known their settings
and user interface structures to the system. This allows the framework to express
the con guration of an applet in RDF. Therefore, complete applications can be
serialized as a single RDF graph encoding the relationships between applets,
bindings, settings, and interfaces. Exporting an application produces this graph
in XML form, along with a stylesheet that transforms the application back into
an XHTML page so that it can be hosted on the web.
3.2</p>
      </sec>
      <sec id="sec-3-2">
        <title>End-User Programming</title>
        <p>
          End-user programming is embodied in a number of di erent ways, from scienti c
work ow systems [
          <xref ref-type="bibr" rid="ref7">7</xref>
          ] to web interfaces for manipulating page content [
          <xref ref-type="bibr" rid="ref8">8</xref>
          ]. One
issue with work ow systems is that various computation points are con gured
through simple options or by importing text-based con guration les. Once the
work ow runs, researchers can view the results and make changes to the initial
parameters. To provide a more useful mechanism, SAF encourages application
construction to be done in the style of rapid prototyping, allowing users to
quickly add applets to query, lter, and visualize data. Application construction
is now a process of exploring data through linking and interacting with applets,
allowing for a more exploratory development of data ows.
        </p>
        <p>Consider the example given in Sec. 2. To construct this application, one
would create an instance each of the Facebook and Twitter applets. These
applets would have their outputs combined by a third applet, merging the two
datasets. One could then take the output from this third applet and supply it to
a ltering applet that looks for phrases (e.g. Healthcare Reform). The selected
data would then be passed to an instance of the Timeline applet. Thus, all of
the posts matching the lter would appear on the timeline. If one is interested
in geolocation data, the timeline and the map applets could be linked together.
Then, as one moves through the timeline, the map is updated appropriately to
show where posts during a particular time frame originated. Ultimately, an
individual can build an application with this complex behavior without having to
write a single line of JavaScript.
3.3</p>
      </sec>
      <sec id="sec-3-3">
        <title>Annotating Data</title>
        <p>
          SAF already provides simple provenance representations of user interaction [
          <xref ref-type="bibr" rid="ref9">9</xref>
          ].
To provide a more complete tool for individuals to annotate existing resources,
a new SAF applet, Annotate, is available that allows users to make annotations
on any named resource. It does so by providing a server-side script that makes
SPARQL/Update calls to a public triple store. When a user selects a resource in
the Annotate applet, any existing annotations created by other SAF users will be
recalled from the endpoint. This allows groups of individuals to collaboratively
discuss arbitrary web resources across SAF sessions.
3.4
        </p>
      </sec>
      <sec id="sec-3-4">
        <title>Access Control</title>
        <p>
          To help users control what content is extracted from social networking services,
SAF provides uni ed access control for all applets that allows users to specify
what individuals or groups can access and manipulate data through those
applets. SAF uses a simple access control list (ACL) style mechanism, even though
semantic alternatives [
          <xref ref-type="bibr" rid="ref11">11</xref>
          ] are available, due to the fact that most applets
require no forms of access control. Applets wrapping existing Web 2.0 services
(e.g., Facebook) can provide custom access control objects that utilize the
service's existing framework for access. This allows developers to extend the access
control mechanisms in SAF with something familiar to the user.
        </p>
        <p>When an access control check fails, the framework prevents the applet from
sharing its data, e ectively removing it from further processing. This is in
conjunction with tools like the timeline or map, where patterns of behavior could
be inferred and used maliciously by public viewers of an application.
4</p>
      </sec>
    </sec>
    <sec id="sec-4">
      <title>Social Machines</title>
      <p>
        Combining di erent applications to produce better methods of consuming data
is essential to the creation of social machines [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ]. To that end, all of the data
passed between applets within SAF must be stored using RDF. Additionally, the
entire application structure is encoded using RDF, making a SAF application a
semantic web resource. This means it is possible to query application descriptions
and nd out which users have been actively participating in the creation and
discovery process and which have not. SAF also makes it possible for users to
merge data from many di erent social networks, make it available outside of
the boundaries de ned by those networks, and manipulate it as they please.
These two key ingredients allow for a richer, user-driven experience with respect
to application mashups and will ultimately allow users to build richer social
constructs than those currently o ered in Web 2.0 communities.
5
      </p>
    </sec>
    <sec id="sec-5">
      <title>Conclusion</title>
      <p>SAF provides a footing for developers to expand the capabilities of users
interested in exploring content on the web. Users can take applets and combine
them to visualize data from many di erent sources and share their creations
with other individuals. Additionally, the new annotation system allows
individuals to annotate data from existing applications for public consumption. These
two advances will allow users with little to no experience in web technologies to
build mashups and look for interesting patterns in web data.</p>
      <p>SAF provides a common access control mechanism that can be mapped to
from existing infrastructure, allowing users to make public applications while still
retaining control over users accessing speci c content. However, this mechanism
is a still a rst step toward the creation of uni ed access control mechanisms
across applications on the semantic web.
6</p>
    </sec>
    <sec id="sec-6">
      <title>Future Work</title>
      <p>Scalability of this system is a primary concern. Since each application has its own
products, users manipulating those products at each point causes a linear growth
by application number in the amount of data that needs to be stored. This means
that while it might be feasible to use one application on one gigabyte of triples,
using four or ve may exhaust the resources of most consumer machines.</p>
      <p>As part of the development of this framework, we are planning on
experimental tests with end users. Currently, all of the individuals accessing this system
have medium to high programming pro ciency and are well versed in the
Semantic Web, making it di cult to judge the complexity of interacting with the
system.
7</p>
    </sec>
    <sec id="sec-7">
      <title>Notes and Acknowledgements</title>
      <p>The authors would like to thank Peter Fox for lively discussions that led to
the development of use cases driving this work. EWP is funded by a Graduate
Research Fellowship from the National Science Foundation. SAF is available at
https://was.tw.rpi.edu/</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <surname>Adida</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Birbeck</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>McCarron</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Pemberton</surname>
            ,
            <given-names>S.:</given-names>
          </string-name>
          <article-title>RDFa in XHTML: Syntax and processing</article-title>
          .
          <source>Technical report, W3C (October</source>
          <year>2008</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2. Krotzch,
          <string-name>
            <given-names>M.</given-names>
            ,
            <surname>Vrandecic</surname>
          </string-name>
          ,
          <string-name>
            <surname>D.</surname>
          </string-name>
          , Volkel, M.:
          <article-title>Semantic mediawiki</article-title>
          .
          <source>In: The Semantic Web - ISWC 2006. (November</source>
          <year>2006</year>
          )
          <volume>935</volume>
          {
          <fpage>942</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <surname>Huynh</surname>
            ,
            <given-names>D.F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Miller</surname>
            ,
            <given-names>R.C.</given-names>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Karger</surname>
          </string-name>
          ,
          <string-name>
            <surname>D.</surname>
          </string-name>
          :
          <article-title>Potluck: Data mash-up tool for casual users</article-title>
          .
          <source>In: Proceedings of the 6th International Semantic Web Conference. (November</source>
          <year>2007</year>
          )
          <volume>239</volume>
          {
          <fpage>252</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <surname>Sheth</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Gomadam</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Lathem</surname>
            ,
            <given-names>J.: SA</given-names>
          </string-name>
          -REST:
          <article-title>Semantically interoperable and easier-to-use services and mashups</article-title>
          .
          <source>Internet Computing, IEEE</source>
          <volume>11</volume>
          (
          <article-title>6) (Nov</article-title>
          .
          <year>2007</year>
          )
          <volume>91</volume>
          {
          <fpage>94</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <surname>Phuoc</surname>
            ,
            <given-names>D.L.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Polleres</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Tummarello</surname>
            ,
            <given-names>G.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Morbidoni</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          :
          <article-title>DERI pipes: visual tool for wiring web data sources</article-title>
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <surname>Morbidoni</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Tummarello</surname>
          </string-name>
          , G.:
          <article-title>Semantic web pipes</article-title>
          .
          <source>Technical report, Digital Enterprise Research Institute (November</source>
          <year>2007</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <string-name>
            <surname>Altintas</surname>
            ,
            <given-names>I.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Berkley</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Jaeger</surname>
            ,
            <given-names>E.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Jones</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Ludascher</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Mock</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          :
          <article-title>Kepler: an extensible system for design and execution of scienti c work ows</article-title>
          .
          <source>In: Proceedings of the 16th International Conference on Scienti c and Statistical Database Management</source>
          ,
          <year>2004</year>
          . (
          <year>June 2004</year>
          )
          <volume>423</volume>
          {
          <fpage>424</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <surname>Bolin</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          :
          <article-title>End-user programming for the web</article-title>
          .
          <source>Master's thesis</source>
          , Massachusetts Institute of Technology (
          <year>2005</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9.
          <string-name>
            <surname>Patton</surname>
            ,
            <given-names>E.W.</given-names>
          </string-name>
          , DiFranzo,
          <string-name>
            <given-names>D.</given-names>
            ,
            <surname>McGuinness</surname>
          </string-name>
          ,
          <string-name>
            <surname>D.L.</surname>
          </string-name>
          :
          <article-title>SAF: A provenance-tracking framework for interoperable semantic web applications</article-title>
          .
          <source>In: International Provenance and Annotation Workshop</source>
          ,
          <year>2010</year>
          . (
          <year>June 2010</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10.
          <string-name>
            <surname>Seaborne</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Manjunath</surname>
            ,
            <given-names>G.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Bizer</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Breslin</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Das</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Davis</surname>
            ,
            <given-names>I.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Harris</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Idehen</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Corby</surname>
            ,
            <given-names>O.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kjernsmo</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Nowack</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          :
          <article-title>SPARQL update</article-title>
          .
          <source>Technical report, W3C (July</source>
          <year>2008</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <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>
          :
          <article-title>Rein: Where policies meet rules in the semantic web</article-title>
          .
          <source>Technical report</source>
          , Distributed Information Group, Massachusetts Institute of Technology (
          <year>2005</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          12.
          <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>
          :
          <article-title>From the semantic web to social machines: A research challenge for AI on the world wide web</article-title>
          .
          <source>Arti cial Intelligence</source>
          <volume>174</volume>
          (
          <issue>2</issue>
          ) (
          <year>February 2010</year>
          )
          <volume>156</volume>
          {
          <fpage>161</fpage>
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>