diff options
Diffstat (limited to 'src/main/scala/rsacomb/CanonicalModel.scala')
-rw-r--r-- | src/main/scala/rsacomb/CanonicalModel.scala | 28 |
1 files changed, 18 insertions, 10 deletions
diff --git a/src/main/scala/rsacomb/CanonicalModel.scala b/src/main/scala/rsacomb/CanonicalModel.scala index 49c0c24..162bea1 100644 --- a/src/main/scala/rsacomb/CanonicalModel.scala +++ b/src/main/scala/rsacomb/CanonicalModel.scala | |||
@@ -25,19 +25,27 @@ object ProgramGenerator { | |||
25 | Seq( | 25 | Seq( |
26 | Rule.create( | 26 | Rule.create( |
27 | Atom.rdf(varX, IRI.create(pred), varY), | 27 | Atom.rdf(varX, IRI.create(pred), varY), |
28 | Atom.rdf(varX, IRI.create(pred ++ "_f"), varY) | 28 | Atom.rdf(varX, IRI.create(pred ++ RSASuffix.Forward.getSuffix), varY) |
29 | ), | 29 | ), |
30 | Rule.create( | 30 | Rule.create( |
31 | Atom.rdf(varX, IRI.create(pred), varY), | 31 | Atom.rdf(varX, IRI.create(pred), varY), |
32 | Atom.rdf(varX, IRI.create(pred ++ "_b"), varY) | 32 | Atom.rdf(varX, IRI.create(pred ++ RSASuffix.Backward.getSuffix), varY) |
33 | ), | 33 | ), |
34 | Rule.create( | 34 | Rule.create( |
35 | Atom.rdf(varY, IRI.create(pred ++ "_b" ++ "_inv"), varX), | 35 | Atom.rdf( |
36 | Atom.rdf(varX, IRI.create(pred ++ "_f"), varY) | 36 | varY, |
37 | IRI.create(pred ++ RSASuffix.Backward.getSuffix ++ "_inv"), | ||
38 | varX | ||
39 | ), | ||
40 | Atom.rdf(varX, IRI.create(pred ++ RSASuffix.Forward.getSuffix), varY) | ||
37 | ), | 41 | ), |
38 | Rule.create( | 42 | Rule.create( |
39 | Atom.rdf(varY, IRI.create(pred ++ "_f" ++ "_inv"), varX), | 43 | Atom.rdf( |
40 | Atom.rdf(varX, IRI.create(pred ++ "_b"), varY) | 44 | varY, |
45 | IRI.create(pred ++ RSASuffix.Forward.getSuffix ++ "_inv"), | ||
46 | varX | ||
47 | ), | ||
48 | Atom.rdf(varX, IRI.create(pred ++ RSASuffix.Backward.getSuffix), varY) | ||
41 | ) | 49 | ) |
42 | ) | 50 | ) |
43 | } | 51 | } |
@@ -51,7 +59,7 @@ object ProgramGenerator { | |||
51 | class ProgramGenerator( | 59 | class ProgramGenerator( |
52 | term: Term, | 60 | term: Term, |
53 | unsafe: List[OWLObjectPropertyExpression] | 61 | unsafe: List[OWLObjectPropertyExpression] |
54 | ) extends RDFoxAxiomConverter(term, SkolemStrategy.None, unsafe) | 62 | ) extends RDFoxAxiomConverter(term, unsafe, SkolemStrategy.None, RSASuffix.None) |
55 | with RSAAxiom { | 63 | with RSAAxiom { |
56 | 64 | ||
57 | override def visit(axiom: OWLSubClassOfAxiom): List[Rule] = { | 65 | override def visit(axiom: OWLSubClassOfAxiom): List[Rule] = { |
@@ -63,18 +71,18 @@ class ProgramGenerator( | |||
63 | val visitor = | 71 | val visitor = |
64 | new RDFoxAxiomConverter( | 72 | new RDFoxAxiomConverter( |
65 | term, | 73 | term, |
74 | unsafe, | ||
66 | SkolemStrategy.Standard(axiom.toString), | 75 | SkolemStrategy.Standard(axiom.toString), |
67 | unsafe | 76 | RSASuffix.Forward |
68 | ) | 77 | ) |
69 | axiom.accept(visitor) | 78 | axiom.accept(visitor) |
70 | } else { | 79 | } else { |
71 | // TODO; Handle forks | 80 | List() |
72 | } | 81 | } |
73 | } else { | 82 | } else { |
74 | // Fallback to standard OWL to LP translation | 83 | // Fallback to standard OWL to LP translation |
75 | super.visit(axiom) | 84 | super.visit(axiom) |
76 | } | 85 | } |
77 | List() | ||
78 | } | 86 | } |
79 | 87 | ||
80 | override def visit(axiom: OWLSubObjectPropertyOfAxiom): List[Rule] = { | 88 | override def visit(axiom: OWLSubObjectPropertyOfAxiom): List[Rule] = { |