GCube Ontology Management Service
Introduction
In gCube the management of ontologies is performed by the Ontology Management Service. This service provides all the required funtionality to manage ontology models in course grained manner (import - remove ontology model), as well as in a fine grained manner (manage ontology resources).
Ontology Management Service
The Ontology Management Service is a gCube Service that manages arbitrary ontology models. The service utilizes the functionality of CMS in order to store ontology schemas (ontology classes and properties) as well as to keep data about ontology individuals for back-up reasons. All the required information about each ontology model is kept locally in the node where the service is deployed in order to provide fast response times to the clients.
Ontology Management Service is composed by the following two port types:
- the OntologyManagerFactory, a factory service that is responsible for the creation and retrieval of ontologies.
- And the OntologyManager, which is the instance service that operates over ontology models
The Ontology Manager Factory Service exposes methods to create and retrieve WS-resources for a given ontology model. At creation time, the schema of the ontology must be imported along with its URI and a name given by the client. Ontologies are identified from their URI and thus the URI is kept unique by the service. The schema is stored in CMS in owl format. In the case of importing an ontology that contains individuals, the service is responsible to produce the schema (i.e. keep only the class and property definitions of the ontology) and afterwords store it in CMS.
The Ontology Manager is the service that manages a given ontology model. This service provides fine-grained methods for managing ontology individuals, property values and relationships between individuals and on the other hand more generic methods (get, update) to manage the ontology schema.
Internally, the management of the ontologies is performed by using the Jena Semantic Web Framework http://jena.sourceforge.net/. The data of the ontologies are maintained in persistent embedded databases. This provides clients with fast response times, small memory consumption and persistency to the data of the ontology.
Resources and Properties
The Ontology Management Service is implemented as a stateful WSRF-compliant web-service, following a factory-instance pattern, and publishes a WS-resource for each annotation model. The resource contains the URI and the name of the ontology as well as the OID of the document containing the schema of the ontology.
Functions
The main functions supported by the Ontology Manager Factory Service are:
- importOntology() – which takes as input the URI of the ontology, the Name of the ontology and the location from where the ontology will be fetched, creates the ontology model, stores the ontology schema to CMS, creates a resource for the ontology model and returns the EPR of the newly created WS-resource.
- getAvailableOntologies() – which returns the URIs and the Names of the available ontology models.
- getOntologyManager () – which takes as input parameter a message containing the URI of the ontology model and returns the EPR of the ontology WS-resource.
Some of the functions supported by the instance service are:
- getOntologySchema() – which returns the schema of the ontology model
- getIndividuals() – which takes as input URIs of ontology classes and for each class returns the individuals in the model that have this class among their types.
- createIndividuals() - which takes as input URIs of ontology individuals and creates them in this model.
- deleteIndividuals() – which deletes individuals from the ontology model.
- addEquivalencePropertyToIndividual() – which creates “same-as”, “see-also” relationships between individuals.
- addOntologyClassesToIndividual() – which adds the given ontology class as one of the classes to which an individual belongs.
- ...