Adding an Ontology Concept Using OSF Ontology

This guide provides basic steps for adding a new concept to an ontology using OSF ontology.

Why Add a New Concept?
Let's assume, possibly because of adding new data to your system, that you have decided you need to add a new concept and some attributes to your ontology. You are doing so because you observe that, to properly include your new data in your system, that you are missing a "bridging concept" between an existing concept ("parent") already in the ontology, as well as some attributes (data) that describe that concept. This basic gap can be shown as follows:



Upon identification of such a gap it is now necessary to update an existing ontology using these steps:
 * Define the new class or property; make sure and provide a  for the object, add as many   as 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 Using OSF Ontology
First, we assume you have a basic working knowledge of OSF ontology and its advanced search functionality.

Accessing OSF Ontology
If you are logged in as an admin, you may access OSF Ontology in one of two ways:


 * 1) On the Tools menu, look for the Ontology icon ([[File:structOntology.png]]) and invoke it, or
 * 2) In certain parts of the application you may encounter an Edit Concept tab or similar, which will take you to OSF Ontology when invoked.

Add Class
The first objective is to find the proper placement of the new concept (class) into the existing ontology structure. After selecting the appropriate ontology from the OSF Ontology entry screen and making sure 'Classes' is the active tab selected, there are a few options for finding this placement.

The best way to find an initial placement is to seek the appropriate parent, or superClass. In this case, we are seeking to place the idea of "8-ball" pool, which is perhaps classified as a sport or recreation of some sort.

One option is to do a search, which then highlights available choices. Another is to browse and expand the concept tree shown at the left of the screen:



After finding that Sports and Recreation is indeed a combined concept, we then browse through to find individual sports and then 'Cue sports' as a sub-category within that. Finding the good placement of 'Cue sports' we decide to add a new class under this parent. We do so by choosing this right-click option:

That then allows us to enter the new entry, of '8-ball':

We may also at this time need to enter the URI that is its actual identifier within the database. This entry needs to use the ontology core URI as its base URI, followed by the unique identifier relevant to this new entry (we choose  after the core URI hash . (Not shown.)

We are then in a position to add the essential descriptive material to this entry: ,  , description and any other relational information (  and other parent classes can be useful at this point if relevant).



Upon Saving, this new concept (class) is committed to the updated ontology and we can proceed to more additions if needed.

Add Property
Property (attribute) entry proceeds in a similar manner. Once the Property tab is chosen, we see much the same interface with much the same choices:



In this case, we have chosen to add an attribute related to pool table sizes and descriptions:



Again, we enter the relevant,   and   fields, plus other specifications related to assertions about the (for example) range and domain of the new property. Then, when these specifications are done, we Save the update and proceed to new additions if needed.

In this manner, new structure and definitions are added to the ontology to reflect our update requirements.

Test for Consistency
Then, occasionally, test the ontology for consistency. See further Inferencing with Protégé.

Alternative Protégé Example
You may also want to see an alternative explanations for Adding an Ontology Concept using Protégé.