/** Copyright (C) SYSTAP, LLC DBA Blazegraph 2006-2016. All rights reserved. Contact: SYSTAP, LLC DBA Blazegraph 2501 Calvert ST NW #106 Washington, DC 20008 licenses@blazegraph.com This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; version 2 of the License. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ /* * Created on Mar 30, 2005 */ package com.bigdata.rdf.axioms; import java.util.Collection; import org.openrdf.model.vocabulary.RDF; import org.openrdf.model.vocabulary.RDFS; import com.bigdata.rdf.model.BigdataStatement; import com.bigdata.rdf.model.BigdataValueFactory; import com.bigdata.rdf.model.StatementEnum; /** * The axioms for RDF Schema. * * @author personickm * @author <a href="mailto:thompsonbry@users.sourceforge.net">Bryan Thompson</a> * @version $Id$ */ public class RdfsAxioms extends BaseAxioms { /** * */ private static final long serialVersionUID = -5221807082849582064L; /** * De-serialization ctor. */ public RdfsAxioms() { super(); } public RdfsAxioms(final String namespace) { super(namespace); } /** * Adds the axioms for RDF Schema. */ protected void addAxioms(final Collection<BigdataStatement> axioms) { super.addAxioms(axioms); final BigdataValueFactory valueFactory = getValueFactory(); /* * RDF AXIOMATIC TRIPLES * * @see RDF Model Theory: http://www.w3.org/TR/rdf-mt/ section 3.1 */ axioms.add( valueFactory.createStatement( RDF.TYPE, RDF.TYPE, RDF.PROPERTY, null, StatementEnum.Axiom)); axioms.add( valueFactory.createStatement( RDF.SUBJECT, RDF.TYPE, RDF.PROPERTY, null, StatementEnum.Axiom)); axioms.add( valueFactory.createStatement( RDF.PREDICATE, RDF.TYPE, RDF.PROPERTY, null, StatementEnum.Axiom)); axioms.add( valueFactory.createStatement( RDF.OBJECT, RDF.TYPE, RDF.PROPERTY, null, StatementEnum.Axiom)); axioms.add( valueFactory.createStatement( RDF.FIRST, RDF.TYPE, RDF.PROPERTY, null, StatementEnum.Axiom)); axioms.add( valueFactory.createStatement( RDF.REST, RDF.TYPE, RDF.PROPERTY, null, StatementEnum.Axiom)); axioms.add( valueFactory.createStatement( RDF.VALUE, RDF.TYPE, RDF.PROPERTY, null, StatementEnum.Axiom)); axioms.add( valueFactory.createStatement( RDF.NIL, RDF.TYPE, RDF.LIST, null, StatementEnum.Axiom)); /* * RDFS AXIOMATIC TRIPLES * * @see RDF Model Theory: http://www.w3.org/TR/rdf-mt/ section 4.1 */ axioms.add( valueFactory.createStatement( RDF.TYPE, RDFS.DOMAIN, RDFS.RESOURCE, null, StatementEnum.Axiom)); axioms.add( valueFactory.createStatement( RDFS.DOMAIN, RDFS.DOMAIN, RDF.PROPERTY, null, StatementEnum.Axiom)); axioms.add( valueFactory.createStatement( RDFS.RANGE, RDFS.DOMAIN, RDF.PROPERTY, null, StatementEnum.Axiom)); axioms.add( valueFactory.createStatement( RDFS.SUBPROPERTYOF, RDFS.DOMAIN, RDF.PROPERTY, null, StatementEnum.Axiom)); axioms.add( valueFactory.createStatement( RDFS.SUBCLASSOF, RDFS.DOMAIN, RDFS.CLASS, null, StatementEnum.Axiom)); axioms.add( valueFactory.createStatement( RDF.SUBJECT, RDFS.DOMAIN, RDF.STATEMENT, null, StatementEnum.Axiom)); axioms.add( valueFactory.createStatement( RDF.PREDICATE, RDFS.DOMAIN, RDF.STATEMENT, null, StatementEnum.Axiom)); axioms.add( valueFactory.createStatement( RDF.OBJECT, RDFS.DOMAIN, RDF.STATEMENT, null, StatementEnum.Axiom)); axioms.add( valueFactory.createStatement( RDFS.MEMBER, RDFS.DOMAIN, RDFS.RESOURCE, null, StatementEnum.Axiom)); axioms.add( valueFactory.createStatement( RDF.FIRST, RDFS.DOMAIN, RDF.LIST, null, StatementEnum.Axiom)); axioms.add( valueFactory.createStatement( RDF.REST, RDFS.DOMAIN, RDF.LIST, null, StatementEnum.Axiom)); axioms.add( valueFactory.createStatement( RDFS.SEEALSO, RDFS.DOMAIN, RDFS.RESOURCE, null, StatementEnum.Axiom)); axioms.add( valueFactory.createStatement( RDFS.ISDEFINEDBY, RDFS.DOMAIN, RDFS.RESOURCE, null, StatementEnum.Axiom)); axioms.add( valueFactory.createStatement( RDFS.COMMENT, RDFS.DOMAIN, RDFS.RESOURCE, null, StatementEnum.Axiom)); axioms.add( valueFactory.createStatement( RDFS.LABEL, RDFS.DOMAIN, RDFS.RESOURCE, null, StatementEnum.Axiom)); axioms.add( valueFactory.createStatement( RDF.VALUE, RDFS.DOMAIN, RDFS.RESOURCE, null, StatementEnum.Axiom)); axioms.add( valueFactory.createStatement( RDF.TYPE, RDFS.RANGE, RDFS.CLASS, null, StatementEnum.Axiom)); axioms.add( valueFactory.createStatement( RDFS.DOMAIN, RDFS.RANGE, RDFS.CLASS, null, StatementEnum.Axiom)); axioms.add( valueFactory.createStatement( RDFS.RANGE, RDFS.RANGE, RDFS.CLASS, null, StatementEnum.Axiom)); axioms.add( valueFactory.createStatement( RDFS.SUBPROPERTYOF, RDFS.RANGE, RDF.PROPERTY, null, StatementEnum.Axiom)); axioms.add( valueFactory.createStatement( RDFS.SUBCLASSOF, RDFS.RANGE, RDFS.CLASS, null, StatementEnum.Axiom)); axioms.add( valueFactory.createStatement( RDF.SUBJECT, RDFS.RANGE, RDFS.RESOURCE, null, StatementEnum.Axiom)); axioms.add( valueFactory.createStatement( RDF.PREDICATE, RDFS.RANGE, RDFS.RESOURCE, null, StatementEnum.Axiom)); axioms.add( valueFactory.createStatement( RDF.OBJECT, RDFS.RANGE, RDFS.RESOURCE, null, StatementEnum.Axiom)); axioms.add( valueFactory.createStatement( RDFS.MEMBER, RDFS.RANGE, RDFS.RESOURCE, null, StatementEnum.Axiom)); axioms.add( valueFactory.createStatement( RDF.FIRST, RDFS.RANGE, RDFS.RESOURCE, null, StatementEnum.Axiom)); axioms.add( valueFactory.createStatement( RDF.REST, RDFS.RANGE, RDF.LIST, null, StatementEnum.Axiom)); axioms.add( valueFactory.createStatement( RDFS.SEEALSO, RDFS.RANGE, RDFS.RESOURCE, null, StatementEnum.Axiom)); axioms.add( valueFactory.createStatement( RDFS.ISDEFINEDBY, RDFS.RANGE, RDFS.RESOURCE, null, StatementEnum.Axiom)); axioms.add( valueFactory.createStatement( RDFS.COMMENT, RDFS.RANGE, RDFS.LITERAL, null, StatementEnum.Axiom)); axioms.add( valueFactory.createStatement( RDFS.LABEL, RDFS.RANGE, RDFS.LITERAL, null, StatementEnum.Axiom)); axioms.add( valueFactory.createStatement( RDF.VALUE, RDFS.RANGE, RDFS.RESOURCE, null, StatementEnum.Axiom)); axioms.add( valueFactory.createStatement( RDF.ALT, RDFS.SUBCLASSOF, RDFS.CONTAINER, null, StatementEnum.Axiom)); axioms.add( valueFactory.createStatement( RDF.BAG, RDFS.SUBCLASSOF, RDFS.CONTAINER, null, StatementEnum.Axiom)); axioms.add( valueFactory.createStatement( RDF.SEQ, RDFS.SUBCLASSOF, RDFS.CONTAINER, null, StatementEnum.Axiom)); axioms.add( valueFactory.createStatement( RDFS.CONTAINERMEMBERSHIPPROPERTY, RDFS.SUBCLASSOF, RDF.PROPERTY, null, StatementEnum.Axiom)); axioms.add( valueFactory.createStatement( RDFS.ISDEFINEDBY, RDFS.SUBPROPERTYOF, RDFS.SEEALSO, null, StatementEnum.Axiom)); axioms.add( valueFactory.createStatement( RDF.XMLLITERAL, RDF.TYPE, RDFS.DATATYPE, null, StatementEnum.Axiom)); axioms.add( valueFactory.createStatement( RDF.XMLLITERAL, RDFS.SUBCLASSOF, RDFS.LITERAL, null, StatementEnum.Axiom)); axioms.add( valueFactory.createStatement( RDFS.DATATYPE, RDFS.SUBCLASSOF, RDFS.CLASS, null, StatementEnum.Axiom)); // closure of above axioms yields below semi-axioms axioms.add( valueFactory.createStatement( RDFS.RESOURCE, RDF.TYPE, RDFS.CLASS, null, StatementEnum.Axiom)); axioms.add( valueFactory.createStatement( RDF.OBJECT, RDF.TYPE, RDFS.RESOURCE, null, StatementEnum.Axiom)); axioms.add( valueFactory.createStatement( RDF.REST, RDF.TYPE, RDFS.RESOURCE, null, StatementEnum.Axiom)); axioms.add( valueFactory.createStatement( RDF.XMLLITERAL, RDF.TYPE, RDFS.RESOURCE, null, StatementEnum.Axiom)); axioms.add( valueFactory.createStatement( RDF.NIL, RDF.TYPE, RDFS.RESOURCE, null, StatementEnum.Axiom)); axioms.add( valueFactory.createStatement( RDF.FIRST, RDF.TYPE, RDFS.RESOURCE, null, StatementEnum.Axiom)); axioms.add( valueFactory.createStatement( RDF.VALUE, RDF.TYPE, RDFS.RESOURCE, null, StatementEnum.Axiom)); axioms.add( valueFactory.createStatement( RDF.SUBJECT, RDF.TYPE, RDFS.RESOURCE, null, StatementEnum.Axiom)); axioms.add( valueFactory.createStatement( RDF.TYPE, RDF.TYPE, RDFS.RESOURCE, null, StatementEnum.Axiom)); axioms.add( valueFactory.createStatement( RDF.PREDICATE, RDF.TYPE, RDFS.RESOURCE, null, StatementEnum.Axiom)); axioms.add( valueFactory.createStatement( RDFS.RESOURCE, RDF.TYPE, RDFS.RESOURCE , null, StatementEnum.Axiom)); axioms.add( valueFactory.createStatement( RDFS.DOMAIN, RDF.TYPE, RDF.PROPERTY, null, StatementEnum.Axiom)); axioms.add( valueFactory.createStatement( RDFS.RESOURCE, RDFS.SUBCLASSOF, RDFS.RESOURCE, null, StatementEnum.Axiom)); axioms.add( valueFactory.createStatement( RDFS.CLASS, RDF.TYPE, RDFS.CLASS, null, StatementEnum.Axiom)); axioms.add( valueFactory.createStatement( RDF.PROPERTY, RDF.TYPE, RDFS.CLASS, null, StatementEnum.Axiom)); axioms.add( valueFactory.createStatement( RDFS.CLASS, RDF.TYPE, RDFS.RESOURCE, null, StatementEnum.Axiom)); axioms.add( valueFactory.createStatement( RDFS.DOMAIN, RDF.TYPE, RDFS.RESOURCE, null, StatementEnum.Axiom)); axioms.add( valueFactory.createStatement( RDF.PROPERTY, RDF.TYPE, RDFS.RESOURCE, null, StatementEnum.Axiom)); axioms.add( valueFactory.createStatement( RDFS.DOMAIN, RDFS.SUBPROPERTYOF, RDFS.DOMAIN, null, StatementEnum.Axiom)); axioms.add( valueFactory.createStatement( RDFS.CLASS, RDFS.SUBCLASSOF, RDFS.CLASS, null, StatementEnum.Axiom)); axioms.add( valueFactory.createStatement( RDF.PROPERTY, RDFS.SUBCLASSOF, RDF.PROPERTY, null, StatementEnum.Axiom)); axioms.add( valueFactory.createStatement( RDFS.CLASS, RDFS.SUBCLASSOF, RDFS.RESOURCE, null, StatementEnum.Axiom)); axioms.add( valueFactory.createStatement( RDF.PROPERTY, RDFS.SUBCLASSOF, RDFS.RESOURCE, null, StatementEnum.Axiom)); axioms.add( valueFactory.createStatement( RDFS.DATATYPE, RDFS.SUBCLASSOF, RDFS.RESOURCE, null, StatementEnum.Axiom)); axioms.add( valueFactory.createStatement( RDFS.CONTAINERMEMBERSHIPPROPERTY, RDFS.SUBCLASSOF, RDFS.RESOURCE, null, StatementEnum.Axiom)); axioms.add( valueFactory.createStatement( RDFS.SEEALSO, RDF.TYPE, RDF.PROPERTY, null, StatementEnum.Axiom)); axioms.add( valueFactory.createStatement( RDFS.RANGE, RDF.TYPE, RDF.PROPERTY, null, StatementEnum.Axiom)); axioms.add( valueFactory.createStatement( RDFS.SEEALSO, RDF.TYPE, RDFS.RESOURCE, null, StatementEnum.Axiom)); axioms.add( valueFactory.createStatement( RDFS.RANGE, RDF.TYPE, RDFS.RESOURCE, null, StatementEnum.Axiom)); axioms.add( valueFactory.createStatement( RDFS.SEEALSO, RDFS.SUBPROPERTYOF, RDFS.SEEALSO, null, StatementEnum.Axiom)); axioms.add( valueFactory.createStatement( RDFS.RANGE, RDFS.SUBPROPERTYOF, RDFS.RANGE, null, StatementEnum.Axiom)); axioms.add( valueFactory.createStatement( RDF.STATEMENT, RDF.TYPE, RDFS.CLASS, null, StatementEnum.Axiom)); axioms.add( valueFactory.createStatement( RDF.STATEMENT, RDF.TYPE, RDFS.RESOURCE, null, StatementEnum.Axiom)); axioms.add( valueFactory.createStatement( RDF.STATEMENT, RDFS.SUBCLASSOF, RDF.STATEMENT, null, StatementEnum.Axiom)); axioms.add( valueFactory.createStatement( RDF.STATEMENT, RDFS.SUBCLASSOF, RDFS.RESOURCE, null, StatementEnum.Axiom)); axioms.add( valueFactory.createStatement( RDFS.LITERAL, RDF.TYPE, RDFS.CLASS, null, StatementEnum.Axiom)); axioms.add( valueFactory.createStatement( RDFS.LABEL, RDF.TYPE, RDF.PROPERTY, null, StatementEnum.Axiom)); axioms.add( valueFactory.createStatement( RDFS.LABEL, RDF.TYPE, RDFS.RESOURCE, null, StatementEnum.Axiom)); axioms.add( valueFactory.createStatement( RDFS.LITERAL, RDF.TYPE, RDFS.RESOURCE, null, StatementEnum.Axiom)); axioms.add( valueFactory.createStatement( RDFS.LITERAL, RDFS.SUBCLASSOF, RDFS.LITERAL, null, StatementEnum.Axiom)); axioms.add( valueFactory.createStatement( RDFS.LABEL, RDFS.SUBPROPERTYOF, RDFS.LABEL, null, StatementEnum.Axiom)); axioms.add( valueFactory.createStatement( RDFS.LITERAL, RDFS.SUBCLASSOF, RDFS.RESOURCE, null, StatementEnum.Axiom)); axioms.add( valueFactory.createStatement( RDF.XMLLITERAL, RDFS.SUBCLASSOF, RDFS.RESOURCE, null, StatementEnum.Axiom)); axioms.add( valueFactory.createStatement( RDFS.CONTAINER, RDF.TYPE, RDFS.CLASS, null, StatementEnum.Axiom)); axioms.add( valueFactory.createStatement( RDF.ALT, RDF.TYPE, RDFS.CLASS, null, StatementEnum.Axiom)); axioms.add( valueFactory.createStatement( RDFS.SUBCLASSOF, RDF.TYPE, RDF.PROPERTY, null, StatementEnum.Axiom)); axioms.add( valueFactory.createStatement( RDF.ALT, RDF.TYPE, RDFS.RESOURCE, null, StatementEnum.Axiom)); axioms.add( valueFactory.createStatement( RDFS.CONTAINER, RDF.TYPE, RDFS.RESOURCE, null, StatementEnum.Axiom)); axioms.add( valueFactory.createStatement( RDFS.CONTAINER, RDFS.SUBCLASSOF, RDFS.CONTAINER, null, StatementEnum.Axiom)); axioms.add( valueFactory.createStatement( RDF.ALT, RDFS.SUBCLASSOF, RDF.ALT, null, StatementEnum.Axiom)); axioms.add( valueFactory.createStatement( RDFS.SUBCLASSOF, RDF.TYPE, RDFS.RESOURCE, null, StatementEnum.Axiom)); axioms.add( valueFactory.createStatement( RDFS.SUBCLASSOF, RDFS.SUBPROPERTYOF, RDFS.SUBCLASSOF, null, StatementEnum.Axiom)); axioms.add( valueFactory.createStatement( RDFS.CONTAINER, RDFS.SUBCLASSOF, RDFS.RESOURCE, null, StatementEnum.Axiom)); axioms.add( valueFactory.createStatement( RDF.ALT, RDFS.SUBCLASSOF, RDFS.RESOURCE, null, StatementEnum.Axiom)); axioms.add( valueFactory.createStatement( RDF.SEQ, RDFS.SUBCLASSOF, RDFS.RESOURCE, null, StatementEnum.Axiom)); axioms.add( valueFactory.createStatement( RDF.BAG, RDFS.SUBCLASSOF, RDFS.RESOURCE, null, StatementEnum.Axiom)); axioms.add( valueFactory.createStatement( RDF.OBJECT, RDFS.SUBPROPERTYOF, RDF.OBJECT, null, StatementEnum.Axiom)); axioms.add( valueFactory.createStatement( RDFS.MEMBER, RDF.TYPE, RDF.PROPERTY, null, StatementEnum.Axiom)); axioms.add( valueFactory.createStatement( RDFS.MEMBER, RDF.TYPE, RDFS.RESOURCE, null, StatementEnum.Axiom)); axioms.add( valueFactory.createStatement( RDFS.MEMBER, RDFS.SUBPROPERTYOF, RDFS.MEMBER, null, StatementEnum.Axiom)); axioms.add( valueFactory.createStatement( RDFS.ISDEFINEDBY, RDF.TYPE, RDF.PROPERTY, null, StatementEnum.Axiom)); axioms.add( valueFactory.createStatement( RDFS.SUBPROPERTYOF, RDF.TYPE, RDF.PROPERTY, null, StatementEnum.Axiom)); axioms.add( valueFactory.createStatement( RDFS.SUBPROPERTYOF, RDF.TYPE, RDFS.RESOURCE, null, StatementEnum.Axiom)); axioms.add( valueFactory.createStatement( RDFS.ISDEFINEDBY, RDF.TYPE, RDFS.RESOURCE, null, StatementEnum.Axiom)); axioms.add( valueFactory.createStatement( RDFS.ISDEFINEDBY, RDFS.SUBPROPERTYOF, RDFS.ISDEFINEDBY, null, StatementEnum.Axiom)); axioms.add( valueFactory.createStatement( RDFS.SUBPROPERTYOF, RDFS.SUBPROPERTYOF, RDFS.SUBPROPERTYOF, null, StatementEnum.Axiom)); axioms.add( valueFactory.createStatement( RDFS.DATATYPE, RDF.TYPE, RDFS.CLASS, null, StatementEnum.Axiom)); axioms.add( valueFactory.createStatement( RDF.XMLLITERAL, RDF.TYPE, RDFS.CLASS, null, StatementEnum.Axiom)); axioms.add( valueFactory.createStatement( RDFS.DATATYPE, RDF.TYPE, RDFS.RESOURCE, null, StatementEnum.Axiom)); axioms.add( valueFactory.createStatement( RDFS.DATATYPE, RDFS.SUBCLASSOF, RDFS.DATATYPE, null, StatementEnum.Axiom)); axioms.add( valueFactory.createStatement( RDF.XMLLITERAL, RDFS.SUBCLASSOF, RDF.XMLLITERAL, null, StatementEnum.Axiom)); axioms.add( valueFactory.createStatement( RDF.REST, RDFS.SUBPROPERTYOF, RDF.REST, null, StatementEnum.Axiom)); axioms.add( valueFactory.createStatement( RDF.SEQ, RDF.TYPE, RDFS.CLASS, null, StatementEnum.Axiom)); axioms.add( valueFactory.createStatement( RDF.SEQ, RDF.TYPE, RDFS.RESOURCE, null, StatementEnum.Axiom)); axioms.add( valueFactory.createStatement( RDF.SEQ, RDFS.SUBCLASSOF, RDF.SEQ, null, StatementEnum.Axiom)); axioms.add( valueFactory.createStatement( RDF.LIST, RDF.TYPE, RDFS.CLASS, null, StatementEnum.Axiom)); axioms.add( valueFactory.createStatement( RDF.LIST, RDF.TYPE, RDFS.RESOURCE, null, StatementEnum.Axiom)); axioms.add( valueFactory.createStatement( RDF.LIST, RDFS.SUBCLASSOF, RDF.LIST, null, StatementEnum.Axiom)); axioms.add( valueFactory.createStatement( RDF.LIST, RDFS.SUBCLASSOF, RDFS.RESOURCE, null, StatementEnum.Axiom)); axioms.add( valueFactory.createStatement( RDFS.COMMENT, RDF.TYPE, RDF.PROPERTY, null, StatementEnum.Axiom)); axioms.add( valueFactory.createStatement( RDFS.COMMENT, RDF.TYPE, RDFS.RESOURCE, null, StatementEnum.Axiom)); axioms.add( valueFactory.createStatement( RDFS.COMMENT, RDFS.SUBPROPERTYOF, RDFS.COMMENT, null, StatementEnum.Axiom)); axioms.add( valueFactory.createStatement( RDF.BAG, RDF.TYPE, RDFS.CLASS, null, StatementEnum.Axiom)); axioms.add( valueFactory.createStatement( RDF.BAG, RDF.TYPE, RDFS.RESOURCE, null, StatementEnum.Axiom)); axioms.add( valueFactory.createStatement( RDF.BAG, RDFS.SUBCLASSOF, RDF.BAG, null, StatementEnum.Axiom)); axioms.add( valueFactory.createStatement( RDF.FIRST, RDFS.SUBPROPERTYOF, RDF.FIRST, null, StatementEnum.Axiom)); axioms.add( valueFactory.createStatement( RDF.VALUE, RDFS.SUBPROPERTYOF, RDF.VALUE, null, StatementEnum.Axiom)); axioms.add( valueFactory.createStatement( RDFS.CONTAINERMEMBERSHIPPROPERTY, RDF.TYPE, RDFS.CLASS, null, StatementEnum.Axiom)); axioms.add( valueFactory.createStatement( RDFS.CONTAINERMEMBERSHIPPROPERTY, RDFS.SUBCLASSOF, RDFS.CONTAINERMEMBERSHIPPROPERTY, null, StatementEnum.Axiom)); axioms.add( valueFactory.createStatement( RDFS.CONTAINERMEMBERSHIPPROPERTY, RDF.TYPE, RDFS.RESOURCE, null, StatementEnum.Axiom)); axioms.add( valueFactory.createStatement( RDF.SUBJECT, RDFS.SUBPROPERTYOF, RDF.SUBJECT, null, StatementEnum.Axiom)); axioms.add( valueFactory.createStatement( RDF.TYPE, RDFS.SUBPROPERTYOF, RDF.TYPE, null, StatementEnum.Axiom)); axioms.add( valueFactory.createStatement( RDF.PREDICATE, RDFS.SUBPROPERTYOF, RDF.PREDICATE, null, StatementEnum.Axiom)); } final public boolean isNone() { return false; } final public boolean isRdfSchema() { return true; } public boolean isOwlSameAs() { return false; } }