my experience in building ontology-driven applications harry chen ebiquity group meeting february 9,...

27
My Experience in Building Ontology- driven Applications Harry Chen eBiquity Group Meeting February 9, 2004

Upload: margery-ellis

Post on 22-Dec-2015

221 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: My Experience in Building Ontology-driven Applications Harry Chen eBiquity Group Meeting February 9, 2004

My Experience in Building Ontology-driven Applications

Harry Chen

eBiquity Group Meeting

February 9, 2004

Page 2: 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

Page 3: My Experience in Building Ontology-driven Applications Harry Chen eBiquity Group Meeting February 9, 2004

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

Page 4: My Experience in Building Ontology-driven Applications Harry Chen eBiquity Group Meeting February 9, 2004

Where do we use ontologies?

Pervasive computing is

great!

Page 5: My Experience in Building Ontology-driven Applications Harry Chen eBiquity Group Meeting February 9, 2004

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

Page 6: My Experience in Building Ontology-driven Applications Harry Chen eBiquity Group Meeting February 9, 2004

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

Page 7: My Experience in Building Ontology-driven Applications Harry Chen eBiquity Group Meeting February 9, 2004

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!

Page 8: My Experience in Building Ontology-driven Applications Harry Chen eBiquity Group Meeting February 9, 2004

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

Page 9: My Experience in Building Ontology-driven Applications Harry Chen eBiquity Group Meeting February 9, 2004

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

Page 10: My Experience in Building Ontology-driven Applications Harry Chen eBiquity Group Meeting February 9, 2004

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

Page 11: My Experience in Building Ontology-driven Applications Harry Chen eBiquity Group Meeting February 9, 2004

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

Page 12: My Experience in Building Ontology-driven Applications Harry Chen eBiquity Group Meeting February 9, 2004

Useful Ontology Tools Ontology editors Program API libraries Ontology reasoners Ontology validators Ontology visualizers Ontology management tools

Page 13: My Experience in Building Ontology-driven Applications Harry Chen eBiquity Group Meeting February 9, 2004

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

Page 14: My Experience in Building Ontology-driven Applications Harry Chen eBiquity Group Meeting February 9, 2004
Page 15: My Experience in Building Ontology-driven Applications Harry Chen eBiquity Group Meeting February 9, 2004

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

Page 16: My Experience in Building Ontology-driven Applications Harry Chen eBiquity Group Meeting February 9, 2004

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. …

Page 17: My Experience in Building Ontology-driven Applications Harry Chen eBiquity Group Meeting February 9, 2004

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)

Page 18: My Experience in Building Ontology-driven Applications Harry Chen eBiquity Group Meeting February 9, 2004

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

Page 19: My Experience in Building Ontology-driven Applications Harry Chen eBiquity Group Meeting February 9, 2004

Other Emerging Tools Visualizers

ObjectView RDF Validator Protégé + OWL Plug-in

Management tool IBM SNOBASE (kind of DBMS for

ontologies)

Page 20: My Experience in Building Ontology-driven Applications Harry Chen eBiquity Group Meeting February 9, 2004

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

Page 21: My Experience in Building Ontology-driven Applications Harry Chen eBiquity Group Meeting February 9, 2004

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.

Page 22: My Experience in Building Ontology-driven Applications Harry Chen eBiquity Group Meeting February 9, 2004

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.

Page 23: My Experience in Building Ontology-driven Applications Harry Chen eBiquity Group Meeting February 9, 2004

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.

Page 24: My Experience in Building Ontology-driven Applications Harry Chen eBiquity Group Meeting February 9, 2004

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.

Page 25: My Experience in Building Ontology-driven Applications Harry Chen eBiquity Group Meeting February 9, 2004

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

+

Page 26: My Experience in Building Ontology-driven Applications Harry Chen eBiquity Group Meeting February 9, 2004

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 …

Page 27: My Experience in Building Ontology-driven Applications Harry Chen eBiquity Group Meeting February 9, 2004

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.