Ontolingua Overview Adam Farquhar axf@ksl.stanford.edu

Preview:

Citation preview

Ontolingua Overview

Adam Farquharaxf@ksl.stanford.edu

Ontology As Artifact

Our ontologies are mostly implicit, hidden» This works when they are already shared within a community

An explicit ontology is an artifact that must be constructed, structure, manipulated

Many artifacts have a strong ontological flavor» Glossary, dictionary, encyclopedia» Data dictionary, class library, database schema» Knowledge base

Ontology As Artifact

An explicit ontology becomes an artifact itself Artifacts have incidental properties

» Syntax

» Design decisions

» Scoping decisions A good choice of representation language can reduce the incidental properties,

but they can never be eliminated Do conceptualizations have the same sorts of incidental properties?

Ontolingua - A Tool for Ontology Use

Ontology Library

RemoteApplication Editor Author

HTTP

GFP

BatchIDLIDL

Standalone Application

Products

DocumentsAgents

Commerce

Ontolingua - Getting Started

The public server is available athttp://Ontolingua.Stanford.edu

Logon» Interact with your web browser» You must have an account to use the system» New accounts are issued immediately

All work takes place within a session, which has a» Duration (logoff cannot be guaranteed)» Description (you can have several)

Ontolingua - Getting Started

User preferences Types of pages

» The Library page» The Ontology page» The Frame page

– A frame is a class, individual, relation, or function» The browser page

What’s in a link?» Almost everything is a hyperlink» All words are hyperlinked to their definition page

Ontolingua - The Library

Ontolingua - The Library is a Graph

An ontology can include other ontologies from the library

Reuse ontological modules! You can always augment a definition

from a module» But you can never say less!

Different ontologies may make incompatible extensions

Ontolingua - Viewing an Ontology

Ontolingua - Viewing a Class

Ontolingua - Viewing a Relation

Ontolingua - Modifying a Definition

Make sure that you are in edit mode!

Edit pens allow you to modify values

Addition gadgets allow you to add slots, facets, values

Ontolingua - Editing

Edit pens, +value, +facet icons are replaced by input widgets

Ontolingua - Web Interface

No pull-down menus, so we use a selection menu together with a submit button

There are separate editing and viewing modes» Toggle using the browse/edit toggle button to switch between them

Typically, you only edit one object at a time The edit mode looks like the browse mode, but with type-in fields

snipped into the page

Ontolingua - Basic Principles

Presentation versus representation» Object-Oriented presentation, full logical representation

Creating a new object is different from saying new things about existing objects

Include existing ontologies from the library Augment, but do not edit included definitions Measure twice, cut once!

Ontolingua - the Frame Ontology

The Frame Ontology defines the basic concepts for a rich object oriented representation

Almost all ontologies should include the Frame Ontology

Things» A thing can be anything, including a set» An individual-thing is not a set» Most common-sense things are individual-things

according to the frame ontology

Class All-Instances Arity Subclass-Of Subclass-PartitionClass-PartitionFacet Thing Individual-Thing

Ontolingua - How do I Save My Work

Your work is stored on the server You may download your work to a local file system using

your browser You may email your work to any email address Any ontology may be translated into several different target

languages

Ontolingua - Tips

Once you have created a subclass, you can use frame>copy to create siblings

Do not reference a frame before creation Completion will help with long names Find will help you find frames in any loaded ontology You can edit anything except the basic type of an object after creation Rename a frame or ontology by editing its name

Ontolingua - Tips

Strings are automatically hyperlinked » Use a frame name with dashes, or put it in all caps» Handle plurals in text with ‘s (tangible-product’s)» To hyperlink against a definition use the word tag in an anchor <a word=individual-

thing>Object</a> Values may include strings containing html You can hyperlink a subtree against an ontology

» <a href=“http://a.b.com/helpfile.html” usingontology>Help</a>

Ontolingua - Tips

The web interface handles domain differently in different contexts» When creating a slot, multiple values for domain are interpreted as a

union» When creating a general relation, domain values are assigned to

arguments in turn» Adding a value to the domain slot of a relations is simple conjunction (as

are all multiple values)

Ontolingua - Tips

It may appears that arity is handled inconsistently between relations and functions» R(x,y) - R has arity 2

» F(x,y) - F has arity 3!

The term F(x,y) is equivalent to the predicate z=F(x,y), which can be written in relational form» F(x,y,z) - F does have arity 3

Ontolingua - Tips

What is a frame axiom?» Any axiom that is part of the standard frame representation. See GFP 2.0 spec.

» Positive unary, binary, ternary assertions

What is a non-frame axiom?» Important examples: negative statements, existentially quantified statements, disjunctions,

general implications.

How do I assert a non-frame axiom?» Use the +axiom button! Enter it in KIF syntax.

» Copy and paste from emacs!

Ontolingua - Misc. Features

Collaboration support» Shared sessions» Groups

Ontology>clone to modify a read-only ontology » But expensive for frame-ontology and above!

Split Decent on-line help Undo/redo Bug reports and suggestions - keep them coming!

Use - Runtime Query

Remote applications may query an ontology server» To determine if a term is defined» To determine the relationship between terms» To manipulate the contents of an ontology

Typical applications include» Browsing and editing tools» Ontology analysis tools» Knowledge based applications» Mediators

Use - T-Helper

An AIDS treatment protocol advisor developed at Stanford’s SMI Matches patients with treatment protocols Queries the ontology server to determine relationships between terms

» Is zidovine an antiretroviral drug? Uses a substantial ontology of drugs and treatments Uses the generic frame protocol (GFP) to access the server

Use - GFP

The Generic Frame Protocol (GFP) provides a common object oriented API to knowledge representation systems» CLIPS, Classic, Theo, Loom, Ocelot, Sipe, Ontolingua, Clos, …

Features» Queries, updates, network access» Multiple language bindings (C, Lisp, Java)» Function specifier language for server-side execution» Layered architecture

Use - Translation

Translation is a challenging problem» Semantics - ensure that the meaning is preserved» Syntax - ensure that target syntax is correct» Style - ensure that target idioms are preserved

Use - Current Translation Technology

Summary

Ontolingua supports» A shared ontology library» Ontology reuse» Ontology construction» Ontology use via

– Translation– The GFP API

Recommended