From 55384aaf879027012d688bfa566e34928a5f57e1 Mon Sep 17 00:00:00 2001 From: Federico Igne Date: Sun, 3 Oct 2021 22:57:52 +0100 Subject: Add file output on verbose log level --- src/main/scala/uk/ac/ox/cs/rsacomb/RSAOntology.scala | 4 ++++ src/main/scala/uk/ac/ox/cs/rsacomb/util/Logger.scala | 17 +++++++++++------ 2 files changed, 15 insertions(+), 6 deletions(-) (limited to 'src/main/scala/uk/ac') diff --git a/src/main/scala/uk/ac/ox/cs/rsacomb/RSAOntology.scala b/src/main/scala/uk/ac/ox/cs/rsacomb/RSAOntology.scala index e2b0e2f..83ebbcb 100644 --- a/src/main/scala/uk/ac/ox/cs/rsacomb/RSAOntology.scala +++ b/src/main/scala/uk/ac/ox/cs/rsacomb/RSAOntology.scala @@ -549,6 +549,8 @@ class RSAOntology(axioms: List[OWLLogicalAxiom], datafiles: List[os.Path]) RDFoxUtil.addData(data, RSAOntology.CanonGraph, datafiles: _*) /* Top / equality axiomatization */ RDFoxUtil.addRules(data, topAxioms ++ equalityAxioms) + Logger.write(topAxioms.mkString("\n"), "canonical_model.datalog") + Logger.write(equalityAxioms.mkString("\n"), "canonical_model.datalog") /* Generate `named` predicates */ // TODO: do I need both to generate all NAMED atoms? RDFoxUtil.addFacts( @@ -571,6 +573,7 @@ class RSAOntology(axioms: List[OWLLogicalAxiom], datafiles: List[os.Path]) /* Add canonical model */ Logger print s"Canonical model rules: ${this.canonicalModel.rules.length}" + Logger.write(canonicalModel.rules.mkString("\n"), "canonical_model.datalog") RDFoxUtil.addRules(data, this.canonicalModel.rules) Logger print s"Canonical model facts: ${this.canonicalModel.facts.length}" @@ -586,6 +589,7 @@ class RSAOntology(axioms: List[OWLLogicalAxiom], datafiles: List[os.Path]) /* Add filtering program */ Logger print s"Filtering program rules: ${filter.rules.length}" + Logger.write(filter.rules.mkString("\n"), "filter.datalog") RDFoxUtil.addRules(data, filter.rules) // TODO: We remove the rules, should we drop the tuple table as well? data.clearRulesAxiomsExplicateFacts() diff --git a/src/main/scala/uk/ac/ox/cs/rsacomb/util/Logger.scala b/src/main/scala/uk/ac/ox/cs/rsacomb/util/Logger.scala index a09fcea..275079c 100644 --- a/src/main/scala/uk/ac/ox/cs/rsacomb/util/Logger.scala +++ b/src/main/scala/uk/ac/ox/cs/rsacomb/util/Logger.scala @@ -25,6 +25,10 @@ import java.io.PrintStream */ object Logger { + private val time = Calendar.getInstance() + + private lazy val dir = os.temp.dir(os.pwd, "rsacomb-", false) + /** Output stream for the logger. */ var output: PrintStream = System.out @@ -42,12 +46,13 @@ object Logger { /** Currend logger level */ var level: Level = DEBUG - def print(str: Any, lvl: Level = NORMAL): Unit = { - if (lvl <= level) { - val time = Calendar.getInstance.getTime - output println s"[$lvl][$time] $str" - } - } + def print(str: Any, lvl: Level = NORMAL): Unit = + if (lvl <= level) + output println s"[$lvl][${time.getTime}] $str" + + def write(content: os.Source, file: String, lvl: Level = VERBOSE): Unit = + if (lvl <= level) + os.write.append(dir / file, content) def timed[A](expr: => A, desc: String = "", lvl: Level = NORMAL): A = { val t0 = System.currentTimeMillis() -- cgit v1.2.3