Как определить правило SPIN? - PullRequest
3 голосов
/ 06 февраля 2012

Я использую 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.

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

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

1 Ответ

1 голос
/ 22 июня 2013

Код является кодом Common Lisp, который должен быть частью исходного файла или оценен в REPL. Появляющаяся ошибка «Несимвольный элемент! Например: возраст в списке привязок» указывает на то, что система задыхается при попытке обработать !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#")
...