第四章:本体推理的技术基础设施

当LLM不够用了——本体推理的企业决策实践


第三章讲了"怎么落地"的方法论。这一章聚焦在"落地靠什么"——推理的技术基础设施。

如果说前三章是在论证"为什么要做本体推理"和"怎么做才能不失败",那么从这一章开始,我们要进入技术内核。本章的目标读者不是做纯理论研究的,而是在落地时需要判断"该选什么推理机"“该用 OWL 的哪个子集”"SWRL 能做什么不能做什么"的实践者。

企业级本体推理的技术选型,不是"哪个最好用"的问题,是"我的场景适配哪个"的问题。


4.1 推理机的分类:Tableau / Hypertableau / 规则引擎

本体推理机的核心任务:给定一个本体(TBox + ABox),判断它是否一致(没有逻辑矛盾),以及推断隐含的结论(那些没有显式写在文件里但逻辑上成立的事实)。

实现这个任务的技术路线,可以分为三大类。

4.1.1 Tableau 算法:描述逻辑的经典验证法

最经典的方法叫Tableau(表推)算法。它的核心思想是"反证法":要证明结论 C 在本体 O 中成立,就假设 C 的否定(¬C)为真,然后尝试构建一个反例——如果构建过程中产生矛盾,说明 ¬C 不可能成立,则 C 必然成立。

整个构建反例的过程,就是对概念描述做逐步分解。以 OWL 中的概念构造符为例:

  • 给定Person ⊓ ∃hasChild.Student(x)(x 既是 Person,又有一个 child 是 Student),分解为两条约束:Person(x)∃hasChild.Student(x)
  • 给定∀hasChild.Adult(x)hasChild(x, y),推出Adult(y)

Tableau 算法沿着公理逐条展开,创建个体,检查约束,直到:

  • 出现矛盾(一个个体同时被判定为 C 和 ¬C)→ 原假设不成立,推理成功
  • 无法再展开且无矛盾→ 找到反例,假设置疑

这就是 Pellet [1] 和早期的 FaCT++ 等推理机的核心算法。它的优点是完备(所有逻辑蕴含的结论都能推出)且正确(推出的结论一定逻辑成立)。缺点也很直接:最坏情况下的复杂度是指数级的(对 OWL-DL 而言是 NEXPTIME-hard)。

4.1.2 Hypertableau:解决非确定性爆炸

Tableau 算法在遇到一般包含公理(General Concept Inclusion, GCI)时会面临严重的非确定性问题。GCI 是什么?就是像这样的公理:

SubClassOf(CEO, Person)——即"每个 CEO 都是人"

这类公理在 OWL 本体中极其常见。标准 Tableau 算法处理 GCI 时,会对每个知识库中的个体做试探性的"分支"——假设它是 CEO 或不是 CEO,然后各自计算,形成指数级分支。

HermiT [2] 提出了Hypertableau(超表推)算法,核心改进在于:

  1. 吸收优化(Absorption):把 GCI 尽量"吸收"进已有的概念定义中,减少独立处理的需求。比如SubClassOf(CEO, Person)可以直接在CEO的定义中处理,不需要为每个个体单独展开
  2. 一次性规则触发(hyper-resolution):将多个相互关联的推理步骤合并为一个原子操作,减少中间的搜索空间
  3. 阻塞(Blocking)优化:当检测到无限扩展的模式时终止展开——例如Person ⊑ ∃hasParent.Person会导致无限构造祖先,blocking 检测到循环后停止

量化对比:牛津大学团队的实验数据显示,在包含大量 GCI 的生物医学本体(如 GALEN)上,HermiT 的 Hypertableau 比标准 Tableau 推理快 2-3 个数量级 [3]。

一句话总结:Pellet 是"经典版"推理机,稳定可靠;HermiT 是"优化版"推理机,在复杂本体上快得多。

4.1.3 规则引擎:RETE 与正向链接

还有一条完全不同的技术路线:规则引擎

规则引擎不依赖描述逻辑的 Tableau 证明,而是用产生式规则做推理。它把每条公理和规则转换为"如果……则……"的形式,然后用正向链接(forward chaining)不断推导新的事实,直到没有新事实产生。

代表算法是RETE(由 Charles Forgy 于 1979 年在 CMU 博士论文中提出)[4]。RETE 的核心思想是用空间换时间:构建一个"α 节点 → β 节点"的判别网络,将规则的条件部分编译为网络结构,数据流入后匹配路径,避免重复扫描所有规则。

