Ontology development 101

Preview:

DESCRIPTION

Reference, Noy, N. F., & McGuinness, D. L. (2001). Ontology development 101: A guide to creating your first ontology.

Citation preview

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

Recommended