Как определить правило SPIN?

Я использую AllegroGraph 4.4. У меня есть их образец базы данных, касающийся генеалогического древа Кеннеди. Я скопировал пример из их руководств по SPIN. Вот:

(ag.spin:register-spin-function  
!ex:age  
"prefix kennedy: <http://www.franz.com/simple#>  
 prefix xs: <http://www.w3.org/2001/XMLSchema#>  
 select ( (2011 - xs:int(?birthYear)) as ?age ) {  
   ?who kennedy:birth-year ?birthYear .  
 }"  
'(?who)) 

Проблема в том, что я не знаю, где и как прописать эту функцию. Я пробовал WebView, но получаю эту ошибку:

Non-symbol element !ex:age in binding list.

Почему я продолжаю получать эту ошибку?

Где я должен определить правило?


person Dragos    schedule 06.02.2012    source источник


Ответы (1)


Код представляет собой код Common Lisp, который должен быть частью исходного файла или оцениваться в REPL. Ошибка, которую вы получаете, «Несимволический элемент !ex:age ​​в списке привязок», по-видимому, указывает на то, что система задыхается при попытке обработать !ex:age. Помогает ли выполнение настройки из примера в первую очередь ? Первая и последняя строки, (enable-!-reader) и (register-namespace "ex" "http://franz.examples#"), кажутся тем, что вам нужно, чтобы !ex:age правильно читалось.

(enable-!-reader)  
(enable-print-decoded t)  
(create-triple-store "kennedy")  
(load-ntriples "kennedy.ntriples")  
(register-namespace "kennedy" "http://www.franz.com/simple#")  
(register-namespace "ex" "http://franz.examples#")
person Joshua Taylor    schedule 21.06.2013