/* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.apache.jena.vocabulary; import org.apache.jena.rdf.model.* ; import org.apache.jena.reasoner.ReasonerRegistry ; import org.apache.jena.reasoner.rulesys.RDFSRuleReasoner ; /** * A collection of RDF terms used in driving or configuring some of the * builtin reasoners. */ public class ReasonerVocabulary { /** The namespace used for system level descriptive properties of any reasoner */ public static final String JenaReasonerNS = "http://jena.hpl.hp.com/2003/JenaReasoner#"; /** The RDF class to which all Reasoners belong */ public static final Resource ReasonerClass = ResourceFactory.createResource(JenaReasonerNS + "ReasonerClass"); /** Reasoner description property: name of the reasoner */ public static final Property nameP = jenaReasonerProperty( "name" ); /** Reasoner description property: text description of the reasoner */ public static final Property descriptionP = jenaReasonerProperty( "description" ); /** Reasoner description property: version of the reasoner */ public static final Property versionP = jenaReasonerProperty( "version" ); /** Reasoner description property: a schema property supported by the reasoner */ public static final Property supportsP = jenaReasonerProperty( "supports" ); /** Reasoner description property: a configuration property supported by the reasoner */ public static final Property configurationP = jenaReasonerProperty( "configurationProperty" ); /** A faux property used in reasoner capabilty models to denote reasoners that infer that individuals have rdf:type owl:Thing (or daml:Thing) */ public static final Property individualAsThingP = jenaReasonerProperty( "individualAsThing" ); /** The property that represents the direct/minimal version of the subClassOf relationship */ public static final Property directSubClassOf = makeDirect( RDFS.subClassOf ); /** The property that represents the direct/minimal version of the subPropertyOf relationship */ public static final Property directSubPropertyOf = makeDirect( RDFS.subPropertyOf ); /** The property that represents the direct/minimal version of the rdf:type relationship */ public static final Property directRDFType = makeDirect( RDF.type ); /** Base URI used for configuration properties for rule reasoners */ public static final String PropURI = "http://jena.hpl.hp.com/2003/RuleReasoner"; /** Property used to configure the derivation logging behaviour of a reasoner. * Set to "true" to enable logging of derivations. */ public static final Property PROPderivationLogging = ruleReasonerProperty( "derivationLogging" ); /** Property used to configure the tracing behaviour of a reasoner. * Set to "true" to enable internal trace message to be sent to Logger.info . */ public static final Property PROPtraceOn = ruleReasonerProperty( "traceOn" ); /** Property used to set the mode of a generic rule reasoner. * Valid values are the strings "forward", "backward" or "hybrid" */ public static final Property PROPruleMode = ruleReasonerProperty( "ruleMode" ); /** Property used to attach a file a rules to a generic rule reasoner. * Value should a URI giving the rule set to use. */ public static final Property PROPruleSet = ruleReasonerProperty( "ruleSet" ); /** Property used to switch on/off OWL schema translation on a generic rule reasoner. * Value should be "true" to enable OWL translation */ public static final Property PROPenableOWLTranslation = ruleReasonerProperty( "enableOWLTranslation" ); /** Property used to switch on/off use of the dedicated subclass/subproperty * caching in a generic rule reasoner. Set to "true" to enable caching. */ public static final Property PROPenableTGCCaching = ruleReasonerProperty( "enableTGCCaching" ); /** Property used to switch on/off scanning of data for container membership * properties in RDFS preprocessing. */ public static final Property PROPenableCMPScan = ruleReasonerProperty( "enableCMPScan" ); /** Property used to switch to different RDFS processing levles. The * legal levels are "default", "simple", and "full". */ public static final Property PROPsetRDFSLevel = ruleReasonerProperty( "setRDFSLevel" ); /** Property used to switch on/off filtering of functors from returned results * in the generic rule engine. Default is filtering on. */ public static final Property PROPenableFunctorFiltering = ruleReasonerProperty( "enableFunctorFiltering" ); /** Constant for PROPsetRDFSLevel - default behaviour */ public static final String RDFS_DEFAULT = RDFSRuleReasoner.DEFAULT_RULES; /** Constant for PROPsetRDFSLevel - fullest implementation supported. */ public static final String RDFS_FULL = RDFSRuleReasoner.FULL_RULES; /** Constant for PROPsetRDFSLevel - simplified, higher performance rules. */ public static final String RDFS_SIMPLE = RDFSRuleReasoner.SIMPLE_RULES; /** A namespace used for Rubrik specific properties */ public static final String RBNamespace = "urn:x-hp-jena:rubrik/"; /** Property used to switch on validation in owl ruleset */ public static final Property RB_VALIDATION = ResourceFactory.createProperty(RBNamespace, "validation"); /** Property used for validation reports in owl ruleset */ public static final Property RB_VALIDATION_REPORT = ResourceFactory.createProperty(RBNamespace, "violation"); /** Property to denote the URL of an external reasoner. Default is http://localhost:8081 */ public static final Property EXT_REASONER_URL = ResourceFactory.createProperty( JenaReasonerNS, "extReasonerURL" ); /** Property to denote the ontology language (OWL, DAML, RDFS) an external reasoner will process. * Values are URI's, see {@link org.apache.jena.ontology.ProfileRegistry}. Default is OWL. */ public static final Property EXT_REASONER_ONT_LANG = ResourceFactory.createProperty( JenaReasonerNS, "extReasonerOntologyLang" ); /** Property to denote the axioms file that the reasoner will use for background knowledge. * Values are URL's. Default is no axioms. */ public static final Property EXT_REASONER_AXIOMS = ResourceFactory.createProperty( JenaReasonerNS, "extReasonerAxioms" ); /** Property of a GRR config with object a node with rule set properties. */ public static final Property ruleSet = jenaReasonerProperty( "ruleSet" ); /** Property of a GRR config with object a resource who's URI is the URL of a Jena rules text. */ public static final Property ruleSetURL = jenaReasonerProperty( "ruleSetURL" ); /** Property of a GRR rule-set config that specifies a rule as a string in the Jena rules language. */ public static final Property hasRule = jenaReasonerProperty( "hasRule" ); /** Property of a reasoner that specifies the URL of a schema to load. */ public static final Property schemaURL = jenaReasonerProperty( "schemaURL" ); protected static final Property jenaReasonerProperty( String localName ) { return ResourceFactory.createProperty( JenaReasonerNS, localName ); } protected static final Property ruleReasonerProperty( String localName ) { return ResourceFactory.createProperty( PropURI + "#" + localName ); } /** compact call to ReasonerRegistry.makeDirect */ private static final Property makeDirect( Property type ) { return ResourceFactory.createProperty( ReasonerRegistry.makeDirect( type.asNode().getURI() ) ); } // -------------------------------------------------------------------- // Method versions of key namespaces which are more initializer friendly /** Return namespace used for Rubric specific properties */ public static final String getRBNamespace() { return RBNamespace; } /** Return namespace used for system level descriptive properties of any reasoner */ public static final String getJenaReasonerNS() { return JenaReasonerNS; } }