问题标签 [inference]
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.
sparql - 不同蕴涵制度的耶拿效应
我正在尝试 sparql 和蕴含的使用。
例如,我使用了http://www.w3.org/TR/2010/WD-sparql11-entailment-20100126/#t112
我试着把它们放在耶拿。
其中模型是 OntModel 类型。
我使用了与问题类似的查询
模型是这样创建的。希望 OntModelSpec 没问题。
我从查询中得到结果
谁能给我一个例子,有和没有蕴涵,所以不能尝试代码,可以得到正确的结果。
owl - 使用 Jena 进行推断
上面给出的例子是由正式的 Pizza.owl 形成的。在这只猫头鹰中,Example-Margherita 是 Margherita 类的个体。所以,它已经写在 owl 文件中了。然而,问题在于推理者应该推断出 margherita-example 也应该是素食披萨。谁能举一个例子来说明如何在 Protege 中找到个人可能的推断类?(Protege 正确推断 Example-Margherita 是素食披萨。但是,我无法以编程方式推断)
java - 推断具有整数基数约束的实例的问题
我使用 Protege 4.1 alpha 创建了一个 RDF/OWL 文件。我还在 Protege 中创建了一个已定义的类,称为 CheapPhone。这个类有一个限制,如下所示:
每当一部手机的价格低于350,就被推断为CheapPhone。在 Protege 4.1 alpha 中推断这一点没有问题。但是,我无法使用 Jena 来推断这一点。
我还创建了一个名为 SmartPhone 的已定义类。这个类也有一个限制,如下所示:
每当一部手机有 3G 和互联网时,它就被推断为 SmartPhone。在这种情况下,在 Protege 和 Jena 中推断这一点都没有问题。
我开始认为 Jena 的默认推理引擎有问题。我在 Java 中使用的代码如下:
此代码完美运行并返回实例,但是当我更改下面的代码并使其适用于 CheapPhone 时,它不会返回任何内容。
难道我做错了什么 ?
artificial-intelligence - 推理逻辑规则选择问题
汤米、吉尔和旅行者属于 Sc 俱乐部。sc 俱乐部的每个成员要么是冲浪者,要么是骑自行车的人,或两者兼而有之。没有骑自行车的人喜欢下雨天,而所有的冲浪者都喜欢晴天。Jill 喜欢 Tommy 喜欢和喜欢的任何东西无论汤米不喜欢什么。汤米喜欢下雨天和晴天。
我想在一阶谓词逻辑中表示上述信息,以便我可以表示“谁是 SC 俱乐部的成员,谁是骑自行车的人但不是冲浪者?” 作为谓词逻辑表达式。
我应该选择什么一阶推理规则——前向链接、后向链接或解析反驳。??
c# - C#:创建委托列表的语法不那么难看?
我正在构建一个有点像 LINQ 的系统,并且在这样做的过程中,我试图支持多态回调处理程序列表,并且遇到了几种问题。问我问题的简短方法是向您展示一些代码。我的新系统支持“组”,组有一个入口点向量(下面是 UPDATE 和 CHECKPT),向量上的每个元素都是代表的多态列表,我将使用反射进行回调。
所以,示例代码:
我的问题集中在注册线上。为什么 C# 不能推断类型以便我可以完全省略强制转换和新的委托类型?我会认为从
C# 可以推断出所需的类型签名。delegate() 将是一种匿名类型,而 C# 只会生成类似的东西
然后(Delegate)(_atype1)
在编译该行之前插入。因此,我的用户不需要声明委托类型(这实际上迫使她输入参数列表两次)。
我确实有System.Linq
,因为我在 VS 2010 上。所以如果 LINQ 可以以某种方式推断出所需的演员表......
c# - 为什么 C# 不对泛型进行“简单”类型推断?
只是好奇:当然,我们都知道泛型类型推断的一般情况是不确定的。所以 C# 根本不会做任何类型的子类型:如果Foo<T>是通用的,Foo<int>不是Foo<T>或Foo<Object>或其他任何你可能的子类型做饭。当然,我们都用丑陋的接口或抽象类定义来解决这个问题。
但是...如果您无法解决一般问题,为什么不将解决方案限制在简单的情况下。例如,在我上面的列表中,很明显Foo<int>是Foo<T>的子类型,检查起来很简单。与检查Foo<Object>相同。
如果他们只是说,哎呀,我们会尽力而为,是否还有其他深渊会从深渊中蔓延开来?或者这只是微软语言人员的某种宗教纯洁性?
更新:
这是一个非常古老的线程。这些天来,C# 有 var,它解决了我抱怨的一半,然后使用匿名委托的 Linq 风格,有一个很好的符号,不需要输入两次相同的东西。因此,我反对的每个方面都通过最近对 C# 的更改得到了解决(或者也许我只是花了一段时间才了解发布线程时刚刚介绍的东西......)我使用这些新的现在在 Isis2 系统中具有可靠的云计算 (isis2.codeplex.com) 的功能,我认为该库因此具有非常干净的外观和感觉。检查出来,让我知道你的想法)。——肯·伯曼(2014 年 7 月)
f# - F# + 具有可变字段的记录中的平等推理
常见的相等/比较成员设计准则是不对可变引用类型实现结构相等,而是看一下具有可变字段的 F# 记录类型:
是在Map
内部排序的,但是mutable
记录字段允许我在记录实例已经在地图内时更改排序,这非常糟糕。
我认为 F# 应该为声明可变字段的 F# 记录类型推断[<NoEquality>]
和[<NoComparison>]
模式,不是吗?
jena - 如何更改推理规则
我正在使用 Eclipse 和 Jena 框架来开发 Web 应用程序。我的应用程序执行以下操作:
使用姓名、电子邮件、兴趣(C语言、Java等)、职业、用户名和密码等信息注册新用户。
此信息存储在名为 user.rdf 的 rdf 文件中。
使用新的所需用户名和密码创建一个新的用户帐户。新用户的登录根据用户的兴趣打开数据库中的所有相关书籍。
现在我需要向新用户推荐以下内容:
如果他/她对 C 语言感兴趣,则会向他推荐 C++ 书籍,并且可以将列表填充到屏幕上。
我知道这需要一个需要事实和规则的推理引擎。事实将在存储用户兴趣的 rdf 文件中。规则文件将根据推荐完成时的规则显示。
我有一个包含以下内容的 user.rdf 文件。
用户 Suresh 和 Anvika 实际上是在 Protege 中创建的,然后文件将通过应用程序使用其他用户详细信息进行更新。
test.rules 文件具有以下内容:
随之而来的推论是
现在由于线路有
inference 给用户 Anvika 推荐 LikeC++。但是对于同样对 C 语言感兴趣的用户 Raj 来说也是如此。我知道该行仅导致推断出用户 Anvika。但是这条线是通过 Protege 自动添加的。我的程序不这样做。那么如何通过我的应用程序添加该行。如果这不可能,请告诉我如何更改规则以推断正确的结果。
请帮我。我被这件事震惊了很长时间。
c++ - 函数模板参数的类型推导
我有一些关于功能模板的问题。
我的计划是构建一个派生自用户定义类的包装器,不仅导出该类的公共函数,还导出它的构造函数。所以我决定使用多个构造函数模板(我认为它们的工作方式与函数模板完全相同)和 1 到 n 个参数来满足大多数构造函数的需求。
这些将不仅仅是调用构造函数并在之后执行其他操作,如下所示:
我的意图是在 Wrapper-Ctor 的其他地方注册实例,从那时起,它可以接收对 T 中定义的虚函数的调用。
我必须在上面的代码中使用引用运算符,以保证我的 Wrapper-Ctor 对传递的参数没有任何副作用(复制构造)。
令我惊讶的是,除了临时变量之外,这总是有效的,这就是为什么我对编译器在这种情况下推断的类型感到困惑的原因。为了简化情况,我尝试通过模板函数做类似的事情:
像这样调用函数:
令我惊讶的是,编译器在其错误消息中表示 [T = std::string]。我本来希望这是 [T = std::string&],这会导致传递引用到引用,这是无效的。
那么,为什么编译器会在这种情况下推导出一个值类型呢?是否可以创建一个 Wrapper-Ctor 来做我想要的,对参数没有任何副作用并且还接受临时变量?
非常感谢!