<!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>The Mobile Wine Agent: Pairing Wine with the Social Semantic Web</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>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 Department of Computer Science 110</institution>
          <addr-line>8th Street Troy, NY 12180</addr-line>
          ,
          <country country="US">USA</country>
        </aff>
      </contrib-group>
      <abstract>
        <p>The Tetherless World Mobile Wine Agent is a Semantic Web application for making wine and food recommendations to users. In order to make the interface easier for users, instances are generated through a common interface that uses data from the underlying ontology to drive user interaction. The agent is being integrated with social applications, such as Facebook and Twitter, to allow users to leverage and share generated content with other individuals on the World Wide Web. Anyone can contribute data by constructing an RDF graph and making it available over the web in XML, which the agent will read and incorporate into its internal graph. Thus, users of the wine agent can access menus published in RDF on the web. By bringing together semantics, data sharing, and extensibility, the Mobile Wine Agent demonstrates how semantics and user interactions can work in tandem to grow the Semantic Web.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>
        The primary goal of the Semantic Web is to rede ne how we store, access, and
think about dat [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ]. This new approach to data, juxtaposed with the proprietary
APIs of social web applications such as Facebook and Twitter, requires
developers and data providers alike to rethink the openness of data. The Tetherless
World Mobile Wine Agent is an application which uses Semantic Web
technologies to describe food and wine pairings while providing social interaction
and recommendation sharing via current social web platforms such as blogging,
Facebook, and Twitter.
      </p>
      <p>In this paper, we will describe the Mobile Wine Agent's ontology-sensitive
interface for generating instances and classes, the underlying command
architecture system for the agent, and how the agent integrates with social web
applications, speci cally Twitter and Facebook. Additionally, we will highlight how to
utilize existing web technologies to provide a seamless user experience with the
Wine Agent.</p>
      <p>
        Wine and food are a rich domain and the history of recommender systems
goes back almost twenty years [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ] and has evolved with the tools used to
represent knowledge [
        <xref ref-type="bibr" rid="ref3 ref4">3, 4</xref>
        ]. Given the ubiquity of the mobile phone and the projected
growth of mobile devices as a computing platform in developing nations, it is
critical to the growth of the Semantic Web that semantically-enabled
applications be capable of running on small, low-powered devices. The rst half of
the decade saw recommender systems moving into this space (see [
        <xref ref-type="bibr" rid="ref5 ref6">5, 6</xref>
        ]) along
with the fundamental underpinnings for storing context-based information in
OWL [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ]. More recently, semantically enabled systems (see [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ]) have been taking
advantage of GPS data to provide context-sensitive recommendations to users.
This new iteration of the Wine Agent demonstrates how an existing Semantic
Web application can be adapted to re ect dynamic changes in methods of social
interaction and how moving such applications to mobile devices can enrich the
user experience through context-sensitive reasoning.
2
      </p>
    </sec>
    <sec id="sec-2">
      <title>Wine Agent Architecture</title>
      <p>
        The Mobile Wine Agent expands on the food and wine ontologies which were
released as part of the World Wide Web Consortium's OWL 1.0 speci cation [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ],
which themselves are OWL representations of the ontology which powers the
Knowledge Systems Laboratory's Wine Agent [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ] which evolved from the
ontology developed for an early description logic introduction [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ] and a tutorial and
intelligent tutoring exercise [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ]. Signi cant work has been done to update these
ontologies with references to Linked Data1 through Geonames2 and Freebase3.
In addition to these updated ontologies, the agent provides another core ontology
which describes the commands it accepts (see Sec. 8) and the output it
generates as RDF. The server itself runs Jena [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ] and Pellet [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ] with incremental
reasoning [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ] enabled to increase performance. Any semantically-enabled
application can use the RESTful interface of the Wine Agent server using the agent
ontology over HTTP to gain access to its data and reasoning capabilities.
      </p>
      <p>The mobile client application currently runs on Apple's iPhone R and iPod
