构造CSPARQL查询中的序列路径失败

构造CSPARQL查询中的序列路径失败,sparql,rdf,Sparql,Rdf,为什么我试图在SPARQL构造查询中添加一个序列路径。 然后在CSPARQL引擎中注册查询 我的目标是找到三元组的模式,并将它们转换为不同模式的新资源 下面是一个失败的查询示例: REGISTER STREAM read AS PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> + PREFIX a: <http://sample/vocab/log#>

为什么我试图在SPARQL构造查询中添加一个序列路径。 然后在CSPARQL引擎中注册查询

我的目标是找到三元组的模式,并将它们转换为不同模式的新资源

下面是一个失败的查询示例:

        REGISTER STREAM read AS
        PREFIX rdf:  <http://www.w3.org/1999/02/22-rdf-syntax-ns#>  +
        PREFIX a: <http://sample/vocab/log#>
        PREFIX e:  <http://sample/vocab/event#>
        CONSTRUCT {
                e: rdf:type             e:Event;
                   e:id                 ?id;
                   e:name               \"ReadEvent\";
                   e:timestamp          ?timestamp;
                   e:hasFile/e:filename ?file;
                   e:content            ?message .
             }
        FROM STREAM <ws://localhost:8124/tw/stream> [RANGE 5s STEP 3s]
        WHERE {
           ?entry a:id            ?id .
           ?entry a:accessCall    ?access .
           ?entry a:timestamp     ?timestamp .
           ?entry a:file          ?file .
           FILTER ( str(?access) = \"read\" ) .
           ?entry a:message      ?message .
        };
将流注册为读
前缀rdf:+
前缀a:
前缀e:
构造{
e:rdf:type e:Event;
e:id?id;
e:名称“ReadEvent”;
e:时间戳?时间戳;
e:hasFile/e:filename?文件;
e:内容?信息。
}
从流[范围5s步骤3s]
在哪里{
?条目a:id?id。
?条目a:accessCall?访问。
?条目a:时间戳?时间戳。
?条目a:文件?文件。
过滤器(str(?access)=“read\”)。
?条目a:消息?消息。
};
以下部分似乎引发了一个问题:

e:hasFile/e:filename?文件

因为我在启动时遇到以下错误:

com.hp.hpl.jena.query.QueryParseException: Encountered " "/" "/ "" at line 5, column 170.
Was expecting one of:
<IRIref> ...
<PNAME_NS> ...
<PNAME_LN> ...
<BLANK_NODE_LABEL> ...
<VAR1> ...
<VAR2> ...
"true" ...
"false" ...
<INTEGER> ...
<DECIMAL> ...
<DOUBLE> ...
<INTEGER_POSITIVE> ...
<DECIMAL_POSITIVE> ...
<DOUBLE_POSITIVE> ...
<INTEGER_NEGATIVE> ...
<DECIMAL_NEGATIVE> ...
<DOUBLE_NEGATIVE> ...
<STRING_LITERAL1> ...
<STRING_LITERAL2> ...
<STRING_LITERAL_LONG1> ...
<STRING_LITERAL_LONG2> ...
"(" ...
<NIL> ...
"[" ...
<ANON> ...

at com.hp.hpl.jena.sparql.lang.ParserSPARQL11.perform(ParserSPARQL11.java:102) ~[jena-arq-2.13.0.jar:2.13.0]
at com.hp.hpl.jena.sparql.lang.ParserSPARQL11.parse$(ParserSPARQL11.java:53) ~[jena-arq-2.13.0.jar:2.13.0]
at com.hp.hpl.jena.sparql.lang.SPARQLParser.parse(SPARQLParser.java:34) ~[jena-arq-2.13.0.jar:2.13.0]
at com.hp.hpl.jena.query.QueryFactory.parse(QueryFactory.java:148) ~[jena-arq-2.13.0.jar:2.13.0]
at com.hp.hpl.jena.query.QueryFactory.create(QueryFactory.java:80) ~[jena-arq-2.13.0.jar:2.13.0]
at com.hp.hpl.jena.query.QueryFactory.create(QueryFactory.java:53) ~[jena-arq-2.13.0.jar:2.13.0]
at eu.larkc.csparql.sparql.jena.JenaEngine.parseSparqlQuery(JenaEngine.java:557) ~[csparql-sparql-jena-0.9.7.jar:na]
at eu.larkc.csparql.core.engine.CsparqlEngineImpl.registerQuery(CsparqlEngineImpl.java:324) ~[csparql-core-0.9.7.jar:na]
at ac.at.tuwien.logparser.services.CSparqlStreamService.initCSparqlEngine(CSparqlStreamService.java:54) ~[classes/:na]
com.hp.hpl.jena.query.QueryParseException:在第5行第170列遇到“/”。
我期待的是:
...
...
...
...
...
...
“真的”。。。
“假”。。。
...
...
...
...
...
...
...
...
...
...
...
...
...
"(" ...
...
"[" ...
...
在com.hp.hpl.jena.sparql.lang.ParserSPARQL11.perform(ParserSPARQL11.java:102)~[jena-arq-2.13.0.jar:2.13.0]
在com.hp.hpl.jena.sparql.lang.ParserSPARQL11.parse$(ParserSPARQL11.java:53)~[jena-arq-2.13.0.jar:2.13.0]
在com.hp.hpl.jena.sparql.lang.SPARQLParser.parse(SPARQLParser.java:34)~[jena-arq-2.13.0.jar:2.13.0]
在com.hp.hpl.jena.query.QueryFactory.parse(QueryFactory.java:148)~[jena-arq-2.13.0.jar:2.13.0]
在com.hp.hpl.jena.query.QueryFactory.create(QueryFactory.java:80)~[jena-arq-2.13.0.jar:2.13.0]
在com.hp.hpl.jena.query.QueryFactory.create(QueryFactory.java:53)~[jena-arq-2.13.0.jar:2.13.0]
在eu.larkc.csparql.sparql.jena.JenaEngine.parseSparqlQuery(JenaEngine.java:557)~[csparql-sparql-jena-0.9.7.jar:na]
在eu.larkc.csparql.core.engine.CsparqlEngineImpl.registerQuery(CsparqlEngineImpl.java:324)~[csparql-core-0.9.7.jar:na]
在ac.at.tuwien.logparser.services.CSparqlStreamService.initcsparqlnengine(CSparqlStreamService.java:54)~[classes/:na]
不幸的是,我找不到任何使用序列路径的构造查询的示例或任何相关信息

我现在的问题是:

  • 在构造中SPARQL支持序列路径吗
  • 我的方法还有其他选择吗

感谢所有可能的帮助!谢谢!

为什么要将属性路径放入
构造
查询的模板部分?这行不通。请执行
e:hasFile[e:filename?file]
如果你真的想为文件添加匿名节点,顺便问一下,有什么理由使用古老的Jena版本吗?好的,我可以看到你在使用CSPARQL,你应该让人们更新他们的项目。(自2015年以来,这一版本似乎从未被涉及过)…这是Jena 3的一个分支:-即使这样也应该更新他们的Jena deps。为什么要将属性路径放入
构造的
查询的模板部分?这不起作用。do
e:hasFile[e:filename?file]
如果你真的想为文件添加匿名节点,顺便问一下,有什么理由使用古老的Jena版本吗?好的,我可以看到你在使用CSPARQL,你应该让人们更新他们的项目。(自2015年以来,这一版本似乎从未被涉及过)…这是Jena 3的一个分支:-尽管这应该会更新他们的Jena deps。