The Semantic Web Rule Language (SWRL) is a proposed language for the Semantic Web that can be used to express rules as well as logic, combining OWL DL or OWL Lite with a subset of the Rule Markup Language (itself a subset of Datalog).[1]
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. The specification was based on an earlier proposal for an OWL rules language.[2][3]
SWRL has the full power of OWL DL, but at the price of decidability and practical implementations.[4] However, decidability can be regained by restricting the form of admissible rules, typically by imposing a suitable safety condition.[5]
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.
hasParent(?x1,?x2) ∧ hasBrother(?x2,?x3) ⇒ hasUncle(?x1,?x3)
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>
It is straightforward to provide such an RDF concrete syntax for rules, but the presence of variables in rules goes beyond the RDF Semantics.[6] Translation from the XML Concrete Syntax to RDF/XML could be easily accomplished by extending the XSLT transformation for the OWL XML Presentation syntax.
Caveat: Reasoners do not support the full specification because the reasoning becomes undecidable. There can be three types of approach:
Bossam | Hoolet | Pellet | |
---|---|---|---|
SWRL/OWLX Parser | Yes | ? | ? |
SWRL/RDF Parser | Yes | ? | Yes |
Math Built-Ins | Partial | ? | Yes |
String Built-Ins | Partial | ? | Yes |
Comparison Built-Ins | ? | ? | Yes |
Boolean Built-Ins | ? | ? | Yes |
Date, Time and Duration Built-Ins | ? | ? | No |
URI Built-Ins | ? | ? | Yes |
Lists Built-Ins | ? | ? | No |
Licensing | Free/closed-source | Free/open-source | Free/open-source |
Description Logic Programs (DLPs) are another proposal for integrating rules and OWL.[7] Compared with Description Logic Programs, SWRL takes a diametrically opposed integration approach. DLP is the intersection of Horn logic and OWL, whereas SWRL is (roughly) the union of them.[4] In DLP, the resultant language is a very peculiar looking description logic and rather inexpressive language overall.[4]
Original source: https://en.wikipedia.org/wiki/Semantic Web Rule Language.
Read more |