diff options
| author | Federico Igne <federico.igne@cs.ox.ac.uk> | 2020-09-30 19:45:25 +0200 |
|---|---|---|
| committer | Federico Igne <federico.igne@cs.ox.ac.uk> | 2020-09-30 19:45:25 +0200 |
| commit | 6a29b16dee0592fdeb03b26ff87fd00d57555f78 (patch) | |
| tree | f50800aa56a2f1b03a538c0a82eaa739ac671466 /src/main/scala/rsacomb/RDFoxAxiomConverter.scala | |
| parent | 7fd4023ab6d3b8cd379f4119c7bfbeaedca0b7b4 (diff) | |
| download | RSAComb-6a29b16dee0592fdeb03b26ff87fd00d57555f78.tar.gz RSAComb-6a29b16dee0592fdeb03b26ff87fd00d57555f78.zip | |
Add rule generation for unsafe T5 axioms for canonical model
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)) |
