Skip to content

geneontology/noctua-reasoner

Folders and files

NameName
Last commit message
Last commit date
Oct 2, 2016
Oct 2, 2016
Oct 2, 2016
Sep 19, 2016
Sep 19, 2016
Oct 2, 2016
Sep 19, 2016
Sep 17, 2016
Sep 19, 2016

Repository files navigation

Noctua-reasoner

This is intended for performing incomplete reasoning on client side. The primary use case is validity checking for relations between a pair of properties, in principle extendible

OWL Profile

This is a rule based reasoner, implementing the following subset of horn-logic:

  • SUBPROPERTY: xPy, P subPropertyOf Q -> xQy
  • INVERSE: xPy, P inverseOf Q -> yQx
  • CHAIN: xP1y, yP2z, P<-P1 o P2 -> xPz

Additional rules compile down to these:

  • TRANSITIVITY: Transitive(P) -> P<-PoP
  • TYPE: type <- type o is_a
  • SUBCLASS-TRANSITIVITY: Transitive(is_a)
  • SUBPROPERTY-TRANSITIVITY: Transitive(subPropertyOf)
  • INVERSE-SYMMETRY: P inverseOf Q -> Q inverseOf P

Note both classes and individuals are in the domain of discourse.

The input is an OBO Graph JSON Ontology

The reasoner will create a FactStore object based on this input ontology, and forward chain / saturate. The implementation is naive, but the intend is to reason over small ABox/RBox combos, so optimization is a lower priority.

See also

geneontology/noctua#358

Releases

No releases published

Packages

No packages published