This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
misc:ontology [2011/10/06 10:25] jpetrovic [How to create an ontology?] |
misc:ontology [2023/06/19 16:03] (current) |
||
---|---|---|---|
Line 3: | Line 3: | ||
===== What is an ontology? ===== | ===== What is an ontology? ===== | ||
- | In philosophy, | + | **In modern computer science**((In philosophy, //ontology is the study of being or existence. It seeks to describe or posit the basic categories and relationships of being or existence to define entities and types of entities//. - [[http://books.google.hr/books?id=Bp7tSjq0j_MC|Rana, Noman. Small Business - The Art of the Start. Self-Help Publishers, 2009.]])) and information science basic definitions consider an ontology to be: |
- | * "//ontology is the study of being or existence. It seeks to describe or posit the basic categories and relationships of being or existence to define entities and types of entities.//"(([[http://books.google.hr/books?id=Bp7tSjq0j_MC|Rana, Noman. Small Business - The Art of the Start. Self-Help Publishers, 2009.]])) | + | * "//a data model that represents a set of [[misc:concept|concepts]] within a domain, and the relationships between those [[misc:concept|concepts]]//"(([[http://books.google.hr/books?id=Bp7tSjq0j_MC|Rana, Noman. Small Business - The Art of the Start. Self-Help Publishers, 2009.]])) |
+ | * "//an explicit specification of a conceptualization.//"(([[http://tomgruber.org/writing/ontolingua-kaj-1993.pdf|Gruber, Thomas R. A translation approach to portable ontology specifications. Knowledge acquisition, 5: 199-220, 1993.]])) | ||
+ | * "**//an explicit formal specification of the terms in the domain and relations among them.//**"(([[http://tomgruber.org/writing/ontolingua-kaj-1993.pdf|Gruber, Thomas R. A translation approach to portable ontology specifications. Knowledge acquisition, 5: 199-220, 1993.]] cited by [[http://protege.stanford.edu/publications/ontology_development/ontology101.pdf|Noy, Natalya F., and Deborah L. Mcguinness. Ontology Development 101: A Guide to Creating Your First Ontology, 2001.]])) | ||
- | **In modern computer science** and information science basic definitions consider an ontology to be: | + | In more details, an ontology usually includes: |
- | + | ||
- | * "//a data model that represents **a set of [[misc:concept|concepts]] within a domain**, and the **relationships between those [[misc:concept|concepts]]**//"(([[http://books.google.hr/books?id=Bp7tSjq0j_MC|Rana, Noman. Small Business - The Art of the Start. Self-Help Publishers, 2009.]])) | + | |
- | * "//**an explicit specification of a conceptualization**.//"(([[http://tomgruber.org/writing/ontolingua-kaj-1993.pdf|Gruber, Thomas R. A translation approach to portable ontology specifications. Knowledge acquisition, 5: 199-220, 1993.]])) | + | |
- | * "//an explicit formal specification of the terms in the domain and relations among them//"(([[http://tomgruber.org/writing/ontolingua-kaj-1993.pdf|Gruber, Thomas R. A translation approach to portable ontology specifications. Knowledge acquisition, 5: 199-220, 1993.]] cited by [[http://protege.stanford.edu/publications/ontology_development/ontology101.pdf|Noy, Natalya F., and Deborah L. Mcguinness. Ontology Development 101: A Guide to Creating Your First Ontology, 2001.]])) | + | |
- | + | ||
- | In more details, an ontology can be described as: | + | |
* a formal explicit description of //**concepts**// or //classes// in a domain of discourse, with | * a formal explicit description of //**concepts**// or //classes// in a domain of discourse, with | ||
* **properties of each concept** describing various features and attributes of the concept (//slots//, //roles// or //properties//), and | * **properties of each concept** describing various features and attributes of the concept (//slots//, //roles// or //properties//), and | ||
- | * **restrictions on concept** slots (//facets// or //role restrictions//).(([[http://protege.stanford.edu/publications/ontology_development/ontology101.pdf|Noy, Natalya F., and Deborah L. Mcguinness. Ontology Development 101: A Guide to Creating Your First Ontology, 2001.]])) | + | * **restrictions on concept** slots (//facets// or //role restrictions//), and |
- | + | * **instances**, or concrete examples of classes included.(([[http://protege.stanford.edu/publications/ontology_development/ontology101.pdf|Noy, Natalya F., and Deborah L. Mcguinness. Ontology Development 101: A Guide to Creating Your First Ontology, 2001.]])) | |
- | An ontology has the following properties:(([[http://books.google.hr/books?id=Bp7tSjq0j_MC|Rana, Noman. Small Business - The Art of the Start. Self-Help Publishers, 2009.]])) | + | |
- | + | ||
- | * it is used to reason about the objects in a domain; | + | |
- | * specifies the classes of concepts and their relations at a higher level than relevant to the domain; | + | |
- | * captures the intrinsic conceptual structure of a domain; | + | |
- | * forms the hearth of the knowledge representation within a domain. | + | |
===== Why do we need an ontology? ===== | ===== Why do we need an ontology? ===== | ||
Line 36: | Line 25: | ||
* //analyze domain knowledge// | * //analyze domain knowledge// | ||
- | ===== Ontology software ===== | ||
- | |||
- | Some of the software applications for creating ontologies are: | ||
- | |||
- | * [[http://www.ksl.stanford.edu/software/ontolingua/|Ontolingua]] | ||
- | * [[http://protege.stanford.edu/|Protégé]] | ||
- | * [[http://www.opencyc.org/cb/welcome|Open Cyc]] | ||
- | * [[http://www-ksl.stanford.edu/software/chimaera/|Chimaera]] | ||
- | |||
- | ===== How to create an ontology? ===== | ||
- | |||
- | When creating an ontology one should also keep in mind that there are always multiple ways in which an ontology can be designed, and that the ontology should be close to physical or logical objects and their relations in the domain.(([[http://protege.stanford.edu/publications/ontology_development/ontology101.pdf|Noy, Natalya F., and Deborah L. Mcguinness. Ontology Development 101: A Guide to Creating Your First Ontology, 2001.]])) The process of developing an ontology is an **iterative** process which can be described in the following steps:(([[http://protege.stanford.edu/publications/ontology_development/ontology101.pdf|Noy, Natalya F., and Deborah L. Mcguinness. Ontology Development 101: A Guide to Creating Your First Ontology, 2001.]])) | ||
- | - __**Determine the domain and scope of the ontology**__ - Scope and domain of the ontology should be determined knowing what we want the ontology to cover, what we want to use the ontology for, and what information we want it to provide us with. One should also consider reusing or extending existing ontologies((For example see: [[http://www.ksl.stanford.edu/knowledge-sharing/ontologies/|Ontolingua ontology library]] or [[http://www.daml.org/ontologies/|DAML ontology library]])). | + | ===== So how do you create an ontology? ===== |
- | - __**Identify terms important for the ontology**__ - Prior identification of terms which will be used in the ontology can be helpful. | + | |
- | - __**Define classes and class hierarchy**__ (subclass/superclass) - There are different approaches suggested for developing a class hierarchy:(([[http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.48.5917&rep=rep1&type=pdf|Uschold, Mike, and Michael Gruninger. Ontologies: Principles, Methods and Applications. The Knowledge Engineering Review 11, no. 2: 93-136, 1996.]] cited by [[http://protege.stanford.edu/publications/ontology_development/ontology101.pdf|Noy, Natalya F., and Deborah L. Mcguinness. Ontology Development 101: A Guide to Creating Your First Ontology, 2001.]])) the **top-down approach** (where process starts by identifying the more general domain concepts and then progresses towards more specific concepts), the **bottom-up approach** (where process starts by identifying the more specific domain concepts and then progresses towards more general ones), or the **combination**, which combines both top-down and bottom-up approaches. | + | |
- | - __**Define the properties of classes (slots)**__ - Slots help defining the internal structure of concepts. Slots can for example be extrinsic, intrinsic, parts or relationships to other individuals. It is important to keep in mind that subclases inherit all the slots of their superclasses. | + | |
- | - __**Define the facets of the slots**__ - Slots can have different restrictions or facets restricting for example: **slot cardinality** (number of values a slot can have, for example 1, more or 0 - if this slot in a particular subclass can't have a value), **slot-value type** (for example //string//, //number//, //Boolean//, //enumerated// or even //instance//), or **domain** (the domain of a slot contains all the classes with this slot) and **range** (if a slot is an instance, its range are considered to be all the classes the instance can be originating from) of a slot. | + | |
+ | [[misc:ontology_steps|You can follow this brief guide]] or a more detailed description with examples: [[http://protege.stanford.edu/publications/ontology_development/ontology101.pdf|Ontology Development 101: A Guide to Creating Your First Ontology]]. | ||
+ | ===== Ontology and knowledge assessment ===== | ||
+ | //Ontologies contain domain knowledge in the form of definitions of terms, individuals belonging to these terms and relationships between these terms and individuals. The above constitute the asserted knowledge, that is, explicitly defined facts within the ontology. Ontologies also incorporate a reasoning mechanism in order to derive facts from explicitly defined knowledge (Baader et al. 2003). These facts, not explicitly defined in the initial ontology, constitute the inferred knowledge. In this approach, reasoning is applied before question generation and thus, generated questions are based on both asserted and inferred knowledge. As a result, a student performing a test is assessed on recalling factual knowledge, but also is expected to apply some ‘lower level intellectual skills’, in the sense of simple domain specific rules, in order to answer questions based on inferred knowledge. These skills are referred by Gagné et al. (1992) as concrete and defined concepts and are related to the ability to identify and classify specific individuals as members of particular concepts. Nevertheless, domain ontologies are not capable of specifying ‘procedural knowledge’ and thus they cannot be used alone for assessing higher order cognitive skills (Holohan et al. 2006).// | ||