diff options
author | Federico Igne <federico.igne@cs.ox.ac.uk> | 2021-11-11 17:32:13 +0000 |
---|---|---|
committer | Federico Igne <federico.igne@cs.ox.ac.uk> | 2021-11-11 17:32:13 +0000 |
commit | 0b640c3d13c65a8b83ee4313827b5fc6a12e1936 (patch) | |
tree | afdad06b833e3692e98100784309d421fa590677 | |
parent | 1b9bf987ffa47414122f1078fb457028d244e57e (diff) | |
download | RSAComb-0b640c3d13c65a8b83ee4313827b5fc6a12e1936.tar.gz RSAComb-0b640c3d13c65a8b83ee4313827b5fc6a12e1936.zip |
Add support for directory of query files
-rw-r--r-- | src/main/scala/uk/ac/ox/cs/rsacomb/Main.scala | 6 | ||||
-rw-r--r-- | src/main/scala/uk/ac/ox/cs/rsacomb/RSAConfig.scala | 11 | ||||
-rw-r--r-- | src/main/scala/uk/ac/ox/cs/rsacomb/util/RDFoxUtil.scala | 18 |
3 files changed, 27 insertions, 8 deletions
diff --git a/src/main/scala/uk/ac/ox/cs/rsacomb/Main.scala b/src/main/scala/uk/ac/ox/cs/rsacomb/Main.scala index cbec9ec..3aa81a7 100644 --- a/src/main/scala/uk/ac/ox/cs/rsacomb/Main.scala +++ b/src/main/scala/uk/ac/ox/cs/rsacomb/Main.scala | |||
@@ -50,16 +50,14 @@ object RSAComb extends App { | |||
50 | val data = config('data).get[List[os.Path]] | 50 | val data = config('data).get[List[os.Path]] |
51 | val ontology = Ontology(ontopath, data).normalize(new Normalizer) | 51 | val ontology = Ontology(ontopath, data).normalize(new Normalizer) |
52 | 52 | ||
53 | //ontology.axioms foreach println | ||
54 | |||
55 | /* Approximate the ontology to RSA */ | 53 | /* Approximate the ontology to RSA */ |
56 | val toRSA = config('approximation).get[Approximation[RSAOntology]] | 54 | val toRSA = config('approximation).get[Approximation[RSAOntology]] |
57 | val rsa = ontology approximate toRSA | 55 | val rsa = ontology approximate toRSA |
58 | 56 | ||
59 | if (config contains 'queries) { | 57 | if (config contains 'queries) { |
60 | val queries = | 58 | val queries = |
61 | RDFoxUtil.loadQueriesFromFile( | 59 | RDFoxUtil.loadQueriesFromFiles( |
62 | config('queries).get[os.Path] | 60 | config('queries).get[List[os.Path]] |
63 | ) | 61 | ) |
64 | 62 | ||
65 | val answers = rsa ask queries | 63 | val answers = rsa ask queries |
diff --git a/src/main/scala/uk/ac/ox/cs/rsacomb/RSAConfig.scala b/src/main/scala/uk/ac/ox/cs/rsacomb/RSAConfig.scala index 3e92d81..1a4afd7 100644 --- a/src/main/scala/uk/ac/ox/cs/rsacomb/RSAConfig.scala +++ b/src/main/scala/uk/ac/ox/cs/rsacomb/RSAConfig.scala | |||
@@ -126,9 +126,14 @@ object RSAConfig { | |||
126 | } | 126 | } |
127 | case flag @ ("-q" | "--queries") :: _query :: tail => { | 127 | case flag @ ("-q" | "--queries") :: _query :: tail => { |
128 | val query = getPath(_query) | 128 | val query = getPath(_query) |
129 | if (!os.isFile(query)) | 129 | val files = |
130 | exit(s"'${_query}' is not a valid filename.") | 130 | if (os.isFile(query)) |
131 | parse(tail, config += ('queries -> query)) | 131 | Seq(query) |
132 | else if (os.isDir(query)) | ||
133 | os.walk(query).filter(os.isFile) | ||
134 | else | ||
135 | exit(s"'${_query}' is not a valid path.") | ||
136 | parse(tail, config += ('queries -> files)) | ||
132 | } | 137 | } |
133 | case flag @ ("-o" | "--ontology") :: _ontology :: tail => { | 138 | case flag @ ("-o" | "--ontology") :: _ontology :: tail => { |
134 | val ontology = getPath(_ontology) | 139 | val ontology = getPath(_ontology) |
diff --git a/src/main/scala/uk/ac/ox/cs/rsacomb/util/RDFoxUtil.scala b/src/main/scala/uk/ac/ox/cs/rsacomb/util/RDFoxUtil.scala index d4e55d8..4153fac 100644 --- a/src/main/scala/uk/ac/ox/cs/rsacomb/util/RDFoxUtil.scala +++ b/src/main/scala/uk/ac/ox/cs/rsacomb/util/RDFoxUtil.scala | |||
@@ -250,7 +250,7 @@ object RDFoxUtil { | |||
250 | * @note if a query is not recognized as a [[SelectQuery]] by RDFox | 250 | * @note if a query is not recognized as a [[SelectQuery]] by RDFox |
251 | * it is discarded. | 251 | * it is discarded. |
252 | * | 252 | * |
253 | * @param file file containing a list of conjunctive queries. | 253 | * @param path file containing a list of conjunctive queries. |
254 | * @param prefixes additional prefixes for the query. It defaults to | 254 | * @param prefixes additional prefixes for the query. It defaults to |
255 | * an empty set. | 255 | * an empty set. |
256 | * | 256 | * |
@@ -285,6 +285,22 @@ object RDFoxUtil { | |||
285 | queries | 285 | queries |
286 | } | 286 | } |
287 | 287 | ||
288 | /** Load SPARQL queries from files. | ||
289 | * | ||
290 | * @param paths list of files containing a conjunctive queries. | ||
291 | * @param prefixes additional prefixes for the query. It defaults to | ||
292 | * an empty set. | ||
293 | * | ||
294 | * @return a list of [[tech.oxfordsemantic.jrdfox.logic.sparql.statement.SelectQuery SelectQuery]] queries. | ||
295 | * | ||
296 | * @see [[RDFoxUtil.loadQueriesFromFile()]] for more details on the file format. | ||
297 | */ | ||
298 | def loadQueriesFromFiles( | ||
299 | paths: List[os.Path], | ||
300 | prefixes: Prefixes = new Prefixes() | ||
301 | ): List[ConjunctiveQuery] = | ||
302 | paths.flatMap(loadQueriesFromFile(_, prefixes)) | ||
303 | |||
288 | /** Parse a SELECT query from a string in SPARQL format. | 304 | /** Parse a SELECT query from a string in SPARQL format. |
289 | * | 305 | * |
290 | * @param query the string containing the SPARQL query | 306 | * @param query the string containing the SPARQL query |