Openlink Virtuoso не применяет FILTER с помощью предложения SERVICE
Я пытаюсь выполнить следующий запрос как с Virtuoso, так и с Fuseki-сервера. Я использую SERVICE
предложение для подключения к конечной точке SPARQL D2R. Проблема в том, что хотя Fuseki правильно применяет FILTER
Virtuoso не делает то же самое и возвращает весь нефильтрованный набор результатов.
Я использую номер версии Virtuoso 07.20.3214
для Windows, версия Fuseki-сервера 2
и версия D2RQ 0.8.1
,
Запрос следующий
SELECT ?line ?state ?arrivalTime ?idRide
WHERE
{
{
SELECT ?ride (MAX(?avmr) AS ?avmrLast)
WHERE
{
?bs rdf:type km4c:BusStop.
?bs foaf:name "COLONNA".
SERVICE <http://localhost:2020/sparql>
{
?bsf km4c:isForecastOfBusStop ?bs.
?bsf km4c:isForecastOfAVM ?avmr.
?ride km4c:hasAVMRecord ?avmr.
}
}
GROUP BY ?ride ORDER BY DESC (?avmrLast) LIMIT 15
}
?bs rdf:type km4c:BusStop.
?bs foaf:name "COLONNA".
SERVICE <http://localhost:2020/sparql>
{
?forecast km4c:isForecastOfBusStop ?bs .
?forecast km4c:isForecastOfAVM ?avmrLast .
?forecast km4c:expectedTime ?arrivalTime.
?avmrLast km4c:concernLine ?line.
?avmrLast km4c:rideState ?state.
?ride dcterms:identifier ?idRide.
}
FILTER(?arrivalTime> "2015-01-01T09:00:00+02:00")
} ORDER BY ?arrivalTime
Дело в том, что FILTER
не применяется С Virtuoso я получаю результаты, чьи ?arrivalTime <= 2015-01-01T09:00:00+02:00
, в то время как Fuseki работает нормально.
Если я запускаю "нормальный" запрос, без SERVICE
например, FILTER
прекрасно работает в Virtuoso тоже.
Какие могут быть причины?