- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
这是我的代码:
public class FunctionalityCheckTest1 {
InfModel infModel;
Model model = ModelFactory.createDefaultModel();
String NS = "http://myweb.com/vocab#";
@Test
public void playingWithJenaReasoner()
{
Resource alex = this.model.createResource(NS+"Alex");
Resource bob = this.model.createResource(NS+"Bob");
Resource alice = this.model.createResource(NS+"Alice");
Property isFriendOf = this.model.createProperty(NS,"isFriendOf");
alex.addProperty(isFriendOf,bob);
bob.addProperty(isFriendOf,alice);
StmtIterator stmtIterator1 = this.model.listStatements();
while (stmtIterator1.hasNext())
{
System.out.println(stmtIterator1.next());
}
String customRule = "@prefix vocab: <http://myweb.com/vocab#>. " +
"[rule1: (?a vocab:isFriendOf ?b) (?b vocab:isFriendOf ?c) -> (?a vocab:isFriendOf ?c) ]";
List<Rule> rules = new ArrayList<>();
rules.add(Rule.parseRule(customRule));
GenericRuleReasoner reasoner = new GenericRuleReasoner(rules);
reasoner.setDerivationLogging(false);
this.infModel = ModelFactory.createInfModel(reasoner, this.model);
StmtIterator stmtIterator2 = this.infModel.listStatements();
while (stmtIterator2.hasNext())
{
System.out.println(stmtIterator2.next());
}
}
}
执行playWithJenaReasoner()函数时会抛出错误:
com.hp.hpl.jena.reasoner.rulesys.Rule$ParserException:子句开头应有“(”,找到词汇:
来自行rules.add(Rule.parseRule(customRule) ));
如果我将这些更改添加到上面的代码中,一切都会正常
PrintUtil.registerPrefix("vocab",NS);
String customRule = "[rule1: (?a vocab:isFriendOf ?b) (?b vocab:isFriendOf ?c) -> (?a vocab:isFriendOf ?c) ]";
这有什么问题
String customRule = "@prefix vocab: <http://myweb.com/vocab#>. " +
"[rule1: (?a vocab:isFriendOf ?b) (?b vocab:isFriendOf ?c) -> (?a vocab:isFriendOf ?c) ]";
在此Jena Documentation ,他们提到了 @prefix 和规则。我哪里做错了?
最佳答案
我今天遇到了同样的问题,这似乎是方法
public static List<Rule> parseRules(String source)
不允许在字符串中使用前缀。我不确定这是该方法的错误还是功能。
但是,如果您在规则文件中声明规则并通过
加载它 public static List<Rule> rulesFromURL(String uri)
您应该能够加载包含前缀的规则。
这是一个小例子来测试这是否有效。它假设您的本体存储在文件系统的某个位置,并且有一个名为 jena.rule
的规则文件。在你的类路径中:
public class JenaRuleTest {
public static void main(String[] args) throws UnsupportedEncodingException {
OntModel model = ModelFactory.createOntologyModel();
model.read("C:\\path\\to\\ontology\\ontology.ttl");
String ruleResourceStr = JenaRuleTest.class.getResource("/jena.rule").toString();
Reasoner reasoner = new GenericRuleReasoner(Rule.rulesFromURL(ruleResourceStr));
reasoner.setDerivationLogging(true);
InfModel inf = ModelFactory.createInfModel(reasoner, model);
inf.write(System.out, "TURTLE");
}
}
可以在此处找到更详细的示例:http://tutorial-academy.com/jena-reasoning-with-rules/
Rule
的文档类可以在这里找到:https://jena.apache.org/documentation/javadoc/jena/org/apache/jena/reasoner/rulesys/Rule.html
希望有人遇到此问题时能有所帮助。
问候
关于java - 为什么会出现此异常 com.hp.hpl.jena.reasoner.rulesys.Rule$ParserException : In Using Apache Jena Reasoner?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42266076/
我在 Tensorflow 2.0-beta0 中使用 HParams Dashboard 使用超参数,如此处的建议 https://www.tensorflow.org/tensorboard/r2
我最近创建了一个新的恢复场景,我们希望将其添加到数百个现有的运行脚本中。 不幸的是,将其设置为包含在默认值中仅适用于新脚本创建,并且不会将其追溯添加到所有现有脚本中。 我已询问 HP 支持,他们建议您
我正在通过开放测试架构 API 与 Quality Center 交互。 我想确定链接到查找表的错误字段的允许值。 这些可通过标准前端的下拉菜单获得。 谢谢 编辑:更详细的解释 我们有一些字段只允许在
我已经安装了 HP UFT v12.01,当我尝试通过 HP UFT 连接到 HP ALM Quality Center v11.0 时,出现以下错误: 无法从服务器更新组件。无法托管 Spider
使用 HP UFT v11.53 补丁 5BHOManager.dll 没有注册,当然在我们的一些测试机器上也没有启用。 谁能告诉我 BHOManager.dll 的用途以及如果未注册、安装、启用等可
我已经安装了 HP UFT v12.01,当我尝试通过 HP UFT 连接到 HP ALM Quality Center v11.0 时,出现以下错误: 无法从服务器更新组件。无法托管 Spider
hierarchy 我有一个包含 img 对象的 ShootingEnemy 对象(它上面有一个 SpriteRenderer)。射击敌人可以用玩家的子弹射击敌人。我希望它在 HP 水平下降时变得越来
我是 HP Vertica 的新手。我阅读了 HP Vertica 的安装文档。该文档完全基于 *ix 环境。所以,我的问题是我们也可以在 Windows 上安装 HP Vertica 吗? 另一件事
惠普企业(HPE)警告说,其Aruba AirWave管理平台所使用的开源程序Sudo中的一个漏洞会允许任何无特权和未经认证的本地用户在含有漏洞的主机上获得root权限。 根据HPE最近的安全公告
我试图创建一个Powershell脚本来完全自动化UFT(HP的Unified Functional Testing 12.01)安装和配置过程。是否有一个注册表设置可以控制“允许其他HP产品运行测试
您好,我在实现 HP-35 型计算器的基本功能时遇到了一些麻烦我是初学者,在将代码放在一起时遇到了很多麻烦,基本功能是加法、减法、乘法和除法我需要帮助。 下面是我的主文件: /* * File:
我试图了解在 HP-UX 11.11 中运行的导致 SIGSEGV(11,段错误)的程序出了什么问题: (gdb) bt #0 0x737390e8 in _sigfillset+0x618 ()
这个问题可能过于特定于产品,但我想知道是否有人从 HP 质量中心导出错误跟踪数据。 HP 质量中心 (QC) 有一个老式的 COM API,但我宁愿使用 Web 服务甚至屏幕抓取工具将数据导出到 Ex
对于我的 Controller 中的大多数操作方法,HP fortify scan 给我一条消息作为Mass Assignment: Insecure Binder Configuration (AP
我有一个 LeanFT 项目,当我从 IDE 执行它时,它工作正常。我使用 maven-assemble-plugin 生成了一个 jar 文件。 org.apache.maven.plug
我正在通过 Hp Fortify 运行代码,并发现了一些路径操作问题。我了解它的上下文并尝试解决。 我没有遍历从数据库中查询某些路径值以存储输出文件(日志、导出数据等)的所有位置,而是尝试将其集中。因
根据 HP Fortify 文档,静态代码分析器首先将源代码翻译成中间格式,然后扫描翻译后的代码并生成漏洞报告。 它说可以使用以下 Ant 代码进行翻译: 这将调用您的“编译”目标,但强
我使用 Jersey 构建了一个 Rest 服务并将其部署在本地 Tomcat 6 中,它工作正常,但是当我部署到 Hp-nonstop(我相信 Tomcat 6)时它不会出现。你能帮我一下吗?我还尝
我正在使用 HP QC 来管理缺陷(刚刚开始)并且对各种缺陷状态类型有疑问.... 我们有: 新 - 新缺陷 打开 - ?? 活跃 - 正在调查缺陷 已修复 - 开发团队已发布修复 - 需要重新测试
我有一个很简单的问题,为什么这段代码的输出是这样的? 我正在使用 Dev-C++ 5.11 和 TDM-GCC 4.9.2 64 位 #include using namespace std; in
我是一名优秀的程序员,十分优秀!