Managing Ontologies

Configuring OSF Ontology
To configure OSF Ontology, you have to do is to click on the top  menu item. Then, you have to click the.



Then click the the  tab. Multiple configuration options can be configured on this page:
 * 1) This option force the read mode of the ontology management tool. All users, including system administrator will only be able to read and export ontologies from this user interface. All the administrative tasks, such as creating, deleting, saving, etc. ontologies will be done using the Ontologies Management Tool command line utility.
 * 2) This will enable the reasoner by default when a OSF Ontology view page is being opened by a user.
 * 3) This will enable the search feature embedded into the OSF Ontology module. If this option is unchecked, all the search options will be disabled in the module.
 * 4) This will enable the export feature embedded into the OSF Ontology module. If this option is unchecked, the export button won't be displayed to the users.
 * 5) This is the path of the folder where ontologies files get saved on the server.
 * 6) This is the path of the folder where ontologies cache files get saved on the server. This is used to to save the cache of the ontologies. These caches are used by OSF for Drupal and OSF.
 * 7) This is the path of the folder where ironXML Schemas cache files get saved on the server. This is used to to save the cache of the ontologies in ironXML schemas. These caches are mainly used by the semantic components. This folder should be accessible on the web so that any semantic component has access to them.
 * 8) This is the path of the folder where ironJSON Schemas cache files get saved on the server. This is used to to save the cache of the ontologies in ironJSON schemas. These caches are normally used by some JavaScript applications. This folder should be accessible on the web so that any applications that uses these JSON schemas has access to them.
 * 1) This will enable the export feature embedded into the OSF Ontology module. If this option is unchecked, the export button won't be displayed to the users.
 * 2) This is the path of the folder where ontologies files get saved on the server.
 * 3) This is the path of the folder where ontologies cache files get saved on the server. This is used to to save the cache of the ontologies. These caches are used by OSF for Drupal and OSF.
 * 4) This is the path of the folder where ironXML Schemas cache files get saved on the server. This is used to to save the cache of the ontologies in ironXML schemas. These caches are mainly used by the semantic components. This folder should be accessible on the web so that any semantic component has access to them.
 * 5) This is the path of the folder where ironJSON Schemas cache files get saved on the server. This is used to to save the cache of the ontologies in ironJSON schemas. These caches are normally used by some JavaScript applications. This folder should be accessible on the web so that any applications that uses these JSON schemas has access to them.
 * 1) This is the path of the folder where ontologies cache files get saved on the server. This is used to to save the cache of the ontologies. These caches are used by OSF for Drupal and OSF.
 * 2) This is the path of the folder where ironXML Schemas cache files get saved on the server. This is used to to save the cache of the ontologies in ironXML schemas. These caches are mainly used by the semantic components. This folder should be accessible on the web so that any semantic component has access to them.
 * 3) This is the path of the folder where ironJSON Schemas cache files get saved on the server. This is used to to save the cache of the ontologies in ironJSON schemas. These caches are normally used by some JavaScript applications. This folder should be accessible on the web so that any applications that uses these JSON schemas has access to them.
 * 1) This is the path of the folder where ironXML Schemas cache files get saved on the server. This is used to to save the cache of the ontologies in ironXML schemas. These caches are mainly used by the semantic components. This folder should be accessible on the web so that any semantic component has access to them.
 * 2) This is the path of the folder where ironJSON Schemas cache files get saved on the server. This is used to to save the cache of the ontologies in ironJSON schemas. These caches are normally used by some JavaScript applications. This folder should be accessible on the web so that any applications that uses these JSON schemas has access to them.
 * 1) This is the path of the folder where ironJSON Schemas cache files get saved on the server. This is used to to save the cache of the ontologies in ironJSON schemas. These caches are normally used by some JavaScript applications. This folder should be accessible on the web so that any applications that uses these JSON schemas has access to them.

