Sei sulla pagina 1di 39

Ontologies and tools

Natalya Fridman Noy Stanford Medical Informatics Stanford University

Ontologies and tools?


Managing multiple ontologies
using several ontologies simulteneously creating mapping between ontologies ontology merging and alignment

Managing large ontologies


scaling up presentation

Connecting to other representation formalisms

Outline
HPKB: ontology-development experience Today: Tools we have now
as part of standard Protg as plug-ins

Tomorrow: Tools we toolsneed


functionality

HPKB: High-Performance Knowledge Bases


Mission statement
enable system developers to rapidly construct large knowledge bases
(100K-1M axiom/rule/frame in several months)
Building Foundation Knowledge Acquiring Domain Knowledge Performing Efficient Problem Solving

Domain experts play important role

COA Architecture

Development and Evaluation


Cyc upper level

Critiquers Critiquers
Domain ontologies

Critiquers

Knowledge Knowledge Knowledge Acquisition Acquisition Acquisition tools tools tools

ProblemProblemProblemsolving solving solving methods methods methods

Evaluation

Evaluation

SMI in HPKB
Protg was used as KA tool What we gained: new Protg widgets
instance table contains widget HPKB tab - summary of large collection of instances

opportunity to test usability of Protg (August 24-30)

HPKB Tab

SMI in HPKB
Ontology alignment
Loom to Protg Manual alignment and merging in Protg Protg to Cyc

Outline
HPKB: ontology development experience What we have now
as part of standard Protg as plug-ins

What is needed
functionality tools

Ontology-management tools in Protege


Ontology-inclusion mechanism
include other Protg ontologies somewhat transparent

Metrics
collect information on the current ontology

Included ontologies - features


Include multiple ontologies Included ontologies identified by color Included ontologies cannot be edited Current ontology can use all the concepts from the included ontology The Protg knowledge model ontology is included in this way

Included ontologies need to know


Included projects should be in the same directory Name space conflicts are not resolved
Project name is part of instance name Users need to fix class-name and slotname conflicts

Metrics

Outline
HPKB: ontology development experience What we have now
as part of standard Protg as plug-ins

What is needed
functionality tools

Ontology-management plug-ins
Protg-to-Cyc tab SMART: ontology merging and alignment ???

Bridging the Semantic Gap


Cyc and Protg adopt different knowledge models
Protg uses OKBC with some extensions (essentially frame-based) Cyc uses CycL (essentially rule-based)

Our solution has been to define an OKBC Microtheory within Cyc

1. Define a Microtheory (MT) of OKBC predicates


OKB C
Default Mt : OKBCMt . constant: OKBCDomain. isa : BinaryPredicate. arg1Isa : BinaryPredicate . arg2Isa : Collection . comment : "(OKBCDomain PRED COL) means that COL is one of the possible domains for PRED. A predicate can have several domains. The first argument to a predicate has to be an instance of one such domain. Note that this is different from arg1Isa: If there are several assertions (arg1Isa PRED COL1) ... (arg1Isa PRED COLN), then the first argument to PRED has to be an instance of all of them: COL1, ... COLN". F: (implies (?PRED ?INS1 ?INS2) (thereExists ?COL (and (OKBCDomain ?PRED ?COL) (isa ?INS1 ?COL)))).

2. Create a Domain-Specific MT as an Extension to the OKBC MT


OKB C
genlsMT

COA

