Monday, July 14, 2008

Protege Study







What is an ontology?
An ontology describes basic concepts in a domain and defines relations among them. Basic building blocks of ontology design include:
classes or concepts
properties of each concept describing various features and attributes of the concept (slots (sometimes called roles or properties))
restrictions on slots (facets (sometimes called role restrictions)) An ontology together with a set of individual instances of classes constitutes a knowledge base.





Why create an ontology?
An ontology provides a common vocabulary for researchers who need to share information in the domain. Some of the reasons to create an ontology are:
To share common understanding of the structure of information among people or software agents
To enable reuse of domain knowledge
To make domain assumptions explicit
To separate domain knowledge from operational knowledge
To analyze domain knowledge





How do I create an ontology?
There is no one correct methodology for developing ontologies, nor is there a single correct result. Developing an ontology is usually an iterative process. You start with a rough first pass at the ontology. You then revise and refine the evolving ontology and fill in the details. In practical terms, developing an ontology includes:
defining classes in the ontology
arranging the classes in a subclass-superclass hierarchy
defining slots and describing allowed values for these slots
filling in the values for slots for instances





How do I know it's right?
There are many possible ontologies for any given domain; any particular ontology is just one way of structuring the concepts and relations. There are a few simple principles which can help you make design decisions in many cases:
There is no one correct way to model a domain - there are always viable alternatives. The best solution almost always depends on the application that you have in mind and the extensions that you anticipate.
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.





Where do I start?
You might start by determining what you are going to use the ontology for, and how detailed or general the ontology is going to be. Among several viable alternatives, you will want to determine which one would work better for the projected task, be more intuitive, more extensible, and more maintainable. Remember that an ontology is a model of a real domain in the world and the concepts in the ontology must reflect this reality. After you define an initial version of the ontology, you can evaluate and debug it by using it in applications or problem-solving methods or by discussing it with experts in the field. As a result, you will almost certainly need to revise the initial ontology. This process of iterative design will likely continue through the entire lifecycle of the ontology.





Developing an Example
Suppose we want to develop a system that helps manage the costs and organization of a newspaper. The "examples/newspaper" subfolder of the Protege installation directory contains a completed Protege-Frames project, newspaper, which provides one possible ontology for this domain. Some of the questions we want to answer are:
Who is responsible for each section of the newspaper?
What is the content of each article in a section, and who is its author?
Who does each author report to?
What is the layout and cost of each section? Once we have an idea of what we want to cover, we can list some of the important terms we need. These can include basic concepts, properties they might have, or relationships between them. To begin with we can just collect the terms without regard to the role they might play in the ontology.In the newspaper example we have sections. Each section contains content such as articles and advertisements and has a editor who is responsible for the section. Each article has an author, and that author may or may not be an employee. For each employee, we want to know his or her name and salary, and who he or she reports to.As we continue to generate terms, we are implicitly defining the scope of our ontology, by what we finally decide to include and what to exclude. For example, upon initial examination of the term employee, we might want to add janitor or delivery truck driver. However, on reflection, we might realize that we want our ontology to focus on the costs directly associated with the content generation and presentation of the newspaper. Therefore, we would decide not to include janitor as a term of interest.When we have a fairly complete list, we can start to categorize the different terms according to their function in the ontology. Concepts that are objects, such as article or author, are likely to be best represented by classes. Properties of the classes, such as content or salary, can be represented by slots, and restrictions on properties or relationships between classes and or slots, are represented by slot facets.We will now dive in and show how to use the Protege-Frames interface to create and structure these components of the ontology. http://protege.stanford.edu/





No comments: