2012-02-06 6 views
3

Я использую AllegroGraph 4.4. У меня есть своя примерная база данных, касающаяся генеалогического дерева Кеннеди. Я скопировал пример из своих учебников по SPIN. Вот оно:Как определить правило 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. 

Почему я все время получаю эту ошибку?

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

ответ

1

Код является общим кодом Lisp, который должен быть частью исходного файла или оценен в REPL. Ошибка, которую вы получаете: «Элемент non-symbol! Ex: age in binding list», по-видимому, указывает на то, что система задыхается, пытаясь обработать !ex:age. Выполняет ли первая помощь setup from the example? Первая строка и последние строки, (enable-!-reader) и (register-namespace "ex" "http://franz.examples#"), выглядят так, как вам нужно, чтобы получить !ex:age, чтобы читать правильно.