问题标签 [inference-engine]
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.
marklogic - Marklogic : advantage of using embedded triples over triple store
I have two questions related to embedded triples.
- Can we apply inferencing through the use of rulesets?
- Can we do a selective updates on triples given a subject and predicate?
Essentially, the bigger question is if the inferencing and updates on embedded triples are available, what would be the motivation to use triple store?
marklogic - Marklogic 嵌入式三元组的推理
我有以下 2 个文件。1 个文档包含以下数据:
另一个包含以下数据的文档:
我在这两个嵌入式三元组之间建立了关系
当我查询以获取 Bodycote Plc 的经济部门的所有结果时,我得到了两个三元组,这是正确的,但是当我使用组合查询时,它并没有给我所需的结果。
例如,当查询具有 BodyCote 的经济部门并且分析师姓名是 Henrik Christiansson 时,我希望它返回第一个三元组,但它没有。
我使用了以下查询:
我想知道是否有一种方法可以在组合查询中应用推理。
sparql - 尝试运行推理示例时未定义的函数 sem:sparql-update()
我正在尝试在 ML 8.0 上运行以下推理示例,但它在抱怨
“[1.0-ml] XDMP-UNDFUN: (err:XPST0017) 未定义函数 sem:sparql-update()”
谁能告诉我为什么会出现这个问题?
http://docs.marklogic.com/guide/semantics/inferencing?print=yes
java - 如何在 Jena 中使用传递推理器?
我想用 Jena 设置一个 TransitiveReasoner,以从模式和数据集创建一个新的推理模型。它适用于 RDFS 推理器,但不适用于 TransitiveReasoner。
这是我第一次体验推理;我查看了 Jena Inference Support 以及其他教程,但无法解决我的问题。
这是我在java中的测试代码:
试图改变OntModelSpec
并没有帮助。
我究竟做错了什么?
在此先感谢您的帮助。
assert - Jess中如何通过规则添加事实?
我尝试阅读有关 Jess 的教程,但找不到任何有用的东西。我想建立一个程序来找出我正在谈论的乐器。
因此,如果一种乐器有弦,我们就知道该乐器属于弦乐或打击乐器(即钢琴)类别。我将如何编写一个规则来保存一个事实,即基于此标准该类别是打击乐还是弦乐?
我考虑过绑定,但绑定并不意味着我必须为每个潜在类别设置一个单独的变量吗?或者,我应该使用断言吗?
prolog - 有没有办法知道 prolog 的推理引擎需要多长时间才能获得查询的响应?
我试图找出在 prolog 中找到查询答案的哪种方式更快。
例如,如果
employee('John',23).
rule2('John', 'Likes to play basketball').
如果快于:
clips - 剪辑中不合逻辑的不匹配
我对 Clips 中的规则匹配有疑问,特别是我不明白为什么该规则不起作用!我有一个名为 REASONING 的模块,我用这个 deftemplate 定义了一个事实
(deftemplate planning (slot value (allowed-values start stop)))
。我第一次关注这个模块时,我用这个规则来断言这个事实
接下来,这个事实将永远不会收回,而只会修改它的插槽。在我定义计划的同一个模块中,我有另一个规则,它从开始到停止改变了值。
这是此模块激活的最后一条规则。之后剪辑执行一个弹出焦点。现在轮到再次关注这个模块时,我发现
(planning (value stop))
所以我希望写下的规则必须被激活,但它不会发生!再次更改插槽值的条件位于模块 PLAN_MANAGER 中,因此我无法在 REASONING 中激活任何其他规则,直到 Clips 不执行关注 PLAN_MANAGER。
奇怪的是,如果我调用匹配函数,我会得到这个输出。
任何人都可以帮助我理解为什么 CLIPS 不把议程go-to-plan-manager放进去?我哪里错了?
prolog - Prolog 和推理引擎
肯定是:
但是,它只是返回假,为什么?
clips - CLIPS LHS 匹配多槽
我为专家系统编写了这条规则:
但是,我不希望栖息地的价值与我给出的所有价值相匹配,而只与至少一个价值相匹配。我想知道我应该怎么做。我可以这样做:
但我想知道是否有更好的解决方案。谢谢
clips - 剪辑修改系统
(首先,对不起我的英语:))我正在尝试为我的项目创建一个修订系统(天然植物的简单分类),我不想粘贴我所有的代码,而只粘贴重要的部分,所以我将尝试解释系统的作用。我做了一个函数(我称之为修改属性),当系统找到应该与用户给出的答案相对应的植物时,询问用户是否要修改某些属性,如果他回答“是”,他可以选择什么属性要改变,然后系统找到属性的事实和地址并收回它们,因此它从头开始,应该重新评估规则。例如我有这两个规则:
如果,最后,用户想要更改月份属性,最后一个将被收回,并且规则月份应该重新评估并被解雇,因为没有月份属性,所以他可以通过这种方式更改的值月,然而开花属性也应该被改变,但这并没有这样做,有一个名为开花的属性已被断言。考虑到这一点,我在 revise-function 之后创建了一个“焦点”模块:
因此,如果月份缩回,开花也缩回。但是我想知道是否有可能以更好的方法做同样的事情,因为我对以下规则有疑问
例如,如果用户想要更改栖息地属性,我可以在 Revisiting 模块中创建以下规则
但是,如果用户输入的第一个值是山,然后他用 edge_of_road 更改了它,那么花瓣尖齿属性也将被收回并重新触发,但我认为请求关于花瓣尖的问题可能是多余的-带齿的。那么我该如何改进我的代码呢?
PS我希望我很清楚,否则我可以尝试更好地解释mysef :)