Diderot is a framework for Test Driven Development of RDF/OWL ontologies.
Learn how to build maintainable and flexible ontologies using a test, refactor, and retest cycle.
The documentation is available at http://diderot.readthedocs.org
To install Diderot one can simply
pip install diderot
More on installation here.
In this example we can check if expected facts can be inferred from the ontology. Consider this simple ontology:
:Human rdfs:subClassOf :Mortal .
:Icaro a :Human .
It says that Human
is a sub class of Mortal
, and that Icaro
is a human.
From this one can simply infer that Icaro
is mortal.
Moreover, as the domain and range of the property rdfs:subClassOf
is rdfs:Class
and owl:Class
is sub class of rdfs:Class
, both Mortal
and Human
are instances of owl:Class
. So, the expected facts are:
:Icaro a :Mortal .
:Mortal a owl:Class .
:Human a owl:Class .
To test if the expected facts are indeed inferred by the given ontology we can implement this simple Python code:
from diderot import DiderotTestCase, can_infer
class ExpectedFactsTestCase(DiderotTestCase):
def test_check_expected_facts(self):
EXPECTED_FACTS_FILE = "path/to/expected_facts.n3"
ONTOLOGY_FILE = "path/to/ontology.n3"
self.assertThat(can_infer(EXPECTED_FACTS_FILE).from_facts(ONTOLOGY_FILE))
More examples and full API documentation on: http://diderot.readthedocs.org