(fi-assert '(#$isa #$artillery-type #$BinaryPredicate) #$ConstraintsMt) (fi-assert '(#$isa #$frontage-size-lower #$BinaryPredicate) #$ConstraintsMt) (fi-assert '(#$isa #$readiness #$BinaryPredicate) #$ConstraintsMt) (fi-assert '(#$isa #$formation-flexibility #$BinaryPredicate) #$ConstraintsMt) (fi-assert '(#$isa #$task #$BinaryPredicate) #$ConstraintsMt) (fi-assert '(#$isa #$description #$BinaryPredicate) #$ConstraintsMt) (fi-assert '(#$isa #$checked-resource #$BinaryPredicate) #$ConstraintsMt) (fi-assert '(#$OKBCDomain #$day-or-night #$Unit-Rate-Of-Movement-Check) #$ConstraintsMt) (fi-assert '(#$OKBCRange #$day-or-night #$Thing) #$ConstraintsMt) (fi-assert '(#$arg2Format #$day-or-night #$SetTheFormat) #$ConstraintsMt) (fi-assert '(#$OKBCDomain #$desired-position #$Artillery-Unit-Firing-Position-Check) #$ConstraintsMt) (fi-assert '(#$OKBCRange #$desired-position #$Thing) #$ConstraintsMt) (fi-assert '(#$arg2Format #$desired-position #$SetTheFormat) #$ConstraintsMt) (fi-assert '(#$OKBCDomain #$echelon #$Deployment) #$ConstraintsMt) (fi-assert '(#$OKBCRange #$echelon #$Thing) #$ConstraintsMt) .

3. Cycs Theorem Prover Draws Appropriate Inferences


OKB C
genlsMT

COA
genlsMT

(#$implies (#$and (isa ?CONSTR Unit-Combat-Power-Check) (unit-specialty-type ?CONSTR ?COL) (isa ?UNIT ?COL) (echelon-type ?CONSTR ?ECH) (echelonOfUnit ?UNIT ?ECH) (combat-power ?CONSTR ?N)) (combatPowerOfUnit ?UNIT ?N))

Results

SMART: Ontology Merging and Aligment


What is needed Help and guidance in the process Specialized tools for ontology merging and alignment What is not needed (not yet feasible) Fully automatic merging and alignment tool

Mapping, Merging, Alignment

car

vehicle

car vehicle

vehicle car

Approaches to Ontology Merging and Alignment


Conflict resolution after merging
+ direct results can be overwhelming hard to repeat

Morphing before merging


+ process can be repeated no direct results

Direct manipulation tools


+ can manipulate the result directly harder to repeat, but still possible

SMART Approach to Merging and Alignment


Define a set of ontology merging and alignment operations Develop an algorithm for ontology merging and alignment
Perform some operations automatically Guide the user to other operations

Design and implement specialized tool for ontology merging and alignment

SMART Algorithm
Setup: load files, set preferences, ... Initial suggestions: identical names, synonyms,
superclasses for top-level classes in alignment

Select operation: choose from suggestion list,


create a new operation, .

Execute operation: perform automatic updates,


detect conflicts, create suggestions

Example: merge classes


Class Location Class City name: String population: Integer area: Float Class Geographic-Location Class Town name: String populace: Integer area: Area

Automatic updates:
Creating the new frame Updating of references Merging of attached slots with identical names

Conflicts:
Duplicate frame names Merging of attached slots with identical names but different facets

Example: merge classes (contd)


Class Location
Class City name: String population: Integer area: Float Class Geographic-Location Class Town name: String populace: Integer area: Area

Suggestions:
Increase priority for current suggestions with referenced frames

Suggestions:
Increase priority for merging operations that involve frames in the same role, such as superclasses, subclasses, facet values

Suggestions (contd)
Class Customer Class Travel agent Class Individual Class Driver

Class Driver

Suggestions based on structural indications:


remove superclasses remove subclasses

Source ontology: car rental

Source ontology: airline reservations

Suggestions

Current conflicts

Explanations

Possible solution

Features of SMART
Feedback to the user
explanations solutions for conflicts

Maintaining focus
re-ordering of suggestions creating temporary frames to defer conflict resolution

Tracking relations
preserving reference relations preserving mapping information

Future directions
Extensions to the model
More extensive treatment of facets Extensions to non-OKBC frameworks Incorporation of axioms

Formal evaluation

Outline
HPKB: ontology development experience What we have now
as part of standard Protg as plug-ins

What is needed
functionality tools

Wish-list: multiple ontologies


Managing multiple ontologies
opening multiple ontologies in one window with equal status (unlike inclusion) copying and moving frames between ontologies
what should be copied? what to do with name conflicts?

Should we even bother?


information overload

Wish-list: import and export


Import from and export to other knowledge representation systems
general OKBC back end Cyc to Protege PowerLoom and back Other KR formalisms

Wish-list: creating ontology mapping


Mapping and alignment is not always possible, because:
Cannot change sources Want to keep sources separate Cannot agree on a single terminology

Similar problem: multiple views

car

vehicle

Wish-list: large-scale ontologies


Managing large ontologies
scaling up to huge knowledge sources different user interface
summary overview

Potrebbero piacerti anche