diff options
| author | Federico Igne <git@federicoigne.com> | 2021-10-03 22:57:52 +0100 |
|---|---|---|
| committer | Federico Igne <git@federicoigne.com> | 2021-10-03 22:57:52 +0100 |
| commit | 55384aaf879027012d688bfa566e34928a5f57e1 (patch) | |
| tree | c4723b49cb78d78299fa3200531c4f2dae4c2a77 /src/main/scala | |
| parent | 830b8d9f8902a4a3fc536f40843352e9ff905020 (diff) | |
| download | RSAComb-55384aaf879027012d688bfa566e34928a5f57e1.tar.gz RSAComb-55384aaf879027012d688bfa566e34928a5f57e1.zip | |
Add file output on verbose log level
Diffstat (limited to 'src/main/scala')
| -rw-r--r-- | src/main/scala/uk/ac/ox/cs/rsacomb/RSAOntology.scala | 4 | ||||
| -rw-r--r-- | src/main/scala/uk/ac/ox/cs/rsacomb/util/Logger.scala | 17 |
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 | */ |
| 26 | object Logger { | 26 | object 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() |
