Чтобы ответить на ваш первый вопрос, да, синтаксис SPARQL един, поскольку вы использовали один и тот же запрос в обоих инструментах. Однако я думаю, что вы на самом деле спрашиваете, должны ли результаты для двух инструментов быть разными или нет? т.е. являются семантикой униформы SPARQL
В случае DESCRIBE
тогда да, спецификация SPARQL явно разрешает различать результаты, т. е. нет, семантика SPARQL неоднородна, но это только в случае DESCRIBE
.
См. раздел 16.4 DESCRIBE (информативный) спецификации SPARQL, в котором говорится следующее:
Шаблон запроса используется для создания набора результатов. Форма DESCRIBE
берет каждый из ресурсов, указанных в решении, вместе с любыми ресурсами, непосредственно названными IRI, и собирает единый граф RDF, используя «описание», которое может быть получено из любой доступной информации, включая целевой набор данных RDF. Описание определяется службой запросов
Важной частью этого являются последние несколько предложений, в которых говорится, что описание определяется службой запросов. Это означает, что ответы и Протежа, и Джены верны, поскольку им разрешено выбирать, как формировать описание.
Изменение обработки Jena DESCRIBE
Чтобы ответить на вторую часть вашего вопроса, вы можете изменить способ обработки DESCRIBE
запросов Jena, внедрив собственный DescribeHandler и связанный с ним DescribeHandlerFactory. Затем вам нужно зарегистрировать свою фабрику следующим образом:
DescribeHandlerRegistry.get().set(new YourDescribeHandlerFactory());
person
RobV
schedule
22.01.2014