15

任何人都可以解释 SWRL 规则的目的。据我了解,SWRL 规则与 SQL 中的存储过程相同。我制定了一些规则,但不知道如何通过查询在我的应用程序中使用它们。我不知道我是否以正确的方式思考 SWRL 规则的用途。请告诉我使用它们的正确方法。

看看这个规则:

Patient(?x) ^ hasValue_heartrate(?x, >160) -> Sick(?x)

在我的本体中,我有 Patient 类,但没有 Sick 类,甚至没有 hasValue_heartrate 属性。那么我应该创建这些吗?或者我如何在我的本体中使用上述规则?

4

2 回答 2

11

规则是一种表达可以从数据集中推断出的附加内容的方式。一些推论可以从本体模型本身收集,但其他推论可能无法用本体语言(通常是 OWL)表达,需要更多功能表示。您应该注意,SWRL 从未完全成为标准,并且开始不鼓励使用它。在 answers.semanticweb.com 上查看问题最新的 SWRL 最佳支持

编辑:

您应该考虑改用 SPIN。引用这个线程

现在 SPIN 是 W3C 提交,它已经达到了与 SWRL 相同的标准状态。此外,SPIN 对 SWRL 具有关键优势:

  • 它使用 SPARQL - 每个 RDF 存储都支持的标准
  • 与 SWRL 不同,SPIN 是一种积极的努力。SWRL 已被 RIF 淘汰,而 SPIN 是 RIF 的补充

RIF是一项正在进行的 W3C 工作,一旦标准化就会弃用 SWRL。 SPIN 是 W3C 团队提交的一个名为TopSpin的推理引擎,存在于 Top Braid Composer中。

answers.semanticweb.com 社区可能会提供更多帮助。

于 2011-03-26T16:28:38.803 回答
3

SWRL 可以看作是 OWL 的扩展。从语义上讲,它很好地位于 OWL 之上,通常用于 OWL 无法表达的语句。从语法上讲,它并没有很好地叠加在 OWL 之上,因为它引入了一种全新的语法(注意例如显式变量)。但是,有些人更喜欢 SWRL 的语法而不是 OWL 的语法,甚至对可以在 OWL 中成功表达的语句也使用 SWRL(例如,您的示例公理也可以在 OWL 中表达)。

要了解 OWL 和 SWRL 之间的区别,请阅读例如

我肯定会鼓励你使用 SWRL。;)

(在引用它之前是否必须明确地“创建”或“声明”一个类可能取决于您的本体编辑器或推理工具。)

于 2011-03-29T09:24:56.907 回答