当尝试通过我的Java程序查询dbpedia时,会发生包含错误



代码用于从Java程序查询dbpedia,然后在HTML页面

中显示结果
package jenaamem;
import com.hp.hpl.jena.query.Query;
import com.hp.hpl.jena.query.QueryExecution;
import com.hp.hpl.jena.query.QueryExecutionFactory;
import com.hp.hpl.jena.query.QueryFactory;
import com.hp.hpl.jena.query.ResultSet;
import com.hp.hpl.jena.query.ResultSetFormatter;
import com.hp.hpl.jena.sparql.engine.http.QueryEngineHTTP;
public class db2
{
static public void main(String...argv)
{
    try {
        String queryStr = "SELECT * WHERE{ ?s ?p ?o . ?o bif:contains' barack and obama and america' OPTION (score ?sc) } ORDER BY DESC (?sc) LIMIT 10 ";
        Query query = QueryFactory.create(queryStr);
        // Remote execution.
        QueryExecution qexec =   QueryExecutionFactory.sparqlService("http://dbpedia.org/sparql", query);
        // Set the DBpedia specific timeout.
        ((QueryEngineHTTP)qexec).addParam("timeout", "10000") ;
        // Execute.
        ResultSet rs = qexec.execSelect();
        ResultSetFormatter.out(System.out, rs, query);
        qexec.close();
    } catch (Exception e) {
    }

}

}

在这里,我在这段代码中面临的问题是,bif:contains显示错误,我甚至尝试了,然后我的问题继续

bif:contains是一个前缀名称,但是你没有为它定义前缀,所以ARQ解析器会抛出一个错误,因为它应该

不幸的是,bif:contains是一个Virtuoso特定的扩展,实际上没有任何相关的前缀,所以你不能定义它。但是,您可以将其包含在<>中,以便ARQ将其视为URI,而Virtuoso仍将理解它,即在您的查询中使用<bif:contains>

最新更新