Semantic Web Rule Language

From Wikipedia, the free encyclopedia

SWRL (Semantic Web Rule Language) is a proposal for a Semantic Web rules-language, combining sublanguages of the OWL Web Ontology Language (OWL DL and Lite) with those of the Rule Markup Language (Unary/Binary Datalog).

The specification was submitted in May 2004 to the W3C by the National Research Council of Canada, Network Inference (since acquired by webMethods), and Stanford University in association with the Joint US/EU ad hoc Agent Markup Language Committee.

Compared with DLP (Description Logic Programs), another relatively recent proposal in the Semantic Web community for integrating rules and OWL, SWRL takes a diametrically opposed integration approach. DLP is the intersection of Horn logic and OWL, whereas SWRL is (roughly) the union of them. In DLP, the resultant language is a very peculiar looking description logic and rather inexpressive language overall. It’s hard to see the restrictions are either natural or satisfying. Contrariwise, SWRL retains the full power of OWL DL, but at the price of decidability and practical implementations.[1]

Rules are of the form of an implication between an antecedent (body) and consequent (head). The intended meaning can be read as: whenever the conditions specified in the antecedent hold, then the conditions specified in the consequent must also hold.

[edit] Example

Human Readable Syntax

hasParent(?x1,?x2) ∧ hasBrother(?x2,?x3) ⇒ hasUncle(?x1,?x3)

XML Concrete Syntax

The XML Concrete Syntax is a combination of the OWL Web Ontology Language XML Presentation Syntax with the RuleML XML syntax.

<ruleml:imp> 
 <ruleml:_rlab ruleml:href="#example1"/>
 <ruleml:_body> 
   <swrlx:individualPropertyAtom  swrlx:property="hasParent"> 
     <ruleml:var>x1</ruleml:var>
     <ruleml:var>x2</ruleml:var>
   </swrlx:individualPropertyAtom> 
   <swrlx:individualPropertyAtom  swrlx:property="hasBrother"> 
     <ruleml:var>x2</ruleml:var>
     <ruleml:var>x3</ruleml:var>
   </swrlx:individualPropertyAtom> 
 </ruleml:_body> 
 <ruleml:_head> 
   <swrlx:individualPropertyAtom  swrlx:property="hasUncle"> 
     <ruleml:var>x1</ruleml:var>
     <ruleml:var>x3</ruleml:var>
   </swrlx:individualPropertyAtom> 
 </ruleml:_head> 
</ruleml:imp> 

RDF Concrete Syntax

It is straightforward to provide such an RDF concrete syntax for rules, but the presence of variables in rules goes beyond the RDF Semantics[2]. Translation from the XML Concrete Syntax to RDF/XML could be easily accomplished by extending the XSLT transformation for the OWL XML Presentation syntax.

[edit] Implementations

Caveat: Reasoners rarely support the full specification because the reasoning becomes undecidable. There can be three types of approach: translate SWRL in First Order Logic (Hoolet) and demonstrate reasoning tasks with a theorem prover; translate OWL-DL in rules and give him to a forward chaining engine (Bossam) note that this approach can't cover the full expressivity of OWL-DL due to many incompatibility between Description Logics and Horn Rule formalisms; Expanding existing OWL-DL reasoner based on tableaux algorithm (Pellet).


  • SWRLTab is an extension to Protege that supports editing and execution of SWRL rules. [1]
  • R2ML (REWERSE Rule Markup Language) supports SWRL. [2]
  • Bossam, a forward chaining rule engine supports SWRL. [3]
  • Hoolet, an implementation of an OWL-DL reasoner that uses a first order prover supports SWRL. [4]
  • Pellet, an open-source Java OWL DL reasoner has SWRL-support. [5]
  • KAON2 is an infrastructure for managing OWL-DL, SWRL, and F-Logic ontologies. [6]
  • RacerPro, supports processing of rules in a SWRL-based syntax by translating them into nRQL rules [7]
Bossam Hoolet Pellet
SWRL/OWLX Parser Yes  ?  ?
SWRL/RDF Parser Yes  ?  ?
Math Built-Ins Partial  ? No
String Built-Ins Partial  ? No
Comparison Built-Ins  ?  ? Yes
Boolean Built-Ins  ?  ? No
Date, Time and Duration Built-Ins  ?  ? No
URI Built-Ins  ?  ? No
Lists Built-Ins  ?  ? No
Licencing Free/closed-source Free/open-source Free/open-source

[edit] See also


[edit] References

  1. ^ Bijan Parsia; et al. (2005). "Cautiously Approaching SWRL" (PDF). Retrieved on 2006-07-29.
  2. ^ Mei, Jing; Harold Boley (2006). "Interpreting SWRL Rules in RDF Graphs". Electronic Notes in Theoretical Computer Science (151): 53–69. Elsevier. 

[edit] External links

Languages