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.aceowl; 016 017 import java.io.IOException; 018 import java.util.List; 019 020 import ch.uzh.ifi.attempto.acewiki.core.LanguageUtils; 021 import ch.uzh.ifi.attempto.acewiki.core.OntologyElement; 022 import ch.uzh.ifi.attempto.acewiki.core.OntologyExporter; 023 import ch.uzh.ifi.attempto.acewiki.core.Sentence; 024 025 /** 026 * This exporter generates a file that contains the complete ontology as one ACE text. 027 * 028 * @author Tobias Kuhn 029 */ 030 public class ACETextExporter extends OntologyExporter { 031 032 private final boolean consistent; 033 034 /** 035 * Creates a new ACE text exporter. 036 * 037 * @param consistent Defines if only the consistent part of the ontology should be considered. 038 */ 039 public ACETextExporter(boolean consistent) { 040 this.consistent = consistent; 041 } 042 043 protected void writeContent() throws IOException { 044 List<OntologyElement> elements = getOntologyElements(); 045 LanguageUtils.sortOntologyElements(elements); 046 for (OntologyElement oe : elements) { 047 String heading = "\n# " + LanguageUtils.getHeading(oe) + "\n\n"; 048 for (Sentence sentence : oe.getArticle().getSentences()) { 049 ACESentence s = (ACESentence) sentence; 050 if (!consistent || (s.isIntegrated() && s.isReasonable()) ) { 051 if (heading != null) { 052 write(heading); 053 heading = null; 054 } 055 write(s.getText() + "\n\n"); 056 } 057 } 058 } 059 } 060 061 public String getName() { 062 return "ACE Text, " + (consistent ? "consistent" : "full"); 063 } 064 065 public boolean isApplicable() { 066 return true; 067 } 068 069 public String getFileSuffix() { 070 return ".ace.txt"; 071 } 072 073 public String getContentType() { 074 return "text/plain"; 075 } 076 077 }