1 / 27

My Experience in Building Ontology-driven Applications

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.

afi
Download Presentation

My Experience in Building Ontology-driven Applications

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

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

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

  4. Pervasive computing is great! Where do we use ontologies?

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

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

  7. Ontology Develop 101: A Guide to Creating Your First Ontolgy Natalya F. Noy & Deborah L. McGuinness Ontology Development Cycle 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 test cases to validate your ontology Define Classes & Properties

  8. Know your application is important; Know the use cases of your application is even more important My Development Cycle Determine what you want do model with use cases Prototype your applications using the defined “instants” Study closely related ontologies (structure, vocab) Define “instants” of your ontology; test with the use cases Draft your ontologies by “borrowing” from other ontologies

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

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

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

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

  13. Ontology Editors

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

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

  16. 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)

  17. No ontology is a good ontology if it doesn’t validate. -- anonymous 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

  18. Other Emerging Tools • Visualizers • ObjectView • RDF Validator • Protégé + OWL Plug-in • Management tool • IBM SNOBASE (kind of DBMS for ontologies)

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

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

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

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

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

  24. 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 +

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

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

More Related