2014-02-17 5 views
1

Я пытаюсь использовать пути свойств SPARQL 1.1 с VirtuosoOS 6.1, но что-то не так. Я использую следующий график:Запрос пути свойства SPARQL

@prefix foo: <foo/> . 
@prefix bar: <bar/> . 
@prefix type: <type/> . 

bar:a1 type:read foo:b1 . 
bar:a1 type:write foo:b2 . 
bar:a1 type:write foo:b3 . 
bar:a2 type:read foo:b4 . 
bar:a2 type:write foo:b5 . 
bar:a3 type:write foo:b6 . 
foo:b2 type:link foo:b4 . 
foo:b4 type:link foo:b6 . 

Я хочу, чтобы найти все «связаны» «Foo» S, которые начинаются от х, где х бар: a1 --- (тип записи) -> х. Очевидно, что ответ есть foo: b4 и foo: b6.

Итак, я использую этот запрос,

prefix bar: <bar/> 
prefix type: <type/> 

select ?y where { 
    bar:a1 type:write ?x . 
    ?x type:link+ ?y 
} 

Но Виртуоз говорит

Virtuoso 37000 Error SP030: SPARQL compiler, line 8: syntax error at '?y' before '}' 

Что случилось с моим запросом? Может быть, Virtuoso не поддерживает эту функцию?

ответ

0

Вы можете проверить, является ли ваш запрос легальным синтаксисом с помощью query validator at sparql.org. Ваш запрос хорошо сформирован, так что это проблема с поддержкой Virtuoso. Согласно Does Virtuoso versions <=6.0 support SPARQL 1.1?, вы можете получить поддержку SPARQL 1.1 с помощью расширений в более ранних версиях и 6.2 и далее поддерживать SPARQL 1.1 без необходимости расширения. Согласно официальной странице Virtuoso Open-Source Edition, похоже, что версии 6.1.7 и 7.0.0 должны поддерживать пути свойств.

+0

Да, сказано, что 6.1.7 поддерживает sparql 1.1. поэтому я запутался в этом вопросе. Спасибо за ответ. – YAPPO

Смежные вопросы