Usage
Basic Usage
from rdfxml import Namespace, URIRef, XSD
from pyowl2 import (
IRI,
OWLOntology,
OWLDeclaration,
OWLClass,
OWLObjectProperty,
OWLDatatype,
OWLObjectPropertyDomain,
OWLObjectPropertyRange,
OWLEquivalentClasses
)
# Define the namespace
reference = URIRef("https://example.org#")
namespace = Namespace(reference)
# Define the ontology
ontology = OWLOntology(reference)
# Define a class
person = OWLClass(IRI(namespace, "Person"))
# Define an object property
has_spouse = OWLObjectProperty(IRI(namespace, "hasSpouse")
# Define a datatype
birthdate = OWLDatatype(IRI(namespace, "birthDate"))
## Save axioms in the ontology
ontology.add_axioms([
OWLDeclaration(person),
OWLDeclaration(has_spouse),
OWLObjectPropertyDomain(has_spouse, person),
OWLObjectPropertyRange(has_spouse, person),
OWLEquivalentClasses(birtdate, OWLDatatype(XSD.date)),
])
ontology.save(OUTPUT_PATH)
Access to the ontology elements
from rdfxml import Namespace, URIRef
from pyowl2 import OWLOntology, AxiomsType
reference = URIRef("https://example.org#")
namespace = Namespace(reference)
ontology = OWLOntology(reference, PATH_TO_ONTOLOGY)
# print the list of all classes in the ontology
print(ontology.get_axioms(AxiomsType.CLASSES))
Advanced usage
from rdfxml import Namespace, URIRef, XSD
from pyowl2 import (
IRI,
OWLOntology,
OWLFullClass,
OWLFullObjectProperty,
OWLFullDataRange
)
# Define the namespace
reference = URIRef("https://example.org#")
namespace = Namespace(reference)
# Define the ontology
ontology = OWLOntology(reference)
# Define a class
person = OWLFullClass(IRI(namespace, "Person"))
# Define an object property
has_spouse = OWLFullObjectProperty(
IRI(namespace, "hasSpouse"),
range=person.class_,
domain=person.class_
)
# Define a datatype
birthdate = OWLFullDataRange(IRI(namespace, "birthDate"))
birthdate.is_equivalent_to([OWLDatatype(XSD.date)])
# Save axioms in the ontology
ontology.add_axioms([
person,
has_spouse,
birtdate,
])
ontology.save(OUTPUT_PATH)