diff options
author | Federico Igne <federico.igne@cs.ox.ac.uk> | 2020-12-08 15:13:18 +0000 |
---|---|---|
committer | Federico Igne <federico.igne@cs.ox.ac.uk> | 2020-12-08 15:20:45 +0000 |
commit | 8af52541d00dc576bac20f9366be979a94d542c1 (patch) | |
tree | 75b6025759f4d288b74ebebcc4f1beb6e3344d78 /src | |
parent | f8e612288f3a604ee1bd60016b7320f00b763e6b (diff) | |
download | RSAComb-8af52541d00dc576bac20f9366be979a94d542c1.tar.gz RSAComb-8af52541d00dc576bac20f9366be979a94d542c1.zip |
Change how inverse roles are handle on the logic programming side
Seems like an easy way to convert inverse roles into atoms is to write
`R(y,x)` instead of `R^-(x,y)`.
This is still something we need to test and some additional rules that
use inverse roles in the naive way are still generated.
Diffstat (limited to 'src')
-rw-r--r-- | src/main/scala/uk/ac/ox/cs/rsacomb/converter/RDFoxConverter.scala | 3 | ||||
-rw-r--r-- | src/test/scala/uk/ac/ox/cs/rsacomb/converter/RDFoxConverterSpec.scala | 5 |
2 files changed, 4 insertions, 4 deletions
diff --git a/src/main/scala/uk/ac/ox/cs/rsacomb/converter/RDFoxConverter.scala b/src/main/scala/uk/ac/ox/cs/rsacomb/converter/RDFoxConverter.scala index 6193296..b4f5adb 100644 --- a/src/main/scala/uk/ac/ox/cs/rsacomb/converter/RDFoxConverter.scala +++ b/src/main/scala/uk/ac/ox/cs/rsacomb/converter/RDFoxConverter.scala | |||
@@ -425,7 +425,8 @@ trait RDFoxConverter { | |||
425 | * @see [[https://www.w3.org/TR/owl2-syntax/#Inverse_Object_Properties Inverse Object Properties]] | 425 | * @see [[https://www.w3.org/TR/owl2-syntax/#Inverse_Object_Properties Inverse Object Properties]] |
426 | */ | 426 | */ |
427 | case e: OWLObjectInverseOf => | 427 | case e: OWLObjectInverseOf => |
428 | convert(e.getInverse, term1, term2, suffix + Inverse) | 428 | //convert(e.getInverse, term1, term2, suffix + Inverse) |
429 | convert(e.getInverse, term2, term1, suffix) | ||
429 | 430 | ||
430 | /** The infamous impossible case. | 431 | /** The infamous impossible case. |
431 | * | 432 | * |
diff --git a/src/test/scala/uk/ac/ox/cs/rsacomb/converter/RDFoxConverterSpec.scala b/src/test/scala/uk/ac/ox/cs/rsacomb/converter/RDFoxConverterSpec.scala index a401abf..12f71e8 100644 --- a/src/test/scala/uk/ac/ox/cs/rsacomb/converter/RDFoxConverterSpec.scala +++ b/src/test/scala/uk/ac/ox/cs/rsacomb/converter/RDFoxConverterSpec.scala | |||
@@ -86,12 +86,11 @@ class RDFoxConverterSpec | |||
86 | } | 86 | } |
87 | } | 87 | } |
88 | 88 | ||
89 | "The inverse of an object property" should "be converted into an atom with matching negated predicate" in { | 89 | "The inverse of an object property" should "be converted into an atom with inverted subject/object" in { |
90 | val prop = factory.getOWLObjectProperty(iriString0) | 90 | val prop = factory.getOWLObjectProperty(iriString0) |
91 | val inv = factory.getOWLObjectInverseOf(prop) | 91 | val inv = factory.getOWLObjectInverseOf(prop) |
92 | for (sx <- Seq(Empty, Forward, Backward)) { | 92 | for (sx <- Seq(Empty, Forward, Backward)) { |
93 | val atom = | 93 | val atom = TupleTableAtom.rdf(term1, IRI.create(iriString0 :: sx), term0) |
94 | TupleTableAtom.rdf(term0, IRI.create(iriString0 :: sx + Inverse), term1) | ||
95 | convert(inv, term0, term1, sx) shouldEqual atom | 94 | convert(inv, term0, term1, sx) shouldEqual atom |
96 | } | 95 | } |
97 | } | 96 | } |