touch R platforms (see Fig. 1) with an Android R version planned. The earlier
iterations of these devices have a 400 MHz process with 80 MB available RAM.
Due to these computational limitations, the system was designed such that basic
reasoning could be performed locally on the device while any complex reasoning
would take place on an external server. The device keeps a cached copy of the
ontology stored locally in RDF to improve startup times and data access times.
The current version of the ontology contains 5500 triples and the reasoner
takes an average of 1572 ms ( =12 ms) to load the ontology from NAND and
consumes 827 KB of memory. The primary reason for keeping the ontology on
the device is to drive the user interface to assist users in generating food and
wine descriptions (see Sec. 4). The resulting interface is ontology-aware and can
use information present to simplify user interaction.</p>
      <p>Performing the full breadth of OWL reasoning is not currently supported by
the client's reasoner. Complicated processing can be costly in terms of battery life</p>
      <sec id="sec-2-1">
        <title>1 http://linkeddata.org/ 2 http://www.geonames.org/ 3 http://www.freebase.com/</title>
        <p>and responsiveness of the device. Therefore, it is necessary to o oad complicated
reasoning tasks (such as nding appropriate recommendations) to the remote
server. When external reasoning is required, the client transmits a list of URLs
for the server to load and then issues an appropriate command to tell the server
what information the client needs to continue. Additionally, the user's food/wine
preferences are pushed to the server if they have not been made available for
sharing.
3</p>
      </sec>
    </sec>
    <sec id="sec-3">
      <title>The Ontologies</title>
      <p>
        The Mobile Wine Agent relies on three core ontologies which describe the agent,
food, and wine. While the wine ontology is substantially unchanged from its
release as part of the OWL Speci cation (see [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ]), the food ontology is substantially
changed4. We have extended the food ontology to contain many more classes and
4 The extended ontologies used by the Wine Agent can be found at:
      </p>
      <p>http://wineagent.tw.rpi.edu/data/agent.rdf
instances as well as added associations between foods and what they are made
from. For example, pork products, such as bacon and ham, are declared to be
made from pigs. This increased speci city a ords users who do not to eat
porkbased products to lter out dishes containing these ingredients. Sauces have also
been separated from foods so that restauranteurs can identify speci c sauces
that are then realized as members of sauce classes. These classes can then be
used to describe dishes, instead of being xed to the class hierarchy as was the
case in the old ontology. Flavor pro les have also been added so that individuals
can lter out bitter or spicy foods depending on their particular palette. The
result is a more expressive ontology to help make it easier for individuals to
describe foods to the Wine Agent.</p>
      <p>
        Often services use WSDL [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ] with SOAP [
        <xref ref-type="bibr" rid="ref15">15</xref>
        ] bindings for interaction and
require an additional ontology such as DAML-S [
        <xref ref-type="bibr" rid="ref16">16</xref>
        ], OWL-S [
        <xref ref-type="bibr" rid="ref17">17</xref>
        ], or the Web
Services Markup Framework [
        <xref ref-type="bibr" rid="ref18">18</xref>
        ] to interpret the information in a Semantic Web
context. To provide an RDF-friendly approach to interacting with the Wine
Agent, there is an agent ontology which describes the commands, responses,
errors, and other objects critical to the storage and communication of information
the agent contains. Thus, all input and output from the Wine Agent are
transmitted as RDF in XML (see Sec. 8) without requiring additional mappings from
WSDL and SOAP to RDF and OWL.
      </p>
      <p>Every command that the agent processes is a descendant of the agent:Command
class. When the agent processes a command, it will return an agent:Response.
A successful response will contain any necessary information for the client to use
as a result of the command. In cases where processing fails, agent:Error, a
subclass of agent:Response is returned with a human-readable string describing the
error that occurred. Other classes include agent:RecommendationList, a
subclass of rdf:Seq, which stores recommendations and agent:Recommendation
which pairs dish classes with wine classes or dish instances with wine instances.
4</p>
    </sec>
    <sec id="sec-4">
      <title>Ontology-sensitive Interfaces</title>
      <p>Due to their small size, mobile devices require cleaner, more structured interfaces
than their desktop counterparts and given the complex domain the Wine Agent
operates over, it was important to construct a highly dynamic interface which
could be used to describe foods and wines. In order to accomplish this goal, an
RDFS reasoner that understands all six OWL restrictions and intersectionOf
was built into the Mobile Wine Agent. This reasoner is utilized whenever the
user describes a dish or wine to the agent.</p>
      <p>When the user chooses to describe, for example, a wine for a meal, the client
