Ontologies are the central control and "brains" of an OSF portal. Their are many steps involved in creating, expanding, updating and maintaining these ontologies, and multiple ontologies are also frequently involved. Besides the material and links thereto provide herein, you may also want to become familiar with the glossary of ontology and related terms.
The ontologies workflow fits within the overall OSF workflow as follows:
To understand this workflow in more detail, we first provide a general overview and then attend to the specific parts.
Ontologies Architecture and Modularization in OSF
Ontologies are used in a variety of ways in an OSF installation. Two overview documents help to explain this variety.
The first document describes the overall ontology modularization and architecture within an OSF installation. A second document describes the roles and use of ontologies in an OSF instance. Both of these documents are in turn reinforced by an ontology best practices document.
Ontologies are constructed, edited and managed based around the OWL API in an OSF installation. The OWL API is the canonical basis, using the OWL 2 ontology language, for managing these artifacts.
As the diagram shows, all workflow components center around this API:
The OWL API itself interacts with the basic ontologies used by the OSF system. Generally speaking, these are the domain ontology (which represents the domain scope at hand), the semantic component ontology (SCO) that instructs how the display widgets should behave in relation to different data types, and the irON vocabulary that guides how instance records in the datasets used by the system are properly linked.
The OWL API also is the basis for interacting with the third-party Protégé ontology development environment or the conStruct ontology management tools, structOntology, which is one of the embedded and accessible directly within an OSF installation.
The structWSF framework also indexes the ontologies via the OWL API layer, which means there are very useful search and other browse tools related to the ontologies available.
From a construction and management perspective, the box above for conStruct (structOntology) is the most relevant to daily work operations.
In computer science and information science, an ontology is a formal representation of a set of concepts within a domain and the relationships between those concepts. It is used to reason about the properties of that domain, and may be used to define the domain. An ontology provides a similar role for the semantic Web as does a schema, say, for relational databases.
Ontologies, especially what we term adaptive ontologies, are at the heart of an OSF installation. Because of this central role, we call OSF and its instantiations an ontology-driven application. It is also important to understand the basis, construction and logical role of ontologies in order to develop, maintain and extend them for the application. The Ontologies: Basic Groundings document provides explanation of these basic groundings.
Central Role of the OWL API
As the diagram above makes clear, the OWL API plays an essential role in the overall workflow of ontologies. This is in keeping with the basic normative design of ontology tools described elsewhere.
By having all aspects go through a central API, it is possible for multiple tools to work off of the same ontologies.
Datasets, Attributes and Entities
Instances are individual records within a dataset. Many of them are also named entities, which can further be recognized by name within a document. When assembling named entities or instance records in datasets, it is important to map new attributes to the existing ontology structure. See further the documentation on the Datasets Workflow.
Ontology Creation and Maintenance
The central aspect of the ontology workflow is ontology creation and management. This is principally accomplished via the structOntology tool, which is a part of the conStruct toolset. See further the Individual conStruct Ontology (structOntology) Tool manual.
structOntology is OSF's backoffice ontology editing and management tool. Unlike similar tools of the past, structOntology exists on the same installation as the ontology that drives it. There is no need to go off to a separate application, make changes, re-import, and then test. structOntology allows all of that to occur locally with the OSF instance in which it resides. structOntology provides all of the standard CRUD actions (create - read - update - delete). It also have advanced search and drag-and-drop functionality.
If you prefer a different environment for managing your ontologies, the open source Protégé system is excellent. It has a capable (and more complicated) editing environment, with some suggested tips for how best to work with it. We also provide a separate step-by-step document on Adding an Ontology Concept using Protégé.
Any properties or classes needed by the dataset structural analysis as noted above, but which are not yet in the system, need to be added to the existing ontology(ies). Like the inspection steps above, this updating of the ontology(ies) is based on the structOntology tool (though, as before, Protégé or a similar ontology editing platform may also be used).
Updates to the existing ontologies may occur under any of these circumstances:
- A new understanding of the domain, which requires extension or enhancement of the existing structure
- Adding a new, local dataset
- Updating or expanding a local dataset, or
- Incorporating a remote dataset accessible via your structWSF network.
In any case, the same workflow steps apply.
The basic process of updating an existing ontology has these steps:
- Define the new class or property; make sure and provide a
prefLabelfor the object, add as many
altLabelsas applicable and useful, and define the object with a textual description sufficient to bound and scope the new object
- Define the relationships of this new object to other classes or properties, and
- Periodically test your updated ontology for logic consistency using a reasoner.
Specific steps and guidance for this portion of the dataset workflow are provided by the Datasets: Update Ontology(ies) document.
Since it is likely you and others will be making changes to existing ontologies with possibly multiple tools, it is important to maintain proper versioning. Some basic guidance in this area is provided by the Version Control of Ontologies document.
Ontology Consistency Testing
Consistency testing of ontologies is to check whether there are any logical inconsistencies in the definition of concepts or their relationships. Consistency testing is a set of separate steps. We provide specific guidance for consistency testing with Protégé.
Adaptive Ontology Considerations
As used within OSF, an adaptive ontology is a conventional knowledge representational ontology that has added to it a number of specific best practices. Another part of the adaptive ontology consideration is the proper construction and use of the semantic components ontology.
Ontology Best Practices and Tips
In their particular role as adaptive ontologies, there a number of best practices recommended for ontologies as used within an OSF installation.
For domain ontologies, one aspect of this is "punning" via metamodeling, whereby concepts can be treated either as classes (aggregrations of things) or as instances, which can be characterized in their own right. Here is a basic representation of how the same idea of a thing, in this case trucks, can be treated in both of these ways:
Additional best practices include guidance on use of labels and definitions to support user interfaces and ways to organize and manage vocabularies. There is also a series on ontology best practices from Mike Bergman's blog. and a further document on ontology vocabulary design as well as a general tutorial series.
Tools and Tooling Environment
Two prominent external tools useful in an OSF ontology environment are Protégé (noted above) and Cytoscape for ontology graph visualization. Here are areas within the workflow amenable to these tools steps:
Of course, as noted, the principal tool for OSF ontologies is structOntology.