// 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.core; import java.io.IOException; import java.util.List; /** * This exporter generates a table of the wiki statements in CSV (comma separated values) format. * * @author Tobias Kuhn */ public class StatementTableExporter extends OntologyExporter { /** * Creates a statement table exporter. */ public StatementTableExporter() { } protected void writeContent(String language) throws IOException { write("PAGE,TYPE,TEXT\n"); List<OntologyElement> elements = getOntologyElements(); LanguageUtils.sortOntologyElements(elements); for (OntologyElement oe : elements) { for (Statement s : oe.getArticle().getStatements()) { write(LanguageUtils.getHeading(oe) + ","); write(getStatementType(s) + ","); write("\"" + s.getText(language).replaceAll("\"", "\"\"").replaceAll("\\s+", " ") + "\""); write("\n"); } } } public boolean isApplicable() { return true; } public String getName() { return "acewiki_export_statementfile"; } public String getFileSuffix() { return "-st.csv"; } public String getContentType() { return "text/plain"; } private static String getStatementType(Statement statement) { if (statement instanceof Comment) { return "comment"; } else if (statement instanceof Question) { return "question"; } else if (statement instanceof Declaration) { Declaration declaration = (Declaration) statement; if (declaration.getArticle() == null) { return "inferred"; } else if (declaration.isIntegrated()) { return "asserted"; } else { return "unasserted"; } } else { throw new RuntimeException("Unknown statement class"); } } }