diff options
| author | yzhou <yujiao.zhou@gmail.com> | 2015-04-21 22:45:35 +0100 |
|---|---|---|
| committer | yzhou <yujiao.zhou@gmail.com> | 2015-04-21 22:45:35 +0100 |
| commit | c0f5bdcdb29608532656c71c219680eccd4aad09 (patch) | |
| tree | 5f599adfe2e3f15a1d2b3f1cb8d0bf9ace59badd /src/uk/ac/ox/cs/pagoda/tracking/QueryTracker.java | |
| parent | c8a9fc67a3f6ed201d7c917e36128268587eabe5 (diff) | |
| download | ACQuA-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.java | 69 |
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; | |||
| 35 | import uk.ac.ox.cs.JRDFox.store.DataStore; | 35 | import uk.ac.ox.cs.JRDFox.store.DataStore; |
| 36 | import uk.ac.ox.cs.JRDFox.store.Resource; | 36 | import uk.ac.ox.cs.JRDFox.store.Resource; |
| 37 | import uk.ac.ox.cs.JRDFox.store.TupleIterator; | 37 | import uk.ac.ox.cs.JRDFox.store.TupleIterator; |
| 38 | import uk.ac.ox.cs.JRDFox.store.DataStore.UpdateType; | ||
| 38 | 39 | ||
| 39 | public class QueryTracker { | 40 | public 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 | ||
