0

我正在尝试使用 Jena 4.3.0 ARQ Parser 解析此查询:

    sparql_Opt_query="""
    前缀 ns1:  
     前缀 sql:  
     前缀 bif:  
                                选择 ?name bif:get_keyword(?name,?top_comp,0)
                                 在哪里
                                {
                                    ?s ns1:has_type ns1:公司。
                                    ?s ns1:has_label ?name。
                                    过滤器( sql:ContainsKey(?top_comp,?name))
                                    {
                                        选择 sql:getTopSimilarCompanies('IBM','5','ComplEx') ?top_comp where { }
                                    }
                                }
                            按 DESC 排序 (?Score)""";
    查询 query_opt = QueryFactory.create(sparql_Opt_query) ;
    
    操作 op_opt = 代数.compile(query_opt) ;

然后得到了这个异常:

线程“主”org.apache.jena.query.QueryParseException 中的异常:已经在范围内使用的变量:?.0 in (( http://www.bif.com/get_keyword ?name ?top_comp 0) AS ?. 0) 在 org.apache.jena.sparql.lang.SyntaxVarScope.checkExpr(SyntaxVarScope.java:166) 在 org.apache.jena.sparql.lang.SyntaxVarScope.lambda$checkExprListAssignment$0(SyntaxVarScope.java:126) 在 java.base/ java.util.LinkedHashMap.forEach(LinkedHashMap.java:723) at org.apache.jena.sparql.core.VarExprList.forEachExpr(VarExprList.java:70) at org.apache.jena.sparql.lang.SyntaxVarScope.checkExprListAssignment( SyntaxVarScope.java:121) 在 org.apache.jena.sparql.lang.SyntaxVarScope.checkQueryScope(SyntaxVarScope.java:84) 在 org.apache.jena.sparql.lang.SyntaxVarScope.check(SyntaxVarScope.java:56) 在 org .apache.jena.sparql.lang.SPARQLParser.validateParsedQuery(SPARQLParser.java:51) 在 org.apache.jena.sparql.lang.SPARQLParser.parse(SPARQLParser.java:34) 在 org.apache.jena.query.QueryFactory .parse(QueryFactory.java:144) 在 org.apache.jena.query.QueryFactory。create(QueryFactory.java:83) at org.apache.jena.query.QueryFactory.create(QueryFactory.java:56) at org.apache.jena.query.QueryFactory.create(QueryFactory.java:44) at arq.examples .algebra.ParseSPARQLQuery.main(ParseSPARQLQuery.java:79)

4

0 回答 0