Using OSF Ontology
All of these functions are not available to all users, except viewing available ontologies (if settings allow so). Most options require being at least at a 'curator' or 'admin' level.

Create, modify, annotate or delete actions on ontologies are the most privileged functions within the system. As a result, most all ontology actions are accessed (if permissions exist) through the broad Ontology tool from the main tools listing, or from privileged positions on a few other screens.

Main Screen
Upon access, you are presented with the main OSF Ontology interface:



The organization of the OSF Ontology application presents all currently available and active ontologies listed in the left panel. These are organized into three categories:


 * Local Ontologies - these are the domain ontologies governing the use of your specific portal. They generally contain the specific "world view" and content organization specific to your problem or domain. Most (but not necessarily all) of your editing and modifications will occur in this section. This is also the basis for the screen examples below
 * Reference Ontologies - these, too, are content ontologies, but generally represent external ontologies that you are re-using in your specific portal for interoperability or sharing purposes
 * Administrative Ontologies - these are internal ontologies that guide and govern the use of widgets, permissions, components and other administrative functions of your site. Most site administrators will have little or no reason to make any changes to ontologies in this category.

The currently active ontology is picked by selecting one of the radio buttons, in which case the selection is highlighted (orange/brown in this example). The active ontology is what is subject to the various button options to the right of the display.

Also, note the Ontology icon ; when selected for any of the ontologies listed, it enables you to update and change that ontology's metadata:



Via this choice, you may change the title, description or ontology type (for the listing on the main page). If you need to make more nuanced annotations (such as version number, etc.), you will need to use a third-party ontology editor such as Protégé.

From the main screen you may also search the Active or All ontologies (described further below).

The main screen also offers various user or admin functions, as shown by the button options at the right of the display. Each of these options is described in detail below.

Finally, note that your interaction with the OSF Ontology application is recounted via the "breadcrumbs" listing at the upper left of the application.

View/Annotate Option
The View/Annotate option under the right User/Admin panel is the key one in the application. As such, we will give this option more attention than the others.

Upon invoking the View option, the hierarchical tree for the selected ontology appears on the left; structural and definitions on the right. As we will see, sub-sections below describe this right-hand panel in more detail, since it is the location for most activity and use in the OSF Ontology application:



Later sections describe the various section in the right-hand panels in more detail.

Searching
Searching can take place on the currently active ontology or all loaded (available) ontologies. Note that selection was made above via the radiobutton under the search box.

Also, depending on settings, searching can also take place on only the preferred label, or on alternative labels or descriptions (in fact, all annotations). (This is part of the settings.)

When entering search terms, the system automatically attempts to complete the matching search phrase. A minimum of three entered characters guides this auto-completion functionality:



When search is initiated, the potential results list also auto-completes for what you have already typed into the search box. Upon selection of one of these items (or completion of the full search phrase), the OSF Ontology system issues a search query to the remote server, which then acts to auto-populate the ontology tree on the left-hand panel. In this case, we have selected 'communitiy facilities':



The desired search results then automatically expand the ontology tree. This is really helpful for longer ontologies (the example one shown has about 3000 concepts and about 6000 axioms) and means quicker initial tree loading.

Once completed, the (multiple) occurrences of the search item are shown in highlight throughout the tree.

Note this search is not necessarily restricted to the actual node label. Alternative labels and descriptions may also be used to find the search results. This greatly expands the findability of the search function.

Advanced Searching
OSF Ontology also offers advanced searching, available from the main screen link (actually, as auto-complete works, this link gets hidden):



This functionality is identical to the standard advanced search functionality. See that document for detailed guidance on its filtered search and auto-completion aspects.

Contextual Drag-and-Drop
It is possible to drag items from the left-hand tree panel into the specifications at the right. This is contextual. In this first example, we see an attempt to drop a "class" result (or concept) into the annotation panel, which violates the structure of the system and is therefore not allowed (as shown by the visual red X cues):