举个例子:有 1000 条规则和 10 万条事实,朴素算法每条规则都要扫描全部事实,RETE 算法则将匹配过程网络化——只有相关的事实被传入相关规则的匹配节点。

这条技术路线的代表实践:

  • Drools(Java 规则引擎,使用 ReteOO 算法)
  • Jena 规则引擎(支持 RETE 和前向/后向链接,可用于 RDFS/OWL 推理的子集)
  • OWL 2 RL Profile的所有推理都可以用规则引擎实现(因为 RL 被设计为"规则可表达的")

4.1.4 三类推理机的对比

维度Tableau (Pellet)Hypertableau (HermiT)规则引擎 (RETE/前向链)
算法原理反证法 + 分解 + 分支反证法 + 吸收优化 + 阻塞条件匹配 + 逐步推导
完备性完备 + 正确完备 + 正确取决于规则集是否完备
性能瓶颈GCI 导致分支爆炸大规模 ABox 可能内存压力大量实例时效率高
适用本体规模小中型中大型(复杂 TBox)大型(实例数据多)
OWL 2 ProfileDLDLRL(最适配)
代表工具Pellet, FaCT++HermiTDrools, Jena Rules, RDFox

选型建议

  • 如果你的本体有大量概念层级和复杂 GCI(如医学术语库 SNOMED CT):用 HermiT
  • 如果你的本体规模不巨大但需要最完整的推理覆盖:用 Pellet
  • 如果你的场景是大量实例数据上的简单规则推理(如"所有北京的供应商自动标记为华北区"):用规则引擎

4.2 OWL-DL 的推理能力与 EL 的边界

第一章介绍过 OWL 的层级结构。这里深入到推理复杂度层面,讨论两个最重要、最实用的 Profile:OWL-DLOWL-EL

4.2.1 OWL-DL:全能力下的"昂贵安全网"

OWL-DL(Description Logic)是 OWL 2 中表达能力最强的子语言。它基于描述逻辑SROIQ(D),能够表达:

  • 概念的交(⊓)、并(⊔)、补(¬)
  • 属性的全称量化(∀)、存在量化(∃)
  • 数量约束(≥, ≤)
  • 属性的传递性、对称性、互逆性、不相交性
  • 个体的等值和不等值断言
  • 数据类型属性(整数、字符串、日期等)

对应的推理复杂度是NEXPTIME-complete[5]。这意味着:在最坏情况下,推理时间随本体规模增长而指数级增长。

但在实践中,很多使用 OWL-DL 建模的本体并不触及最坏情况——因为建模者不会把所有理论允许的公理类型全部用上。另一方面,当本体体量超过一定规模(比如超过 5000 个类、500 个属性),即使没有触发最坏复杂度,Pellet 或 HermiT 也可能需要数十分钟甚至更久来完成一次分类推理。

这引出一个关键工程判断:你的企业场景真的需要 OWL-DL 的全部能力吗?

4.2.2 OWL-EL:放弃表达力换取推理效率

OWL-EL(Existential Language)是一个表达能力削减但推理高效的子语言。它基于描述逻辑EL++,支持:

  • 概念的交(⊓)
  • 存在量化(∃)
  • 属性的传递性
  • 概念包含公理(GCIs)
  • 数据类型属性(有约束)

不支持

  • 概念的并(⊔)、补(¬)
  • 属性的全称量化(∀)
  • 数量约束(≥, ≤)
  • 属性的对称性、互逆性、不相交性

为什么放弃这么多?因为 EL 上的推理复杂度是PTIME-complete(多项式时间)[6],意味着即使本体规模很大,推理时间也保持可控。

SNOMED CT 就是 EL 的最典型案例:拥有超过 30 万个类、100 多个属性的大型医学术语本体,使用 EL 推理机(如 ELK)可以在数秒内完成分类推理 [7]。如果用 OWL-DL 全能力的推理机跑同样的本体,可能永远跑不完。

4.2.3 DL vs EL:工程视角的决策框架

维度OWL-DLOWL-EL
推理复杂度NEXPTIME-hardPTIME-complete
概念并(Or)
概念补(Not)
全称量化(∀)
存在量化(∃)
数量约束(≥, ≤)
概念层级分类✅(慢)✅(快)
一致性检测
典型推理机HermiT, Pellet, FaCT++ELK, Snorocket, CEL
适合本体规模< 5000 类> 10 万类
企业典型场景风控规则本体、供应链本体产品目录、术语标准化、编码映射

