Title: My Experience in Building Ontology-driven Applications
1My Experience in Building Ontology-driven
Applications
- Harry Chen
- eBiquity Group Meeting
- February 9, 2004
2The Big Objective
- Share my experience in using OWL related tools
when prototyping CoBrA - Bring your attentions to critical research issues
in building ontology-driven apps. - Initiate discussions on future project ideas
3Outline
- The role of ontologies in PerCom
- Steps in building ontology-driven apps
- Different kinds of useful ontology tools
- Pitfalls in the development process
- Future project ideas
4Where do we use ontologies?
5Key Uses of Ontologies
- Knowledge sharing
- Context Broker shares context knowledge with
devices and agents - Ontology based reasoning
- Context Broker infers the properties associated
with a persons location context - Policy language specification
- User defines privacy policies to restrict the
access to their contextual information - Service discovery composition
- Display my presentation on that wall
6What do we have in mind?
- Prototyping PerCom systems
- Devices, services agents
- Distributed systems (the Web, mobile devices,
desktop computers etc.) - The ontology language
- The Web Ontology Language OWL
- Things communicate with information expressed in
RDF/XML, N3, N-Triples
7Ontology Development Cycle
Ontology Develop 101 A Guide to Creating Your
First Ontolgy Natalya F. Noy Deborah L.
McGuinness
Determine what you want do model
The Perfect World Scenario The World is Not
Perfect!
Test ontology in your domain application
Check if existing ontologies can be reused
Define Classes Properties
Define test cases to validate your ontology
8My Development Cycle
Know your application is important Know the use
cases of your application is even more important
Determine what you want do model with use cases
Prototype your applications using the defined
instants
Study closely related ontologies (structure,
vocab)
Draft your ontologies by borrowing from other
ontologies
Define instants of your ontology test with the
use cases
9Evaluating Your Ontology
- How do you know if your ontology is good?
- If it works well in your application
- What doesnt matter?
- The size of your ontology
- The complexity of your ontology
- The vocabularies in your ontology
10About Ontology Development
- Ontology development is typically harder than
software development - No good metrics to evaluate ontology
- A program is good if it runs, and an ontology is
good only if it works with a running program - Typically you write programs after you have
developed the ontologies - Kind of like the chicken-and-egg question
11What You Should Know
- Before you start to define ontologies
- Know how the ontologies will be used
- Is it for supporting knowledge sharing?
- Is it for supporting reasoning?
- If its for supporting reasoning
- Know how theyll fit into the reasoner
- DL classification
- Logic inferences that is beyond the OWL model
12Useful Ontology Tools
- Ontology editors
- Program API libraries
- Ontology reasoners
- Ontology validators
- Ontology visualizers
- Ontology management tools
13Ontology Editors
Editor Pros Cons
Emacs SGML No installation is required code format No ontology validation a lot of typing
Emacs OWL Mode Syntax check code format Requires some amount of hacking a lot of typing
Protégé OWL Plug-in Easy installation GUI editor little XML editing OWL validation can suggest ontology re-structure using the Racer classifier No control over how the ont-document will look like has some learning curve some editing operations are slow changes very often
14(No Transcript)
15Program API Libraries
- Jena Toolkit (for Java)
- Well documented and designed
- Supports different types of RDF storage
- In-memory, persistent (RDBMS, plain files)
- Has I/O support for RDF/XML, N3 N-Triple syntax
- Built-in Java rule-based reasoner (RDF-S OWL)
- You can add your reasoning rules!
- Known issues OWL reasoning is limited and has
performance issues multi-threaded access is
unstable some APIs are confusing
16Ontology Reasoner
- Reasoners for the OWL data model
- F-OWL (Flora2/XSB) -- make friend with Youyong
now! - FaCT
- Jena2 -- some performance issues
- OWLP (RDF/XML, Xquery) -- weird.
- Euler (python) -- a good learning tool.
17Other Reasoners
- For reasoning beyond the OWL data model, you need
something different - Mix Prolog with F-OWL (TAGA, REI)
- Mix Jess with your own OWL rules (CoBrA)
- Mix Jena2 with your own Jena inference rules
(both forward backward rules are okay) (CoBrA)
18OWL Validators
No ontology is a good ontology if it doesnt
validate. -- anonymous
- Validating the RDF syntax
- W3C RDF validation service
- Validating the OWL syntax
- BBNs OWL validator
- Validating the species of your OWL ontology (OWL
Lite, DL, or Full). - OWL Ontology Valiator
19Other Emerging Tools
- Visualizers
- ObjectView
- RDF Validator
- Protégé OWL Plug-in
- Management tool
- IBM SNOBASE (kind of DBMS for ontologies)
20Pitfalls in ontology dev.
- (1) You have defined too many useless
vocabularies - Somehow we enjoy creating new vocabularies just
because we can! - Not knowing how your ontologies will be used in
the application - Not having use case to drive your development
21Pitfalls in ontology dev.
- (2) When some property can be defined to exploit
XSD data types, you choose to use nested
ObjectProperty constructs - You choose to use nested date/time classes and
properties instead of xsddataTime - To represent latitude/longitude coordinates, you
choose to define individual class and properties
of degrees, minutes seconds when you can
use xsdstring.
22Pitfalls in ontology dev.
- (3) You think too much about Java classes when
you define OWL classes - When defining the method (property) of a Java
class, you specify its name behavior - When defining the property of an OWL class, you
specify its name and restrictions - An OWL class with properties that only have
defined names and no restrictions is not very
useful.
23Pitfalls in ontology dev.
- (4) Developing ontologies without knowing exactly
how they will be use - Ontologies are here to support the function of
your application - Ontologies on a paper is not very useful to a
programmer.
24Issues Answers (maybe)
- Lacking a light-weight and flexible reasoning
- Doesnt need to be very powerful, but it should
be highly customizable. - Better if it is in pure Java
- Something that I can use to prototype FOAF use
cases on a PDA.
25Issues Answers (maybe)
- Lacking commercial strength editors and
management tools - Not much we can do in our group (I think)
- But we should try to use different editors and
give feedbacks to community
26Issues Answers (maybe)
- The learning curve for an average programmer to
start building ontology-driven applications is
still too high. They must understand - XML, XSD
- The difference between XML, RDF/RDF-S OWL
- Knowledge representation
- Ontology API
- Rule-based inferences for building inference
rules
27Concluding Remarks
- Ontologies are can help us to build more
intelligent and interoperable pervasive computing
applications if we learn how to use them right. - The magic in developing good ontologies is to
practice more and often, and know how your
applications will use the ontologies. - Emacs still the best ontology editor
- We need a light-weight and flexible ontology
reasoner.