However, if we drag and drop from the tree in an allowable structural definition, we get the visual green check as a cue the move is legal:



This functionality and feedback means that only allowable assignments can be dropped into a new structural definition.

Tooltips
The tree labels are themselves based on the preferred labels assigned to things. However, if you want to see the actual ontology URI reference, you can do so via the tooltip when mousing over the item:



The tooltip shows the full URI path (unique identifier) of the selected item.

General Operations
These operations all tend to apply to the Classes, Properties and Individuals tabs. Please refer to this section for general use tips.

Note: as you work with ANY tab or individual selection from the left-hand list for that tab, you MUST Save you changes before proceeding to another item or tab. If you move away from the current view, your modifications will be lost if you have not Saved.

Each panel has an expand and collapse arrow  shown at the upper right of its panel. These causes the panel's individual entries to either be exposed or hidden.

At the right of each entry, new entries can be invoked with the green plus symbol ; existing entries can be deleted with the red minus symbol. (See Structural Relationships below.)

Further, some of the fields feature auto-completion, which means there is a URI designation for the field entry, drawn from existing objects in the various ontologies. If applicable, the entry field will include either this spinning symbol or an alternate designator. When encountered, you trigger the auto-completion list by entering a minimum of three characters. Then, you must pick one of the entries from the dropdown list. It will then populate the entry field.

In working with each panel, note that each entry also has the search and auto-complete features earlier noted. Drag-and-drop is also contextual into these panels or not, depending on the nature of the item selected in the left-hand panel (tree).

Classes Tab
With this basic overview of the operation and layout of OSF Ontology, we are now ready to focus on the items in the right-hand panel. Again, we are using the main View option.

These right-hand panels include separate sections for:
 * Annotations
 * Structural relationships
 * Instances
 * Linkage to characteristics, and
 * Advanced settings.

Each of these is discussed in turn.

Annotations
Annotations provide the descriptions about the thing at hand and its associated metadata. (These are separately defined under the Properties tab -- see below -- or are as part of the imported ontology specification.)

The available annotations are displayed in this panel when expanded:



Entries are simply provided by entering values into the text fields and then Saving.

Structural Relationships
The structural relationships are the means to set parent and child relations between concepts, as well as to instruct disjoint or equivalent class relations. The Structural Relationships panel is the key one for setting the interconnections within the graph structure at the heart of the governing ontology.



Most of the key structural relationships in OWL are provided by this panel. (However, note there are some additional and rarely used structural specifications in OWL. These must be set via a third-party external application. Such potential interactions are made possible via the flexible import and export options with OSF Ontology -- see further below.)

Instances (Individuals)
Another right-hand panel provides the facility to assign individuals to the classes (or concepts) established under the prior two panels. (These can also be handled directly via the Individuals tab; see below.) In this case, we are looking at some specific 'community facilities' to assign to that concept:



As with the prior panels, new instance may be added or discarded ones deleted. Individual instances and their characteristics may also be updated or changes.

Linkage to Characteristics
Another aspect to OSF ontologies is the ability to relate concepts to various metadata characteristics or attributes that might describe that concept's instances. This relationship is done via the dedicates hasCharacteristic property, which is assigned via this right-hand panel:



This option has the specific behavior of allowing one or more properties (characteristics) to be asserted for a given a class (concept).

Advanced Options
Display and widget and other options are set under the Advanced Options panel. One item to note are the widgets that may be assigned for displaying a given information item:



The relationship of widgets (or semantic components) to information items is a deserving topic in its own right. For more information about this topic, see the semantic components category, especially regarding the SCO Ontology.

Properties Tab
Properties -- that is the relations or predicates between items or nodes -- are established in a similar manner to that for Classes. To add a new property or modify an existing one, pick the Properties tab in the left-hand portion of OSF Ontology:



Note the Properties tab has the same basic layout and operations as the Classes tab, including similar right-hand panels such as annotations or structure.

