Добавляйте префиксы к запросам в SPARQL

Я выполняю следующий запрос, используя библиотеку apache jena sparql в java:

String queryString ="SELECT ?startTime ?endTime " +
                    "WHERE { " +
                            "?y  rdfs:label  \"Processor execution GETIMAGE\" . "+
                            "?y  prov:startedAtTime  ?startTime . "+
                            "?y  prov:endedAtTime  ?endTime . " +
                    "}";

Query query = QueryFactory.create(queryString);
QueryExecution qe = QueryExecutionFactory.create(query, model);

Однако это приводит к исключению Unresolved prefixed name. Я знаю, что это можно исправить, добавив полное имя префикса в мою строку запроса (как показано в Неразрешенное префиксное имя: rdfs:subClassOf в запросе SPARQL), но мне было интересно, есть ли способ импортировать эти объявления префикса из модели rdf в запрос.


person Elias    schedule 10.01.2019    source источник
comment
Нет, потому что префиксы не являются частью набора данных RDF. Это просто часть некоторых сериализаций. Например, в N-Triples нет объявлений префиксов.   -  person UninformedUser    schedule 10.01.2019
comment
Для таких языков, как RDF/XML и Turtle, вам может повезти, и вы получите проанализированные префиксы из файла model.getNsPrefixMap(). Вам все равно придется создать объявление префикса для запроса SPARQL, если вам просто нужно подмножество всех объявлений префикса. В противном случае используйте метод query.setPrefixMapping   -  person UninformedUser    schedule 10.01.2019
comment
@AKSW Пожалуйста, дайте мне знать, что вы думаете об этом вопросе: stackoverflow.com/questions/56021067/ Я с нетерпением жду вашего ответа. Большое тебе спасибо :)   -  person EmJ    schedule 07.05.2019