7.6 Rule Interchange Format


Currently there is no standard rule language for the Semantic Web. To date, a wide variety of rule languages and engines, such as F-Logic, Prolog, and Jess, has already been used with the Semantic Web in one way or another. It is highly unlikely that there will ever be a single rule language for the Semantic Web. Reasons are:
First, it is very difficult to support all the needs of the entire community.
Second, working implementations, such as Jess, are satisfactory in many cases and shouldn’t be excluded or ignored by the community for lack of following a specific standard.
Third, research and development in the areas of rules and rule-based systems is far from complete.
The W3C initiated the RIF Working Group in 2005. Its goals are both ambitious and difficult:
To enable and promote rule interoperability across existing systems.
To support interoperability and extensibility for future systems.
To create and support normative serializations based on XML.
The term dialect refers to an XML-based rule language with well-defined semantics.
The first two dialects, BLD and PRD, are the main dialects being currently defined by the Working Group.

7.6 Rule Interchange Format


BLD concentrates on logic programming models, mainly those defined around Horn rules (much like we’ve seen with SWRL), and can be seen in architectures such as deductive databases. BLD is the basis for interoperability with RDF and OWL.
PRD, on the other hand, is focused on the condition-response frameworks. Given a condition that is found to be true, the rule should elicit a response. The PRD allows for actionable responses: updating a KB, emailing an administrator, or creating a log file, for example.
FLD serves as the foundational framework for logical RIF dialects; its main audience is dialect creators versus the typical developer user.
DTB details the datatype primitives and built-in functions and predicates supported by RIF. DTB covers the usual XML Schema datatypes and is heavily based on XPath and XQuery functions: type conversions, mathematical operations and comparisons, and string transformations.