问题标签 [jena-rules]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
220 浏览

java - 将 InfModel 中的推断语句重用于 Jena 中的现有模型

我有一个充满语句的 Jena 模型,并使用GenericRuleReasoner如下自定义规则字符串(示例直接取自Jena 教程页面

根据我对 Jena 推理器的理解,新的推理模型inf将包含model规则生成的语句以及新推断的语句。inf两者中的陈述实例是model共享的还是不同的?如果不同,这不会太浪费内存吗?

我遇到的一个问题是将推断的语句重用到model. 遍历inf模型以查找新推断的语句并将它们添加到model似乎是一种幼稚的方法。还有其他更明智的方法吗?

最后,我想知道从model. 我所说的过时陈述的意思可能最好用一个例子来解释。假设在model. 稍后,当插入一个新的语句,例如 (Speaker hasSoundLevel 80) 时,它应该从model. 这可以通过使用规则来实现吗?如果语句在插入后的一定时间后需要过时怎么办?任何有关如何实现这一目标的建议将不胜感激。

谢谢,

0 投票
1 回答
101 浏览

owl - SWRL - 使用课堂知识

我想使用在类之间建模的知识。例如,我模拟了一辆汽车,一辆公共汽车有 4 个轮子,一辆自行车有 2 个轮子。现在,我想表达一下自行车会翻倒(如果你不让它们保持平衡——不称职的司机)。如果我添加一个实例“CB450”,subClassOf Bike,规则应该启用推理:can(CB450,Tip)。方法:

我没有找到任何方法在 SWRL 或 Jena 规则中表达此规则。有没有可能?

我知道它可以以不同的方式建模,但我需要在实例中使用类关系作为规则。

我使用 Protege 5.16 和颗粒 2.3.1。请参阅下面的示例本体

0 投票
1 回答
298 浏览

sparql - Jena SPARQL API 使用推理规则文件

我正在使用 Jena SPARQL API,我想在应用推理规则后对我的 RDF 文件执行查询。我创建了一个.rul包含我所有规则的文件;现在我想运行这些规则并执行我的查询。当我使用 OWL 时,我是这样进行的:

我想对推理规则做同样的事情,即.rul像这样加载我的文件:

这不适用于.rul文件,不执行规则。任何想法如何加载.rul文件?提前致谢。

0 投票
1 回答
183 浏览

jena - 检查属性是否在耶拿规则中定义

在 apache jena 中(使用规则),当找到没有指定对象属性的实例时(在单个规则中)如何打印?

示例(打印没有工作的人):

[ruleNoJob: (?p rdf:type :Person) ... -> print(?p, 'does not have a job')]

0 投票
0 回答
42 浏览

jena - 是否可以从 JENA 规则中执行 i/o?

我对使用 Jena 构建故障诊断、基于本体的专家系统很感兴趣。是否可以在前向或后向链接规则中执行 i/o?例如提示用户提供更多事实?还是访问数据库?

0 投票
1 回答
840 浏览

comparison - Jena 推理和规则语法

我对 Jena API 有疑问。

我写了一些运行良好的规则,但有一件事我仍然有问题。我希望你能帮助我。

两个整数的比较

在我的规则中,我需要像“GreaterThan”这样的比较。我搜索了很长时间,但没有一个版本有效。我尝试GreaterThan(?x, ?y)了作为规则的一部分以及 swrlb: <http://www.w3.org/2003/11/swrlb#>具有其功能 的名称空间swrlb:GreaterEqual,但两者都没有奏效。

规则如下所示:

或我的替代方案:

0 投票
1 回答
47 浏览

jena - Jena 无法连接到自定义在线文件

我尝试使用以下链接将 Jena 连接到我存储在 Dropbox 上公共目录中的自定义文件https://www.dropbox.com/s/d3gfidqqfwvo4e9/foaf.ttl?dl=1

我故意将链接更改为,dl=1而不是dl=0链接将直接显示到文件而不是 Dropbox 文件夹。

在 Netbeans 我有以下代码:

在输出上我唯一得到的是:

关于为什么我无法获得整个模型的任何帮助?

0 投票
1 回答
224 浏览

sparql - SPARQL:找出高数据属性值

我有一个问答游戏,学生必须解决三个类别的问题,例如化学、英语、物理。学生将在这些类别中得分,例如 student1 的化学成绩为 50,英语成绩为 70,物理成绩为 65。

我可以弄清楚学生在哪个类别中得分最高。但是我怎样才能得到任何学生的最高分类别呢?我的意思是,如果一个学生的英语得了 90 分(没有其他学生得到这个分数),那么我们怎么能算出英语的最高分是 90。

请记住:英语分数、化学分数、物理分数是存储在 rdf 文件中的数据属性。我想是否可以使用 Jena 规则或 SPARQL 或纯 Java 代码。

0 投票
1 回答
462 浏览

java - 为什么会出现此异常 com.hp.hpl.jena.reasoner.rulesys.Rule$ParserException: In Using Apache Jena Reasoner?

这是我的代码:

在执行 playWithJenaReasoner() 函数时,它会抛出错误:
com.hp.hpl.jena.reasoner.rulesys.Rule$ParserException: Expected '(' at start of clause, found vocab:
from line rules.add(Rule.parseRule(customRule) );

如果我将这些更改添加到上面的代码中,一切正常

那么这有什么问题

在这个Jena 文档中,他们提到了 @prefix 和 rule 。我在哪里做错了?

0 投票
1 回答
99 浏览

jena - 使用 Jena 规则更新本体三元组中的值

我有个问题。我有这样的耶拿规则:

问题是上面的规则并没有更新“hasPhone”属性的值,而是增加了一个值。如何更新值或删除旧值并添加新值?

谢谢你。