A key difference is the ability to set domains for properties. When set, this constrains the property to be only applicable to a certain class of nodes as the specifying subject.

Individuals Tab
Individuals are the instance members of classes.



Note the Individuals tab has the same basic layout and operations as the Classes tab, including similar right-hand panels such as annotations or structure.

Key uses of this tab are to provide the data and display definitions for specific individuals and indicators. For more information about some of these settings, see the semantic components category, especially regarding the SCO Ontology.

Export Option
We are now ready to look at the non-View options in OSF Ontology.

The first of these is the Export button. When invoked, it brings up the save dialog with the ability to assign an ontology file name:



Upon saving, it stores the currently active ontology in RDF/XML format:



This file can now be used in an external ontology editor (such as Protégé) or edited directly with a text editor. After those changes are made, generally useful when bulk changes are desired, the updated file can be imported back into the system; see Import below.

Create Option
At all times OSF Ontology also allows you to create a new ontology:



The URL (such as http://purl.org/ontology/myont#) becomes the base URI for your new ontology.

The new ontology is created with a basic structure, from which you only need fill in your new concepts or classes and relationships:



Note: there is a file on your standard OSF install --  -- that contains the starting basis for this initial ontology framework. Should you wish to create ontologies with a different starting structure, modify this file and save it under the same name. It will then become the starting basis for new created ontologies.

As new items are entered with their relationships, the basic ontology tree also expands and grows:



Once created, this new ontology also now appears on your available local ontologies when first invoking the OSF Ontology application.

Save Option
The Save option saves all modifications on the file, on the server. If you have made local changes that have NOT been saved, your ontology will be annotated on the main screen as shown with the phrase ' (modified; not saved)' :

You are advised to Save prior to all export or Generate All options.

Delete Option
The Delete option removes the currently active ontology from your local instance AND from your server hosting the instance. Therefore, use with caution.

Note: as an alternative to Delete you may use the Reload All option to wipe out any local, unsaved options and to restore the starting versions located on your server instance. See below.

Like other options, you invoke Delete from the right-hand options buttons:



Prior to actual deletion, you are prompted if you want to proceed:



The Delete option removes the server version. This is the most drastic option since removal means no local instances may again access or use that ontology.

Warning: deletions may NOT be undone. Make sure you keep backups on occasion using the Export option in case you make a deletion mistake !!!

Import Option
OSF Ontology supports all OWL API serializations, specifically RDF/XML, N3, Manchester Syntax, Turtle. When import is invoked, a file open dialog is presented that enables you to find the ontology on your local hard drive:



The Import feature has no file extension limitations; make care to pick and assign the proper types for importation.

Via the Import and Export buttons, it is possible to work locally with OSF Ontology while exporting to more capable third-party tools. Then, once use of those tools is complete, Import provides the ability to re-import the updated ontology back into the local collection.

Note: you are advised to use the inference option at time of import, even though it takes a bit more time to load, since it will build the forward-chain of inferences useful to your system.

Generate All Option
The Generate All option recreates the serializations files created from these ontologies, like the .SRZ files used by OSF Web Service and OSF-Drupal; the ironXML schema used by the semantic components, etc. To learn more about these structures, see the Internally Generated Schema document.

The Generate All option should be invoked any time you have made more than minor changes to your underlying ontologies. Frequently, if you have made changes and you do not see them reflected in your portal tools or interfaces, it is because you have neglected to update these structures.

Note: the Generate All option takes quite a bit of time to complete, though it does run in background. It is not unusual for this operation to take 30 min or more. You may work with other aspects of the site, it is just that updates will not be fully reflected until this generation step is complete.

To invoke Generate All, you pick that option from the right-hand buttons listing:



There is a confirmation message presented when the update is successful.

Reload All Option
The Reload All option replaces all ontologies on your local instance with those on the server. So long as you have not done any Saving during your current session, invoking this option is akin to starting over with the same conditions at the start of your session.