За да отговоря на първия ви въпрос, да, синтаксисът на SPARQL е еднакъв, тъй като сте използвали една и съща заявка и в двата инструмента. Но това, което мисля, че всъщност питате е дали резултатите за двата инструмента са различни или не? т.е. са семантиката на SPARQL uniform
В случай на DESCRIBE
, тогава да, резултатите са изрично разрешени да бъдат различни от спецификацията на SPARQL, т.е. не, семантиката на SPARQL не е еднаква, но това е само в случая на DESCRIBE
.
Вижте Раздел 16.4 DESCRIBE (информативно) от SPARQL спецификацията, която гласи следното:
Моделът на заявката се използва за създаване на набор от резултати. Формата DESCRIBE
взема всеки от ресурсите, идентифицирани в решение, заедно с всички ресурси, директно назовани от IRI, и сглобява единична RDF графика, като взема „описание“, което може да дойде от всяка налична информация, включително целевия RDF набор от данни. Описанието се определя от услугата за заявка
Важната част от това са последните две изречения, които казват, че описанието се определя от услугата за заявки. Това означава, че отговорите и на Protege, и на Jena са верни, тъй като им е позволено да избират как да формират описанието.
Промяна на обработката на Jena DESCRIBE
За да отговорите на втората част от въпроса си, можете да промените начина, по който Jena обработва DESCRIBE
заявки, като внедрите персонализиран DescribeHandler и свързан DescribeHandlerFactory. След това трябва да регистрирате вашата фабрика по следния начин:
DescribeHandlerRegistry.get().set(new YourDescribeHandlerFactory());
person
RobV
schedule
22.01.2014