aboutsummaryrefslogtreecommitdiff
path: root/src/main/scala/rsacomb/RSAOntology.scala
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/scala/rsacomb/RSAOntology.scala')
-rw-r--r--src/main/scala/rsacomb/RSAOntology.scala28
1 files changed, 17 insertions, 11 deletions
diff --git a/src/main/scala/rsacomb/RSAOntology.scala b/src/main/scala/rsacomb/RSAOntology.scala
index c658227..681dbb0 100644
--- a/src/main/scala/rsacomb/RSAOntology.scala
+++ b/src/main/scala/rsacomb/RSAOntology.scala
@@ -12,6 +12,7 @@ import org.semanticweb.owlapi.reasoner.structural.StructuralReasonerFactory
12import tech.oxfordsemantic.jrdfox.Prefixes 12import tech.oxfordsemantic.jrdfox.Prefixes
13import tech.oxfordsemantic.jrdfox.logic.Variable 13import tech.oxfordsemantic.jrdfox.logic.Variable
14import tech.oxfordsemantic.jrdfox.client.UpdateType 14import tech.oxfordsemantic.jrdfox.client.UpdateType
15import tech.oxfordsemantic.jrdfox.logic.{Rule, Atom, Variable, IRI}
15 16
16/* Scala imports */ 17/* Scala imports */
17import scala.collection.JavaConverters._ 18import scala.collection.JavaConverters._
@@ -69,8 +70,14 @@ trait RSAOntology {
69 rule <- axiom.accept(visitor) 70 rule <- axiom.accept(visitor)
70 } yield rule 71 } yield rule
71 72
73 /* DEBUG: print datalog rules */
74 println("\nDatalog roles:")
75 datalog.foreach(println)
76
77 // TODO: Define Prefixes in RSA object
72 val prefixes = new Prefixes() 78 val prefixes = new Prefixes()
73 prefixes.declarePrefix(":", "http://example.com/rsa_example.owl#") 79 prefixes.declarePrefix(":", RSA.PrefixBase)
80 prefixes.declarePrefix("internal:", RSA.PrefixInternal)
74 prefixes.declarePrefix( 81 prefixes.declarePrefix(
75 "rdf:", 82 "rdf:",
76 "http://www.w3.org/1999/02/22-rdf-syntax-ns#" 83 "http://www.w3.org/1999/02/22-rdf-syntax-ns#"
@@ -99,30 +106,29 @@ trait RSAOntology {
99 data.importData( 106 data.importData(
100 UpdateType.ADDITION, 107 UpdateType.ADDITION,
101 prefixes, 108 prefixes,
102 "<internal:E>[?X,?Y] :- <internal:PE>[?X,?Y], <internal:U>[?X], <internal:U>[?Y] ." 109 "<http://127.0.0.1/E>[?X,?Y] :- <http://127.0.0.1/PE>[?X,?Y], <http://127.0.0.1/U>[?X], <http://127.0.0.1/U>[?Y] ."
103 ) 110 )
104 111
105 /* Add ontology rules 112 /* Add ontology rules
106 */ 113 */
107 data.importData( 114 data.addRules(datalog.asJava)
108 UpdateType.ADDITION,
109 prefixes,
110 datalog.foldLeft("")((str, rule) =>
111 str ++ "\n" ++ rule.toString().replace("(", "[").replace(")", "]")
112 )
113 )
114 115
115 // Retrieve all instances of PE 116 // Retrieve all instances of PE
116 println("\nQueries:") 117 println("\nQueries:")
117 RDFoxUtil.query( 118 RDFoxUtil.query(
118 data, 119 data,
119 prefixes, 120 prefixes,
120 "SELECT ?X ?Y WHERE { ?X <internal:PE> ?Y }" 121 "SELECT ?X ?Y WHERE { ?X internal:PE ?Y }"
122 )
123 RDFoxUtil.query(
124 data,
125 prefixes,
126 "SELECT ?X ?Y WHERE { ?X internal:E ?Y }"
121 ) 127 )
122 RDFoxUtil.query( 128 RDFoxUtil.query(
123 data, 129 data,
124 prefixes, 130 prefixes,
125 "SELECT ?X ?Y WHERE { ?X <internal:E> ?Y }" 131 "SELECT ?X WHERE { ?X rdf:type owl:Thing }"
126 ) 132 )
127 133
128 // Close connection to RDFox 134 // Close connection to RDFox