// This file is part of AceWiki. // Copyright 2008-2013, AceWiki developers. // // AceWiki is free software: you can redistribute it and/or modify it under the terms of the GNU // Lesser General Public License as published by the Free Software Foundation, either version 3 of // the License, or (at your option) any later version. // // AceWiki 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public License along with AceWiki. If // not, see http://www.gnu.org/licenses/. package ch.uzh.ifi.attempto.acewiki.owl; import java.util.ArrayList; import org.semanticweb.owlapi.model.IRI; import org.semanticweb.owlapi.model.OWLAnnotation; import org.semanticweb.owlapi.model.OWLDataFactory; import org.semanticweb.owlapi.model.OWLDeclarationAxiom; import org.semanticweb.owlapi.model.OWLLogicalEntity; import uk.ac.manchester.cs.owl.owlapi.OWLDataFactoryImpl; import uk.ac.manchester.cs.owl.owlapi.OWLDeclarationAxiomImpl; import ch.uzh.ifi.attempto.acewiki.core.AbstractOntologyElement; /** * This is a partial implementation of an ontology element that has an OWL representation. * * @author Tobias Kuhn */ public abstract class AbstractOWLOntoElement extends AbstractOntologyElement implements OWLOntoElement { private static OWLDataFactory dataFactory = new OWLDataFactoryImpl(); public final IRI getIRI() { String baseIRI = ""; if (getOntology() != null) { baseIRI = getOntology().getURI(); } return IRI.create(baseIRI + "#" + getIRISuffix()); } /** * Returns the suffix of the OWL identifier of this ontology element. Such identifiers are IRIs * and the suffix is the part after the hash sign. * * @return The IRI suffix. */ public abstract String getIRISuffix(); /** * Returns the OWL data factory object. * * @return The OWL data factory. */ public OWLDataFactory getOWLDataFactory() { return dataFactory; } public OWLDeclarationAxiom getOWLDeclaration() { OWLLogicalEntity owl = getOWLRepresentation(); if (owl == null) { return null; } else { return new OWLDeclarationAxiomImpl( dataFactory, getOWLRepresentation(), new ArrayList<OWLAnnotation>() ); } } }