=Paper= {{Paper |id=None |storemode=property |title=End-User Programming and the Advent of Sharable, Social Machines |pdfUrl=https://ceur-ws.org/Vol-664/paper2.pdf |volume=Vol-664 }} ==End-User Programming and the Advent of Sharable, Social Machines== https://ceur-ws.org/Vol-664/paper2.pdf
     End-User Programming and the Advent of
            Sharable, Social Machines

     Evan W. Patton1 , Dominic DiFranzo1 , and Deborah L. McGuinness1

                          Tetherless World Constellation
                         Rensselaer Polytechnic Institute
                                  Winslow Bldg
                                  110 8th Street
                                 Troy, NY 12180
                       [pattoe, difrad, dlm]@cs.rpi.edu


      Abstract. 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 vi-
      sualizing data in a Graphical User Interface, similar to scientific work-
      flow systems. Unlike workflow 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 files, al-
      lowing publication and collaboration, thus taking a critical step forward
      in moving to an end-user programmable social machine environment.


1   Introduction
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 end-
users 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. Machine-
readable annotations, notably RDFa [1] 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.
    Mashups are a popular form of combining rich heterogeneous data together
in visualizations, allowing for new patterns and correlations to be seen. Gen-
erating them, however, requires programming experience to create web pages,
JavaScript, etc. Projects such as MIT’s Simile (cf. [3]) or JavaScript libraries,
like those from MITRE [4], help lower the barrier to entry, but more needs to be
done so that web consumers can easily become producers of mashups. SAF is de-
signed 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.
2    Use Case
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 different topics: Healthcare Reform,
Deficit Spending, and the Environment. They wish to collect posts from Facebook
and Twitter, filter 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 findings with possible explanations.




Fig. 1. Users build complex applications from applets in a workspace. These workspaces
can be exported for email sharing or to be hosted on the web. Above: A SAF application
combines DBpedia data with data in the WGS (See http://www.w3.org/2003/01/geo/)
and OWL Time vocabularies to relate a Wikipedia article with a timeline and map.




3    Semantic Application Framework
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 collec-
tion of JavaScript and server-side scripts that are used to provide interactions
between the user and web data. The Facebook applet, for example, loads neces-
sary scripts for interacting with Facebook and extracts posts as RDF using the
OpenGraph Protocol (OGP) and the Semantically-Interlinked Online Commu-
nities (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.
    The applets are hosted online, identified 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.
    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 filters, selecting resources for other applets to
render to the user.
    The individuals in the previous example could aggregate the data from Face-
book and Twitter applets, passing that output to a filter applet that selects re-
sources when its values for a particular property contain keywords (e.g., deficit,
HCR, etc.). All data are passed along, even if they weren’t marked important by
any applet. This is an important distinction from workflow systems where data
can be discarded at each step, and it allows applets further along in the flow to
revisit data overlooked by previous applets.

3.1   Applet Development
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 different applets to combine them into an application (see Fig. 2)
in a manner similar to workflow systems (e.g. [7]) or XML pipelining systems
(e.g. [5, 6]). 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