Skip to content
chefabien edited this page Feb 17, 2016 · 29 revisions

Welcome to the AutoRDF wiki!

Objectives

AutoRDF is a framework that makes it easy to manipulate concepts described in Web Ontology Language (OWL) within C++ code. It makes it a lot easier to manipulate RDF data within low level, algorithmic code that can be found in embedded software projects.

It abstracts away most of the complexity of OWL/RDF technologies, and makes it easy for the developer to concentrate on its business logic with familiar C++ objects rather than on how its data is read from or written to its triple store.

Requirements

AutoRDF is based upon Redland library found at http://librdf.org/

Compatibility

AutoRDF should work on any platform where a C++11 compilter is found, and where boost is supported. Currently only Linux/Clang 3.5 is tested, but soon it will be ready for iOS/Android as well.

#Specifications

Code generation AutoRDF supports all of RDFS, and the following subset of OWL:

#owl:Class

Each class defines a C++ interface class, and a C++ implementation class prefixed with "I". It allows easier support for OWL multiple inheritance, which is known to have shortcomings in C++.

owl:DatatypeProperty

Each Data property generates C++ getters and setters

owl:ObjectProperty

Each Object property generates C++ getters and setters

owl:subClassOf

Inheritance is supported, as well as multiple inheritance. For each inherited class, the C++ object inherits the C++ interface class of all its ancestors (including indirect ancestors)

  • owl:Restriction
  • owl:cardinality, owl:minCardinality, owl:maxCardinality
  • owl:qualifiedCardinality, owl:minQualifiedCardinality, owl:maxQualifiedCardinality
  • owl:onDataRange
  • owl:onClass

Documentation generation AutoRDF extracts the following annotations and converts them to doxygen format:

  • rdfs:comment
  • rdfs:label
  • rdfs:seeAlso
  • rdfs:isDefinedBy

An ontology that contains unsupported item can be handled by AutoRDF, at the cost of some more work left to the end user of the API (Code generation will be less precise than expected by what is found in the ontology)

Clone this wiki locally