diff options
Diffstat (limited to 'src/main/scala/rsacomb/RDFoxAxiomConverter.scala')
-rw-r--r-- | src/main/scala/rsacomb/RDFoxAxiomConverter.scala | 16 |
1 files changed, 9 insertions, 7 deletions
diff --git a/src/main/scala/rsacomb/RDFoxAxiomConverter.scala b/src/main/scala/rsacomb/RDFoxAxiomConverter.scala index d90c966..dab6765 100644 --- a/src/main/scala/rsacomb/RDFoxAxiomConverter.scala +++ b/src/main/scala/rsacomb/RDFoxAxiomConverter.scala | |||
@@ -23,24 +23,26 @@ object RDFoxAxiomConverter { | |||
23 | 23 | ||
24 | def apply( | 24 | def apply( |
25 | term: Term, | 25 | term: Term, |
26 | unsafe: List[OWLObjectPropertyExpression], | ||
26 | skolem: SkolemStrategy = SkolemStrategy.None, | 27 | skolem: SkolemStrategy = SkolemStrategy.None, |
27 | unsafe: List[OWLObjectPropertyExpression] = List() | 28 | suffix: RSASuffix = RSASuffix.None |
28 | ): RDFoxAxiomConverter = | 29 | ): RDFoxAxiomConverter = |
29 | new RDFoxAxiomConverter(term, skolem, unsafe) | 30 | new RDFoxAxiomConverter(term, unsafe, skolem, suffix) |
30 | 31 | ||
31 | } // object RDFoxAxiomConverter | 32 | } // object RDFoxAxiomConverter |
32 | 33 | ||
33 | class RDFoxAxiomConverter( | 34 | class RDFoxAxiomConverter( |
34 | term: Term, | 35 | term: Term, |
36 | unsafe: List[OWLObjectPropertyExpression], | ||
35 | skolem: SkolemStrategy, | 37 | skolem: SkolemStrategy, |
36 | unsafe: List[OWLObjectPropertyExpression] | 38 | suffix: RSASuffix |
37 | ) extends OWLAxiomVisitorEx[List[Rule]] { | 39 | ) extends OWLAxiomVisitorEx[List[Rule]] { |
38 | 40 | ||
39 | override def visit(axiom: OWLSubClassOfAxiom): List[Rule] = { | 41 | override def visit(axiom: OWLSubClassOfAxiom): List[Rule] = { |
40 | // Skolemization is needed only for the head of an axiom | 42 | // Skolemization is needed only for the head of an axiom |
41 | val subVisitor = | 43 | val subVisitor = |
42 | new RDFoxClassExprConverter(term, SkolemStrategy.None, unsafe) | 44 | new RDFoxClassExprConverter(term, unsafe, SkolemStrategy.None, suffix) |
43 | val superVisitor = new RDFoxClassExprConverter(term, skolem, unsafe) | 45 | val superVisitor = new RDFoxClassExprConverter(term, unsafe, skolem, suffix) |
44 | // Each visitor returns a `RDFoxRuleShards`, a tuple (res,ext): | 46 | // Each visitor returns a `RDFoxRuleShards`, a tuple (res,ext): |
45 | // - the `res` List is a list of atoms resulting from the conversion | 47 | // - the `res` List is a list of atoms resulting from the conversion |
46 | // of the axiom. | 48 | // of the axiom. |
@@ -66,8 +68,8 @@ class RDFoxAxiomConverter( | |||
66 | override def visit(axiom: OWLSubObjectPropertyOfAxiom): List[Rule] = { | 68 | override def visit(axiom: OWLSubObjectPropertyOfAxiom): List[Rule] = { |
67 | val term1 = RSA.getFreshVariable() | 69 | val term1 = RSA.getFreshVariable() |
68 | val subVisitor = | 70 | val subVisitor = |
69 | new RDFoxPropertyExprConverter(term, term1, SkolemStrategy.None) | 71 | new RDFoxPropertyExprConverter(term, term1, suffix) |
70 | val superVisitor = new RDFoxPropertyExprConverter(term, term1, skolem) | 72 | val superVisitor = new RDFoxPropertyExprConverter(term, term1, suffix) |
71 | val body: List[BodyFormula] = axiom.getSubProperty.accept(subVisitor) | 73 | val body: List[BodyFormula] = axiom.getSubProperty.accept(subVisitor) |
72 | val head: List[Atom] = axiom.getSuperProperty.accept(superVisitor) | 74 | val head: List[Atom] = axiom.getSuperProperty.accept(superVisitor) |
73 | List(Rule.create(head.asJava, body.asJava)) | 75 | List(Rule.create(head.asJava, body.asJava)) |