felixocker / ontor

ontology editor built on Owlready2
GNU General Public License v3.0
31 stars 5 forks source link
knowledge-graph ontology owl python

Current Release Version Test and Build Documentation Status PyPI License Code Style

ontor logo

ONTology editOR (ontor)

ontology editor built on Owlready2

functionality

each instance of the ontor class represents an individual ontology and provides support for:

ontor provides a tuple based syntax with JSON and CSV support for ontology editing to facilitate focusing on the ontology's content

requirements and installation

demo

the directory example/ includes a demo application inspired by Protégé's pizza example

general class axioms

in addition to class axioms, General Class Axioms (GCAs) can express more complex statements - the generic axioms are equivalented using helper classes\ in the example, a uniform price of 5 is set for all pizzas with seafood toppings without making use of an explicitly defined class for these pizzas:\

[
  ["has_topping",null,"min",1,"seafood_topping",null,null,null,null,null,null,null,true],
  ["has_price",null,"value",null,null,"float",null,null,5,null,null,null,true]
]

this allows a reasoner to infer that the price for all instances of seafood_pizza as well as for the instance Another_pizza is 5

interactive debugging

interactively debug an ontology\ in the example: ontor3.debug_onto()

interactive ontology debugging

visualization

visualize selected instances, classes, and properties in a given radius around a focus node; e.g., all nodes in a radius of two relations around the node "John"\ in the example: ontor3.visualize(classes=["human", "pizza"], properties=["likes", "diameter_in_cm"], focusnode="John", radius=2)

visualize selected ontology parts

workflow

When creating ontologies from scratch, note that some functions have to be called in a specific order:

  1. add_taxo - the taxonomy has to be created first to ensure that all classes are defined, which are required by the properties, axioms, and individuals
  2. add_ops, add_dps - properties must be defined before axioms can be specified
  3. add_axioms, add_gcas, add_instances - axioms and instances can only be added when all the necessary classes and properties have been defined

license

GPL v3.0

contact

Felix Ocker - felix.ocker@googlemail.com