This
domain explores the creation of personalized services for a user
based on a user's context. Web service mashups are the recent trend
on the Internet and allow users to create their personal web space
from different types of sources such as social networks, RSS Feeds,
or Flickr. A user is able to filter tailored information on a
personal page to view and share with others. The proliferation of
services creates the problem of performing more sophisticated query
matching, such as allowing one to query for a combination of
different services in a single search. We are establishing a
framework where mashup applications can be generated for specific
users based on their context.
We
are doing research in the following areas in order to accomplish
this: 1) Service
Description:
design and implementation of a semi-automatic ontology creation tool
that creates a high-level ontology description of services in the
Programmable Web directory; 2) Service
Discovery:
creating an ontology-based query interface to Programmable Web for
semantically enhanced querying; 3) Service
Composition:
incorporating a rule-based context-aware front-end system that maps
user-based rules to service composition templates.
LexOnt: A Semi-automatic Ontology Creation Tool for Programmable Web
My
colleague, Peter Danielsen, and I have been working on creating an
ontology for the Programmable Web directory. My idea for this project
was to represent the web services in the programmable web directory
using an ontology in order to classify them. The PW repository is not
organized well and it is hard to figure out what API to use for a
specific application or for a mashup. The categorization right now is
rather flat. It only has descriptions of high-level categories, which
results in users having to sift through a number of APIs before
knowing which ones to use. We're looking at finding a better way of
classifying the services so that they can be discovered using a
semantic query interface and hopefully filtering out the results to
specific ones relevant to the user. The practical benefits of this
would be to improve the registration/query interface to Programmable
Web as well as to populate the GloServ directory with these services
and see what type of mashups or service composition templates can be
formed. I like to create a playground for real services and start
implementing prototypes for concrete use cases. With this goal in
mind, we ran into a research problem of finding a semi-automatic way
to create a high-level service ontology for the PW directory and
developed LexOnt.
LexOnt
is a semi-automatic ontology creation tool for a high-level service
classification ontology. The goal of LexOnt is to allow a user to
create a domain ontology by suggesting terms and phrases from a
corpus. Given a certain domain, LexOnt ranks the data by comparing it
to external knowledge bases such as Wikipedia or Wordnet. This allows
a user to create an ontology of a domain even if he may not be very
familiar with the domain because the terms that are being suggested
are common terms that are being compared to external knowledge bases.
We
use the PW directory as the corpus, although it may be used for other
corpuses as well. The main contribution of LexOnt is its novel
algorithm which generates and ranks frequent terms and significant
phrases within a PW category by comparing them to external domain
knowledge within Wikipedia, Wordnet and the current state of the
ontology. First it matches terms to the Wikipedia page description of
the category and ranks them higher, since these indicate domain
descriptive words. Synonymous words from Wordnet are then matched and
ranked. In a semi-automated process, the user chooses the terms it
wants to add to the ontology and indicates the properties to assign
these values to and the ontology is automatically generated. In the
next iteration, terms within the current state of the ontology are
compared to terms in the other categories and automatic property
assignments are made for these API instances as well.
We have created a demo video of how LexOnt works which you can take a look at here.