java编写Jena内置程序
我正试图写一个Jena built-in来从一个算法返回一个值,然后与该值进行比较,例如
String rule = "[exRule: (?d rdf:type ex:abc)" +
"<-" +
// ...extract ?a, ?b to use as inputs to the rule
"greaterThan(myBuiltIn(?a, ?b), 1)" + // Is return value greater than 1
"]";
所以,首先,{a2}说最简单的实验方法是查看内置目录中的示例,但是我的安装中似乎没有这个,我在Windows7上使用Jena 2.6.4。我在哪里能找到这个?我需要从别处下载吗
其次,我不确定如何从我的内置代码中提取返回值。如果我只是使用硬连线值调用myBuiltIn(2, 1)
,我知道调用它是因为我添加到内置的bodyCall()
方法中的一些调试输出。但是,如果我将它传递给greaterThan()
,那么我就看不到这一点。它还在叫吗
# 1 楼答案
@Joshua
我找到了如何实现这一点
首先,您应该创建一个从BaseBuiltin扩展的新类,如下http://sadl.sourceforge.net/CustomJenaBuiltins.html
然后将其添加到内置注册表类中