my experience in building ontology-driven applications harry chen ebiquity group meeting february 9,...
TRANSCRIPT
My Experience in Building Ontology-driven Applications
Harry Chen
eBiquity Group Meeting
February 9, 2004
The 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
Outline 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
Where do we use ontologies?
Pervasive computing is
great!
Key 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
person’s 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
What 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
Ontology Development Cycle
Determine what you want do model
Check if existing ontologies can be
reused
Define Classes & Properties
Define test cases to validate your
ontology
Test ontology in your domain application
Ontology Develop 101: A Guide to Creating Your First OntolgyNatalya F. Noy & Deborah L. McGuinness
The Perfect World Scenario&
The World is Not Perfect!
My Development CycleDetermine what
you want do model with use cases
Study closely related ontologies
(structure, vocab)
Draft your ontologies by “borrowing” from
other ontologies
Define “instants” of your ontology; test with the use cases
Prototype your applications using the
defined “instants”
Know your application is important;Know the use cases of your application is even more important
Evaluating Your Ontology How do you know if your ontology is
good? If it works well in your application
What doesn’t matter? The size of your ontology The complexity of your ontology The vocabularies in your ontology
About 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
What 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 it’s for supporting reasoning Know how they’ll “fit” into the reasoner
DL classification Logic inferences that is beyond the OWL model
Useful Ontology Tools Ontology editors Program API libraries Ontology reasoners Ontology validators Ontology visualizers Ontology management tools
Ontology Editors
Editor Pros Cons
Emacs + SGMLNo installation is required;
code formatNo ontology validation; a
lot of typing
Emacs + OWL ModeSyntax check; code
formatRequires 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
Program 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 API’s are confusing
Ontology 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. …
Other 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)
OWL Validators Validating the RDF syntax
W3C RDF validation service Validating the OWL syntax
BBN’s OWL validator Validating the species of your OWL
ontology (OWL Lite, DL, or Full). OWL Ontology Valiator
No ontology is a good ontology if it doesn’t validate.-- anonymous
Other Emerging Tools Visualizers
ObjectView RDF Validator Protégé + OWL Plug-in
Management tool IBM SNOBASE (kind of DBMS for
ontologies)
Pitfalls … 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
Pitfalls … 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 xsd:dataTime To represent latitude/longitude coordinates, you
choose to define individual class and properties of “degrees”, “minutes” & “seconds” when you can use xsd:string.
Pitfalls … 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.
Pitfalls … 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.
Issues & Answers (maybe) Lacking a light-weight and flexible
reasoning Doesn’t 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.
Issues & 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
+
Issues & 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 …
Concluding 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.