写Jena内置插件

时间:2012-08-27 10:09:41

标签: java semantic-web 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
      "]";

所以,首先Jena documentation说最简单的实验方法是查看内置目录中的示例,但是我的安装中似乎没有这个,我正在使用Jena在Windows 7上的2.6.4。我在哪里可以找到它?我需要从其他地方下载吗?

其次,我不确定如何从我的内置中获取返回值。如果我只是使用硬连线值调用myBuiltIn(2, 1)我知道它被调用了,因为我添加了一些调试输出到内置的bodyCall()方法。但是,如果我将其传递给greaterThan(),那么我就不会再看到这个了。它还在被召唤吗?

1 个答案:

答案 0 :(得分:1)

@Joshua

我找到了如何实现这一点。

首先,您应该创建一个从 BaseBuiltin 扩展的新类,如http://sadl.sourceforge.net/CustomJenaBuiltins.html

然后将其添加到builtinRegistry类