001 // This file is part of AceWiki. 002 // Copyright 2008-2012, AceWiki developers. 003 // 004 // AceWiki is free software: you can redistribute it and/or modify it under the terms of the GNU 005 // Lesser General Public License as published by the Free Software Foundation, either version 3 of 006 // the License, or (at your option) any later version. 007 // 008 // AceWiki is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without 009 // even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 010 // Lesser General Public License for more details. 011 // 012 // You should have received a copy of the GNU Lesser General Public License along with AceWiki. If 013 // not, see http://www.gnu.org/licenses/. 014 015 package ch.uzh.ifi.attempto.acewiki.owl; 016 017 import java.util.ArrayList; 018 019 import org.semanticweb.owlapi.model.IRI; 020 import org.semanticweb.owlapi.model.OWLAnnotation; 021 import org.semanticweb.owlapi.model.OWLDataFactory; 022 import org.semanticweb.owlapi.model.OWLDeclarationAxiom; 023 import org.semanticweb.owlapi.model.OWLLogicalEntity; 024 025 import uk.ac.manchester.cs.owl.owlapi.OWLDataFactoryImpl; 026 import uk.ac.manchester.cs.owl.owlapi.OWLDeclarationAxiomImpl; 027 import ch.uzh.ifi.attempto.acewiki.core.AbstractOntologyElement; 028 029 /** 030 * This is a partial implementation of an ontology element that has an OWL representation. 031 * 032 * @author Tobias Kuhn 033 */ 034 public abstract class AbstractOWLOntoElement extends AbstractOntologyElement 035 implements OWLOntoElement { 036 037 private static OWLDataFactory dataFactory = new OWLDataFactoryImpl(); 038 039 public final IRI getIRI() { 040 String baseIRI = ""; 041 if (getOntology() != null) { 042 baseIRI = getOntology().getURI(); 043 } 044 return IRI.create(baseIRI + "#" + getIRISuffix()); 045 } 046 047 /** 048 * Returns the suffix of the OWL identifier of this ontology element. Such identifiers are IRIs 049 * and the suffix is the part after the hash sign. 050 * 051 * @return The IRI suffix. 052 */ 053 public abstract String getIRISuffix(); 054 055 /** 056 * Returns the OWL data factory object. 057 * 058 * @return The OWL data factory. 059 */ 060 public OWLDataFactory getOWLDataFactory() { 061 return dataFactory; 062 } 063 064 public OWLDeclarationAxiom getOWLDeclaration() { 065 OWLLogicalEntity owl = getOWLRepresentation(); 066 if (owl == null) { 067 return null; 068 } else { 069 return new OWLDeclarationAxiomImpl( 070 dataFactory, 071 getOWLRepresentation(), 072 new ArrayList<OWLAnnotation>() 073 ); 074 } 075 } 076 077 }