python 知识图谱 推理_知识图谱推理与实践 (2) -- 基于jena实现规则推理

本章,介绍 基于jena的规则引擎实现推理,并通过两个例子介绍如何coding实现。

规则引擎概述

jena包含了一个通用的规则推理机,可以在RDFS和OWL推理机使用,也可以单独使用。

推理机支持在RDF图上推理,提供前向链、后向链和二者混合执行模式。包含RETE engine 和 one tabled datalog engine。可以通过GenericRuleReasoner来进行配置参数,使用各种推理引擎。要使用 GenericRuleReasoner,需要一个规则集来定义其行为.

Rule的语法与结构

规则通过 Rule对象来进行定义,包含 body terms列表 (premises),head terms列表 (conclusions) 和可选的 name 和可选的direction。

An informal description of the simplified text rule syntax is:

_Rule_ := _bare-rule_ .

or [ _bare-rule_ ]

or [ ruleName : _bare-rule_ ]

_bare-rule_ := _term_, ... _term_ -> _hterm_, ... _hterm_ // forward rule

or _bhterm_

_hterm := term

_ or [ _bare-rule_ ]

_term_ := (_node_, _node_, _node_) // triple pattern

or (_node_, _node_, _functor_) // extended triple pattern

or builtin(_node_, ... _node_) // invoke procedural primitive

_bhterm_ := (_node_, _node_, _node_) // triple pattern

_functor_ := functorName(_node_, ... _node_) // structured literal

_node_ := _uri-ref_ // e.g. http://foo.com/eg

or prefix:localname // e.g. rdf:type

or <_uri-ref_> // e.g.

or ?_varname_ // variable

or 'a literal' // a plain string literal

or 'lex'^^typeURI // a typed literal, xsd:* type names supported

or number // e.g. 42 or 25.5

逗号 "," 分隔符是可选的.

前向和后向规则语法之间的区别仅与混合执行策略相关,请参见下文。

_functor_ 是一个扩展的三元组,用于创建和访问文本值。functorName可以是任何简单的标识符。

为保障rules的可读性URI引用支持qname语法。可以使用在 PrintUtil对象中注册的前缀。

下面是一些规则示例:

[allID: (?C rdf:type owl:Restriction), (?C owl:onProperty ?P),

(?C owl:allValuesFrom ?D) -> (?C owl:equivalentClass all(?P, ?D)) ]

[all2: (?C rdfs:subClassOf all(?P, ?D)) -> print('Rule for ', ?C)

[all1b: (?Y rdf:type ?D)

[max1: (?A rdf:type max(?P, 1)), (?A ?P ?B), (?A ?P ?C)

-> (?B owl:sameAs ?C) ]

Rule allID说明了functor用于将OWL限制的组件

  • 1
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值