Sparql 使用rd4j选择查询中的多个过滤器

Sparql 使用rd4j选择查询中的多个过滤器,sparql,rdf4j,Sparql,Rdf4j,我试图在一个查询中使用多个过滤器过滤开始日期和结束日期 我想知道在结束后的3个月内有多少个术语,因此我尝试重新创建的SPARQL查询是: SELECT (COUNT(?term) AS ?count) WHERE { \ ?term a :Term . \ ?term :startDate ?startDate . \ ?term :endDate ?endDate . \ FILTER(?endDate < NOW() + "P3M"^

我试图在一个查询中使用多个过滤器过滤开始日期和结束日期

我想知道在结束后的3个月内有多少个术语,因此我尝试重新创建的SPARQL查询是:

SELECT (COUNT(?term) AS ?count) WHERE { \
    ?term a :Term . \
    ?term :startDate ?startDate . \
    ?term :endDate ?endDate . \
    FILTER(?endDate < NOW() + "P3M"^^xsd:duration && ?endDate >= NOW() && ?startDate < NOW()) }
这是显示的查询:

SELECT ( COUNT( ?term ) AS ?count )
WHERE { ?term a Term .
?term :contractEndDate ?endDate .
?term :contractStartDate ?startDate .
FILTER ( ?startDate < NOW() ) }
选择(计数(?项)作为计数)
在哪里{?一个术语。
?期限:合同结束日期?结束日期。
?期限:合同开始日期?开始日期。
过滤器(?startDate
显示触发异常的完整代码以及完整错误堆栈跟踪将很有用这是否回答了您的问题?是的,谢谢你!
Expression<?> threeMonths = Expressions.fucntion(SparqlFunction.MONTH):
SelectQuery activeQuery = Queries.SELECT().prefix(lg).select(countAgg.as(count)).where(activePattern.filter(Expressions.gt(endDate, nowFunc)), activePattern.filter(Expressions.lt(startDate, nowFunc)));
SELECT ( COUNT( ?term ) AS ?count )
WHERE { ?term a Term .
?term :contractEndDate ?endDate .
?term :contractStartDate ?startDate .
FILTER ( ?startDate < NOW() ) }