{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,9,22]],"date-time":"2026-09-22T01:05:09Z","timestamp":1790039109881,"version":"4.0.1"},"reference-count":43,"publisher":"Springer Science and Business Media LLC","issue":"1","license":[{"start":{"date-parts":[[2015,9,16]],"date-time":"2015-09-16T00:00:00Z","timestamp":1442361600000},"content-version":"tdm","delay-in-days":0,"URL":"https:\/\/creativecommons.org\/licenses\/by\/4.0"},{"start":{"date-parts":[[2015,9,16]],"date-time":"2015-09-16T00:00:00Z","timestamp":1442361600000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/creativecommons.org\/licenses\/by\/4.0"}],"content-domain":{"domain":["link.springer.com"],"crossmark-restriction":false},"short-container-title":["J Biomed Semant"],"abstract":"<jats:title>Abstract<\/jats:title>\n                  <jats:sec>\n                    <jats:title>Background<\/jats:title>\n                    <jats:p>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.<\/jats:p>\n                  <\/jats:sec>\n                  <jats:sec>\n                    <jats:title>Results<\/jats:title>\n                    <jats:p>\n                      We developed\n                      <jats:italic>owlcpp<\/jats:italic>\n                      , 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,\n                      <jats:italic>owlcpp<\/jats:italic>\n                      uses the Raptor RDF Syntax library for parsing RDF\/XML and the FaCT++ library for reasoning. The current version of\n                      <jats:italic>owlcpp<\/jats:italic>\n                      is supported under Linux, OSX, and Windows platforms and provides an API for Python.\n                    <\/jats:p>\n                  <\/jats:sec>\n                  <jats:sec>\n                    <jats:title>Conclusions<\/jats:title>\n                    <jats:p>\n                      The results of our evaluation show that, compared to other commonly used libraries,\n                      <jats:italic>owlcpp<\/jats:italic>\n                      is significantly more efficient in terms of memory usage and searching RDF triple stores.\n                      <jats:italic>owlcpp<\/jats:italic>\n                      performs strict parsing and detects errors ignored by other libraries, thus reducing the possibility of incorrect semantic interpretation of ontologies.\n                      <jats:italic>owlcpp<\/jats:italic>\n                      is available at\n                      <jats:ext-link xmlns:xlink=\"http:\/\/www.w3.org\/1999\/xlink\" xlink:href=\"http:\/\/owl-cpp.sf.net\/\" ext-link-type=\"uri\">http:\/\/owl-cpp.sf.net\/<\/jats:ext-link>\n                      under the Boost Software License, Version 1.0.\n                    <\/jats:p>\n                  <\/jats:sec>","DOI":"10.1186\/s13326-015-0035-z","type":"journal-article","created":{"date-parts":[[2015,9,16]],"date-time":"2015-09-16T09:39:13Z","timestamp":1442396353000},"update-policy":"https:\/\/doi.org\/10.1007\/springer_crossmark_policy","source":"Crossref","is-referenced-by-count":7,"title":["owlcpp: a C++ library for working with OWL ontologies"],"prefix":"10.1186","volume":"6","author":[{"given":"Mikhail K.","family":"Levin","sequence":"first","affiliation":[],"role":[{"vocabulary":"crossref","role":"author"}]},{"given":"Lindsay G.","family":"Cowell","sequence":"additional","affiliation":[],"role":[{"vocabulary":"crossref","role":"author"}]}],"member":"297","published-online":{"date-parts":[[2015,9,16]]},"reference":[{"key":"35_CR1","unstructured":"OWL 2 web ontology language structural specification and functional-style syntax. 2nd ed. OWL Working Group. http:\/\/www.w3.org\/TR\/owl2-syntax\/ Accessed 11\/25\/2014"},{"key":"35_CR2","unstructured":"Extensible Markup Language (XML) 1.0. 5th ed. http:\/\/www.w3.org\/TR\/2008\/REC-xml-20081126\/ Accessed 01\/23\/2015"},{"key":"35_CR3","unstructured":"W3C XML Schema Definition Language (XSD) 1.1. http:\/\/www.w3.org\/TR\/xmlschema11-1\/ Accessed 01\/23\/2015"},{"key":"35_CR4","unstructured":"RDF 1.1 concepts and abstract syntax. http:\/\/www.w3.org\/TR\/2014\/REC-rdf11-concepts-20140225\/ Accessed 01\/20\/2015"},{"key":"35_CR5","unstructured":"RDF vocabulary description language 1.0: RDF schema. http:\/\/www.w3.org\/TR\/rdf-schema\/ Accessed 11\/25\/2014"},{"key":"35_CR6","first-page":"289","volume-title":"International Semantic Web Conference","author":"H Stuckenschmidt","year":"2004","unstructured":"Stuckenschmidt H, Klein M. Structure-based partitioning of large concept hierarchies. In: International Semantic Web Conference. 2004. p. 289\u2013303."},{"key":"35_CR7","doi-asserted-by":"publisher","first-page":"431","DOI":"10.1007\/11574620","volume-title":"The Semantic Web\u2013ISWC 2005. Lecture Notes in Computer Science, vol. 3729","author":"M Janik","year":"2005","unstructured":"Janik M, Kochut K. BRAHMS: a workbench RDF store and high performance memory system for semantic association discovery. In: Gil Y, Motta E, Benjamins V, Musen M, editors. The Semantic Web\u2013ISWC 2005. Lecture Notes in Computer Science, vol. 3729. Berlin, Heidelberg: Springer; 2005. p. 431\u201345. http:\/\/dx.doi.org\/10.1007\/11574620 32."},{"key":"35_CR8","volume-title":"Proc. of 2nd Workshop on Scripting for the Semantic Web","author":"M Babik","year":"2006","unstructured":"Babik M, Hluchy L. Deep integration of Python with Web Ontology Language. In: Proc. of 2nd Workshop on Scripting for the Semantic Web. 2006."},{"key":"35_CR9","volume-title":"The OWL API: a Java API for OWL ontologies. Semantic Web","author":"M Horridge","year":"2011","unstructured":"Horridge M, Bechhofer S. The OWL API: a Java API for OWL ontologies. Semantic Web. 2011."},{"key":"35_CR10","unstructured":"The OWL API. http:\/\/owlapi.sourceforge.net\/ Accessed 1\/18\/2015"},{"key":"35_CR11","doi-asserted-by":"publisher","first-page":"74","DOI":"10.1145\/1013367.1013381","volume-title":"Proc. of the 13th International World Wide Web Conference","author":"JJ Carroll","year":"2004","unstructured":"Carroll JJ, Dickinson I, Dollin C, Reynolds D, Seaborne A, Wilkinson K. Jena: implementing the semantic web recommendations. In: Proc. of the 13th International World Wide Web Conference. New York, NY, USA: ACM; 2004. p. 74\u201383. http:\/\/doi.acm.org\/10.1145\/1013367.1013381."},{"key":"35_CR12","unstructured":"Apache Jena. https:\/\/jena.apache.org\/ Accessed 1\/18\/2015"},{"issue":"6","key":"35_CR13","doi-asserted-by":"publisher","first-page":"885","DOI":"10.1093\/bioinformatics\/btn042","volume":"24","author":"E Antezana","year":"2008","unstructured":"Antezana E, Ega\u00f1a M, Baets BD, Kuiper M, Mironov V. ONTO-PERL: an API for supporting the development and analysis of bio-ontologies. Bioinformatics. 2008;24(6):885\u20137.","journal-title":"Bioinformatics"},{"key":"35_CR14","unstructured":"RDFLib Is a Python Library for Working with RDF. https:\/\/github.com\/RDFLib Accessed 11\/25\/2014"},{"key":"35_CR15","unstructured":"FuXi, a Bi-directional Logical Reasoning System for the Semantic Web. https:\/\/github.com\/RDFLib\/FuXi Accessed 11\/25\/2014"},{"issue":"5","key":"35_CR16","doi-asserted-by":"publisher","first-page":"577","DOI":"10.1016\/S1389-1286(02)00221-9","volume":"39","author":"D Beckett","year":"2002","unstructured":"Beckett D. The design and implementation of the Redland RDF application framework. Comput Netw. 2002;39(5):577\u201388.","journal-title":"Comput Netw"},{"key":"35_CR17","unstructured":"Redland RDF Libraries. http:\/\/librdf.org\/ Accessed 1\/18\/2015"},{"key":"35_CR18","first-page":"317","volume-title":"MiRE4OWL: mobile rule engine for OWL. Computer Software and Applications Conference Workshops 0","author":"T Kim","year":"2010","unstructured":"Kim T, Park I, Hyun SJ, Lee D. MiRE4OWL: mobile rule engine for OWL. Computer Software and Applications Conference Workshops 0. 2010. p. 317\u201322."},{"key":"35_CR19","unstructured":"ISO\/IEC 14882:2003: Programming Languages: C++, p. 757. International Organization for Standardization (2003). http:\/\/www.iso.org\/iso\/en\/CatalogueDetailPage.CatalogueDetail?CSNUMBER=38110 Accessed 11\/25\/2014"},{"key":"35_CR20","first-page":"472","volume-title":"API Design for C++","author":"M Reddy","year":"2011","unstructured":"Reddy M. API Design for C++. Burlington, MA: Morgan Kaufmann; 2011. p. 472. http:\/\/www.apibook.com\/ Accessed 9\/15\/5015"},{"key":"35_CR21","unstructured":"Raptor RDF Syntax Library. http:\/\/librdf.org\/raptor\/ Accessed 1\/18\/2015"},{"key":"35_CR22","unstructured":"Libxml, the XML C Parser and Toolkit of Gnome. http:\/\/xmlsoft.org Accessed 1\/23\/15"},{"key":"35_CR23","unstructured":"Libiconv\u2013GNU Project. http:\/\/www.gnu.org\/software\/libiconv\/ Accessed 11\/25\/2014"},{"key":"35_CR24","first-page":"292","volume-title":"Proc. of the Int. Joint Conf. on Automated Reasoning. Lecture Notes in Artificial Intelligence, vol. 4130","author":"D Tsarkov","year":"2006","unstructured":"Tsarkov D, Horrocks I. FaCT++ description logic reasoner: system description. In: Proc. of the Int. Joint Conf. on Automated Reasoning. Lecture Notes in Artificial Intelligence, vol. 4130. New York, NY, USA: Springer; 2006. p. 292\u20137."},{"key":"35_CR25","unstructured":"FaCT++ is an efficient description logic reasoner compatible with OWL DL and OWL 2. http:\/\/www.fact-project.org\/FACT++\/ Accessed 01\/23\/2015"},{"key":"35_CR26","doi-asserted-by":"crossref","unstructured":"Boost C++ Libraries. http:\/\/www.boost.org\/ Accessed 1\/18\/2015","DOI":"10.53841\/bpstalk.2015.1.82.18"},{"key":"35_CR27","unstructured":"Boost Iterator Range. http:\/\/www.boost.org\/doc\/libs\/release\/libs\/range\/index.html Accessed 11\/25\/2014"},{"key":"35_CR28","unstructured":"OWL 2 Web Ontology Language Mapping to RDF Graphs. http:\/\/www.w3.org\/TR\/owl-mapping-to-rdf\/ Accessed 11\/25\/2014"},{"key":"35_CR29","volume-title":"Proc. International Conference on Biomedical Ontology","author":"AM Masci","year":"2011","unstructured":"Masci AM, Levin MK, Ruttenberg A, Cowell LG. Connecting ontologies for the representation of biological pathways. In: Proc. International Conference on Biomedical Ontology. 2011."},{"key":"35_CR30","unstructured":"The Ontology for Biomedical Investigations. http:\/\/purl.obolibrary.org\/obo\/obi Accessed 01\/12\/2015"},{"issue":"1","key":"35_CR31","doi-asserted-by":"publisher","first-page":"5","DOI":"10.1186\/gb-2012-13-1-r5","volume":"13","author":"C Mungall","year":"2012","unstructured":"Mungall C, Torniai C, Gkoutos G, Lewis S, Haendel M. Uberon, an integrative multi-species anatomy ontology. Genome Biol. 2012;13(1):5.","journal-title":"Genome Biol"},{"key":"35_CR32","volume-title":"Proc. 3rd Spring Young Researchers\u2019 Colloquium on Software Engineering (SYRCoSE)","author":"V Prus","year":"2009","unstructured":"Prus V. The Boost.Build system. In: Proc. 3rd Spring Young Researchers\u2019 Colloquium on Software Engineering (SYRCoSE). 2009. http:\/\/arxiv.org\/pdf\/1208.6264.pdf Accessed 9\/15\/5015"},{"key":"35_CR33","unstructured":"Boost.Build V2. http:\/\/www.boost.org\/build\/ Accessed 11\/25\/2014"},{"key":"35_CR34","unstructured":"Doxygen. http:\/\/owl.semanticweb.org\/page\/OWL_2_Test_Cases Accessed 1\/18\/2014"},{"key":"35_CR35","unstructured":"OWL 2 Test Cases. http:\/\/owl.semanticweb.org\/page\/OWL_2_Test_Cases Accessed 9\/15\/2015"},{"key":"35_CR36","unstructured":"SWIG, Simplified Wrapper and Interface Generator. http:\/\/www.swig.org\/ Accessed 9\/15\/2014"},{"key":"35_CR37","unstructured":"Vertebrate Taxonomy Ontology. http:\/\/code.google.com\/p\/vertebrate-taxonomy-ontology\/ Accessed 01\/12\/2015"},{"key":"35_CR38","unstructured":"Medical Subject Headings. http:\/\/www.nlm.nih.gov\/mesh\/meshhome.html Accessed 01\/12\/2015"},{"key":"35_CR39","unstructured":"The Drug Ontology. https:\/\/ontology.atlassian.net\/wiki\/display\/DRON\/Drug+Ontology+Home Accessed 01\/12\/2015"},{"key":"35_CR40","unstructured":"BioModels Ontology. http:\/\/bioportal.bioontology.org\/ontologies\/BIOMODELS Accessed 9\/15\/2015"},{"key":"35_CR41","unstructured":"OpenGALEN. http:\/\/www.opengalen.org Accessed 11\/25\/2014"},{"issue":"1","key":"35_CR42","doi-asserted-by":"publisher","first-page":"89","DOI":"10.1016\/S1071-5819(02)00127-1","volume":"58","author":"JH Gennari","year":"2003","unstructured":"Gennari JH, Musen MA, Fergerson RW, Grosso WE, Crub\u00e9zy M, Eriksson H, et al. The evolution of Prot\u00e9g\u00e9: an environment for knowledge-based systems development. Int J Hum Comput Stud. 2003;58(1):89\u2013123.","journal-title":"Int J Hum Comput Stud"},{"key":"35_CR43","unstructured":"Raptor: Parsing Example Code. http:\/\/librdf.org\/raptor\/api\/tutorial-parser-example.html Accessed 11\/25\/2014"}],"container-title":["Journal of Biomedical Semantics"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/link.springer.com\/content\/pdf\/10.1186\/s13326-015-0035-z.pdf","content-type":"application\/pdf","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/link.springer.com\/article\/10.1186\/s13326-015-0035-z","content-type":"text\/html","content-version":"vor","intended-application":"text-mining"},{"URL":"http:\/\/link.springer.com\/content\/pdf\/10.1186\/s13326-015-0035-z","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"},{"URL":"https:\/\/link.springer.com\/content\/pdf\/10.1186\/s13326-015-0035-z.pdf","content-type":"application\/pdf","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2026,9,22]],"date-time":"2026-09-22T00:24:44Z","timestamp":1790036684000},"score":1,"resource":{"primary":{"URL":"https:\/\/link.springer.com\/10.1186\/s13326-015-0035-z"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2015,9,16]]},"references-count":43,"journal-issue":{"issue":"1","published-online":{"date-parts":[[2015,12]]}},"alternative-id":["35"],"URL":"https:\/\/doi.org\/10.1186\/s13326-015-0035-z","relation":{},"ISSN":["2041-1480"],"issn-type":[{"value":"2041-1480","type":"electronic"}],"subject":[],"published":{"date-parts":[[2015,9,16]]},"assertion":[{"value":"18 October 2014","order":1,"name":"received","label":"Received","group":{"name":"ArticleHistory","label":"Article History"}},{"value":"4 September 2015","order":2,"name":"accepted","label":"Accepted","group":{"name":"ArticleHistory","label":"Article History"}},{"value":"16 September 2015","order":3,"name":"first_online","label":"First Online","group":{"name":"ArticleHistory","label":"Article History"}}],"article-number":"35"}}