From f8e612288f3a604ee1bd60016b7320f00b763e6b Mon Sep 17 00:00:00 2001 From: Federico Igne Date: Tue, 8 Dec 2020 13:16:30 +0000 Subject: 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. --- src/main/scala/uk/ac/ox/cs/rsacomb/CanonicalModel.scala | 9 ++++----- 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) { } case a: OWLSubObjectPropertyOfAxiom => { - val (factsF, rulesF) = - super.convert(a, term, unsafe, NoSkolem, Forward) - val (factsB, rulesB) = - super.convert(a, term, unsafe, NoSkolem, Backward) - (factsF ::: factsB, rulesF ::: rulesB) + val (facts, rules) = List(Empty, Forward, Backward) + .map(super.convert(a, term, unsafe, NoSkolem, _)) + .unzip + (facts.flatten, rules.flatten) } 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 renderer.render( SsubPropertyOfT - ) should "produce 2 rules" in { + ) should "produce 3 rules" in { val term = Variable.create("X") val unsafe = ontology.unsafeRoles val (facts, rules) = converter.convert(SsubPropertyOfT, term, unsafe, NoSkolem, Empty) facts shouldBe empty - rules should have length 2 + rules should have length 3 } } -- cgit v1.2.3