aboutsummaryrefslogtreecommitdiff
path: root/src/main/scala/uk/ac/ox/cs/rsacomb/Main.scala
diff options
context:
space:
mode:
authorFederico Igne <federico.igne@cs.ox.ac.uk>2020-12-07 18:08:33 +0000
committerFederico Igne <federico.igne@cs.ox.ac.uk>2020-12-07 18:08:33 +0000
commitb241f9b23b225dec5ffc3f8ddd6c81771091f599 (patch)
treea88c4f0e1ef1a592cabe15a37cfeb2ac45fefcec /src/main/scala/uk/ac/ox/cs/rsacomb/Main.scala
parentdaf6c30152f3bb1ac6f10f1eeb783687f1a6a214 (diff)
downloadRSAComb-b241f9b23b225dec5ffc3f8ddd6c81771091f599.tar.gz
RSAComb-b241f9b23b225dec5ffc3f8ddd6c81771091f599.zip
Add diagnostics for (un)filtered answer ratio
Diffstat (limited to 'src/main/scala/uk/ac/ox/cs/rsacomb/Main.scala')
-rw-r--r--src/main/scala/uk/ac/ox/cs/rsacomb/Main.scala26
1 files changed, 21 insertions, 5 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 60511af..6891c8c 100644
--- a/src/main/scala/uk/ac/ox/cs/rsacomb/Main.scala
+++ b/src/main/scala/uk/ac/ox/cs/rsacomb/Main.scala
@@ -57,13 +57,29 @@ object RSAComb extends App {
57 Logger print "Ontology is RSA!" 57 Logger print "Ontology is RSA!"
58 58
59 /** Read SPARQL query from file */ 59 /** Read SPARQL query from file */
60 val query = RDFoxUtil.loadQueryFromFile(queryPath.getAbsoluteFile) 60 val strQuery = RDFoxUtil.loadQueryFromFile(queryPath.getAbsoluteFile)
61 61 val query = ConjunctiveQuery parse strQuery
62 /* Compute answers to query */ 62
63 ConjunctiveQuery.parse(query).map(ontology ask _) match { 63 query match {
64 case Some(answers) => Logger print answers 64 case Some(query) => {
65 val answers = ontology ask query
66 Logger.print(s"$answers", Logger.QUIET)
67 Logger print s"Number of answer: ${answers.length}"
68
69 val unfiltered = ontology askUnfiltered query
70 val percentage = unfiltered match {
71 case Some(u) =>
72 if (u.length > 0) (1 - answers.length / u.length) * 100 else 0
73 case None => 0
74 }
75 Logger.print(
76 s"Percentage of spurious answers: $percentage%",
77 Logger.DEBUG
78 )
79 }
65 case None => 80 case None =>
66 throw new RuntimeException("Submitted query is not conjunctive") 81 throw new RuntimeException("Submitted query is not conjunctive")
67 } 82 }
83
68 } 84 }
69} 85}