问题标签 [reasoning]

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 投票
0 回答
62 浏览

jena - 耶拿推理 2 个数据集并添加新实体

我在 jena 查询解决方案中有一个结果绑定(比如sol1: user=u1, location=loc1, LocationType=type1),我想使用数据集来使用一组 jena 规则扩展我的结果绑定。事实上,有了 sol1 并 loc1 location:ispartof loc2 loc2 rdf:type loc2Type 在我的数据集中,我想将这个新解决方案添加到我的结果集中:

sol2: user1=u1, location=loc2, locationType=loc2Type

为此,我需要将我的解决方案集添加到我的数据集中,编写一个规则,如 @prefix pre: <http://jena.hpl.hp.com/prefix#>. [rule1: (?sol pre:user ?a) (?sol pre:location ?b) (?sol pre:lcationType ?c) (?b location:ispartof ?d) (?d rdf:type ?type) -> (sol2 pre:user ?a) (sol2 pre:location ?d) (sol2 pre:locationType ?type) ] 根据上述规则进行推理。然后从数据集中提取所有解决方案,我需要使用查询数据集

@prefix pre: <http://jena.hpl.hp.com/prefix#>. select * WHERE {?sol pre:user ?a. ?sol pre:location ?b. ?sol pre:lcationType ?c.}

现在我的问题是

1)有没有办法通过在2个数据集上编写共振规则来防止将我的解决方案添加到我的大数据集?

2)如何在规则结果中单独命名每个新解决方案?

谢谢。

0 投票
2 回答
1327 浏览

type-inference - OWL Intersection on class level

I have a class hierarchy like this:

Class C is a subclass of both, ClassA and ClassB while ClassD and ClassE are only subclasses of either ClassA or ClassB

Now I would like to specify a class which is equivalent to the Intersection of subclasses of ClassA and ClassB. The following doesn't work:

The reason is that this sort of rule would be used by the reasoner to classify individuals, i.e. is I had an individual Ind1 which is of type ClassA and ClassB, it would be classified to be also of type NamedClass. This is not (only) what I want. I want ClassC itself to be a subclass of NamedClass.

I know this is achievable using rules (e.g. SPIN) but can it be done without rules?

0 投票
0 回答
169 浏览

jena - 耶拿推理:在结论中动态添加新资源

从我目前所见,所有耶拿推理规则都采用以下形式:

这意味着不能在结论中添加新资源。我需要的是在规则的结论中动态命名和添加新资源。有人可以请我参考解决方案吗?

0 投票
1 回答
784 浏览

protege - SWRL 规则内的析取

我正在使用 Protege 4.3 来制定一些 SWRL 规则。是否可以编写一个包含析取的规则例如:

表示所有年龄 < 10> 30的人

0 投票
1 回答
547 浏览

reasoning - SWRL 规则中的相等指令不起作用

我正在使用 Protege 4.3 来制定一些 SWRL 规则。

我有一个名为“Person”的类,一个名为“name”的属性。

我从班级中创建了具有不同名称的个体,有些名称相同。

我想编写一个规则来创建名为“sameName”的属性实例来绑定具有相同名称的人。所以我写了以下规则:

该规则给出了正确的结果,但包括每个人与他自己,意味着也将每个人与他自己进行比较,所以我添加了 notEqual(?p1,?p2) 来强制推理器不要像这样将一个人与自己进行比较:

结果是空的。我错过了什么?

0 投票
1 回答
609 浏览

rdf - Protégé 4.3:本体一致性

我目前正在 Protégé 4 中创建关于发明的本体。

我宣布:

  • 财产fulfills
  • 两个班:InventionNeed

仍然在 Protégé 上,我的类发明由以下断言定义:

这意味着我不想要任何InventionfulfillsaNeed超过 one的类型的个人。

为了测试这个断言,我创建了一个称为发明类型的个体Boots和两个分别称为和需求类型Move_faster的个体Eat_faster

我断言Boots fulfills Move_fasterand Boots fulfills Eat_faster,这应该会破坏我的一致性,因为一项发明应该只满足一个需求。

但是,当我启动 HermiT 推理器时,我的本体仍然是一致的,即使是:

  • Boots什么都不满足
  • Boots满足任何个人不是Need

正常吗?

谢谢

0 投票
3 回答
4011 浏览

database - 在 Neo4J db 上使用 Jena 推理器

这是我第一次在这里写作,但我真的遇到了一个问题:是否可以在已经充满数据的 No-SQL 数据库(如 Neo4J)上使用 Jena 推理器?

我有一个 Neo4J 的图表,表示一堆三元组,我想在它们上使用 Jena API 和 Jena 推理器。我曾考虑过使用 Jena 的 SDB/TDB 组件,但我不知道如何将数据实际加载到我的模型中,因为 SDB 组件似乎只适用于 SQL 数据库,并且遍历整个 TDB javadoc 似乎有点太多了。我也应该为 TDB 模型定义某种配置文件吗?

非常感谢您的帮助。

0 投票
2 回答
318 浏览

java - Jena 推断 rdfs:Resource 在 owl:DatatypeProperty 的范围内。为什么?

如果我在其 rdfs:range 中有任何具有某些 XMLSchema 数据类型的属性,Jena 推理器(在我的例子中为 OWL_MEM_RULE_INF 规范)会自动将 rdfs:Resource 添加到该范围。这是为什么?这是否意味着我可以从字面上使用任何东西作为该属性的值?

例如:

询问:

输出:

0 投票
1 回答
227 浏览

inference - 在三重存储中插入语句

我有一个关于在 Virtuoso、Stardog、4store、Allegrograph、Oracle11g 等三重存储中插入和删除语句的问题。

插入新语句时,他们是在存储中插入推断语句还是在每次查询执行中使用推理器来获取推断语句?删除语句时同样的问题,他们是否删除了推断的语句?

0 投票
0 回答
197 浏览

jena - Jena reasoner 从 infModel 中删除语句

我有一个本体,我使用自定义规则运行耶拿推理器。现在,我想向模型添加新数据(实验结果)并删除一些旧数据,如果模型变大(由于内存问题)并更新 infModel。

添加数据不是什么大问题,因为我可以简单地将其添加到我的 OntModel 中,然后推理单元将结论添加到 infModel 中。

删除“结果”对我来说更是一个问题。我必须从 infModel 中删除它们。目前,我只是删除了“结果”所属的所有陈述。这种方法非常缓慢。似乎每个删除的语句都会触发 InfModel 中可能发生的变化的推理。在我的示例中,删除作为许多语句一部分的“结果”可能需要初始推理时间的 12 倍。

如果在这里找到可能的解决方案: 切换 Jena Reasoner

我的问题是:是否有解决方案,无需在没有推理器的情况下创建第二个模型并将更改重新绑定到 infModel?或者是否有另一种方法从只触发一次推理的 infModel 中删除数据?