工程实践中的一条重要原则

不要用 OWL-DL 建模你用 EL 就能表达的知识。你节约的不是建模时间,是推理时间。

实际上,很多企业级本体项目的 POC 阶段,建议先用 EL 建模和验证——因为 EL 推理快,可以在短时间内完成一致性检测和分类,快速暴露建模错误。验证通过后,如果确实需要全称量化或数量约束,再升级到 DL。这个"先 EL 后 DL"的策略,是许多本体工程师的实际工作方式。

4.2.4 另两个 Profile 简述

  • OWL-QL(Query Language):基于 DL-Lite,查询回答的数据复杂度为 AC0(可用 SQL 重写实现),适合大规模 ABox 上的查询场景——如果你主要做"查",而不是"推",QL 是最佳选择
  • OWL-RL(Rule Language):所有推理可用规则引擎(前向链 + 后向链)实现,PTIME-complete,3.1 节提到的规则引擎路线就对应 RL
Profile复杂度一句话场景
ELPTIME大规模术语分类(TBox 主导)
QLAC0(数据)大规模查询回答(ABox 主导)
RLPTIME规则化推理(规则引擎友好)
DLNEXPTIME需要全部表达力的复杂推理

4.3 SWRL:当 OWL 不够用时的规则补充

4.3.1 OWL 的表达力边界

第一章引入 SWRL 时说过:OWL 负责定义"是什么关系",SWRL 负责定义"满足什么条件时触发什么结论"。这里展开讲。

OWL 公理能表达的推理模式主要是描述逻辑模式:传递、对称、互逆、等价、不相交。但很多企业场景需要条件推理

“如果某供应商在过去三个月内退货率超过 10%,且该供应商评级为 A 级,则降级为 B 级。”

这个规则需要比较数值(退货率 > 10%)、引用多个属性(退货率、评级)、连接多个条件——这些 OWL 公理做不到。OWL-DL 不支持条件分支和数值比较。

SWRL 就是这个缺口的标准填充。

4.3.2 SWRL 的核心结构

SWRL 规则的基本形式是:

Body → Head (如果 Body 中的条件全部成立,则推断 Head 中的结论)

一条规则的内部结构由四类元素组成 [8]:

元素角色例子
Imp规则本身一条完整的head ← body规则
Atom规则中的原子条件hasDisease(?p, ?d)
Variable变量(占位符)?p(病人)、?d(疾病)
Built-in内置函数greaterThan(?rate, 0.1)

一个真实例子:

Rule: 高退货率供应商降级 Body: hasSupplierRetention(?order, ?supplier) /* 原子1:订单的供应商 */ hasReturnRate3M(?supplier, ?rate) /* 原子2:供应商的3月退货率 */ hasRating(?supplier, "A") /* 原子3:供应商当前评级 */ greaterThan(?rate, 0.1) /* Built-in:退货率 > 10% */ Head: hasRating(?supplier, "B") /* 结论:降级为B */

4.3.3 Built-in:SWRL 的真正威力

SWRL 规定了一套标准内置函数(Built-ins)[9],分为八类:

类别函数举例用途
比较greaterThan,lessThan,equal,notEqual数值/字符串比较
数学add,subtract,multiply,divide,pow,sqrt,abs算术运算
字符串stringConcat,stringLength,substring,contains,matches字符串处理
日期/时间date,time,addDayTimeDuration,subtractDates时间运算
布尔booleanNot布尔反转
列表listConcat,listIntersection集合操作
URIresolveURIURI 解析

这些 Built-in 使得 SWRL 的表达力远超 OWL 公理:它可以比较数值、连接字符串、计算日期差——这正是企业决策中大量出现的"条件-阈值-动作"模式的底层需求。

4.3.4 SWRL 的关键限制:DL-Safe

SWRL 有一个重要的安全约束叫DL-Safe[10]:

SWRL 规则中的每个变量必须出现在规则 Body 的非 Built-in 原子中。

这意味着你不能写:

/* 非 DL-Safe:?x 只出现在 Built-in 中 */ greaterThan(?x, 100) → hasAlert(?x, "warning")

而必须写:

/* DL-Safe:?x 出现在 DataProperty 原子中 */ hasValue(?s, ?x) ∧ greaterThan(?x, 100) → hasAlert(?s, "warning")

