问题标签 [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 投票
2 回答
2662 浏览

artificial-intelligence - 推理机和语义推理机有什么区别?

我发现了一些关于两者的简短文章,对我来说,听起来两者都是通过逻辑来解决问题的,类似于 Prolog 的工作方式。我必须添加我是这个领域的新手,所以我可能是错的。非常错误。

0 投票
4 回答
12584 浏览

java - java中的前向链接和后向链接

在java中实现推理过程的前向链接和后向链接的最佳方法是什么?

我们已经获得了具有一组语句的喇叭形式的知识库。

我试图在互联网上搜索,但我找不到任何关于如何将这些人工智能概念实施到编码中的描述。

我的理解 :

到目前为止,我一直认为我会阅读每个句子(Horn-Form)并创建一个对象。每个 Sentence 类对象都有关系变量,当我向知识库询问 Backward 或 Forward 链时,它将检查这些对象的数组并构造我想要的链。

通过说...调用上面的类

我是否走在正确的轨道上,对不起,我对这些复杂的编程很陌生,根据我的预测,我可能需要大量优化才能在非常高的水平上运行这些推理。但是,如果你们中的一些人可以提供帮助,我似乎需要有人很好地理解...

谢谢!

0 投票
0 回答
710 浏览

triplestore - 如何将语义推理器集成到 Sesame 中?

我正在为 Sesame 中的TripleStore开发API。它有一个与 RDF 一起工作的推理器。

因为我也与OWL一起工作。所以我想添加另一个语义推理器,例如Pellet或 ITM ...

SAIL API 似乎支持可定制的推理,并且可以扩展到其他基于 RDF 的语言

有谁知道如何做到这一点?

0 投票
0 回答
375 浏览

semantic-web - 构建基于规则的 SKOS Reasoner

我必须为本体 SKOS 构建一个推理器,以根据 CLIPS / Jess 中制定的规则进行推理。我想要简单形式的自动推理。我找不到任何专门帮助我为具有规则的本体创建推理器的东西,甚至找不到类似尝试复制 CLIPS 中的某些功能的东西。

0 投票
1 回答
453 浏览

semantic-web - 定义 AllegroGraph 三元组的规则以及如何应用它们

我正在使用 AllegroGraph 来存储这样的语句:

我想在这个语句上定义一个规则:如果主题 newsid1 hasAnnotation Gamma or Beta则在三重存储中添加一个新语句,表示该主题 hasAnnotation Theta,即语句

我的问题如下:

  1. 如何为 Allegro 定义这样的规则?
  2. 如何将这些规则应用于语句?
0 投票
2 回答
970 浏览

logic - Kripke 语义:学习软件可用吗?

我被困在Kripke 语义上,想知道是否可以educational software通过它测试语句的等价性等,因为我开始认为它更容易通过示例来学习(即使是在抽象变量上)。

我会用

  • ☐A 必须写 A
  • ♢A 代表可能的 A

☐true, ☐false, ♢true, ♢false 是否评估为值,如果是,则来自什么集合({true, false} 或 {necessary,possibly})的哪些值或类型的值?[1]


我想我读过所有Kripke models使用的duality axiom

(☐A)->(¬♢¬A)

即如果有必要,paytax那么它不允许不paytax
(不管它是否有必要纳税......)

即2。如果有必要,则earnmoney不允许earnmoney
(同样,不管赚钱是否真的有必要,到目前为止,逻辑仍然成立)

因为 A->B 等价于 ¬A<-¬B 让我们测试

¬☐A<-♢¬A

upvote如果允许,则没有必要upvote

这个公理具有双重作用:

♢A->¬☐¬A

如果它允许,earnmoney那么它没有必要不earnmoney


并非所有模态的行为都相同,并且不同Kripke model的模态比另一种更适合模拟一种模态:并非所有模态都Kripke models使用相同的axioms. (经典量词也是模态吗?如果是的话,是否Kripke models允许对它们进行建模?)

我将浏览常见公理列表,并尝试找到使假设看起来违反直觉或不必要的示例……

  • ☐(A->B)->(☐A->☐B):

if (它有必要 (earningmoney 意味着要交税)) 那么 ((necessity of Earningmoney) 意味着 (necessity of paidtax))

请注意,赚钱并不意味着纳税,暗示 A->B 的错误并不影响公理的真值...

呃,它花了太长时间来表达我试图理解这一切的问题......随时编辑

0 投票
1 回答
864 浏览

rdf - OutOfMemoryError using Pellet as Reasoner

I'm trying to infer data using Pellet, but my application always crashes during reasoning due to an "OutOfMemoryError: Java heap space".

As suggested elsewhere I have already tried to increase heap size and currently I am using these VM arguments: "-XX:MaxPermSize=256m -Xmx6144m". Furthermore I've to set 'PelletOptions.USE_CONTINUOUS = true', but so far I was only able delays the crashs for some minutes. (Longest run so far: 30 min.).

I am storing data in a Jena TDB triplestore. Its total size is 170 mb and consists of 962117 statements. The ontology has been modelled in Protege and there are no inconsistencies when reasoned with Hermit or Fact++ (of course no data is present at that point). The statements I'd like to infer have been modelled using equivalent classes (e.g.: A and (hasX some X)), inverse properties (hasX <--> isXOf) and some transitive properties. There are 55 classes: 14 root classes, 11 equivalent classes (all subtype of one root class). At the moment instances of 14 classes have been added to the tripestore.

I also used pellint to analyse my ontology, but I am not sure which conclusions to draw from this result:

This is my code for creating the InfModel:

and this is essentially how I query the data:

As you can see I have received various exceptions when either querying data, preparing or validating an InfModel. Do you have any idea, what else I could try to resolve this error?

0 投票
2 回答
362 浏览

artificial-intelligence - 具有整数甚至浮点域的逻辑编程

我正在阅读很多关于逻辑编程的内容——ASP(答案集编程)就是一个例子。它们(逻辑程序)通常采用以下形式:

【程序1】规则1:a <- a1, a2, ..., not am, am+1; 规则2:...

这组规则称为逻辑程序,sc 模型是这种计算的结果——将真/假值分配给 a1、a2、...某种程序(规则)可以与(语义网)本体集成以构建包含规则和本体(某种约束/行为和数据)的知识库;有很多关于 ASP 本身的研究——比如并行扩展、概率逻辑扩展、时间逻辑等等。

我的问题是 - 是否有某种研究或者一些概念验证项目,其中这种分析从布尔变量扩展到具有整数甚至浮点域的变量?目前我还没有发现任何可以解决以下程序的研究:

【程序2】Rule1 a1:=5 <- a2=5, a3=7, a4<8, ... Rule2 ... ... [最后给a1、a2等赋值,就是解本节目]

目前 - 据我了解 - 如果有人想对 Program-2 执行某种分析(例如,找出这个程序在某种意义上是否正确 - 例如它是否满足某些属性,如果它终止,哪些域被允许不违反某种性质等等),那么他或她必须根据 Program-1 重述 Program-2,然后以似乎完全未开发的方式进行 - 据我所知(我不相信就是这样)未经探索,简单地说-我不知道某些来源或趋势)。约束逻辑编程允许在 Program-1 中使用具有不等式的语句,但它也过于关注布尔变量。实际上 - Programm-2 是一种在业务规则系统中相当常见的类型,这就是我对逻辑编程感兴趣的原因。