requests the class vin:Wine from the reasoner and passes it to the description
generator interface. The generator then asks the reasoner for a list of properties
that might apply to this class, which will include any property that has as its
http://wineagent.tw.rpi.edu/data/food.rdf
http://wineagent.tw.rpi.edu/data/wine.rdf
rdfs:domain vin:Wine or any of its superclasses, as well as properties which
lack a value on rdfs:domain. The user is presented with a picker view5 listing
the properties. When the user selects a property, the interface is adjusted based
on whether the rdfs:range is the class owl:Class or not. In the event the
range of the property is owl:Class an additional entry in the display is added
entitled Union Of which allows the user to construct an anonymous union class.
Otherwise, two entries are added: One Of and Any which allow the user to
specify that the value of a property must be a member of the speci ed class
(either an anonymous enumerated class or a previously named class).</p>
      <p>The behavior of the interface when selecting the value for a property is also
conditional. The generator asks for the appropriate values for the property (or
subclasses of the range in the case of the Any operation) to present them to
the user. If the property is an owl:FunctionalProperty or the supplied class,
vin:Wine in this case, is a subclass of an owl:Restriction on the property with
an owl:maxCardinality of 1, then the generator displays another picker view
to limit the property selection to a single element. If neither of these conditions
applies, then a generic table view is displayed where the user can select one
or more values. The resulting property/value pair(s) are rendered on an
alternate screen which keeps a cumulative representation of the user's choices. Upon
completion, the description generator returns either a string with the necessary
RDF to describe the individual created or an owl:Class which will match any
individual with the speci ed properties.
5</p>
    </sec>
    <sec id="sec-5">
      <title>Location-aware Services</title>
      <p>Since the underlying platform for the Mobile Wine Agent is di erent from a
standard desktop application, it can take advantage of features unique to mobile
devices. Users can activate location updates via the Global Positioning System
(GPS) for the Wine Agent. Once the agent receives information about the user's
location, it presents a map with known restaurants serving their menus in RDF6
(see Fig. 2). The user selects the appropriate restaurant, and the system will
retrieve the menu and wine list for the reasoner to use. These lists are presented
to the user so they can pick the appropriate meal or wine instead of manually
inputting a description using the interface in Sec. 4. Restaurant selection is also
used to increase reasoning performance by reducing the ABox to only contain
dishes and wines available on the restaurants menu.
5 The UIPickerView is a component of the iPhone SDK and allows for single-item
selection from a list.
6 We currently provide a number of RDF representations from HTML and PDF for
some restaurants for demonstration purposes. Plans are underway to develop a
Desktop Wine Agent which can be used by proprietors to generate RDF representations
of menus and wine lists.
The Wine Agent provides a variety of ways for users to interact with one another,
both internally and through external applications. Interaction data is stored as
RDF and as such can be queried by external applications. When users select a
recommendation, for example, they can indicate whether they approve of the
recommendation or not. The agent stores this information as an RDF triple
and in the positive case prioritizes the recommendation and in the negative
case removes it from future results for this individual. Recommendations and
preferences can also be shared with other users via Facebook and Twitter.
Facebook is the largest social networking community and its API is extremely
exible. We have integrated access to Facebook into the Wine Agent to provide
a number of features. For users to enable Facebook for the Wine Agent, they
must rst add the Tetherless World Wine Agent application in Facebook. Once
they grant permission to use their information in the application, they can log
into Facebook through the Wine Agent. This will enable a number of features
for obtaining and sharing content, such as sharing preferences and posting to
their news feed.</p>
      <p>First, users can allow others to read their personal preferences by granting
permissions to friends or friend lists. The client application uploads the user's
preferences to be stored on the server7 and issues a command to the server
to allow permission to the indicated users to access these new triples. When
a friend wants to reason about food and wine using these shared preferences,
they can choose to import them into their instance of the agent through the
appropriate menu items. For privacy reasons, users can also revoke permissions
to view personal preferences at any time.
7 Unlike recommendations and the core ontologies, these triples are not publicly
available for privacy reasons.</p>
      <p>Users can join events via Facebook and share their preferences with these
