aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFederico Igne <federico.igne@cs.ox.ac.uk>2020-12-08 13:16:30 +0000
committerFederico Igne <federico.igne@cs.ox.ac.uk>2020-12-08 13:16:30 +0000
commitf8e612288f3a604ee1bd60016b7320f00b763e6b (patch)
tree5ab556a5d2c2c0a95ab92a0b31550db74500ae47
parentc3ff5305c30cdf31755972df4c3dc554d5246ae9 (diff)
downloadRSAComb-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.scala9
-rw-r--r--src/test/scala/uk/ac/ox/cs/rsacomb/CanonicalModelSpec.scala4
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}