这个限制不是语法层面的挑剔,它确保 SWRL 规则在 OWL-DL 本体上的推理是可判定的(一定会停机、一定会给出确定的结果)。如果不加这个限制,SWRL+OWL-DL 组合在理论上是不可判定的——推理机可能永远跑不完 [11]。

工程含义:写 SWRL 规则时,每个变量必须先绑定到一个 OWL 概念或属性,然后才能在 Built-in 中使用。这是一个容易被忽略但必须遵守的约束。

4.3.5 SWRL 的推理机支持

推理机SWRL 支持程度备注
Pellet完整支持 DL-Safe SWRL推理时编译为 Tableau 规则
HermiT通过 Pellet 集成支持HermiT 本身不原生支持 SWRL
Drools + OWL API支持(转换为 Drools 规则)基于规则引擎路线
Stardog原生 SWRL + 自定义规则商业产品,完整支持

4.4 确定性推理与不确定性推理的分工

前三节都在讲确定性推理:给定一个本体和公理,推出一个唯一确定的结论。本体是一致的,或不一致的。疾病是 X 的,或不是 X 的。没有"可能是"“大约 70% 可能是”。

但在企业决策中,很多知识天然是不确定的

4.4.1 为什么企业决策需要不确定性推理

几个典型场景:

场景不确定因素确定性推理的问题
供应商风险评估“近期投诉增多”——什么是"近期"?多少算"增多"?阈值一刀切
客户流失预测多个弱信号叠加,没有单个决定性指标规则无法精确定义
医疗诊断辅助症状不完全、检查结果有误差确定性规则覆盖率太低

这些场景的共同特征:知识在阈值附近是模糊的、信号是不完全的、结论是概率性的。确定性推理(OWL + SWRL)可以处理"是非分明"的问题,但处理不了"边缘模糊"的问题。

4.4.2 三类不确定性推理方法

与确定性推理互补的不确定性推理方法,主要有三派:

方法核心思想处理什么输出形式
模糊推理隶属度函数(0~1连续值),非二元分类"边缘模糊"的问题置信度 + 推理链
Dempster-Shafer 证据理论多源证据融合,不要求全概率分配不完全信息信度区间 [Bel, Pl]
粗糙集三支决策等价类划分 → 正域/负域/边界域不确定下的决策Positive / Boundary / Negative

4.4.3 分工框架:确定性与不确定性协同

确定性和不确定性推理不是"二选一",而是分层协作

┌─────────────────────────────────────────────┐ │ 企业决策推理链 │ ├─────────────────────────────────────────────┤ │ 第一层:确定性推理(OWL + SWRL) │ │ 职责:可明确定义的规则 → 一致性的硬结论 │ │ 例子:供应商A评级为C → 订单须CEO审批 │ ├─────────────────────────────────────────────┤ │ 第二层:不确定性推理(模糊 / DS / 粗糙集) │ │ 职责:模糊条件、不完全信号 → 软结论+置信度 │ │ 例子:退货率"偏高" + 投诉"增多" → 风险评分 0.72│ ├─────────────────────────────────────────────┤ │ 第三层:决策采纳(人 or Agent) │ │ 职责:综合硬结论和软结论,做最终决策 │ │ 例子:风险评分 0.72 → 触发供应商审查流程 │ └─────────────────────────────────────────────┘

分工原则

  • 确定性推理负责"法律的条文"(硬规则、合规要求、无歧义的边界条件)
  • 不确定性推理负责"法官的自由裁量"(模糊信号、趋势判断、多源弱信号的聚合)
  • 决策采纳层把两者汇总,形成可追溯的最终决策

确定性推理保证结论的可解释性和一致性(不会今天说 A 是对的、明天同样的输入说 A 是错的)。不确定性推理保证覆盖现实世界的灰度地带(没有一个企业决策是完全确定性的)。

4.4.4 一条关键工程原则

不要试图把所有企业规则都塞进 OWL + SWRL。

这个错误非常常见:项目团队发现 SWRL 能表达条件规则,于是把所有决策规则都翻译为 SWRL,包括那些天然模糊的规则(“客户活跃度高于正常水平”、“近期投诉量显著增加”)。

结果有两个:

  1. SWRL 规则被写成了一堆武断的阈值(“退货率 > 10% = 高风险”),失去实际判断力
  2. 本体的规则数量爆炸,维护成本失控

