Friday, March 30, 2007

Semantic Web - the Web Eevolution (submitted abstract)

The Internet we are using every day has over 300 million users and 3 billion statistic documents however, its utilization is rather primitive. Tim Berners Lee the inventor of the web and director of World Wide Web Consortium (W3C) envisions a new future of the web. This future is called Semantic Web. The new web represents the attempt to “bring web to its full potential” by developing interpretable technologies such as specifications and protocols governing knowledge representation and services of the web.
Today’s web is a huge repository of information for human use and Semantic Web is its extension where the web contents can be used and interpreted by software agents. The agents will enable automatic finding, sharing and integration of information on the web. Semantic Web also provides a new level of services. For example you will be able to find all restaurants that serve pizza in a 10 kilometer distance which are open until 12pm, even if a restaurant uses “Italian food” instead of pizza will appear in your list!
Semantic Web embraces multiple technologies to perform its tasks such as manipulation and extraction of information, and execution of complex services. The concept Resource Description Framework (RDF) is a fundamental method of representing basic pieces of information in semantic web. Ontology – “specification of conceptualization” is built upon RDF and used to represent information and its semantic in a machine-processable manner. A special XML based language called Ontology Web Language (OWL), is used to represent knowledge and services as Ontology.
A number of approaches have already been proposed to address the challenges in planning, composition, and execution of web services. However, the planning problem is far from trivial. An active group of researchers, led by Dr. Marek Reformat in Electrical and Computer Engineering (ECE) Department at the University of Alberta is contributing to semantic web technologies. The studies in the ECE are focused on the automatic web service execution and service composition in the presence of uncertainty. The case studies in the domain of travel planning are being constructed. The expected outcome would be intelligent user agents, which can perform complex services in travel domain based on user preferences. The results will be applicable in other domains.

Wednesday, March 28, 2007

Pellet Reasoner

Pellet is an OWL-DL reasoner developed in mindswap at University of Maryland. It is written in Java and is open source. Unfortunately there is not any constructive documentation for Pellet tool but the Pellet user mailing list is quite active and you can find a lot there. Two papers (1, 2) from mindswap might be the only papers which directly discuss Pellet.
W3C recommended two test cases for OWL document checkers in 2004: OWL syntax checkers and OWL consistency checkers. W3C also defined complete consistency checkers and complete means that the document is a decision procedure with respect to semantics of its concepts. Pellet is a complete OWL-DL consistency checker.
Consistency checking is checking for contradictory facts in an ontology more technically it checks Assertional Box (ABox: OWL facts e.g. equality assertions, property values and types) for consistency with respect to the Terminological Box (TBox: axioms about classes e.g. disjoint classes and subclasses). It is an important task but can not do or execute anything interesting within your ontology.
In addition to standard inference services (consistency checking, concept satisfiability, classification and realization) Pellet covers W3C recommendations (consistency, entailment, and conjunctive query answering). Pellet supports queries in SPARQL and RDQL language through its query engine. Pellet also supports detection of syntactic and semantic defects in ontologies in terms of "species coercion" (e.g. guess the correct type for a resource without defined type), and debugging meaning finding contradictions and the axioms which cause them.

Thursday, March 8, 2007

Thinking about Travel Ontology

In this post I want to have a high level view of travel ontology. Lets look at the issue from the point of view that everything is a service. Hence we can consider three services: ticket reservation, accommodation and car renting as the main sub services of any travel service (combining these three has a long history in web services).
The above classification is based on that the user has chosen the destination and duration however most of the time choosing the most appropriate travel destination and duration for a user based on his own preferences is a big issue itself (This issue is not well studied in literature).
We should add activities as a new category to the traditional categories in order to differentiate travels (in particular destination, date and duration of a travel). Activities involve anything which can make a travel more interesting. Obviously all information about activities (place, date, cost etc) would be represented in the subclasses and slots of the activity concept.
Until now we reviewed the most important parts for any travel service in terms of knowledge representation but service execution is directly related to the constraints which is applied by the user. These parameters should be defined in the travel ontology and later on is used by the user agent (user agent is an agent at user side to perform autonomous or semi autonomous web service execution). User agent compares the information retrieved from the travel ontology, to the information stored in user preferences ontology. User agent can drill in/out within the travel ontology based on the user preferences. A very nice example of filtering data based on user preferences is implemented in Oracle technology Network (OTN) at OTN Semantic Web recently also there is a short nice document as white paper.

Monday, March 5, 2007

Another way of searching for an Ontology

Today I found a very interesting way of searching for Ontologies. This time you can use Google! by typing the word you are looking an Ontology for, and putting filetype:owl. In comparison to Swoogle this approach will give only owl files (no daml and no rdf).
For example you can search hotel filetype:owl in google getting more than 80 owl files and enjoy it!

Saturday, March 3, 2007

Finding an Ontology

Although there is not a large number of ontologies online for different domains, it is certainly recommended to search for the ontology for your interested domain before developing it from scratch.
I think the best place to search ontologies is the Swoogle however there is a library in Protege website.