Ontology Storage

A tool for scalable storage and maintenance of large ontologies.

Institution: Slovak University of Technology
Technologies used: .NET Framework 2.0, C#, Microsoft SQL Server 2005
Inputs: Import from RDF/XML or OWL/XML, API usage
Outputs: Relational ontology storage, (Optional) Export to OWL/XML

Addressed Problems

With the advent of semantic web and related research a number of comprehensive ontologies holding vast amounts of data were designed. As a result, several storage solutions were devised each with its own scheme based on relational database or proprietary storage algorithms and structures. Many proposed solutions and frameworks use triple stores to hold all data in a large vertical table which while general proves to become inefficient when handling large sets of data for maintenance or when executing complex queries.

In order to query and manipulate with data, several specialized ontology querying languages have been proposed, each with different expressive strength. Many of those have no overlapping semantics and language constructs - some resemble SQL, while others take more functional rather than relational approach. There is no unifying standard and therefore several recommendations, recommendation candidates and vendor-specific languages are developed independently.


This tool was developed with scalability and performance as its primary goal and uses data model which closely reflects Ontology Web Language W3C Recommendation entities (namely OWL Lite specification and parts of OWL DL, http://www.w3.org/TR/owl-ref/) to alleviate the performance problem by storing strongly-typed data in separate tables. This approach trades general representation for overall performance. Tool comes with a set of object-oriented APIs to provide easier access to data using in-memory model backed by transparent persistent storage.

In an effort to enable seamless querying and unify most popular ontology querying languages, general query representation was designed. This representation acts as an immediate step between source and target query representation to provide the most general structure transformable to any desired representation. Upon execution of a query, regardless of the source language, this general representation is translated into SQL query of the underlying relational database engine used by the ontology storage tool.

Relational ontology storage logical data model

Relational ontology storage logical data model - large view