Ontology Development 101: A Guide to Creating Your First Ontology - PowerPoint PPT Presentation

1 / 31
About This Presentation
Title:

Ontology Development 101: A Guide to Creating Your First Ontology

Description:

Ontology Development 101: A Guide to Creating Your First Ontology ... Chimaera (McGuinness et al. 2000) provides diagnostic tools for analyzing ontologies ... – PowerPoint PPT presentation

Number of Views:952
Avg rating:3.0/5.0
Slides: 32
Provided by: jamie46
Category:

less

Transcript and Presenter's Notes

Title: Ontology Development 101: A Guide to Creating Your First Ontology


1
Ontology Development 101 A Guide to Creating
Your First Ontology
  • Paper by Natalya F. Noy and Deborah L. McGuiness
  • Presented by Sean Conolly and Sarah Allen

2
Guidelines for Knowledge-Engineering
  • Some rules to help make design decisions
  • There is no one way to model a domain there are
    always viable alternatives. The best solution
    almost always depends on the application that you
    have in mind.
  • Ontology development is necessarily an iterative
    process.
  • Concepts in the ontology should be close to
    objects (physical or logical) and relationships
    in your domain of interest. These are most likely
    to be nouns (objects) or verbs (relationships) in
    sentences that describe your domain.

3
Things To Remember
  • An ontology is a model of reality of the real
    world and the concepts in the ontology must
    reflect this reality.
  • After we define an initial version of the
    ontology, we can evaluate and debug it by using
    it in applications or problem solving methods or
    by discussing it with experts in the field.

4
Vocabulary
  • An ontology is a formal explicit description of
    concepts in a domain of discourse.
  • Classes, sometimes called concepts, comprise the
    domain.
  • Slots, sometimes called roles or properties,
    describe the attributes and properties of each
    concept.
  • Facets, sometimes called role restrictions,
    define scope and limitations of slots.
  • An ontology together with a set of individual
    instances of classes constitutes a knowledge base.

5
Step 1 Define Domain and Scope
  • What is the domain that the ontology will cover?
  • What will the ontology be used for?
  • What types of queries will the ontology be
    subject to?
  • Who will use and maintain the ontology?

6
Step 1 Define Domain and Scope Competency
Questions
  • One of the best ways to determine the scope of
    the ontology is to sketch a list of questions
    that a knowledge base based on the ontology
    should be able to answer, competency questions.
  • Need not be exhaustive
  • Good gauge of how complete your ontology is (for
    your purposes)

7
Step 2 Consider Reusing Existing
Ontologies
  • Reusing existing ontologies may be a requirement
    if our system needs to interact with other
    application that have already committed to
    particular ontologies or controlled vocabularies.
  • For this guide however we will assume that no
    relevant ontologies already exist and start
    developing the ontology from scratch.

8
Step 3 Enumerate important terms in the
ontology
  • Initially, it is important to get a comprehensive
    list of terms without worrying about overlap
    between concepts they represent, relations among
    the terms, or any properties that the concepts
    may have, or whether the concepts are classes or
    slots.

9
Step 4 Define The Classes And The Class
Hierarchy
  • Again, there is no one way to approach this step.
  • The top-down process starts with the definition
    of the most general concepts in the domain and
    subsequent specialization of concepts.
  • The bottom-up process starts with the definition
    of the most specific classes, the leaves of the
    hierarchy, with subsequent grouping of these
    classes into more general concepts.

10
Step 4 Define The Classes And The Class
Hierarchy
  • Regardless of approach, it is usually best to
    start by defining classes from the list created
    in Step 3. We select the terms that describe
    objects having independent existence rather than
    terms that describe these objects. These terms
    will be classes in the ontology.
  • We organize the classes into a hierarchical
    taxonomy by asking if by being an instance of one
    class, the object will necessarily be an instance
    of some other class.
  • If a class A is a super class of class B, then
    every instance of B is also an instance of A.

11
Step 5 Define The Properties Of Classes -
Slots
  • Once the classes have been defined, it is
    necessary to describe the internal structure of
    concepts.
  • Includes things like
  • Intrinsic properties
  • Extrinsic properties
  • More of a concern when using your ontology as the
    basis for a database
  • Parts
  • Relationships

12
Step 6 Define the facets of the slots
  • Slots can have several facets describing
  • Value type
  • Allowed values
  • Number of values (cardinality)
  • Minimum cardinality Must have at least N
    values
  • Maximum cardinality Can have at most M values

13
Step 7 Create instances
  • The last step is creating individual instances of
    classes in the hierarchy
  • Consists of
  • Choosing a class
  • Creating an individual instance of that class
  • Filling in the slot values (if you are concerned
    with slots)
  • Due to iterative nature of design, instances can
    pop up at any point in the design process

14
Ensuring a correct hierarchy
  • A subclass represents a concept that is a kind
    of the concept that the superclass represents
  • For an is-a relationship, add kind of does
    it still make sense?
  • Hierarchical relations are transitive
  • If B is a subclass of A and C is a subclass of B,
    then C is a subclass of A
  • Should all of your Cs be subclasses of As? If
    not, you might have a problem

15
Multiple Inheritance
  • A class can be a subclass of several classes
  • Most knowledge-representation systems allow
    multiple inheritance

