aboutsummaryrefslogtreecommitdiff
path: root/src/uk/ac/ox/cs/pagoda/tracking/QueryTracker.java
diff options
context:
space:
mode:
authoryzhou <yujiao.zhou@gmail.com>2015-04-21 22:45:35 +0100
committeryzhou <yujiao.zhou@gmail.com>2015-04-21 22:45:35 +0100
commitc0f5bdcdb29608532656c71c219680eccd4aad09 (patch)
tree5f599adfe2e3f15a1d2b3f1cb8d0bf9ace59badd /src/uk/ac/ox/cs/pagoda/tracking/QueryTracker.java
parentc8a9fc67a3f6ed201d7c917e36128268587eabe5 (diff)
downloadACQuA-c0f5bdcdb29608532656c71c219680eccd4aad09.tar.gz
ACQuA-c0f5bdcdb29608532656c71c219680eccd4aad09.zip
fixed some bugs in windows server
Diffstat (limited to 'src/uk/ac/ox/cs/pagoda/tracking/QueryTracker.java')
-rw-r--r--src/uk/ac/ox/cs/pagoda/tracking/QueryTracker.java69
1 files changed, 22 insertions, 47 deletions
diff --git a/src/uk/ac/ox/cs/pagoda/tracking/QueryTracker.java b/src/uk/ac/ox/cs/pagoda/tracking/QueryTracker.java
index 0e19e30..f836212 100644
--- a/src/uk/ac/ox/cs/pagoda/tracking/QueryTracker.java
+++ b/src/uk/ac/ox/cs/pagoda/tracking/QueryTracker.java
@@ -35,6 +35,7 @@ import uk.ac.ox.cs.JRDFox.model.Datatype;
35import uk.ac.ox.cs.JRDFox.store.DataStore; 35import uk.ac.ox.cs.JRDFox.store.DataStore;
36import uk.ac.ox.cs.JRDFox.store.Resource; 36import uk.ac.ox.cs.JRDFox.store.Resource;
37import uk.ac.ox.cs.JRDFox.store.TupleIterator; 37import uk.ac.ox.cs.JRDFox.store.TupleIterator;
38import uk.ac.ox.cs.JRDFox.store.DataStore.UpdateType;
38 39
39public class QueryTracker { 40public class QueryTracker {
40 41
@@ -80,7 +81,7 @@ public class QueryTracker {
80 Timer t1 = new Timer(); 81 Timer t1 = new Timer();
81 oldTripleCount = store.getTriplesCount(); 82 oldTripleCount = store.getTriplesCount();
82 // store.addRules(new String[] {m_encoder.getTrackingProgram()}); 83 // store.addRules(new String[] {m_encoder.getTrackingProgram()});
83 store.importRules(m_encoder.getTrackingProgram()); 84 store.importRules(m_encoder.getTrackingProgram(), UpdateType.ScheduleForAddition);
84 store.applyReasoning(incrementally); 85 store.applyReasoning(incrementally);
85 tripleCount = store.getTriplesCount(); 86 tripleCount = store.getTriplesCount();
86 87
@@ -93,8 +94,7 @@ public class QueryTracker {
93 + t1.duration() + " seconds."); 94 + t1.duration() + " seconds.");
94 } catch (JRDFStoreException e) { 95 } catch (JRDFStoreException e) {
95 e.printStackTrace(); 96 e.printStackTrace();
96 } 97 }
97
98 extractAxioms(trackingStore); 98 extractAxioms(trackingStore);
99 99
100 trackingStore.clearRulesAndIDBFacts(m_encoder.getAddedData()); 100 trackingStore.clearRulesAndIDBFacts(m_encoder.getAddedData());
@@ -145,8 +145,7 @@ public class QueryTracker {
145 } catch (JRDFStoreException e) { 145 } catch (JRDFStoreException e) {
146 e.printStackTrace(); 146 e.printStackTrace();
147 } finally { 147 } finally {
148 if (answers != null) 148 if (answers != null) answers.dispose();
149 answers.dispose();
150 } 149 }
151 150
152 Utility.logTrace("Extracted TBox axioms: "); 151 Utility.logTrace("Extracted TBox axioms: ");
@@ -190,7 +189,6 @@ public class QueryTracker {
190 } 189 }
191 } 190 }
192 } catch (JRDFStoreException e) { 191 } catch (JRDFStoreException e) {
193 // TODO Auto-generated catch block
194 e.printStackTrace(); 192 e.printStackTrace();
195 } finally { 193 } finally {
196 if (trackingAnswers != null) trackingAnswers.dispose(); 194 if (trackingAnswers != null) trackingAnswers.dispose();
@@ -329,9 +327,7 @@ public class QueryTracker {
329 continue; 327 continue;
330 TupleIterator answers = null, lowerAnswers = null; 328 TupleIterator answers = null, lowerAnswers = null;
331 Set<String> lower = new HashSet<String>(); 329 Set<String> lower = new HashSet<String>();
332 OWLClass cls = factory 330 OWLClass cls = factory.getOWLClass(IRI.create(clsIRI.startsWith("<") ? OWLHelper.removeAngles(clsIRI) : clsIRI));
333 .getOWLClass(IRI.create(clsIRI.startsWith("<") ? OWLHelper
334 .removeAngles(clsIRI) : clsIRI));
335 try { 331 try {
336 answers = trackingStore.internal_evaluateAgainstIDBs(getSPARQLQuery4Unary(trackingIRI)); 332 answers = trackingStore.internal_evaluateAgainstIDBs(getSPARQLQuery4Unary(trackingIRI));
337 answers.open(); 333 answers.open();
@@ -359,10 +355,8 @@ public class QueryTracker {
359 } catch (JRDFStoreException e) { 355 } catch (JRDFStoreException e) {
360 e.printStackTrace(); 356 e.printStackTrace();
361 } finally { 357 } finally {
362 if (answers != null) 358 if (answers != null) answers.dispose();
363 answers.dispose(); 359 if (lowerAnswers != null) lowerAnswers.dispose();
364 if (lowerAnswers != null)
365 lowerAnswers.dispose();
366 lower.clear(); 360 lower.clear();
367 } 361 }
368 Utility.logDebug("class: " + clsIRI + " " + count); 362 Utility.logDebug("class: " + clsIRI + " " + count);
@@ -370,53 +364,37 @@ public class QueryTracker {
370 return aboxAxiomCounter; 364 return aboxAxiomCounter;
371 } 365 }
372 366
373 private void getDerivedPredicates(BasicQueryEngine trackingStore, 367 private void getDerivedPredicates(BasicQueryEngine trackingStore, Set<String> unaryPredicates, Set<String> binaryPredicates) {
374 Set<String> unaryPredicates, Set<String> binaryPredicates) {
375
376 TupleIterator derivedTuples = null; 368 TupleIterator derivedTuples = null;
377 String selectedPredicate = OWLHelper.addAngles(m_encoder.getSelectedPredicate()); 369 String selectedPredicate = OWLHelper.addAngles(m_encoder.getSelectedPredicate());
378 try { 370 try {
379 derivedTuples = trackingStore 371 derivedTuples = trackingStore.internal_evaluateAgainstIDBs("select distinct ?z where { ?x <" + Namespace.RDF_TYPE + "> ?z . }");
380 .internal_evaluateAgainstIDBs("select distinct ?z where { ?x <"
381 + Namespace.RDF_TYPE + "> ?z . }");
382 for (long multi = derivedTuples.open(); multi != 0; multi = derivedTuples.getNext()) { 372 for (long multi = derivedTuples.open(); multi != 0; multi = derivedTuples.getNext()) {
383 String p = RDFoxTripleManager.getQuotedTerm(derivedTuples.getResource(0)); 373 String p = RDFoxTripleManager.getQuotedTerm(derivedTuples.getResource(0));
384 if (p.equals(selectedPredicate)) 374 if (p.equals(selectedPredicate)) ;
385 ; 375 else if (m_encoder.isAuxPredicate(p)) ;
386 else if (m_encoder.isAuxPredicate(p)) 376 else unaryPredicates.add(p);
387 ;
388 else
389 unaryPredicates.add(p);
390 } 377 }
391 } catch (JRDFStoreException e) { 378 } catch (JRDFStoreException e) {
392 e.printStackTrace(); 379 e.printStackTrace();
393 } finally { 380 } finally {
394 if (derivedTuples != null) 381 if (derivedTuples != null) derivedTuples.dispose();
395 derivedTuples.dispose();
396 } 382 }
397 383
398 derivedTuples = null; 384 derivedTuples = null;
399 try { 385 try {
400 derivedTuples = trackingStore 386 derivedTuples = trackingStore.internal_evaluateAgainstIDBs("select distinct ?y where { ?x ?y ?z . }");
401 .internal_evaluateAgainstIDBs("select distinct ?y where { ?x ?y ?z . }");
402 for (long multi = derivedTuples.open(); multi != 0; multi = derivedTuples.getNext()) { 387 for (long multi = derivedTuples.open(); multi != 0; multi = derivedTuples.getNext()) {
403 String p = RDFoxTripleManager.getQuotedTerm(derivedTuples.getResource(0)); 388 String p = RDFoxTripleManager.getQuotedTerm(derivedTuples.getResource(0));
404 if (p.equals(Namespace.RDF_TYPE_ABBR) 389 if (p.equals(Namespace.RDF_TYPE_ABBR) || p.equals(Namespace.RDF_TYPE_QUOTED)) ;
405 || p.equals(Namespace.RDF_TYPE_QUOTED)) 390 else if (p.equals(Namespace.EQUALITY_ABBR) || p.equals(Namespace.EQUALITY_QUOTED)) ;
406 ; 391 else if (m_encoder.isAuxPredicate(p)) ;
407 else if (p.equals(Namespace.EQUALITY_ABBR) 392 else binaryPredicates.add(p);
408 || p.equals(Namespace.EQUALITY_QUOTED))
409 ;
410 else if (m_encoder.isAuxPredicate(p))
411 ;
412 else
413 binaryPredicates.add(p);
414 } 393 }
415 } catch (JRDFStoreException e) { 394 } catch (JRDFStoreException e) {
416 e.printStackTrace(); 395 e.printStackTrace();
417 } finally { 396 } finally {
418 if (derivedTuples != null) 397 if (derivedTuples != null) derivedTuples.dispose();
419 derivedTuples.dispose();
420 } 398 }
421 } 399 }
422 400
@@ -428,8 +406,7 @@ public class QueryTracker {
428 toAddedRecords.add(botQueryRecord); 406 toAddedRecords.add(botQueryRecord);
429 407
430 for (QueryRecord botQueryRecord : toAddedRecords) { 408 for (QueryRecord botQueryRecord : toAddedRecords) {
431 m_manager.addAxioms(m_record.getRelevantOntology(), botQueryRecord 409 m_manager.addAxioms(m_record.getRelevantOntology(), botQueryRecord.getRelevantOntology().getAxioms());
432 .getRelevantOntology().getAxioms());
433 for (DLClause clause : botQueryRecord.getRelevantClauses()) 410 for (DLClause clause : botQueryRecord.getRelevantClauses())
434 m_record.addRelevantClauses(clause); 411 m_record.addRelevantClauses(clause);
435 } 412 }
@@ -456,16 +433,14 @@ public class QueryTracker {
456 433
457 private String getSPARQLQuery4Unary(String p) { 434 private String getSPARQLQuery4Unary(String p) {
458 StringBuilder builder = new StringBuilder(); 435 StringBuilder builder = new StringBuilder();
459 builder.append("select ?x where { ?x <") 436 builder.append("select ?x where { ?x <").append(Namespace.RDF_TYPE).append("> ");
460 .append(Namespace.RDF_TYPE).append("> ");
461 builder.append(p).append(" . }"); 437 builder.append(p).append(" . }");
462 return builder.toString(); 438 return builder.toString();
463 } 439 }
464 440
465 private String getSPARQLQuery4Binary(String p) { 441 private String getSPARQLQuery4Binary(String p) {
466 StringBuilder builder = new StringBuilder(); 442 StringBuilder builder = new StringBuilder();
467 builder.append("select ?x ?y where { ?x ").append(p) 443 builder.append("select ?x ?y where { ?x ").append(p).append(" ?y . }");
468 .append(" ?y . }");
469 return builder.toString(); 444 return builder.toString();
470 } 445 }
471 446