正确的做法:确定性推理处理"硬规则"(占决策总数的约 20-30%),不确定性推理处理"软判断"(约 60-70%),人做最后的综合决策(剩余的 10-20% 特殊情况)。

确定性推理的技术实现在本章 4.1-4.3 已详细展开;不确定性推理(模糊推理、证据理论、粗糙集)的实现将在主线二的实战项目中深入讨论。


4.5 推理机性能:实战数据参考

CTO 和架构师最关心的问题之一是:推理机能跑多快?能撑多大的本体?以下数据来自社区 benchmark 和实际项目经验,供选型参考。

规模与性能关系

本体规模类数量个体数量规则数量推荐推理机推理耗时(典型)
小型(部门级)< 500< 10,000< 100Pellet / HermiT< 5 秒/次
中型(企业级)500-5,00010K-100K100-500HermiT + 增量推理5-120 秒/次
大型(跨部门)5,000-20,000100K-1M500-2,000Jena Rules + HermiT 按需2-30 分钟/次(分类推理)
超大型> 20,000> 1M> 2,000拆分本体 + 分批推理小时级(不建议全量实时)

工程建议

  1. 不要试图对所有实例做实时的 DL 分类推理。中型以上本体,分类推理(TBox reasoning)在构建/更新时做,查询推理(ABox query)在线做。
  2. OWL-EL profile 是性能捷径。如果你的领域约束可以用 EL 表达——比如医学术语分类、产品分类——EL 推理机(如 ELK)可在秒级完成百万级类的分类。
  3. 增量推理是降低延迟的核心策略。大多数推理场景不需要每次从头推理——新增一个实例,只影响与该实例类型相关的规则。Jena 的增量推理、RDFox 的增量物化均支持此模式。
  4. 本体设计决定了性能下限,推理机选型决定了性能上限。一个设计糟糕的本体(过多的全称量化、嵌套的补集、循环的 SWRL 依赖)在任何推理机上都会超时。

4.6 数据科学家关心的技术选择

OWL本体 vs 知识图谱Embedding:不是"选哪个",是"先后顺序"

这是数据科学家最常问的问题。两者的本质区别:

维度OWL本体推理知识图谱Embedding
推理方式演绎:从公理推导结论归纳:从图结构学出向量
可解释性每条结论可追溯到公理向量相似度——难以解释"为什么"
覆盖范围已知关系(公理覆盖)未知关系(link prediction)
数据需求领域专家定义规则大规模图数据
典型输出“供应商X是高风险,因为它满足条件A∧B∧C”“供应商X和Y相似度0.93”

正确的用法是互补: 先用OWL本体定义核心业务约束(硬规则),确保关键决策可解释;再用KG Embedding发现本体尚未建模的隐含关系。两者不是替代关系,是"骨架"和"肉"的关系。

SWRL规则 vs ML模型:分工边界

在决策推理中,SWRL和ML模型各有所长:

场景SWRLML模型建议
监管合规判断★★★★★ 精确匹配法规条款★★ 黑盒不满足合规用SWRL
客户分群★★ 规则静态,难以动态适应★★★★★ 聚类/分类天然优势用ML
供应链风险评估★★★★ 硬指标(集中度/合规/质量)★★★ 软信号(舆情/趋势)SWRL做硬规则,ML做软信号
反欺诈检测★★★ 已知欺诈模式★★★★ 新型欺诈模式检测ML发现异常,SWRL验证已知模式

核心原则:规则清晰且需要解释 → SWRL;模式模糊但数据充足 → ML;两者都需要的场景 → SWRL+ML组合。

推理链质量评估:三个可量化指标

推理链(inference trace)的质量可以从三个维度评估:

  1. 完整性:推理链是否覆盖了结论所需的全部前提?缺失前提 = 不可信。

    • 量化方式:完整性 = 成功验证的公理数 / 推理链声明的总公理数
  2. 一致性:推理链中的各步骤是否存在矛盾?

    • 量化方式:HermiT一致性检查——本体TBox+A-Box组合是否unsatisfiable
  3. 数据时效性:推理链中引用的A-Box事实,距当前时间的最大间隔。

    • 量化方式:时效性分数 = 1 - (max(数据年龄) / 业务允许的最大延迟)

不确定推理的嵌入方式

确定性推理(OWL+SWRL)覆盖硬规则,但企业决策中有大量软判断。三种不确定推理的嵌入方式:

