开发者

What is the purpose of SWRL rules?

Can anybody explain the purpose of SWRL rules. As far as I have understood, SWRL rules are same as stored procedures in SQL. I have made a few rules, but don't know how to utilize them in my application through query. I don't know whether I am thinking in the right way the SWRL rules are meant for, or not. Please show me the correct way of using them.

Look at this rule:

Patient(?x) ^ hasValue_heartra开发者_StackOverflow中文版te(?x, >160) -> Sick(?x)

In my ontology I have Patient class, but no Sick class & not even hasValue_heartrate property. So should I have to create these? Or how can I use above rule in my ontology?


Rules are a way of expressing additional things that can be inferred from your dataset. Some inferences can be gleaned from the ontology model itself, but others may not be expressible in the ontology language (usually OWL) and require a more functional representation. You should note that SWRL never quite became a standard and its usage is beginning to be discouraged. See the question latest best support for SWRL at answers.semanticweb.com

Edit:

You should consider instead using SPIN. To quote this thread:

now that SPIN is a W3C submission, it has reached the same standard status as SWRL. Furthermore, SPIN has key advantages to SWRL:

  • It uses SPARQL - a standard supported by every RDF store
  • Unlike SWRL, SPIN is an active effort. SWRL has been made obsolete by RIF while SPIN is complementary to RIF

RIF is an in-progress W3C effort, which once standardized would deprecate SWRL. SPIN is a W3C Team Submission, an inference engine called TopSpin exists within Top Braid Composer.

The answers.semanticweb.com community may be of more help.


SWRL can be seen as an extension to OWL. Semantically it layers nicely on top of OWL and is normally used for statements that OWL cannot express. Syntactically it does not layer that nicely on top of OWL because it introduces a completely new syntax (note e.g. the explicit variables). However, some people prefer SWRL's syntax to OWL's and use SWRL even for statements that could be successfully expressed in OWL (e.g. your example axiom is expressible in OWL as well).

To understand the differenced between OWL and SWRL read e.g.

  • http://weblog.clarkparsia.com/2007/08/12/understanding-swrl-part-1/
  • http://weblog.clarkparsia.com/2007/08/27/understanding-swrl-part-2-dl-safety/
  • http://weblog.clarkparsia.com/2007/09/13/understanding-swrl-part-3-some-tricky-bits/

I would definitely encourage you to use SWRL. ;)

(Whether or not you have to explicitly "create" or "declare" a class before referring to it probably depends on your ontology editor or reasoning tools.)

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