2

我正在尝试编写一个内置的 Jena来从给定的算法中返回一个值,然后与该值进行比较,例如,

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 文档说,最简单的实验方法是查看 builtins 目录中的示例,但是我的安装中似乎没有这个,我在 Windows 7 上使用 Jena 2.6.4 . 我在哪里可以找到这个?我需要从其他地方下载吗?

其次,我不确定如何从我的内置函数中获取返回值。如果我只是myBuiltIn(2, 1)使用硬连线值调用,我知道它是由于我添加到内置bodyCall()方法中的一些调试输出而被调用的。但是,如果我将它传递给greaterThan(),那么我将不再看到这个。它仍然被调用吗?

4

1 回答 1

1

@约书亚

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

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

然后将其添加到 builtinRegistry 类

于 2013-07-26T06:50:57.923 回答