events (see Fig. 3). Any attendees to the event using the Wine Agent can register
a set of triples so that the event organizer can load all of the preferences of those
attending into an instance of the Wine Agent for reasoning. These permissions
are only granted for the particular event and thus are more restricted than the
general sharing mechanism. In the future, this option will also allow for creating
group recommendations via iPhone discovery (see Future Work for details).</p>
      <p>To facilitate sharing of recommendations, dishes, and wines, the Wine Agent
also ties into the Facebook feed, allowing users to post a message to their friends
regarding any entry in the agent they nd notable. These posts are accompanied
with the appropriate URI so that users can launch the Wine Agent directly from
Facebook.com.
6.2</p>
      <p>Twitter
In addition to the integration with Facebook, the Wine Agent is begin
integrated with Twitter so that users with Twitter accounts can post updates to
their Twitter feeds about the dishes, wines, and recommendations they discover
through the agent. The Wine Agent presents a text box for the user to enter
a message and uses URL shortening tools to provide links to any resource the
user identi es for the message (see Fig. 4). The text is then sent to the Twitter
API using the OAuth security protocol. This allows users to share Semantic Web
data with friends without having to understand the complexities of RDF and
OWL.
7</p>
    </sec>
    <sec id="sec-6">
      <title>From</title>
    </sec>
    <sec id="sec-7">
      <title>Web to Wine Agent</title>
      <p>
        In order to facilitate interaction on the web and the sharing of data generated
by the Mobile Wine Agent, the agent responds to a custom URI scheme and
all recommendations and dish/wine classes generated by users are given unique
URIs starting with this scheme. These URIs can be used as part of an anchor
HTML tag:
&lt;p&gt;Check out this &lt;a href="twwa://rec/dlm-5/"&gt;
recommendation&lt;/a&gt; from the Wine Agent.
&lt;/p&gt;
or with RDFa [
        <xref ref-type="bibr" rid="ref19">19</xref>
        ]:
&lt;p about="http://tw.rpi.edu/wiki/Deborah_L._McGuinness"&gt;
Deborah posted an &lt;a rel="agent:recommends"
href="twwa://rec/dlm-5/"&gt;amazing recommendation&lt;/a&gt;
for dinner last night. &lt;/p&gt;
When an iPhone user clicks on this link in Safari, the application will quit and
launch the Wine Agent, passing it the URI which the agent can then use to look
up dishes and wines in restaurants and across the web. For situations where
tools auto-generate links based on an http:// pre x, the Wine Agent website
hosts a translator tool which will redirect from an http:// URI to a twwa://
URI. This translation utility is integral to the agent's Twitter interface as it
allows for URL shortening services to be used on custom URIs generated by the
application. Restaurants can also take advantage of this custom URI scheme by
using the twwa:// pre x with the path to the RDF versions of their menus on any
website. Clicking on such a link will launch the agent, which will automatically
retrieve and import the restaurant instance data for the user's convenience.
8
      </p>
    </sec>
    <sec id="sec-8">
      <title>Using the Wine Agent as a Web Service</title>
      <p>
        Many approaches have been taken to providing and describing web services.
The Web Services Description Language [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ] for HTTP or SOAP [
        <xref ref-type="bibr" rid="ref15">15</xref>
        ] provides
a common framework for interacting with services. A number of ontologies have
evolved for semantically describing these services, including DAML-S [
        <xref ref-type="bibr" rid="ref16">16</xref>
        ], the
Web Service Modeling Framework (WSMF) [
        <xref ref-type="bibr" rid="ref18">18</xref>
        ], the Semantic Web Services
Language [
        <xref ref-type="bibr" rid="ref20">20</xref>
        ] and OWL-S [
        <xref ref-type="bibr" rid="ref17">17</xref>
        ]. We instead choose to provide an ontology which
