Java Sparql查询,获取输出

Java Sparql查询,获取输出,java,netbeans,sparql,semantic-web,Java,Netbeans,Sparql,Semantic Web,我正在尝试获取在端点linkedlifedata.com/sparql上进行的查询的结果集,我要获取的对象是“指示”,它是一个段落。如何在netbeans中打印它?代码是:- String qs1 = "PREFIX skos: <http://www.w3.org/2004/02/skos/core#>"+ "PREFIX drugbank: <http://www4.wiwiss.fu-berlin.de/drugbank/resource/drugbank/>"+

我正在尝试获取在端点linkedlifedata.com/sparql上进行的查询的结果集,我要获取的对象是“指示”,它是一个段落。如何在netbeans中打印它?代码是:-

String qs1 = "PREFIX skos: <http://www.w3.org/2004/02/skos/core#>"+
"PREFIX drugbank: <http://www4.wiwiss.fu-berlin.de/drugbank/resource/drugbank/>"+
"select ?indication"+
"where {"+
"?drug drugbank:indication ?indication."+
"?drug drugbank:genericName ?drugname."+
"filter(regex(?drugname, 'Omalizumab','i'))"+
"}LIMIT 100 ";

com.hp.hpl.jena.query.Query query = QueryFactory.create(qs1);
QueryExecution qexec = QueryExecutionFactory.sparqlService("http://linkedlifedata.com/sparql", query);
String o;
try{
ResultSet results = qexec.execSelect(); 
for ( ; results.hasNext() ; )
{
QuerySolution soln = results.nextSolution() ;
o = soln.get("indication").toString();
System.out.println(o);
}
} 
finally {
qexec.close();
}
}
String qs1=“前缀skos:”+
“银行前缀:”+
“选择?指示”+
“其中{”+
“药品库:适应症?适应症。”+
“药品银行:通用名称?药品名称。”+
过滤器(regex(?drugname,'Omalizumab','i'))+
“}限制100”;
com.hp.hpl.jena.query.query query=QueryFactory.create(qs1);
QueryExecution qexec=QueryExecutionFactory.sparqlService(“http://linkedlifedata.com/sparql“,查询);
o串;
试一试{
ResultSet results=qexec.execSelect();
对于(;results.hasNext();)
{
QuerySolution soln=results.nextSolution();
o=soln.get(“指示”).toString();
系统输出打印ln(o);
}
} 
最后{
qexec.close();
}
}

我采用了上述方法。但它正在显示nullpointer异常。查询运行正常(在端点上检查)。我以前使用isLiteral()函数获得了drugname(一个小字符串),但对于“指示”这一段落,它没有发生。请帮忙,有急事。Thanx在运行它之前,我根本没有发现这个。你的问题是:

"select ?indication"+
"where {"+
select行末尾没有空格,因此查询实际上是:

... select ?indicationwhere { ... }

因此,
?指示
没有绑定,并且出现空指针异常。在其中插入换行符或空格。

您能告诉我们空指针出现在o=soln.get(“指示”).toString()的什么位置(确切地说是哪一行)吗;