Openlink Virtuoso не применяет FILTER с помощью предложения SERVICE

Я пытаюсь выполнить следующий запрос как с Virtuoso, так и с Fuseki-сервера. Я использую SERVICE предложение для подключения к конечной точке SPARQL D2R. Проблема в том, что хотя Fuseki правильно применяет FILTERVirtuoso не делает то же самое и возвращает весь нефильтрованный набор результатов.

Я использую номер версии 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 тоже.

Какие могут быть причины?

0 ответов

Другие вопросы по тегам