方法嵌入方式典型场景
模糊推理(Fuzzy OWL)扩展OWL公理为模糊版本;每个断言附带隶属度 [0,1]“较大金额”“较高风险”“显著偏离”
Dempster-Shafer证据理论将来自多个数据源的同类断言合并为一条综合置信度多个系统对同一实体的矛盾标记合并
粗糙集(Rough Set)用于属性约简——找出哪些属性对分类决策真正不可或缺降维后的本体重构

要点:模糊推理的隶属度函数需要领域专家定义,不是纯数据驱动——这恰好防止了"统计分数伪装成逻辑结论"的问题。

推理结论的置信度量化

推理结论的置信度量化分两种情况:

确定性推理(OWL+SWRL)

  • 理论上置信度是0或1——要么蕴含(entailed),要么不蕴含
  • 实践中需要对数据源标注不确定性:一个A-Box事实来自"人工录入"和来自"传感器直接采集",可靠性不同
  • 建议:为每个A-Box断言附加一个certainty属性(如0.0-1.0),在推理链输出中加权计算综合置信度

不确定性推理(模糊/证据理论)

  • 模糊推理输出隶属度(如"高风险"的隶属度为0.78)
  • 证据理论输出belief和plausibility区间(如[0.65, 0.82])
  • 关键约定:确定性推理和不确定性推理的结论应分开呈现——“硬结论(确定性): X满足高风险条件”+“软信号(不确定性): 高风险置信度0.78”,而不是把它们混合成一个模糊数字。

本章小结

  1. 三类推理机各有适用场景:Tableau 是经典(Pellet),Hypertableau 是复杂本体的优化版(HermiT),规则引擎是大规模实例数据的选择(Drools / Jena Rules)
  2. OWL-DL 和 OWL-EL 的核心差异是推理复杂度:DL 能表达一切但最坏 NEXPTIME,EL 牺牲了并/补/全称量化但换来多项式时间推理。工程上用 EL 验证、DL 补充是常见模式
  3. SWRL 填补了 OWL 的规则缺口,Built-in 函数赋予它数值比较、字符串运算、日期计算的能力;DL-Safe 约束确保推理可判定;不是所有规则都该用 SWRL 写
  4. 确定性推理与不确定性推理不是竞争关系,是分层分工:确定性负责硬规则的可解释性,不确定性负责模糊信号的覆盖,决策采纳层做最终综合

下一章将进入企业级架构设计:如何在生产环境中把推理机、知识存储、服务编排整合为一个可运行的系统。


参考资料

[1] Sirin, E., & Parsia, B. (2004). Pellet: An OWL DL Reasoner.Proceedings of the 2004 International Workshop on Description Logics (DL2004), CEUR-WS Vol-104.

[2] Glimm, B., Horrocks, I., Motik, B., Stoilos, G., & Wang, Z. (2014). HermiT: An OWL 2 Reasoner.Journal of Automated Reasoning, 53(3), 245-269.

[3] Motik, B., Shearer, R., & Horrocks, I. (2007). Optimized Reasoning in Description Logics using Hypertableaux.Proceedings of CADE-21, LNCS 4603, Springer.

[4] Forgy, C. L. (1982). Rete: A Fast Algorithm for the Many Pattern/Many Object Pattern Match Problem.Artificial Intelligence, 19(1), 17-37.

[5] Kazakov, Y. (2008). RIQ and SROIQ are Harder than SHOIQ.Proceedings of KR 2008, AAAI Press.

[6] Baader, F., Brandt, S., & Lutz, C. (2005). Pushing the EL Envelope.Proceedings of IJCAI-05.

[7] Kazakov, Y., Krötzsch, M., & Simančík, F. (2014). The Incredible ELK: From Polynomial Procedures to Efficient Reasoning with EL Ontologies.Journal of Automated Reasoning, 53(1), 1-61.

[8] Horrocks, I., Patel-Schneider, P. F., Boley, H., Tabet, S., Grosof, B., & Dean, M. (2004). SWRL: A Semantic Web Rule Language Combining OWL and RuleML. W3C Member Submission.

[9] SWRL Built-Ins Specification. W3C Member Submission, 2004. Available at: https://www.w3.org/Submission/SWRL/#8

[10] Motik, B., Sattler, U., & Studer, R. (2005). Query Answering for OWL-DL with Rules.Journal of Web Semantics, 3(1), 41-60.

[11] Horrocks, I., & Patel-Schneider, P. F. (2004). A Proposal for an OWL Rules Language.Proceedings of WWW 2004, ACM.