16
Ensuring a correct hierarchy (contd)
  • Domains can change has your class hierarchy
    evolved with it?
  • Classes represent concepts in the domain and not
    the words that denote these concepts.
  • The name of a class may change, but the concept
    it represents should be the same
  • Synonyms for the same concept do not represent
    different classes

17
Ensuring a class hierarchy (contd)
  • Cycles (cyclical relationships) are bad and
    should be avoided
  • Furthermore Due to transitivity, if A is a
    subclass of B but also a superclass of B, all
    instances of A are also instances of B and vice
    versa so why have two classes?

18
Siblings in a class hierarchy
  • Siblings are classes that are direct subclasses
    of the same class
  • Rules governing siblings
  • All siblings except for those at the root must be
    at the same level of generality
  • Siblings should represent concepts the fall along
    the same line

19
How many is too many?
  • There are no hard rules for the number of direct
    subclasses a class should have, but there are
    things to keep in mind
  • If a class has only one direct subclass, there
    may be a modeling problem or the ontology is not
    complete
  • If there are more than a dozen subclasses for a
    given class, additional intermediate categories
    may be necessary
  • Rule 0 an ontology models reality. There is no
    need to fabricate artificial classes if no
    natural subclasses exist for a long list of
    siblings

20
When is a new class necessary?
  • Subclasses of a class usually
  • Have additional properties that the superclass
    does not, or
  • Restrictions different from those of the
    superclass, or
  • Participate in different relationships than the
    superclass
  • Exceptions to the rule guideline
  • Classes in terminological hierarchies do not have
    to introduce new properties
  • Sometimes the model must reflect distinctions
    made in the domain even though its application
    does not require the root of the distinctions to
    be modeled

21
A new class or a property value?
  • One goal in defining a class hierarchy is to
    strike a balance between creating new classes
    useful for organization and creating too many
    classes
  • If a slots value restricts the allowable values
    for other slots, it should be a new class instead
  • If a distinction is important in the domain and
    we think of the objects with different values as
    different kinds of objects, we should create a
    new class for the distinction
  • A class to which an individual instance belongs
    should not change often

22
An instance or a class?
  • Depends on the potential applications of the
    ontology
  • Individual instances are the most specific
    concepts represented in a knowledge base
  • The lowest level of detail in the representation
    is often determined by the potential application
  • If concepts form a natural hierarchy, they should
    be represented as classes
  • Knowledge-representation systems dont have a
    concept of a sub-instance

23
Limiting the scope
  • The ontology should not contain all the possible
    information about the domain you do not need to
    specialize (or generalize) more than you need for
    your application
  • The ontology should not contain all the possible
    properties of and distinctions among classes in
    the hierarchy only those that are necessary and
    relevant to your purposes
  • Unnecessary inclusions can cloud the clarity of
    your knowledge representation

24
Disjoint subclasses
  • Classes are disjoint if they cannot have any
    instances in common
  • Many systems allow specification of classes as
    disjoint
  • Specifying which classes are disjoint enables the
    system to validate the ontology better

25
Whats in a name?
  • Define a naming convention for classes and slots
    and adhere to it
  • Consistently using a naming convention not only
    makes the ontology easier to understand but also
    helps avoid some common modeling mistakes
  • Things to consider
  • Is the same name space shared by classes, slots,
    and instances?
  • Is the system case-sensitive?
  • What delimiters does the system allow in names?

26
Capitalization and Delimiters
  • Consistent capitalization greatly improves
    readability of an ontology (assuming the system
    is case-sensitive)
  • Several options for delimiting words
  • Use spaces Meal course
  • Run the words together MealCourse
  • Use an underscore or dash Meal_Course,
    Meal_course, Meal-Course, Meal-Course
  • It is important to bear in mind the conventions
    and limitations of other systems with which your
    system may interact

27
Singular or plural?
  • A class name represents a collection of objects
    should it be singular, as if it were a template,
    or plural, as if it represented all instances of
    itself?
  • Neither alternative is better or worse than the
    other, but mixing the two in your ontology can be
    confusing consistency is key
  • Using the same form helps prevent simple modeling
    mistakes, like making a singular-form instance of
    a plural-form class

28
Prefix and Suffix Conventions
  • Some knowledge-base methodologies suggest using
    prefix and suffix conventions to distinguish
    between classes and slots
  • Ex add has- to the beginning of a slot name
  • Ex add of to the end of a slot name
  • Advantage immediately distinguishes a name as
    that of a slot or a class
  • Disadvantage makes the names slightly longer

29
Other resources
  • Protégé-2000
  • Duineveld et al. 2000 compares a number of
    ontology-development environments
  • Gómez-Pérez 1998 presents alternative
    ontology-development methodologies
  • Ontolingua tutorial (Farquhar 1997) discusses
    formal aspects of knowledge modeling
  • Chimaera (McGuinness et al. 2000) provides
    diagnostic tools for analyzing ontologies

30
Conclusions
  • Ontology development is an iterative process,
    requiring many passes to complete
  • Consistency of convention is key in developing a
    readable, easy-to-use knowledge representation
  • It is important to strictly define your domain
    and scope before beginning
  • Remember to be true to the reality that is being
    modeled within your relevant scope, regardless of
    any modeling rules or guidelines

31
Conclusions
  • There is no single correct way to model a domain
  • The model you choose will be affected by your
    scope, understanding and point of view, and
    potential applications
Write a Comment
User Comments (0)
About PowerShow.com