为了解决这个问题,W3C 引入了 SWRL (语义网规则语言)。 在您的 contract-ontology.owl文件的第 6 节中,就包含了原生的 SWRL 规则定义。 SWRL 的标准结构语法: 一条 SWRL 规则(在本体中用 <swrl:Imp> 标签表示)通常包含两个核心部分: 前提条件(Body / Antecedent): 满足的条件(IF)。 人类可读的 SWRL 简写语法: 如果您使用 Protégé 等可视化构建工具(借助 SWRL Tab 插件),这条 XML 规则在界面上呈现的是非常简洁的逻辑表达式: InvoiceRecord(? amt) SWRL 支持的四种测试原子(Atom) 要在 SWRL 中组合复杂的条件,一般会组合使用以下四块“拼图”: ClassAtom (类测试):判断某个对象是不是某个类别。 ** 这里为您提供三种在语义模型中实现该需求的参考方案: 方案一:通过 SWRL 比较总金额(最推荐的 OWL 实践) 因为纯 OWL/SWRL 无法把合同下的多笔“开票金额”或者“收款金额”进行 SUM
6 SWRL 语言 SWRL 语言是一种基于 OWL 的规则语言,用于提供更加强大的演绎推理功能。 问:SWRL 是否支持非单调的推理? 答:不支持,即不能修改本体中已有的信息(否则会报错) 问:SWRL 支持否定吗? 问:SWRL 是否支持 RDF 或 RDFS? 答:不支持,可以先将其转换为 OWL。 问:SWRL 的语法特点? 答:SWRL 提升了表达性,但牺牲了可判定性,即本体推理终止时,SWRL 的推理可能没有终止。 age) 问:应该什么时候使用 SWRL? 答:SWRL 基于 OWL-DL,可以提升本体的表达性,但是以可判定性为代价。
protégé提供的WRL可以使用本体已定义好的概念来建立推理所使用的规则,但SWRL无法直接由推理机释义,因此要使用推理引擎将本体与规则进行转换。可以基于Jess这种规则引擎来实现推理。 三者的关系为: protege定义本体,SWRL编写规则,Jess将protege中的知识库和SWRL规则转化成内部格式,从而进行推理。
Turtle,Json-LD (3)数据描述框架(RDF):数据模型,表示知识的一种方法和手段 (4)RDFs/OWL:工业标准,使用预定义的词汇,对RDF进行类和属性定义,即,Schema (5)RIF/SWRL (5),RIF/SWRL 依附于OWL,它们是集成在OWL上,对概念和属性的约束和限定。
方案:RDF模型因为披着OWL的外衣,且有RIF/SWRL的加持,天然支持基于本地和自定义规则的推理,但属性图模型通常不具备推理功能,只能业务代码通过实现,比如if-else。
也可以通过SWRL自定义一些规则加入本体,还可以进行查询。可见Protege能一条龙解决本体的编辑、推理、查询等问题,但本项目要求用Java调API实现功能。
(2013年)建立了一个基于本体的系统,用于对急性心脏疾病的重症患者进行智能监督和治疗,其中专家的知识由OWL本体和一套SWRL规则代表。
A semantic service match approach based on wordnet and SWRL rules[C]//Proc of the 10th IEEE Int Conf
在实践中,常用的独立于本体语言的规则语言有:「Notation3」(N3)、「Rule Interchange Format」(RIF)、「Semantic Web Rule Language」(SWRL
has_son(X,Y).has_child(Alice,Bob):− Datalog 推理的示例: (3)相关工具简介 工具名称 支持本体语言 实现编程语言 支持编程语言 KAON2 OWL DL/SWRL