Abstract

BackgroundThe increasing use of ontologies highlights the need for a library for working with ontologies that is efficient, accessible from various programming languages, and compatible with common computational platforms.ResultsWe developed owlcpp, a library for storing and searching RDF triples, parsing RDF/XML documents, converting triples into OWL axioms, and reasoning. The library is written in ISO-compliant C++ to facilitate efficiency, portability, and accessibility from other programming languages. Internally, owlcpp uses the Raptor RDF Syntax library for parsing RDF/XML and the FaCT++ library for reasoning. The current version of owlcpp is supported under Linux, OSX, and Windows platforms and provides an API for Python.ConclusionsThe results of our evaluation show that, compared to other commonly used libraries, owlcpp is significantly more efficient in terms of memory usage and searching RDF triple stores. owlcpp performs strict parsing and detects errors ignored by other libraries, thus reducing the possibility of incorrect semantic interpretation of ontologies. owlcpp is available at http://owl-cpp.sf.net/ under the Boost Software License, Version 1.0.Electronic supplementary materialThe online version of this article (doi:10.1186/s13326-015-0035-z) contains supplementary material, which is available to authorized users.

Highlights

  • The increasing use of ontologies highlights the need for a library for working with ontologies that is efficient, accessible from various programming languages, and compatible with common computational platforms

  • One of the most widely used approaches for representing ontologies is the family of languages referred to as the Web Ontology Language (OWL) [1]

  • The resulting library, owlcpp, is designed to support a common workflow where OWL ontologies written in RDF/XML are loaded from the file system and submitted to a reasoner for processing (Fig. 1). owlcpp is implemented in standard C++ and is aimed primarily at C++ and Python software developers

Read more

Summary

Results

Evaluation To evaluate owlcpp, we compared the document loading time, triple query time, and memory foot print of owlcpp with those of Redland, Jena, and OWL API. The owlcpp loading rate is faster than that of OWL API for four of the six test ontologies. Loading an ontology file into an owlcpp triple store can be accomplished with just two lines of code, whereas the same operation through the Redland Raptor library API requires over a dozen lines [43]. We designed owlcpp to have a compact, in-memory storage of RDF terms and triples, efficient indexing of stored triples, and no virtual machine requirement The latter facilitates owlcpp’s deployment in HPC environments. To evaluate the scalability of owlcpp, we compared its memory footprint, ontology document loading time, and triple query time with those of Jena, Redland, and OWLAPI. Owlcpp and Redland are natively-compiled libraries, whereas Jena and OWL API run under Java virtual machine and exhibit less deterministic performance and memory footprint due to just-in-time compilation and garbage collection.

Conclusions
Background
Full Text
Published version (Free)

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call