Я пытаюсь создать правильный запрос для моего тестового сервера, и я столкнулся с проблемой, что я не могу определить PREFIX.
Например, этот запрос работает:
select * where
{
?stayingURL <http://localhost/resource_lng> ?lng .
?stayingURL <http://localhost/resource_staying_date> ?date .
?stayingURL <http://localhost/resource_address> ?address .
}
LIMIT 100
Я пытаюсь добавить фильтр по дате, просто так:
select * where
{
?stayingURL <http://localhost/resource_lng> ?lng .
?stayingURL <http://localhost/resource_staying_date> ?date .
?stayingURL <http://localhost/resource_address> ?address .
FILTER (?date > "2012-01-01"^^xsd:date)
}
LIMIT 100
Теперь я получил следующую ошибку: "MALFORMED QUERY: org.openrdf.query.parser.sparql.ast.VisitorException: QName 'xsd:date' uses an undefined prefix
"
ОК, я пытаюсь объявить этот префиксвручную, добавив следующую строку в начало запроса:
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>
Теперь я получил эту ошибку:
MALFORMED QUERY: Encountered " "<" "< "" at line 1, column 14.
Was expecting:
<Q_IRI_REF> ...
Это довольно странно для меня, но в любом случае я попытался написать этонапрямую, без префикса:
select * where
{
?stayingURL <http://localhost/resource_lng> ?lng .
?stayingURL <http://localhost/resource_staying_date> ?date .
?stayingURL <http://localhost/resource_address> ?address .
FILTER (?date > "2012-01-01"^^<http://www.w3.org/2001/XMLSchema#date> )
}
LIMIT 100
Результат почти такой же:
MALFORMED QUERY: Encountered " "<" "< "" at line 1, column 228.
Was expecting one of:
<Q_IRI_REF> ...
<PNAME_NS> ...
<PNAME_LN> ...
Что я делаю не так?
Вот мой адрес сервера: http://176.34.226.101:8080/openrdf-sesame/repositories/ecomobile.