问题标签 [swrl]
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.
swrl - SWRL 规则比较 2 个字符串数据类型属性
我想问你我们是否可以创建一个SWRL规则来允许比较 2 类型的数据类型属性string?例如,如果我们有 2 个类:situation具有has_situation_typeasdatatype属性的类和具有as属性(srting)的服务类。我想创建如下规则: has_service_typedatatype(string)
如果这两个类具有相同的datatype属性has_services_type = has_situation_type,则情况将触发服务。我尝试排除这条规则,SWRL但我不知道是否可能:
注意:我知道这equal仅用于数字而不用于字符串,但我不知道如何为字符串执行此操作。谢谢你。
c# - 如何使用 OwlDotNetApi 或其他库在 C# 中使用 SWRL
我需要从 Protégé 导入一个包含 SWRL 规则的 OWL 文件,并在我自己用 C# 编写的程序中对其进行编辑。我使用OwlDotNetApi从 Protégé 导入文件,效果很好。如何处理导入的数据?我见过 OWL 类的特殊类等等,但 SWRL 什么也没有。是否支持 SWRL,或者我需要使用其他 API?是否有匹配的 API?
java - Protege 3.x 和 4.x 不支持 Java 8;Protege 5 支持 Java 8 但我们无法创建规则
升级到 Java 8 后,我遇到了一个问题,即我以前的 Protege 版本(即 3.x 和 4.x)不支持 Java 8。我可以继续使用支持 Java 8 的 Protege 5,但是有一个错误这会阻止编写规则。我找到的唯一解决方案是卸载 Java 8(如果您之前安装过 Java 7,则安装它)。我想使用 Java 8,因为我有其他 Java 项目可以从中受益。如果您找到了在 Java 8 中使用 Protege 3.x 和 4.x 或在 Protege 5 中创建规则的解决方案,请告诉我。
rdf - 在没有任何资源的情况下对属性进行演绎规则
朋友们,我编写了一个本体,它使用相同的属性,我通过 protege 中类的必要部分中的属性限制将其命名为“hasPart”。“hasPart”属性没有任何资源,因为我可以重用它。
例如
在 httpMassage 类中:
httpMessage subclassOf hasPart only(httpRequest 或 httpReponse)
在 httpRequest 类中:
httpRequest subclassOf hasPart only (generalHeader or entityHeader or requestHeader or Payload or request_line)
在 request_line 类中:
request_line subclassOf 只有部分(httpMethod 或 URl 或 httpVersion)
我也在许多其他类中使用“hasPart”属性。然后我想在我的本体示例中使用 swrl 中的传递演绎规则
hasPart(?x,?y)^ hasPart(?y,?z) -> hasPart(?x,?z)
但是当我执行它时,swrl 显示检测到内存不足的错误请增加堆大小有什么问题?
semantic-web - Protege 中的 SWRL 语法
我正在使用 Protege5.0,我想实现 SWRL 规则,即
这意味着“如果用户正在开会,则 familycontact 的状态为“拒绝”。
此语法应该可以工作并且 protege 不会显示任何错误。但是,它不起作用。当我写
这种语法完美地工作,但当我以这种格式编写复杂的规则时它没有用。谁能解释一下这两种格式的区别并给我一个完美的解决方案?
更多解释:
我有一个主类People和 People 的子类是Contact 和 User。Contact的子类是 FamilyContact、EmployeeContact 等。** User 和 Contact通过对象属性关联 isContactOf(People,Contact)。在我的本体中,应该只有一个User类。现在,我要实施 SWRL 规则,即如果 **用户正在开会,则 FamilyContact hasStatus "Reject"。** 此拒绝仅意味着家庭成员无法呼叫用户。其他规则是如果用户正在开会,那么 EmployeeContact 的状态为“通过”。hasStatus(Contact,String) 是一个函数属性。
第二个规则语法完美地工作,但是当我想为那些同时是EmployeeContact 和 FamilyContact的实例实施规则时,我遇到了问题。例如,如果我写一个规则,即
User(?u), isInActivity(?u, ?cm), ContextMeeting(?cm), FamilyContact(?f), EmployeeContact(?e), DifferentFrom(?f,?e)-> hasStatus(?f, "Reject").
它以某种方式工作,但我遇到了问题。它使 EmployeeContact 的其他实例也成为 FamilyContact 的实例,反之亦然。
owl - 如何在 Protege 4 中定义 SWRL 规则名称?
我在 Protege 4 中使用了“规则”视图
我认为如果 protege 支持定义规则名称。
我这样定义规则
我试图定义规则名称..但我不知道如何使用规则名称
出现语法错误!
如何在 Protege 4 中定义 SWRL 规则名称?
rdf - OWL 和 Protege 中的补充推理
我最近创建了一个小本体来练习。在我的本体中,存在一个名为 EmployedPerson 的类,由一个 SWRL 规则定义:Person(?x), (worksin min 1 Place)(?x) -> EmployedPerson(?x)。
我还有另一个类是 UnEmployedPerson,由类表达式定义:等效于 (Person and (not (EmployedPerson))),这意味着 UnEmployedPerson 是 EmployedPerson 的补充。
提到的两个类(EmployedPerson 和 UnEmployedPerson)都是 Person 的子类,并且 person 设置为“EmployedPerson 或 UnEmployedPerson”。Person 类有三个人:Ivan、Lenka 和 Martin。所有个体都是不同的个体。
另一个类 Place,有一个单独的“WorksApplication”。对象属性“worksin”链接类“Person”和类“Place”。
在我的本体中,有两个公理: Lenka worksin Worksapplication Martin worksin Worksapplication 经Pellet 和HermiT 推理,根据SWRL 规则可以推断出Lenka 和Martin 是EmployedPerson 的成员。
因为 Ivan 不属于 EmployedPerson,而 UnEmployedPerson 是 EmployedPerson 的补充,所以 Evan 应该被推断为 UnEmployedPerson 类的成员。
但实际上,经过 Pellet 和 Hermit 的推理,无法推断出 Ivan 属于 UnEmployedPerson 类。结果没有达到我的预期。是我的本体有问题,还是我忽略了OWA的影响?请帮我解决这个问题,我想看到 Ivan 在 UnEmployedPerson 类中被推断出来!!
这是我展示这种行为的本体:
semantic-web - 用 SWRL 写一个数学表达式来计算概率分布
我是语义网规则语言的新手,我正在编写一些规则来计算离散和连续分布的概率。
我知道使用 SWRL 我可以做减法、加法、乘法和除法。但是数学函数的求幂、求和、计算呢?有没有办法在 SWRL 中做到这一点?
只是一个提出我的问题的例子:你知道,例如,对于三角分布,我们需要基本的数学微积分(减法和除法),但对于 Beta 分布,我们需要指数和 beta 函数的微积分。
有没有办法在 SWRL 中做到这一点?谢谢
rdf - 如何在 Protege 中对作为另一个类的个体的集合的类进行建模
我需要在 Protege 中建模以下示例:
假设我有一个类 Pride,它代表另一个类 Lion 的实例集合。有没有其他方法可以在不使用具有最小基数的用户定义对象属性的情况下做到这一点?
此外,如果狮子的颜色是“黄色”并且是狮群的成员,那么推理者应该推断出狮群的颜色是“黄色”。在没有定义一组 SWRL 规则的情况下还有其他方法可以做到这一点吗?