diff options
author | Federico Igne <federico.igne@cs.ox.ac.uk> | 2020-12-08 13:16:30 +0000 |
---|---|---|
committer | Federico Igne <federico.igne@cs.ox.ac.uk> | 2020-12-08 13:16:30 +0000 |
commit | f8e612288f3a604ee1bd60016b7320f00b763e6b (patch) | |
tree | 5ab556a5d2c2c0a95ab92a0b31550db74500ae47 | |
parent | c3ff5305c30cdf31755972df4c3dc554d5246ae9 (diff) | |
download | RSAComb-f8e612288f3a604ee1bd60016b7320f00b763e6b.tar.gz RSAComb-f8e612288f3a604ee1bd60016b7320f00b763e6b.zip |
Fix bug for OWLObjectSubPropertyOfAxiom
A version of the rule with an empty suffix was missing. Note that this
is not completely clear from the paper.
-rw-r--r-- | src/main/scala/uk/ac/ox/cs/rsacomb/CanonicalModel.scala | 9 | ||||
-rw-r--r-- | src/test/scala/uk/ac/ox/cs/rsacomb/CanonicalModelSpec.scala | 4 |
2 files changed, 6 insertions, 7 deletions
diff --git a/src/main/scala/uk/ac/ox/cs/rsacomb/CanonicalModel.scala b/src/main/scala/uk/ac/ox/cs/rsacomb/CanonicalModel.scala index c605e51..5001c8a 100644 --- a/src/main/scala/uk/ac/ox/cs/rsacomb/CanonicalModel.scala +++ b/src/main/scala/uk/ac/ox/cs/rsacomb/CanonicalModel.scala | |||
@@ -247,11 +247,10 @@ class CanonicalModel(val ontology: RSAOntology) { | |||
247 | } | 247 | } |
248 | 248 | ||
249 | case a: OWLSubObjectPropertyOfAxiom => { | 249 | case a: OWLSubObjectPropertyOfAxiom => { |
250 | val (factsF, rulesF) = | 250 | val (facts, rules) = List(Empty, Forward, Backward) |
251 | super.convert(a, term, unsafe, NoSkolem, Forward) | 251 | .map(super.convert(a, term, unsafe, NoSkolem, _)) |
252 | val (factsB, rulesB) = | 252 | .unzip |
253 | super.convert(a, term, unsafe, NoSkolem, Backward) | 253 | (facts.flatten, rules.flatten) |
254 | (factsF ::: factsB, rulesF ::: rulesB) | ||
255 | } | 254 | } |
256 | 255 | ||
257 | case a => super.convert(a, term, unsafe, skolem, suffix) | 256 | case a => super.convert(a, term, unsafe, skolem, suffix) |
diff --git a/src/test/scala/uk/ac/ox/cs/rsacomb/CanonicalModelSpec.scala b/src/test/scala/uk/ac/ox/cs/rsacomb/CanonicalModelSpec.scala index a588ae8..0d18e66 100644 --- a/src/test/scala/uk/ac/ox/cs/rsacomb/CanonicalModelSpec.scala +++ b/src/test/scala/uk/ac/ox/cs/rsacomb/CanonicalModelSpec.scala | |||
@@ -218,13 +218,13 @@ class Ontology1_CanonicalModelSpec | |||
218 | 218 | ||
219 | renderer.render( | 219 | renderer.render( |
220 | SsubPropertyOfT | 220 | SsubPropertyOfT |
221 | ) should "produce 2 rules" in { | 221 | ) should "produce 3 rules" in { |
222 | val term = Variable.create("X") | 222 | val term = Variable.create("X") |
223 | val unsafe = ontology.unsafeRoles | 223 | val unsafe = ontology.unsafeRoles |
224 | val (facts, rules) = | 224 | val (facts, rules) = |
225 | converter.convert(SsubPropertyOfT, term, unsafe, NoSkolem, Empty) | 225 | converter.convert(SsubPropertyOfT, term, unsafe, NoSkolem, Empty) |
226 | facts shouldBe empty | 226 | facts shouldBe empty |
227 | rules should have length 2 | 227 | rules should have length 3 |
228 | } | 228 | } |
229 | 229 | ||
230 | } | 230 | } |