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

The RIF Rulesystems Arrangement Framework (RIFRAF) is a classification framework for rulesystems to be included in the interchange scope of RIF. The purpose of the framework is to provide enough discriminants to classify a wide variety of rule language features into a common core and a small number of dialects. To keep the number of dialects small, it is likely that some of the discriminants will identify language features that are not supported in any dialect, and conversely that some rule languages will not support all features in any dialect. Another purpose of RIFRAF is to provide a common vocabulary to describe the language features in these dialects, and a mapping between similar concepts in the dialects.

For the curious or non-native speakers, see: (note in particular the etymology).

For WG members, there is a Questionnaire for populating the RIFRAF with actual systems. The results will be collected and published here.

Moved elsewhere: RuleLanguageDialects, OriginalRIFRAFDiscriminators, List of Rule Systems

Expressive Discriminators

Expressive Discriminators (or Dimensions) are collected here into five groups:

Purely-Syntactic, Syntactic-entailing-Semantic, Semantic, Pragmatic Discriminators, and Discriminators for Event-Condition-Action (ECA) Rules.

Values of Semantic and Pragmatic Discriminators, stated by Rulebase authors or found by Static Analysis, can of course still be marked up syntactically, e.g. via Semantic/Pragmatic (XML) Attributes on Rulebases, Rules, ..., via (RDF) metadata annotations, etc. In each group, Discriminators, and possibly subgroups of Discriminators, are listed (cf. rdf:subPropertyOf). The numberings of the Discriminators do not reflect priority orderings but are there for ease of reference such as "Syn 1.2" for the Range-restrictedness Discriminator (however, new subgroups may emerge from subsequences of neighbouring Discriminators).

1 Syn: Syntactic Discriminators

2 SeS: Syntactic-entailing-Semantic Discriminators

3 Sem: Semantic Discriminators

4 Prag: Pragmatic Discriminators

5 ECA: Discriminators for Event-Condition-Action (ECA) Rules

6. Types in rule languages

The relationship between a language and its type system is one of the most crucial aspects of engineering the language; this is as true for rule languages as any other formal language intended to be processed automatically. The purpose of this series of questions is to try to ascertain what kind of support there is for types in the rule language. The range of possible type systems is huge, so it is a little difficult to ensure that one questionnaire covers all the possibilities.

We are attempting to answer the following core questions about types: The range of possible types, for example whether types are simple or have structure (i.e., polymorphic types, object types, collection types), whether recursive types are permitted, whether type definitions and/or type renaming are permitted.

  1. What relationships between types, such as subtyping, are supported.
  2. What the relationship is between types and values in the language.
  3. What form of type processing is supported/required by the language: whether types are processed statically (before runtime) or dynamically (at runtime), or both, whether types are inferred or verified only, and so on.

In the following questions, we will use the abbreviation RL to denote the rule language, type-free if appropriate; and TL will refer to the type language. (It is quite possible for TL=RL, in some systems. In general they are distinct.)

Further discriminators/refinements to be added

Possible Rule System taxonomy

(this section is probably not up to date with changes made to RIFRAF in June, 2006)

For most Discriminators there exists a lot of literature, under various names. For example, Discriminator SeS 1 on "Homogeneous vs. Hybrid Rules" is discussed, under this name, in Combining Rules and Ontologies. A survey. That paper provides various Subdiscriminators useful for OWL Compatibility. The Hybrid approach is further described in A Realistic Architecture for the Semantic Web.

The RIF-crucial Interoperability Discriminators are regarded here as Pragmatic Discriminators, and grouped under Prag 3.

Given the Discriminators, "Expressive Sublanguages" can be described. For example, using only a subset of the Discriminators, four varieties of "deductive rules" could be given a taxonomy like the following:

The actual taxonomy could be developed by alternating between such a top-down classification and a BottomUpClassification.

Related Reading