diff options
Diffstat (limited to 'src/main/scala/rsacomb/RSAOntology.scala')
| -rw-r--r-- | src/main/scala/rsacomb/RSAOntology.scala | 28 |
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 | |||
| 12 | import tech.oxfordsemantic.jrdfox.Prefixes | 12 | import tech.oxfordsemantic.jrdfox.Prefixes |
| 13 | import tech.oxfordsemantic.jrdfox.logic.Variable | 13 | import tech.oxfordsemantic.jrdfox.logic.Variable |
| 14 | import tech.oxfordsemantic.jrdfox.client.UpdateType | 14 | import tech.oxfordsemantic.jrdfox.client.UpdateType |
| 15 | import tech.oxfordsemantic.jrdfox.logic.{Rule, Atom, Variable, IRI} | ||
| 15 | 16 | ||
| 16 | /* Scala imports */ | 17 | /* Scala imports */ |
| 17 | import scala.collection.JavaConverters._ | 18 | import 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 |
