Можно ли просто извлечь конечную точку SPARQL из запроса SPARQL?

Я изучаю семантическое веб-программирование и пытаюсь разработать приложение для платформы Android. В моем приложении есть текстовое поле, в которое пользователь вводит запрос SPARQL.

Мне было интересно, могу ли я просто извлечь конечную точку SPARQL из всего запроса SPARQL. Например, в запросе SELECT ?class FROM <http://myexample.com> WHERE{?class a owl:Class} Order By ?class я хотел бы извлечь файл http://myexample.com.

Или из запроса, похожего на SELECT ?dataType ?data WHERE { <http://nasa.dataincubator.org/launch/1961-012> ?dataType ?data.}, извлеките http://nasa.dataincubator.org/launch/1961-012.

Я хочу использовать извлеченную конечную точку, а затем получить классы, свойства и т. д. этой онтологии из конечной точки SPARQL.

Можно ли извлечь только конечную точку?


person user2201650    schedule 12.03.2015    source источник


Ответы (1)


Достаточно просто извлечь URI http://myexample.com/ из вашего примерного запроса. Либо проанализируйте запрос и проверьте результат анализа (как вы это сделаете, зависит от того, какой анализатор запросов вы используете), либо просто напишите простое регулярное выражение, которое захватывает предложение FROM и извлекает URI позади него.

Однако URI в предложении FROM не является конечной точкой SPARQL. Предложение FROM в запросе SPARQL определяет именованный граф, который, вообще говоря, является подмножеством всего набора данных, к которому вы обращаетесь. Но он не говорит вам, какой конечной точкой SPARQL будет выполняться запрос.

Как правило, конечная точка SPARQL не является частью самого запроса, а определяется инструментом, который вы используете для фактического выполнения запроса.

В одном случае вы можете определить используемую конечную точку из самого запроса, и это если запрос SPARQL использует предложение SERVICE, например:

SELECT *
WHERE { 
   SERVICE <http://example.org/sparql> { ?s ?p ?o } 
}
LIMIT 100

Но использование этой конструкции не гарантируется, и фактически большинство SPARQL-запросов ее не используют.

person Jeen Broekstra    schedule 12.03.2015