aboutsummaryrefslogtreecommitdiff
path: root/src/main/scala/uk/ac/ox/cs
diff options
context:
space:
mode:
authorFederico Igne <git@federicoigne.com>2021-10-03 22:57:52 +0100
committerFederico Igne <git@federicoigne.com>2021-10-03 22:57:52 +0100
commit55384aaf879027012d688bfa566e34928a5f57e1 (patch)
treec4723b49cb78d78299fa3200531c4f2dae4c2a77 /src/main/scala/uk/ac/ox/cs
parent830b8d9f8902a4a3fc536f40843352e9ff905020 (diff)
downloadRSAComb-55384aaf879027012d688bfa566e34928a5f57e1.tar.gz
RSAComb-55384aaf879027012d688bfa566e34928a5f57e1.zip
Add file output on verbose log level
Diffstat (limited to 'src/main/scala/uk/ac/ox/cs')
-rw-r--r--src/main/scala/uk/ac/ox/cs/rsacomb/RSAOntology.scala4
-rw-r--r--src/main/scala/uk/ac/ox/cs/rsacomb/util/Logger.scala17
2 files changed, 15 insertions, 6 deletions
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])
549 RDFoxUtil.addData(data, RSAOntology.CanonGraph, datafiles: _*) 549 RDFoxUtil.addData(data, RSAOntology.CanonGraph, datafiles: _*)
550 /* Top / equality axiomatization */ 550 /* Top / equality axiomatization */
551 RDFoxUtil.addRules(data, topAxioms ++ equalityAxioms) 551 RDFoxUtil.addRules(data, topAxioms ++ equalityAxioms)
552 Logger.write(topAxioms.mkString("\n"), "canonical_model.datalog")
553 Logger.write(equalityAxioms.mkString("\n"), "canonical_model.datalog")
552 /* Generate `named` predicates */ 554 /* Generate `named` predicates */
553 // TODO: do I need both to generate all NAMED atoms? 555 // TODO: do I need both to generate all NAMED atoms?
554 RDFoxUtil.addFacts( 556 RDFoxUtil.addFacts(
@@ -571,6 +573,7 @@ class RSAOntology(axioms: List[OWLLogicalAxiom], datafiles: List[os.Path])
571 573
572 /* Add canonical model */ 574 /* Add canonical model */
573 Logger print s"Canonical model rules: ${this.canonicalModel.rules.length}" 575 Logger print s"Canonical model rules: ${this.canonicalModel.rules.length}"
576 Logger.write(canonicalModel.rules.mkString("\n"), "canonical_model.datalog")
574 RDFoxUtil.addRules(data, this.canonicalModel.rules) 577 RDFoxUtil.addRules(data, this.canonicalModel.rules)
575 578
576 Logger print s"Canonical model facts: ${this.canonicalModel.facts.length}" 579 Logger print s"Canonical model facts: ${this.canonicalModel.facts.length}"
@@ -586,6 +589,7 @@ class RSAOntology(axioms: List[OWLLogicalAxiom], datafiles: List[os.Path])
586 589
587 /* Add filtering program */ 590 /* Add filtering program */
588 Logger print s"Filtering program rules: ${filter.rules.length}" 591 Logger print s"Filtering program rules: ${filter.rules.length}"
592 Logger.write(filter.rules.mkString("\n"), "filter.datalog")
589 RDFoxUtil.addRules(data, filter.rules) 593 RDFoxUtil.addRules(data, filter.rules)
590 // TODO: We remove the rules, should we drop the tuple table as well? 594 // TODO: We remove the rules, should we drop the tuple table as well?
591 data.clearRulesAxiomsExplicateFacts() 595 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
25 */ 25 */
26object Logger { 26object Logger {
27 27
28 private val time = Calendar.getInstance()
29
30 private lazy val dir = os.temp.dir(os.pwd, "rsacomb-", false)
31
28 /** Output stream for the logger. */ 32 /** Output stream for the logger. */
29 var output: PrintStream = System.out 33 var output: PrintStream = System.out
30 34
@@ -42,12 +46,13 @@ object Logger {
42 /** Currend logger level */ 46 /** Currend logger level */
43 var level: Level = DEBUG 47 var level: Level = DEBUG
44 48
45 def print(str: Any, lvl: Level = NORMAL): Unit = { 49 def print(str: Any, lvl: Level = NORMAL): Unit =
46 if (lvl <= level) { 50 if (lvl <= level)
47 val time = Calendar.getInstance.getTime 51 output println s"[$lvl][${time.getTime}] $str"
48 output println s"[$lvl][$time] $str" 52
49 } 53 def write(content: os.Source, file: String, lvl: Level = VERBOSE): Unit =
50 } 54 if (lvl <= level)
55 os.write.append(dir / file, content)
51 56
52 def timed[A](expr: => A, desc: String = "", lvl: Level = NORMAL): A = { 57 def timed[A](expr: => A, desc: String = "", lvl: Level = NORMAL): A = {
53 val t0 = System.currentTimeMillis() 58 val t0 = System.currentTimeMillis()