describes, as RDF, all of the methods one can call against the Wine Agent. This
provides us the bene t that both the input and the output of the Wine Agent
are in RDF, rather than providing one as WSDL+SOAP and another as RDF.
A semantically enabled service may send the following RDF via HTTP POST
to request:
&lt;rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:agent="http://wineagent.tw.rpi.edu/data/agent.rdf#"
xmlns="http://wineagent.tw.rpi.edu/data/agent.rdf#"
&gt;
&lt;CompoundCommand rdf:ID="Request"&gt;
&lt;rdf:_1&gt;
&lt;LoadRestaurantMenuCommand&gt;
&lt;username&gt;jsmith&lt;/username&gt;
&lt;sessionID&gt;&lt;/sessionID&gt;
&lt;descriptor&gt;
&lt;Menu rdf:about="http://wineagent.tw.rpi.edu/ \
restaurants/www.loportos.com/menu.rdf"/&gt;
&lt;/descriptor&gt;
&lt;/LoadRestaurantMenuCommand&gt;
&lt;/rdf:_1&gt;
&lt;rdf:_2&gt;
&lt;RecommendWineForDish&gt;
&lt;username&gt;jsmith&lt;/username&gt;
&lt;sessionID&gt;&lt;/sessionID&gt;
&lt;descriptor&gt;
&lt;Dish rdf:about="http://wineagent.tw.rpi.edu/ \
restaurants/www.loportos.com/menu.rdf \
#LinguiniConGamberetti"&gt;
&lt;/descriptor&gt;
&lt;/RecommendWineForDish&gt;
&lt;/rdf:_2&gt;
&lt;/CompoundCommand&gt;
&lt;/rdf:RDF&gt;
      </p>
      <p>Such a request would generate an agent:Response which would contain a
number of recommendations which match the instance LinguiniConGamberetti.
Using the XML Stylesheet Language Transformations (XSLT), this output could
be translated into new input which might match the recommendation against
LoPorto's wine list. This system is discussed in more detail on the Wine Agent's
website8.</p>
      <sec id="sec-8-1">
        <title>8 http://wineagent.tw.rpi.edu/</title>
      </sec>
    </sec>
    <sec id="sec-9">
      <title>Conclusion</title>
      <p>The Mobile Wine Agent is a complex Semantic Web application that integrates
with a number of social platforms to enable sharing of user-generated semantic
content. It provides a common user interface to generate descriptions of wines,
dishes, and recommendations that is sensitive to the underlying ontology driving
the application. The ontology and instance data can be extended by anyone, with
a particular focus on restauranteurs and winery proprietors, to re ect the large
variety of wines and dishes. Custom URIs can be linked to from anywhere on the
web that are recognized by Safari as being associated with the Wine Agent, thus
allowing links on blogs, Facebook, and Twitter to directly launch the agent and
let users start working with the data immediately. The Wine Agent server can
also act as a web service, accepting commands and returning results all described
in RDF. While many more features could be added to the Wine Agent to extend
its capabilities, the core structure, both the ontologies and the application itself,
provide a rich Social Semantic Web experience.
10</p>
    </sec>
    <sec id="sec-10">
      <title>Future Work</title>
      <p>To further expand on the social aspects of the Wine Agent, a full OWL-DL
capable reasoner is being developed to run on the iPhone. This will allow the
phone to perform all of the necessary reasoning locally but will also facilitate
the investigation of parallel reasoning across multiple devices using the iPhone's
Bluetooth R interface. With this new capability, along with the Facebook Events
integration as mentioned in Sec. 6.1, a group of friends could go out to dinner,
import their dinner event, and have each of the devices talk to the others, sharing
preferences and meal choices to pick the most appropriate wines for dinner.</p>
      <p>Supporting provenance in the Wine Agent is another future goal. For
