Class ReasonerRegistry


  • public class ReasonerRegistry
    extends java.lang.Object
    A global registry of known reasoner modules. Modules are identified by a URI and can have associated capability and descriptive information, in RDF. Currently the schema/ontology for such descriptions is mostly open. However, we do ensure that each reasoner URI at least has an associated rdf:type statement to indicate that it is a reasoner.

    It is up to each reasoner or some associated configuration system to register it in this registry.

    • Method Detail

      • theRegistry

        public static ReasonerRegistry theRegistry()
        Return the single global instance of the registry
      • register

        public void register​(ReasonerFactory factory)
        Register a Reasoner.
        Parameters:
        factory - an factory that can be used to create instances of the reasoner
      • register

        public void register​(java.lang.String reasonerUri,
                             ReasonerFactory factory)
        Register a Reasoner - simple case with no RDF description.
        Parameters:
        factory - an factory that can be used to create instances of the reasoner
        reasonerUri - the URI used to label the reasoner, expressed as a simple string
      • getAllDescriptions

        public Model getAllDescriptions()
        Return a composite set of RDF capability descriptions for all registered reasoners. Listing all Resources of type ReasonerClass in the returned model would enumerate all registered reasoners.
      • getDescription

        public Resource getDescription​(java.lang.String uri)
        Return information on a given Reasoner.
        Parameters:
        uri - the URI of the reasoner
        Returns:
        a Resource representing the reasoner whose properties (as obtainable through listProperties etc) give a capability description of the reasoner; returns null if no such reasoner is registered.
      • getFactory

        public ReasonerFactory getFactory​(java.lang.String uri)
        Return the factory for the given reasoner.
        Parameters:
        uri - the URI of the reasoner
        Returns:
        the ReasonerFactory instance for this reasoner
      • create

        public Reasoner create​(java.lang.String uri,
                               Resource configuration)
                        throws ReasonerException
        Create and return a new instance of the reasoner identified by the given uri.
        Parameters:
        uri - the uri of the reasoner to be created, expressed as a simple string
        configuration - an optional set of configuration information encoded in RDF this parameter can be null if no configuration information is required.
        Returns:
        a reaoner instance
        Throws:
        ReasonerException - if there is not such reasoner or if there is some problem during instantiation
      • makeDirect

        public static Node makeDirect​(Node node)
        Return a property Node which represents the direct version of a transitively closed property. See makeDirect(String); this method makes a new Node with the direct respelling of nodes URI.
      • makeDirect

        public static java.lang.String makeDirect​(java.lang.String uri)
        Return a URI string which represents the direct version of a transitively closed property URI

        Not clear what the right thing to do here is. Should not just invent a new local name in the same namespace because that might be a controlled namespace like RDF or RDFS. Can't even just extend the namespace slightly because that would be violating the web principles of namespace ownership. On the other hand, this solution results in staggeringly clumsy names.

        Parameters:
        uri - the URI representing the transitive property
      • getRDFSReasoner

        public static Reasoner getRDFSReasoner()
        Return a prebuilt standard configuration for the default RDFS reasoner
      • getRDFSSimpleReasoner

        public static Reasoner getRDFSSimpleReasoner()
        Return a prebuilt simplified configuration for the default RDFS reasoner
      • getTransitiveReasoner

        public static Reasoner getTransitiveReasoner()
        Return a prebuilt standard configuration for the default subclass/subproperty transitive closure reasoner.
      • getOWLReasoner

        public static Reasoner getOWLReasoner()
        Prebuilt standard configuration for the default OWL reasoner. This configuration is hybrid forward/backward reasoner.
      • getOWLMicroReasoner

        public static Reasoner getOWLMicroReasoner()
        Prebuilt standard configuration a micro-OWL reasoner. This just supports property axioms, and class inheritance sufficient to power the OntAPI.
      • getOWLMiniReasoner

        public static Reasoner getOWLMiniReasoner()
        Prebuilt mini configuration for the default OWL reasoner. This omits bNode introduction rules which has significant performance gain in some cases and avoids breaking the find contract.