📄 owlprofile.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 10 Feb 2003
* Filename $RCSfile: OWLProfile.java,v $
* Revision $Revision: 1.34 $
* Release status $State: Exp $
*
* Last modified on $Date: 2007/01/09 11:45:41 $
* by $Author: ian_dickinson $
*
* (c) Copyright 2002, 2003, 2004, 2005, 2006, 2007 Hewlett-Packard Development Company, LP
* (see footer for full conditions)
*****************************************************************************/
// Package
///////////////
package com.hp.hpl.jena.ontology.impl;
// Imports
///////////////
import com.hp.hpl.jena.vocabulary.*;
import com.hp.hpl.jena.enhanced.*;
import com.hp.hpl.jena.graph.*;
import com.hp.hpl.jena.ontology.*;
import com.hp.hpl.jena.rdf.model.*;
import java.util.*;
/**
* <p>
* Ontology language profile implementation for the Full variant of the OWL 2002/07 language.
* </p>
*
* @author Ian Dickinson, HP Labs
* (<a href="mailto:Ian.Dickinson@hp.com" >email</a>)
* @version CVS $Id: OWLProfile.java,v 1.34 2007/01/09 11:45:41 ian_dickinson Exp $
*/
public class OWLProfile
extends AbstractProfile
{
// Constants
//////////////////////////////////
// Instance variables
//////////////////////////////////
// Constructors
//////////////////////////////////
// External signature methods
//////////////////////////////////
public String NAMESPACE() { return OWL.getURI(); }
public Resource CLASS() { return OWL.Class; }
public Resource RESTRICTION() { return OWL.Restriction; }
public Resource THING() { return OWL.Thing; }
public Resource NOTHING() { return OWL.Nothing; }
public Resource PROPERTY() { return RDF.Property; }
public Resource OBJECT_PROPERTY() { return OWL.ObjectProperty; }
public Resource DATATYPE_PROPERTY() { return OWL.DatatypeProperty; }
public Resource TRANSITIVE_PROPERTY() { return OWL.TransitiveProperty; }
public Resource SYMMETRIC_PROPERTY() { return OWL.SymmetricProperty; }
public Resource FUNCTIONAL_PROPERTY() { return OWL.FunctionalProperty; }
public Resource INVERSE_FUNCTIONAL_PROPERTY() { return OWL.InverseFunctionalProperty; }
public Resource ALL_DIFFERENT() { return OWL.AllDifferent; }
public Resource ONTOLOGY() { return OWL.Ontology; }
public Resource DEPRECATED_CLASS() { return OWL.DeprecatedClass; }
public Resource DEPRECATED_PROPERTY() { return OWL.DeprecatedProperty; }
public Resource ANNOTATION_PROPERTY() { return OWL.AnnotationProperty; }
public Resource ONTOLOGY_PROPERTY() { return OWL.OntologyProperty; }
public Resource LIST() { return RDF.List; }
public Resource NIL() { return RDF.nil; }
public Resource DATARANGE() { return OWL.DataRange; }
public Property EQUIVALENT_PROPERTY() { return OWL.equivalentProperty; }
public Property EQUIVALENT_CLASS() { return OWL.equivalentClass; }
public Property DISJOINT_WITH() { return OWL.disjointWith; }
public Property SAME_INDIVIDUAL_AS() { return null; }
public Property SAME_AS() { return OWL.sameAs; }
public Property DIFFERENT_FROM() { return OWL.differentFrom; }
public Property DISTINCT_MEMBERS() { return OWL.distinctMembers; }
public Property UNION_OF() { return OWL.unionOf; }
public Property INTERSECTION_OF() { return OWL.intersectionOf; }
public Property COMPLEMENT_OF() { return OWL.complementOf; }
public Property ONE_OF() { return OWL.oneOf; }
public Property ON_PROPERTY() { return OWL.onProperty; }
public Property ALL_VALUES_FROM() { return OWL.allValuesFrom; }
public Property HAS_VALUE() { return OWL.hasValue; }
public Property SOME_VALUES_FROM() { return OWL.someValuesFrom; }
public Property MIN_CARDINALITY() { return OWL.minCardinality; }
public Property MAX_CARDINALITY() { return OWL.maxCardinality; }
public Property CARDINALITY() { return OWL.cardinality; }
public Property INVERSE_OF() { return OWL.inverseOf; }
public Property IMPORTS() { return OWL.imports; }
public Property PRIOR_VERSION() { return OWL.priorVersion; }
public Property BACKWARD_COMPATIBLE_WITH() { return OWL.backwardCompatibleWith; }
public Property INCOMPATIBLE_WITH() { return OWL.incompatibleWith; }
public Property SUB_PROPERTY_OF() { return RDFS.subPropertyOf; }
public Property SUB_CLASS_OF() { return RDFS.subClassOf; }
public Property DOMAIN() { return RDFS.domain; }
public Property RANGE() { return RDFS.range; }
public Property FIRST() { return RDF.first; }
public Property REST() { return RDF.rest; }
public Property MIN_CARDINALITY_Q() { return null; } // qualified restrictions are not in the first version of OWL
public Property MAX_CARDINALITY_Q() { return null; }
public Property CARDINALITY_Q() { return null; }
public Property HAS_CLASS_Q() { return null; }
// Annotations
public Property VERSION_INFO() { return OWL.versionInfo; }
public Property LABEL() { return RDFS.label; }
public Property COMMENT() { return RDFS.comment; }
public Property SEE_ALSO() { return RDFS.seeAlso; }
public Property IS_DEFINED_BY() { return RDFS.isDefinedBy; }
protected Resource[][] aliasTable() {
return new Resource[][] {
};
}
/** The only first-class axiom type in OWL is AllDifferent */
public Iterator getAxiomTypes() {
return Arrays.asList(
new Resource[] {
OWL.AllDifferent
}
).iterator();
}
/** The annotation properties of OWL */
public Iterator getAnnotationProperties() {
return Arrays.asList(
new Resource[] {
OWL.versionInfo,
RDFS.label,
RDFS.seeAlso,
RDFS.comment,
RDFS.isDefinedBy
}
).iterator();
}
public Iterator getClassDescriptionTypes() {
return Arrays.asList(
new Resource[] {
OWL.Class,
OWL.Restriction
}
).iterator();
}
/**
* <p>
* Answer true if the given graph supports a view of this node as the given
* language element, according to the semantic constraints of the profile.
* If strict checking on the ontology model is turned off, this check is
* skipped.
* </p>
*
* @param n A node to test
* @param g The enhanced graph containing <code>n</code>, which is assumed to
* be an {@link OntModel}.
* @param type A class indicating the facet that we are testing against.
* @return True if strict checking is off, or if <code>n</code> can be
* viewed according to the facet resource <code>res</code>
*/
public boolean isSupported( Node n, EnhGraph g, Class type ) {
if (g instanceof OntModel) {
OntModel m = (OntModel) g;
if (!m.strictMode()) {
// checking turned off
return true;
}
else {
// lookup the profile check for this resource
SupportsCheck check = (SupportsCheck) getCheckTable().get( type );
// a check must be defined for the test to succeed
return (check != null) && check.doCheck( n, g );
}
}
else {
return false;
}
}
/**
* <p>
* Answer a descriptive string for this profile, for use in debugging and other output.
* </p>
* @return "OWL Full"
*/
public String getLabel() {
return "OWL Full";
}
// Internal implementation methods
//////////////////////////////////
//==============================================================================
// Inner class definitions
//==============================================================================
/** Helper class for doing syntactic/semantic checks on a node */
protected static class SupportsCheck
{
public boolean doCheck( Node n, EnhGraph g ) {
return true;
}
}
// Table of check data
//////////////////////
private static Object[][] s_supportsCheckData = new Object[][] {
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -