diff options
-rw-r--r-- | src/main/scala/uk/ac/ox/cs/rsacomb/approximation/Lowerbound.scala | 12 | ||||
-rw-r--r-- | src/main/scala/uk/ac/ox/cs/rsacomb/converter/Normalizer.scala | 5 |
2 files changed, 6 insertions, 11 deletions
diff --git a/src/main/scala/uk/ac/ox/cs/rsacomb/approximation/Lowerbound.scala b/src/main/scala/uk/ac/ox/cs/rsacomb/approximation/Lowerbound.scala index e261bce..3cc8fc3 100644 --- a/src/main/scala/uk/ac/ox/cs/rsacomb/approximation/Lowerbound.scala +++ b/src/main/scala/uk/ac/ox/cs/rsacomb/approximation/Lowerbound.scala | |||
@@ -48,14 +48,10 @@ class Lowerbound(implicit fresh: DataFactory) | |||
48 | import uk.ac.ox.cs.rsacomb.implicits.RDFox._ | 48 | import uk.ac.ox.cs.rsacomb.implicits.RDFox._ |
49 | 49 | ||
50 | /** Main entry point for the approximation algorithm */ | 50 | /** Main entry point for the approximation algorithm */ |
51 | def approximate(ontology: Ontology): RSAOntology = | 51 | def approximate(ontology: Ontology): RSAOntology = { |
52 | toRSA( | 52 | val axioms = ontology.axioms filter inALCHOIQ flatMap shift |
53 | new Ontology( | 53 | toRSA(new Ontology(ontology.origin, axioms, ontology.datafiles)) |
54 | ontology.origin, | 54 | } |
55 | ontology.axioms filter inALCHOIQ flatMap shift, | ||
56 | ontology.datafiles | ||
57 | ) | ||
58 | ) | ||
59 | 55 | ||
60 | /** Discards all axioms outside ALCHOIQ */ | 56 | /** Discards all axioms outside ALCHOIQ */ |
61 | private def inALCHOIQ(axiom: OWLLogicalAxiom): Boolean = | 57 | private def inALCHOIQ(axiom: OWLLogicalAxiom): Boolean = |
diff --git a/src/main/scala/uk/ac/ox/cs/rsacomb/converter/Normalizer.scala b/src/main/scala/uk/ac/ox/cs/rsacomb/converter/Normalizer.scala index 33cb715..98e4dd0 100644 --- a/src/main/scala/uk/ac/ox/cs/rsacomb/converter/Normalizer.scala +++ b/src/main/scala/uk/ac/ox/cs/rsacomb/converter/Normalizer.scala | |||
@@ -198,7 +198,7 @@ class Normalizer() { | |||
198 | * forall R . B c A | 198 | * forall R . B c A |
199 | * ¬ A c ¬∀forall R . B | 199 | * ¬ A c ¬∀forall R . B |
200 | * ¬ A c exists R . ¬ B | 200 | * ¬ A c exists R . ¬ B |
201 | * ¬ A c C, C c R . ¬ B | 201 | * ¬ A c C, C c exists R . ¬ B |
202 | * top c A u C, D c ¬ B, C c exists R . D | 202 | * top c A u C, D c ¬ B, C c exists R . D |
203 | * top c A u C, D n B c bot, C c exists R . D | 203 | * top c A u C, D n B c bot, C c exists R . D |
204 | */ | 204 | */ |
@@ -219,7 +219,7 @@ class Normalizer() { | |||
219 | c, | 219 | c, |
220 | factory.getOWLObjectSomeValuesFrom(role, d) | 220 | factory.getOWLObjectSomeValuesFrom(role, d) |
221 | ) | 221 | ) |
222 | ) | 222 | ).flatMap(normalize(_)(fresh)) |
223 | } | 223 | } |
224 | /** Object/Data universal quantification on the lhs */ | 224 | /** Object/Data universal quantification on the lhs */ |
225 | case (sub: OWLDataAllValuesFrom, _) => notSupported(a) | 225 | case (sub: OWLDataAllValuesFrom, _) => notSupported(a) |
@@ -468,7 +468,6 @@ class Normalizer() { | |||
468 | /** Self-restriction over an object property */ | 468 | /** Self-restriction over an object property */ |
469 | case (sub: OWLObjectHasSelf, _) => notSupported(a) | 469 | case (sub: OWLObjectHasSelf, _) => notSupported(a) |
470 | case (_, sup: OWLObjectHasSelf) => notSupported(a) | 470 | case (_, sup: OWLObjectHasSelf) => notSupported(a) |
471 | |||
472 | /** Axiom is already normalized */ | 471 | /** Axiom is already normalized */ |
473 | case _ => Seq(a) | 472 | case _ => Seq(a) |
474 | } | 473 | } |