我正在使用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.
为什么我一直收到此错误?
我应该在哪里定义规则?
答案 0 :(得分:1)
代码是Common Lisp代码,它应该是源文件的一部分,或者在REPL中进行评估。你得到的错误,“非符号元素!ex:绑定列表中的年龄”似乎表明系统在尝试处理!ex:age
时窒息。执行setup from the example首先帮助吗?第一行和最后一行(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#")