Post on 06-Jul-2015
description
Ontology development 101:
a guide to creating your first ontology
by Natalya F. Noy & Deborah L. McGuinness
M0261111 陳冠廷
National Changhua University of Education
Department of Information Management
Definition of ontology
“Explicit formal specifications of the terms in the
domain and relations among them.”
Who want to develop an ontology?
Why?1. To share common understanding of the structure of information
among people or software agents
2. To enable reuse of domain knowledge
3. To make domain assumptions explicit
4. To separate domain knowledge from the operational knowledge
5. To analyze domain knowledge
What is in an ontology?
• An ontology is a formal explicit description of concepts in a domain
of discourse
• It contains
▫ Classes (concept)
▫ Slots (properties or roles)
▫ Facets (role restrictions)
▫ Instances
Products of Apple
iPhone
iPhone
iPad
iPhone 2 iPhone 3 iPhone 4
Products of Apple
iPhone
iPhone
iPad
iPhone 2 iPhone 3 iPhone 4
Developing an ontology includes
• Define classes
• Arrange the classes in a taxonomic hierarchy
• Define slots
• Fill the values of the slots for instances
A Simple Knowledge-Engineering Methodology
• There is no one correct way to model a domain
• Ontology development is necessarily an iterative process
• Concepts in the ontology should be close to objects(nouns) and
relationship(verbs) in your domain.
1
2
3
Determine the domain and scope of the ontology
Consider reusing existing ontologies
Enumerate important terms in the ontology
4
5
6
7
Define the classes and the class hierarchy
Define the properties of classes-slots
Define the facets of the slots
Create instances
Determine the domain and scope of the ontology
• What is the domain that the ontology will cover?
• For what we are going to use the ontology?
• For what types of questions the information in the ontology should
provide answers?
• Who will use and maintain the ontology?
Determine the domain and scope of the ontology (cont.)
Competency questions (Gruninger & Fox 1995)
• Which wine characteristics should I consider when choosing a wine?
• Is Bordeaux a red or white wine?
• Does Cabernet Sauvignon go well with seafood?
• What is the best choice of wine for grilled meat?
• Which characteristics of a wine affect its appropriateness for a dish?
• Does a bouquet or body of a specific wine change with vintage year?
• What were good vintages for Napa Zinfandel?
Consider reusing existing ontologies
• Ontolingua ontology library
(www.ksl.stanford.edu/software/ontolingua)
• DAML ontology library (www.daml.org/ontologies)
• UNSPSC (www.unspsc.org)
• RosettaNet (www.rosettanet.org)
• DMOZ (www.dmoz.org)
Enumerate important terms in the ontology
• Important wine-related terms will include
▫ Wine
▫ Grape
▫ Winery
▫ Location
▫ Color
▫ Flavor
▫ Body
▫ Sugar content
Define the classes and the class hierarchy
• There are several possible approaches in developing a class
hierarchy (Uschold and Gruninger 1996)
▫ Top-down
▫ Bottom-up
▫ Combination
Define the classes and the class hierarchy (cont.)
If a class A is a superclass of class B,
then every instance of class B is also
an instance of A.
Define the properties of classes-slots
Define the facets of the slots
• Slots can have different facets describing the value type, allow
values, the number of the values(cardinality), and other features of
the value the slot can take.
6Define the facets of the slots (cont.)
• String
• Number (Integer)
• Boolean
• Enumerated (Symbol)
• Instance
6Define the facets of the slots (cont.)
Winery
Wine
produces
Domain
Range
7Create Instances
• Defining an individual instance of a class requires
▫ Choosing a class
▫ Creating an individual instance of that class
▫ Filling in the slot values
7Create Instances
Defining classes and a class hierarchy
1. Ensuring that the class hierarchy is correct
2. Analyzing siblings in a class hierarchy
3. Multiple inheritance
4. When to introduce a new class
5. A new class or a property value
6. An instance or a class
7. Limiting the scope
8. Disjoint subclasses
Defining classes and a class hierarchy (cont.)
1. Ensuring that the class hierarchy is correct
▫ An “is-a” relation
▫ A single wine is not a subclass of all wines
▫ Transitivity of the hierarchical relations
▫ Evolution of a class hierarchy
▫ Classes and their names
▫ Avoiding class cycles
A
B
C
is-a
is-a
is-a
鳳梨酥
冬瓜餡鳳梨酥
土鳳梨酥
is-a
Defining classes and a class hierarchy (cont.)
2. Analyzing siblings in a class hierarchy
▫ Siblings in a class hierarchy
▫ How many is too many and how few are too few?
Defining classes and a class hierarchy (cont.)
3. Multiple inheritance
4. When to introduce a new class (or not)
▫ have additional properties that the superclass does not have
▫ restrictions different from those of the superclass
▫ participate in different relationships than the superclasses
Defining classes and a class hierarchy (cont.)
5. A new class or a property value?
6. An instance or a class?
7. Limiting the scope
8. Disjoint subclasses
Define properties-more details
• Inverse slots
• Default values
What’s in a name?
• Capitalization and delimiters
• Singular or plural
• Prefix and suffix conventions
▫ has-
▫ -of
• Other naming considerations
Conclusion
• This guide described an ontology-development methodology for
declarative frame-based systems.
• This guide listed the steps in the ontology-development process.
• “There is no single correct ontology for any domain”
• “The proof is in the pudding.”
Q & A