Запрос завершается с ошибкой Only one query string allowed В чем причина?
набор данных для запроса:
John Smith Smith John Becky Smith Smith Rebecca Sarah Jones Jones Sarah Matt Jones
запрос вида:
PREFIX vCard: SELECT $y $x WHERE { $x vCard:FN $y. FILTER regex($y, «Jo», «i») }
mihazimin В аське ты мне сказал, что используешь ARQ так:
Заводишь q.bat: set ARQROOT=L:\JENA____\ARQ-1.5.1\ bat\sparql.bat —data file:///%1 —query file:///%2 text —results %3 и вызываешь его так: L:\JENA____\ARQ-1.5.1\OUT\1.rdf L:\JENA____\ARQ-1.5.1\OUT\1.rq L:\JENA____\ARQ-1.5.1\OUT\1.txt Ошибка не в sparql-запросе, и не в arq, а как-раз в этом bat-файле. Перепиши его вот так: set ARQROOT=L:\JENA____\ARQ-1.5.1\ bat\sparql.bat —data file:///%1 —query file:///%2 —results text > %3 После —query должно идти имя файла с запросом, после —results — формат результата (в нашем случае — text), а > %3 — это классическая конструкция, которая перекочевала в cmd из доса. Означает перенаправление потока вывода в файл (по умолчанию, — вывод идет в консоль). Т.е. вывод в bat\sparql.bat всегда идет в стандартный поток вывода, а мы его перенаправляем в файл средствами командной строки.
Crider Да это моя невнимательность. В статье все правильно.
Crider В рез-те запроса выдается ошибка: Illegal URI: file:///L:\JENA____\ARQ-1.5.1\OUT\1.rdf
Запрос (из CMD Windows):
q.bat L:\JENA____\ARQ-1.5.1\OUT\1.rdf L:\JENA____\ARQ-1.5.1\OUT\1.rq L:\JENA____\ARQ-1.5.1\OUT\1.txt
Содержание q.bat
set ARQROOT=L:\JENA____\ARQ-1.5.1\ bat\sparql.bat —data file:///%1 —query file:///%2 —results text > %3
Решение:
Ошибка в вызове Q.bat f именно в слэшах q.bat L:\JENA____\ARQ-1.5.1\OUT\1.rdf L:\JENA____\ARQ-1.5.1\OUT\1.rq L:\JENA____\ARQ-1.5.1\OUT\1.txt Первые два аргумента предаются непосредственно в ARC а поэтому должны иди с прямыми / (UNIX-омвыми) слэшами, а последний относится к Window-озному CMD поэтому должен быть обратным \. Т.е. правильный вызов: q.bat L:/JENA____/ARQ-1.5.1/OUT/1.rdf L:/JENA____/ARQ-1.5.1/OUT/1.rq L:\JENA____\ARQ-1.5.1\OUT\1.txt Поэтому надо следить если копируешь и вставляешь пути в windows.