所以-我的问题有一些历史-我的实践经验使我欣赏业务规则系统/引擎,尤其是-JBoss项目Drools,我打算对sc生产规则系统的基础理论进行某种研究(我曾经和我我打算就他们做我的论文——如果我能发现这里可以做些什么),但我可以说没什么可做的——在阅读了文献之后(例如http://www.computer.org/csdl/ trans/tk/2010/11/index.html是优秀的 IEEE TKDE 特刊,有一些关于它们的文章,其中一篇是 Drools 领导者撰写的)可以看到几十年前的 Rete 算法有某种技术改进,但没有 Drools 或其他生产规则系统的理论这可能有助于对它们进行一些正式的分析。那么 - 另一个问题是 -是否存在生产规则系统理论(对于 Drools、Jess、CLIPS 等规则引擎),是否有实际需要这种理论以及使用 Drools 和其他系统的实际问题是什么?由生产规则系统理论来解决

ps 我知道 - 所有这些问题都应该提交给论文顾问,但我目前的立场是(据我所知)我所在的部门没有适合回答这些问题的人,所以 - 我是阅读期刊和会议论文集(有很好的计算机科学系列讲座系列 - RuleML 和 RR)...

感谢您提前提供任何提示!

0 投票
1 回答
3718 浏览

performance - 在scala for循环中倒计时

可能的重复:
在 Scala 中减少 for 循环?

在使用Scala For The Impatient时,我遇到了以下练习:

我很快就想出了以下解决方案:

然而,这让我想知道如何推断这样做的成本。reverse 方法是对 Range 进行 O(n) 遍历,还是用一些花哨的索引算术来装饰它?还有其他结构可以做得更好吗?

0 投票
1 回答
1268 浏览

jena - 用 Pellet 推理 Jena 框架中的 SWRL 规则

我正在尝试使用 Jena 框架来编辑使用 Protoge 4.2 构建的现有本体。即更改属性值或添加个人或类,然后进行推理。假设在本体中我们有这样一条规则:hasAge(?p,?age)^swrlb:greaterThan(?age,18)->Adult(?p)。我希望能够更改耶拿一侧的 hasAge 属性,看看某人是否是成年人。你能给我一些关于这个的示例代码吗?任何帮助表示赞赏。