Abstract Syntax of ERDF Rules

The Abstract Syntax of ERDF rules

Rule ::= 'Rule(' ['rdf:ID(' Uri ')'] [Conditions] Conclusion ')'
Conditions ::= 'erdf:conditions(' Description {Description}')'
Conclusion ::= 'erdf:conclusion(' Description ')' 

Examples

consider the following rule expressed in Jena Rules textual syntax (see our Userv Use Case for more examples of Jena Rules)

[AE_PTC01:	(?car rdf:type userv:Car)
(?car userv:convertible 'true'^^xs:boolean)
 ->
(?car userv:potentialTheftRating 'high')]

In abstract syntax of ERDF this looks like:

Rule (
 rdf:ID(http://www.erdf.org/examples/AE_PTC01)
 erdf:conditions(
  erdf:Description(
   erdf:variable(?x) 
   erdf:Property(http://www.w3.org/1999/02/22-rdf-syntax-ns#type)
   http://www.businessrulesforum.com/2005/userv#Car
  )
  erdf:Description(
   erdf:variable(?car) 
   erdf:Property(http://www.businessrulesforum.com/2005/userv#convertible)
   "true"^^xs:boolean
  )
 )
 erdf:conclusion(
  erdf:Description(
   erdf:variable(?car) 
   erdf:Property(http://www.businessrulesforum.com/2005/userv#potentialTheftRating)
   "high"^^xs:string
  )
 )
)