Revision: 13788
http://gate.svn.sourceforge.net/gate/?rev=13788&view=rev
Author: valyt
Date: 2011-05-03 09:44:56 +0000 (Tue, 03 May 2011)
Log Message:
-----------
Intercept errors from the SPARQL endpoint and send them upwards in the guise of
an IllegalArgumentException.
Modified Paths:
--------------
mimir/trunk/plugins/sparql/src/gate/mimir/sparql/SPARQLResultSet.java
mimir/trunk/plugins/sparql/src/gate/mimir/sparql/SPARQLSemanticAnnotationHelper.java
Modified: mimir/trunk/plugins/sparql/src/gate/mimir/sparql/SPARQLResultSet.java
===================================================================
--- mimir/trunk/plugins/sparql/src/gate/mimir/sparql/SPARQLResultSet.java
2011-05-03 09:41:36 UTC (rev 13787)
+++ mimir/trunk/plugins/sparql/src/gate/mimir/sparql/SPARQLResultSet.java
2011-05-03 09:44:56 UTC (rev 13788)
@@ -284,7 +284,7 @@
// * @throws Exception
// */
// public static void main(String[] args) throws Exception{
-// String query = "PREFIX :<http://dbpedia.org/ontology/> SELECT ?inst
WHERE { ?inst a ?class . FILTER (?class = :Mountain)} LIMIT 100";
+// String query = "PREFIX :<http://dbpedia.org/ontology/> THIS IS AN ERROR
SELECT ?inst WHERE { ?inst a ?class . FILTER (?class = :Mountain)} LIMIT 100";
// SPARQLSemanticAnnotationHelper ssah = new SPARQLSemanticAnnotationHelper(
// "annType",
"http://gateservice5:8081/openrdf-workbench/repositories/DBPedia/query", new
String[]{},
// new String[]{}, new String[]{}, new String[]{}, new String[]{},
Modified:
mimir/trunk/plugins/sparql/src/gate/mimir/sparql/SPARQLSemanticAnnotationHelper.java
===================================================================
---
mimir/trunk/plugins/sparql/src/gate/mimir/sparql/SPARQLSemanticAnnotationHelper.java
2011-05-03 09:41:36 UTC (rev 13787)
+++
mimir/trunk/plugins/sparql/src/gate/mimir/sparql/SPARQLSemanticAnnotationHelper.java
2011-05-03 09:44:56 UTC (rev 13788)
@@ -195,11 +195,12 @@
Set<Mention> mentions = new HashSet<Mention>();
List<Constraint> passThroughConstraints = new ArrayList<Constraint>();
String query = null;
+ String originalQuery = null;
for(Constraint aConstraint : constraints) {
if(SPARQL_QUERY_FEATURE_NAME.equals(aConstraint.getFeatureName())) {
+ originalQuery = (String)aConstraint.getValue();
query = (queryPrefix != null ? queryPrefix : "") +
- (String)aConstraint.getValue() +
- (querySuffix != null ? querySuffix : "");
+ originalQuery + (querySuffix != null ? querySuffix : "");
} else {
passThroughConstraints.add(aConstraint);
}
@@ -211,6 +212,17 @@
// run the query on the SPARQL endpoint
try {
SPARQLResultSet srs = runQuery(query);
+ // check for errors
+ for(int i = 0; i < srs.getColumnNames().length; i++) {
+ if(srs.getColumnNames()[i].equals("error-message")) {
+ // we have an error message
+ String errorMessage = (srs.getRows().length > 0 &&
+ srs.getRows()[0].length > i) ? srs.getRows()[0][i] : null;
+ throw new IllegalArgumentException("Query \"" + originalQuery +
+ "\" resulted in an error" +
+ (errorMessage != null ? (":\n" + errorMessage) : "."));
+ }
+ }
// convert each result row into a query for the delegate
for(String[] aRow : srs.getRows()) {
List<Constraint> delegateConstraints =
This was sent by the SourceForge.net collaborative development platform, the
world's largest Open Source development site.
------------------------------------------------------------------------------
WhatsUp Gold - Download Free Network Management Software
The most intuitive, comprehensive, and cost-effective network
management toolset available today. Delivers lowest initial
acquisition cost and overall TCO of any competing solution.
http://p.sf.net/sfu/whatsupgold-sd
_______________________________________________
GATE-cvs mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/gate-cvs