example, if a wine critic such as Robert Parker began making recommendations using
the Wine Agent, many individuals might want to know which recommendations
are his and prefer those recommendations over others. Similarly, friends who are
less wine literate may want to rely on recommendations from friends who are
more wine literate when going out to dinner. Using data from Facebook, for
example, could be one such way of building provenance into the Wine Agent.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <surname>Berners-Lee</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          :
          <article-title>TED talks: Tim Berners-Lee on the next web</article-title>
          (
          <year>February 2009</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <surname>Brachman</surname>
            ,
            <given-names>R.J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>McGuinness</surname>
            ,
            <given-names>D.L.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Patel-Schneider</surname>
            ,
            <given-names>P.F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Resnick</surname>
            ,
            <given-names>L.A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Borgida</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          :
          <article-title>Living with CLASSIC: When and how to use a KL-ONE-Like language</article-title>
          .
          <source>Principles of Semantic Networks: Explorations in the Representation of Knowledge</source>
          (
          <year>1991</year>
          )
          <volume>401</volume>
          {
          <fpage>456</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <surname>Hsu</surname>
            ,
            <given-names>E.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>McGuinness</surname>
            ,
            <given-names>D.L.</given-names>
          </string-name>
          :
          <article-title>KSL Wine Agent: Semantic Web testbed application</article-title>
          .
          <source>In: Proceedings of the 16th International Workshop on Description Logics</source>
          , International Workshop on Description Logics (
          <year>September 2003</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <surname>Michaelis</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Ding</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>McGuinness</surname>
            ,
            <given-names>D.L.</given-names>
          </string-name>
          :
          <article-title>The TW Wine Agent: A social semantic web demo</article-title>
          .
          <source>In: Poster and Demo track of the 7th International Semantic Web Conference. (October</source>
          <year>2008</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <surname>Miller</surname>
            ,
            <given-names>B.N.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Albert</surname>
            ,
            <given-names>I.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Lam</surname>
            ,
            <given-names>S.K.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Konstan</surname>
            ,
            <given-names>J.A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Riedl</surname>
            ,
            <given-names>J.:</given-names>
          </string-name>
          <article-title>MovieLens unplugged: experiences with an occasionally connected recommender system</article-title>
          .
          <source>In: Proceedings of the 8th International Conference on Intelligent User Interfaces</source>
          .
          <article-title>(</article-title>
          <year>2003</year>
          )
          <volume>263</volume>
          {
          <fpage>266</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6. van Setten,
          <string-name>
            <given-names>M.</given-names>
            ,
            <surname>Pokraev</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            ,
            <surname>Koolwaaij</surname>
          </string-name>
          , J. In:
          <article-title>Context-aware Recommendations in the Mobile Tourist Application COMPASS</article-title>
          . Volume
          <volume>3137</volume>
          of Lecture Notes in Computer Science. Springer Berlin (
          <year>2004</year>
          )
          <volume>235</volume>
          {
          <fpage>244</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <string-name>
            <surname>Wang</surname>
            ,
            <given-names>X.H.</given-names>
          </string-name>
          , Zhang,
          <string-name>
            <given-names>D.Q.</given-names>
            ,
            <surname>Gu</surname>
          </string-name>
          ,
          <string-name>
            <given-names>T.</given-names>
            ,
            <surname>Pung</surname>
          </string-name>
          ,
          <string-name>
            <surname>H.K.</surname>
          </string-name>
          :
          <article-title>Ontology based context modeling and reasoning using OWL</article-title>
          .
          <source>In: Proceedings of the Second IEEE Annual Conference on Pervasive Computing and Communications Workshops. (March</source>
          <year>2004</year>
          )
          <volume>18</volume>
          {
          <fpage>22</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <surname>Luther</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Fukazawa</surname>
            ,
            <given-names>Y.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Wagner</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kurakake</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          :
          <article-title>Situational reasoning for task-oriented mobile service recommendation</article-title>
          .
          <source>The Knowledge Engineering Review</source>
          <volume>23</volume>
          (
          <issue>1</issue>
          ) (
          <year>March 2008</year>
          )
          <volume>7</volume>
          {
          <fpage>19</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9.
          <string-name>
            <surname>Smith</surname>
            ,
            <given-names>M.K.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Welty</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>McGuinness</surname>
            ,
            <given-names>D.L.</given-names>
          </string-name>
          :
          <article-title>Web Ontology Language (OWL) guide version 1</article-title>
          .0 (
          <year>2004</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10.
          <string-name>
            <surname>McGuinness</surname>
            ,
            <given-names>D.L.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Abrahams</surname>
            ,
            <given-names>M.K.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Resnick</surname>
            ,
            <given-names>L.A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Patel-Schneider</surname>
            ,
            <given-names>P.F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Thomason</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Cavalli-Sforza</surname>
            ,
            <given-names>V.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Conati</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          :
          <article-title>CLASSIC Knowledge Representation System Tutorial</article-title>
          .
          <source>Arti cial Intelligence</source>
          Principles Research Department, AT&amp;T Labs Research. (
          <year>1994</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          11.
          <string-name>
            <surname>McBride</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          :
          <article-title>Jena: A semantic web toolkit</article-title>
          .
          <source>IEEE Internet Computing</source>
          <volume>6</volume>
          (
          <issue>6</issue>
          ) (
          <year>2002</year>
          )
          <volume>55</volume>
          {
          <fpage>59</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          12.
          <string-name>
            <surname>Sirin</surname>
            ,
            <given-names>E.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Parsia</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Grau</surname>
            ,
            <given-names>B.C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kalyanpur</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Katz</surname>
            ,
            <given-names>Y.</given-names>
          </string-name>
          :
          <article-title>Pellet: A practical OWL-DL reasoner</article-title>
          .
          <source>Journal of Web Semantics</source>
          <volume>5</volume>
          (
          <issue>2</issue>
          ) (
          <year>April 2007</year>
          )
          <volume>51</volume>
          {
          <fpage>53</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          13.
          <string-name>
            <surname>Parsia</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Halaschek-Wiener</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Sirin</surname>
          </string-name>
          , E.:
          <article-title>Towards incremental reasoning through updates in OWL-DL</article-title>
          .
          <source>In: Proceedings of the Reasoning on the Web Workshop</source>
          . (
          <year>2006</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          14.
          <string-name>
            <surname>Christensen</surname>
            ,
            <given-names>E.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Curbera</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Meredith</surname>
            ,
            <given-names>G.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Weerawarana</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          :
          <article-title>Web services description language (WSDL) 1</article-title>
          .
          <fpage>1</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          15.
          <string-name>
            <surname>Box</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Ehnebuske</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kakivaya</surname>
            ,
            <given-names>G.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Layman</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Mendelsohn</surname>
            ,
            <given-names>N.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Nielsen</surname>
            ,
            <given-names>H.F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Thatte</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Winer</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          :
          <article-title>Simple object access protocol (SOAP) 1</article-title>
          .
          <fpage>1</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          16.
          <string-name>
            <surname>Ankolekar</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Burstein</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Hobbs</surname>
            ,
            <given-names>J.R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Lassila</surname>
            ,
            <given-names>O.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>McDermott</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Martin</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>McIlraith</surname>
            ,
            <given-names>S.A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Narayanan</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Paolucci</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Payne</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Sycara</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          :
          <article-title>DAML-S: Web service description for the semantic web</article-title>
          .
          <source>In: Proceedings of the 1st International Semantic Web Conference</source>
          . (
          <year>2002</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          17.
          <string-name>
            <surname>Martin</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Burstein</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>McDermott</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>McGuinness</surname>
            ,
            <given-names>D.L.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>McIlrath</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Paolucci</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Sirin</surname>
            ,
            <given-names>E.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Srinivasan</surname>
            ,
            <given-names>N.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Sycara</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          :
          <article-title>Bringing semantics to web services with OWL-S</article-title>
          .
          <source>World Wide Web Journal</source>
          <volume>10</volume>
          (
          <issue>3</issue>
          ) (
          <year>September 2007</year>
          )
          <volume>243</volume>
          {
          <fpage>277</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          18.
          <string-name>
            <surname>Fensel</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Bussler</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          :
          <article-title>The web service modeling framework WSMF</article-title>
          .
          <source>Electronic Commerce Research and Applications</source>
          <volume>1</volume>
          (
          <issue>2</issue>
          ) (
          <year>2002</year>
          )
          <volume>113</volume>
          {
          <fpage>137</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          19.
          <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>
          (
          <year>October 2008</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          20.
          <string-name>
            <surname>Battle</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Bernstein</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Boley</surname>
            ,
            <given-names>H.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Grosof</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Gruninger</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Hull</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kifer</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Martin</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>McIlraith</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>McGuinness</surname>
            ,
            <given-names>D.L.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Su</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Tabet</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          :
          <article-title>Semantic web services language (SWSL) (</article-title>
          <year>2005</year>
          )
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>