📄 ontmodelspec.java
字号:
/*****************************************************************************
* Source code information
* -----------------------
* Original author Ian Dickinson, HP Labs Bristol
* Author email Ian.Dickinson@hp.com
* Package Jena 2
* Web http://sourceforge.net/projects/jena/
* Created 13-May-2003
* Filename $RCSfile: OntModelSpec.java,v $
* Revision $Revision: 1.47 $
* Release status $State: Exp $
*
* Last modified on $Date: 2007/01/02 11:48:48 $
* by $Author: andy_seaborne $
*
* (c) Copyright 2002, 2003, 204, Hewlett-Packard Development Company, LP
* (see footer for full conditions)
*****************************************************************************/
// Package
///////////////
package com.hp.hpl.jena.ontology;
// Imports
///////////////
import com.hp.hpl.jena.rdf.model.*;
import com.hp.hpl.jena.rdf.model.impl.*;
import com.hp.hpl.jena.reasoner.*;
import com.hp.hpl.jena.reasoner.rulesys.*;
import com.hp.hpl.jena.ontology.impl.*;
import com.hp.hpl.jena.vocabulary.*;
import com.hp.hpl.jena.reasoner.transitiveReasoner.TransitiveReasonerFactory;
/**
* <p>
* Encapsulates a description of the components of an ontology model, including the
* storage scheme, reasoner and language profile.
* </p>
*
* @author Ian Dickinson, HP Labs
* (<a href="mailto:Ian.Dickinson@hp.com" >email</a>)
* @version CVS $Id: OntModelSpec.java,v 1.47 2007/01/02 11:48:48 andy_seaborne Exp $
*/
public class OntModelSpec extends ModelSpecImpl implements ModelSpec {
// Constants
//////////////////////////////////
// Static variables
//////////////////////////////////
/** A specification for OWL models that are stored in memory and do no additional entailment reasoning */
public static final OntModelSpec OWL_MEM = new OntModelSpec( ModelFactory.createMemModelMaker(), null, null, ProfileRegistry.OWL_LANG );
/** A specification for OWL models that are stored in memory and use the RDFS inferencer for additional entailments */
public static final OntModelSpec OWL_MEM_RDFS_INF = new OntModelSpec( ModelFactory.createMemModelMaker(), null, RDFSRuleReasonerFactory.theInstance(), ProfileRegistry.OWL_LANG );
/** A specification for OWL models that are stored in memory and use the transitive inferencer for additional entailments */
public static final OntModelSpec OWL_MEM_TRANS_INF = new OntModelSpec( ModelFactory.createMemModelMaker(), null, TransitiveReasonerFactory.theInstance(), ProfileRegistry.OWL_LANG );
/** A specification for OWL models that are stored in memory and use the OWL rules inference engine for additional entailments */
public static final OntModelSpec OWL_MEM_RULE_INF = new OntModelSpec( ModelFactory.createMemModelMaker(), null, OWLFBRuleReasonerFactory.theInstance(), ProfileRegistry.OWL_LANG );
/** A specification for OWL models that are stored in memory and use the micro OWL rules inference engine for additional entailments */
public static final OntModelSpec OWL_MEM_MICRO_RULE_INF = new OntModelSpec( ModelFactory.createMemModelMaker(), null, OWLMicroReasonerFactory.theInstance(), ProfileRegistry.OWL_LANG );
/** A specification for OWL models that are stored in memory and use the mini OWL rules inference engine for additional entailments */
public static final OntModelSpec OWL_MEM_MINI_RULE_INF = new OntModelSpec( ModelFactory.createMemModelMaker(), null, OWLMiniReasonerFactory.theInstance(), ProfileRegistry.OWL_LANG );
/** A specification for OWL DL models that are stored in memory and do no additional entailment reasoning */
public static final OntModelSpec OWL_DL_MEM = new OntModelSpec( ModelFactory.createMemModelMaker(), null, null, ProfileRegistry.OWL_DL_LANG );
/** A specification for OWL DL models that are stored in memory and use the RDFS inferencer for additional entailments */
public static final OntModelSpec OWL_DL_MEM_RDFS_INF = new OntModelSpec( ModelFactory.createMemModelMaker(), null, RDFSRuleReasonerFactory.theInstance(), ProfileRegistry.OWL_DL_LANG );
/** A specification for OWL DL models that are stored in memory and use the transitive inferencer for additional entailments */
public static final OntModelSpec OWL_DL_MEM_TRANS_INF = new OntModelSpec( ModelFactory.createMemModelMaker(), null, TransitiveReasonerFactory.theInstance(), ProfileRegistry.OWL_DL_LANG );
/** A specification for OWL DL models that are stored in memory and use the OWL rules inference engine for additional entailments */
public static final OntModelSpec OWL_DL_MEM_RULE_INF = new OntModelSpec( ModelFactory.createMemModelMaker(), null, OWLFBRuleReasonerFactory.theInstance(), ProfileRegistry.OWL_DL_LANG );
/** A specification for OWL Lite models that are stored in memory and do no entailment additional reasoning */
public static final OntModelSpec OWL_LITE_MEM = new OntModelSpec( ModelFactory.createMemModelMaker(), null, null, ProfileRegistry.OWL_LITE_LANG );
/** A specification for OWL Lite models that are stored in memory and use the transitive inferencer for additional entailments */
public static final OntModelSpec OWL_LITE_MEM_TRANS_INF = new OntModelSpec( ModelFactory.createMemModelMaker(), null, TransitiveReasonerFactory.theInstance(), ProfileRegistry.OWL_LITE_LANG );
/** A specification for OWL Lite models that are stored in memory and use the RDFS inferencer for additional entailments */
public static final OntModelSpec OWL_LITE_MEM_RDFS_INF = new OntModelSpec( ModelFactory.createMemModelMaker(), null, RDFSRuleReasonerFactory.theInstance(), ProfileRegistry.OWL_LITE_LANG );
/** A specification for OWL Lite models that are stored in memory and use the OWL rules inference engine for additional entailments */
public static final OntModelSpec OWL_LITE_MEM_RULES_INF = new OntModelSpec( ModelFactory.createMemModelMaker(), null, OWLFBRuleReasonerFactory.theInstance(), ProfileRegistry.OWL_LITE_LANG );
/** A specification for DAML models that are stored in memory and do no additional entailment reasoning */
public static final OntModelSpec DAML_MEM = new OntModelSpec( ModelFactory.createMemModelMaker(), null, null, ProfileRegistry.DAML_LANG );
/** A specification for DAML models that are stored in memory and use the transitive reasoner for entailments */
public static final OntModelSpec DAML_MEM_TRANS_INF = new OntModelSpec( ModelFactory.createMemModelMaker(), null, TransitiveReasonerFactory.theInstance(), ProfileRegistry.DAML_LANG );
/** A specification for DAML models that are stored in memory and use the RDFS inferencer for additional entailments */
public static final OntModelSpec DAML_MEM_RDFS_INF = new OntModelSpec( ModelFactory.createMemModelMaker(), null, RDFSRuleReasonerFactory.theInstance(), ProfileRegistry.DAML_LANG );
/** A specification for DAML models that are stored in memory and use a subset of the DAML semantic model additional entailments */
public static final OntModelSpec DAML_MEM_RULE_INF = new OntModelSpec( ModelFactory.createMemModelMaker(), null, DAMLMicroReasonerFactory.theInstance(), ProfileRegistry.DAML_LANG );
/** A specification for RDFS ontology models that are stored in memory and do no additional entailment reasoning */
public static final OntModelSpec RDFS_MEM = new OntModelSpec( ModelFactory.createMemModelMaker(), null, null, ProfileRegistry.RDFS_LANG );
/** A specification for RDFS ontology models that are stored in memory and use the transitive reasoner for entailments */
public static final OntModelSpec RDFS_MEM_TRANS_INF = new OntModelSpec( ModelFactory.createMemModelMaker(), null, TransitiveReasonerFactory.theInstance(), ProfileRegistry.RDFS_LANG );
/** A specification for RDFS ontology models that are stored in memory and use the RDFS inferencer for additional entailments */
public static final OntModelSpec RDFS_MEM_RDFS_INF = new OntModelSpec( ModelFactory.createMemModelMaker(), null, RDFSRuleReasonerFactory.theInstance(), ProfileRegistry.RDFS_LANG );
// Instance variables
//////////////////////////////////
/** The specification document manager */
protected OntDocumentManager m_docManager = null;
/** The specification reasoner */
protected Reasoner m_reasoner = null;
/** The language URI for the ontology */
protected String m_languageURI;
/** The ontology language profile */
protected Profile m_profile = null;
/** The reasoner factory for creating the reasoner on demand */
protected ReasonerFactory m_rFactory = null;
/** The ModelMaker used for creating imported models */
protected ModelMaker m_importsMaker;
/** the name of the base model in the baseModelMaker, if specified */
protected String m_baseModelName;
/** the ModelGetter which will be used - eventually - for imports */
protected ModelGetter importModelGetter;
// Constructors
//////////////////////////////////
/**
* <p>Construct a new ontology model specification with the given specification parameters</p>
* @param importsMaker The model maker, which will be used to construct stores for statements in the
* imported ontologies and the base ontology. Use null to get a default (memory) model maker.
* @param docMgr The document manager, or null for the default document manager.
* @param rFactory The factory for the reasoner to use to infer additional triples in the model, or null for no reasoner
* @param languageURI The URI of the ontology language. Required.
*/
public OntModelSpec( ModelMaker importsMaker, OntDocumentManager docMgr, ReasonerFactory rFactory, String languageURI ) {
this( ModelFactory.createMemModelMaker(), importsMaker, docMgr, rFactory, languageURI );
}
/**
* Construct a new ontology model specification from the supplied components.
* @param baseMaker the model-maker to use for the base model
* @param importsMaker the model-maker to use for imported models
* @param docMgr the document manager (null for the default manager)
* @param rFactory the reasoner (null for no reasoner)
* @param languageURI the ontology language URI (must not be null)
*/
public OntModelSpec( ModelMaker baseMaker, ModelMaker importsMaker, OntDocumentManager docMgr,
ReasonerFactory rFactory, String languageURI ) {
this( null, baseMaker, importsMaker, docMgr, rFactory, languageURI );
}
/**
* Construct a new ontology model specification from the supplied components.
* @param baseModelName the name of the model in the baseModelMaker
* @param baseMaker the model-maker to use for the base model
* @param importsMaker the model-maker to use for imported models
* @param docMgr the document manager (null for the default manager)
* @param rFactory the reasoner (null for no reasoner)
* @param languageURI the ontology language URI (must not be null)
*/
public OntModelSpec( String baseModelName, ModelMaker baseMaker,
ModelMaker importsMaker, OntDocumentManager docMgr,
ReasonerFactory rFactory, String languageURI ) {
super( baseMaker );
m_baseModelName = baseModelName;
m_importsMaker = importsMaker == null ? ModelFactory.createMemModelMaker() : importsMaker;
setDocumentManager( docMgr );
setReasonerFactory( rFactory );
if (languageURI == null) {
throw new IllegalArgumentException( "Cannot create OntModelSpec with a null ontology language" );
}
setLanguage( languageURI );
}
/**
* <p>Create one model spec as a copy of another. This is useful when what is required is similar to
* an existing spec, but with some changes. <strong>Note:</strong> this is only a shallow copy, so the
* structured objects (reasoners, document managers, etc) are not themselves copied. Thus, even after
* calling this copy constructor, making a change to the document manager in the copy specification
* will also affect the one that the copy was made from. The correct idiom is to replace the object
* before side-effecting it, e.g:
* <code><pre>
* OntModelSpec newSpec = new OntModelSpec( existingSpec );
* newSpec.setDocumentManager( new OntDocumentManager() );
* newSpec.getDocumentManager().setMetaDataSearchPath( "..." );
* </pre></code>
* @param spec
*/
public OntModelSpec( OntModelSpec spec ) {
this( spec.getBaseModelMaker(), spec.getImportModelMaker(), spec.getDocumentManager(),
spec.getReasonerFactory(), spec.getLanguage() );
}
/**
* <p>Answer the model maker used for creating imported models.</p>
* @deprecated use {@link #getImportModelMaker} or {@link #getBaseModelMaker}
*/
public ModelMaker getModelMaker() {
if (false) throw new RuntimeException( "get rid of calls to this method" );
return getImportModelMaker();
}
/**
* Answer the model maker used for creating imported models.
* @return The ModelMaker that is used to get or create a model used
* to hold imports to an OntModel.
*/
public ModelMaker getImportModelMaker() {
return m_importsMaker;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -