This is an archive of an inactive wiki and cannot be modified.

RIF Design

by ChrisWelty

This note is intended to document some of the evolving design rationale for RIF. It supplements the discussion in the RIF Charter, as well as What is a Rule Interchange Format And Why Create One and Motivation for a Rule Interchange Format.

Why a RIF?

Since RIF is chartered in the W3C Semantic Web Activity, the first impression most people have is that our mission is to define a rule language for the semantic web. This is not the case, our focus is on interchange between rule systems. Why?

There are hundreds, if not thousands, of implemented rules systems in existence today. Some are used more than others. The tip of the iceberg can be found in the List of Rule Systems, which includes more than 20 rules system implementations represented by the RIF WG members alone. There are hundreds more. The world does not need another one.

What the world does need is effective interchange between rule systems. In RIF, we are taking the approach that rule systems can interoperate by exchanging their rules through a common interchange format that captures the meaning of the rules in each system.

Design Approaches

In general, there are two basic approaches to language interoperability, to define a translation for every pair of languages:

or on the other extreme to define one super interchange language from and to which every rule language can be translated:

The first case is where we are today, individual collaborations are responsible for defining translations. The overall cost to the market is high, and even the point to point cost of defining translations often prohibits it, and thus is a significant barrier to interoperation. The second case is a utopian ideal to strive for, but it is unrealistic. Rule systems and the languages they are based on differ in too many ways to account for them all. There are basic incompatibilities between e.g. first-order rule systems with an open world semantics and logic programming rule systems with a closed world semantics.

The general design of RIF is twofold. In Phase I, we are developing a "core" that is common among the vast majority of rule systems:

In Phase II, we will define a small (around five) number of priveledged (i.e. standard) dialects of RIF. Each rulesystem will be able to translate into (at least) one of these dialects, and RIF will specify the translations between every pair of dialects: