From: <lor...@us...> - 2013-05-06 10:34:57
|
Revision: 3952 http://sourceforge.net/p/dl-learner/code/3952 Author: lorenz_b Date: 2013-05-06 10:34:52 +0000 (Mon, 06 May 2013) Log Message: ----------- Improved Latex output. Modified Paths: -------------- trunk/components-core/src/main/java/org/dllearner/kb/repository/bioportal/BioPortalRepository.java trunk/scripts/src/main/java/org/dllearner/scripts/pattern/OWLAxiomPatternDetectionEvaluation.java Modified: trunk/components-core/src/main/java/org/dllearner/kb/repository/bioportal/BioPortalRepository.java =================================================================== --- trunk/components-core/src/main/java/org/dllearner/kb/repository/bioportal/BioPortalRepository.java 2013-05-05 14:56:53 UTC (rev 3951) +++ trunk/components-core/src/main/java/org/dllearner/kb/repository/bioportal/BioPortalRepository.java 2013-05-06 10:34:52 UTC (rev 3952) @@ -26,6 +26,8 @@ private String apiKey = "8fadfa2c-47de-4487-a1f5-b7af7378d693"; private String serviceURL = "http://rest.bioontology.org/bioportal/ontologies"; + private boolean initialized = false; + private List<OntologyRepositoryEntry> entries = new ArrayList<OntologyRepositoryEntry>(); @Override @@ -41,6 +43,7 @@ @Override public void initialize() { refresh(); + initialized = true; } @Override @@ -90,6 +93,9 @@ @Override public Collection<OntologyRepositoryEntry> getEntries() { + if(!initialized){ + initialize(); + } return entries; } @@ -121,8 +127,6 @@ for(OntologyRepositoryEntry entry : entries){ System.out.println("Loading " + entry.getOntologyShortName()); System.out.println("From " + entry.getPhysicalURI()); - OWLOntology ont = OWLManager.createOWLOntologyManager().loadOntology(IRI.create(entry.getPhysicalURI())); - System.out.println(ont.getAxiomCount()); } } Modified: trunk/scripts/src/main/java/org/dllearner/scripts/pattern/OWLAxiomPatternDetectionEvaluation.java =================================================================== --- trunk/scripts/src/main/java/org/dllearner/scripts/pattern/OWLAxiomPatternDetectionEvaluation.java 2013-05-05 14:56:53 UTC (rev 3951) +++ trunk/scripts/src/main/java/org/dllearner/scripts/pattern/OWLAxiomPatternDetectionEvaluation.java 2013-05-06 10:34:52 UTC (rev 3952) @@ -4,6 +4,7 @@ import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; +import java.io.StringWriter; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; @@ -21,6 +22,8 @@ import org.aksw.commons.util.Pair; import org.coode.owlapi.functionalparser.OWLFunctionalSyntaxOWLParser; +import org.coode.owlapi.latex.LatexObjectVisitor; +import org.coode.owlapi.latex.LatexWriter; import org.dllearner.algorithms.pattern.OWLAxiomPatternFinder; import org.dllearner.core.owl.NamedClass; import org.dllearner.kb.SparqlEndpointKS; @@ -62,6 +65,8 @@ private Connection conn; private boolean fancyLatex = false; + private boolean dlSyntax = false; + private boolean formatNumbers = true; public OWLAxiomPatternDetectionEvaluation() { initDBConnection(); @@ -239,22 +244,41 @@ ps.setString(1, repository.getName()); avgNumberOfAboxAxioms = count(ps); - latexTable += - repository.getName() + "&" + - numberOfOntologies + "&" + - numberOfErrorOntologies + "&" + - minNumberOfLogicalAxioms + "&" + - avgNumberOfLogicalAxioms + "&" + - maxNumberOfLogicalAxioms + "&" + - minNumberOfTboxAxioms + "&" + - avgNumberOfTboxAxioms + "&" + - maxNumberOfTboxAxioms + "&" + - minNumberOfRboxAxioms + "&" + - avgNumberOfRboxAxioms + "&" + - maxNumberOfRboxAxioms + "&" + - minNumberOfAboxAxioms + "&" + - avgNumberOfAboxAxioms + "&" + - maxNumberOfAboxAxioms + "\\\\\n"; + if(formatNumbers){ + latexTable += + repository.getName() + "} & " + + "\\num{" + numberOfOntologies + "} & " + + "\\num{" + numberOfErrorOntologies + "} & " + + "\\num{" + minNumberOfLogicalAxioms + "} & " + + "\\num{" + avgNumberOfLogicalAxioms + "} & " + + "\\num{" + maxNumberOfLogicalAxioms + "} & " + + "\\num{" + minNumberOfTboxAxioms + "} & " + + "\\num{" + avgNumberOfTboxAxioms + "} & " + + "\\num{" + maxNumberOfTboxAxioms + "} & " + + "\\num{" + minNumberOfRboxAxioms + "} & " + + "\\num{" + avgNumberOfRboxAxioms + "} & " + + "\\num{" + maxNumberOfRboxAxioms + "} & " + + "\\num{" + minNumberOfAboxAxioms + "} & " + + "\\num{" + avgNumberOfAboxAxioms + "} & " + + "\\num{" + maxNumberOfAboxAxioms + "}\\\\\n"; + } else { + latexTable += + repository.getName() + " & " + + numberOfOntologies + " & " + + numberOfErrorOntologies + " & " + + minNumberOfLogicalAxioms + " & " + + avgNumberOfLogicalAxioms + " & " + + maxNumberOfLogicalAxioms + " & " + + minNumberOfTboxAxioms + " & " + + avgNumberOfTboxAxioms + " & " + + maxNumberOfTboxAxioms + " & " + + minNumberOfRboxAxioms + " & " + + avgNumberOfRboxAxioms + " & " + + maxNumberOfRboxAxioms + " & " + + minNumberOfAboxAxioms + " & " + + avgNumberOfAboxAxioms + " & " + + maxNumberOfAboxAxioms + "\\\\\n"; + } } catch (SQLException e) { e.printStackTrace(); @@ -271,22 +295,34 @@ } private String asLatex(String title, Map<OWLAxiom, Pair<Integer, Integer>> topN){ + StringWriter sw = new StringWriter(); + LatexWriter w = new LatexWriter(sw); + LatexObjectVisitor renderer = new LatexObjectVisitor(w, df); String latexTable = "\\begin{table}\n"; - latexTable += "\\begin{tabular}{lrr}\n"; + latexTable += "\\begin{tabular}{lrrr}\n"; latexTable += "\\toprule\n"; - latexTable += "Pattern & Frequency & \\#Ontologies\\\\\\midrule\n"; + latexTable += "Pattern & Frequency & \\#Ontologies & tf-idf \\\\\\midrule\n"; for (Entry<OWLAxiom, Pair<Integer, Integer>> entry : topN.entrySet()) { OWLAxiom axiom = entry.getKey(); Integer frequency = entry.getValue().getKey(); - Integer idf = entry.getValue().getValue(); + Integer df = entry.getValue().getValue(); if(axiom != null){ String axiomColumn = axiomRenderer.render(axiom); if(fancyLatex){ axiomColumn = "\\begin{lstlisting}[language=manchester]" + axiomColumn + "\\end{lstlisting}"; } - latexTable += axiomColumn + " & " + frequency + " & " + idf + "\\\\\n"; + if(dlSyntax){ + axiom.accept(renderer); + axiomColumn = sw.toString();sw.getBuffer().setLength(0); + + } + if(formatNumbers){ + latexTable += axiomColumn + " & " + "\\num{" + frequency + "} & " + df + "\\\\\n"; + } else { + latexTable += axiomColumn + " & " + frequency + " & " + df + "\\\\\n"; + } } } latexTable += "\\bottomrule\n\\end{tabular}\n"; @@ -394,6 +430,16 @@ return rs.getInt(1); } + private double tf_idf(int nrOfOccurrences, int nrOfOntologies, int nrOfOntologiesWithAxiom){ + double tf = nrOfOccurrences; + double idf = Math.log10(nrOfOntologies / nrOfOntologiesWithAxiom); + return tf * idf; + } + + private double popularity(int totalNrOfOntologies, int patternFrequency, int nrOfOntologiesWithPattern){ + return (double)Math.log10(patternFrequency) * (nrOfOntologiesWithPattern / (double)totalNrOfOntologies); + } + public static void main(String[] args) throws Exception { // ToStringRenderer.getInstance().setRenderer(new DLSyntaxObjectRenderer()); boolean analyzeRepositories = true; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |