aboutsummaryrefslogtreecommitdiff
path: root/src/main/scala/rsacomb/RDFoxAxiomConverter.scala
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/scala/rsacomb/RDFoxAxiomConverter.scala')
-rw-r--r--src/main/scala/rsacomb/RDFoxAxiomConverter.scala16
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
33class RDFoxAxiomConverter( 34class 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))