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


Overview of RIF production rule dialect

To be updated following restructuring of the draft

The RIF production rule dialect (RIF-PRD) follows the above general model for production rules and rulesets closely. As a consequence, RIF-PRD specifies two sublanguages:

RIF-PRD extends these sublanguages to specify the interchange format for production rules and rulesets.

RIF-PRD as an interchange format for production rules

RIF-PRD as a Web language

To make RIF dialects suitable as Web languages, RIF supports XML Schema primitive data types and some other data types. In addition, RIF promotes the use of Internationalized Resource Identifiers (or IRIs) RFC 3987 to refer to individuals, predicates, and functions.

Compatibility with other RIF dialects

To ensure compatibility with RIF Core dialect ([ RIF-Core]) and its extensions, the RIF production rule language (RIF-PRD) does not draw a sharp boundary between the symbols used to denote individuals from symbols used as names for functions or predicates. Instead, all constant, predicate, and function symbols are drawn from the same universal set. The framework for logic-based RIF dialects RIF-FLD explains how RIF logic dialects control the contexts in which the different symbols can occur by attaching signatures to these symbols.

In RIF-PRD, individuals, constants, functions and predicates behave as if they were drawn from different sets and signatures are not part of the RIF-PRD language.


In this document we will introduce two related but distinct representations for RIF-PRD components:

Overview of this document


BNF pseudo-schema

The XML syntax is specified for each component as a pseudo-schemas, before the description of the component. The pseudo-schemas use BNF-style conventions for attributes and elements: "?" denotes optionality (i.e. zero or one occurrences), "*" denotes zero or more occurrences, "+" one or more occurrences, "[" and "]" are used to form groups, and "|" represents choice. Attributes are conventionally assigned a value which corresponds to their type, as defined in the normative schema. Elements are conventionally assigned a value which is the name of the syntactic class of their content, as defined in the normative schema.

<!-- sample pseudo-schema -->
          optional_attribute_of_type_int="xs:int"? >
      <required_element />
      <optional_element />?
      <one_or_more_of_these_elements />+
      [ <choice_1 /> | <choice_2 /> ]*



Throughout this document, the xsd: prefix stands for the XML Schema namespace URI, the rdf: prefix stands for, and rif: stands for the URI of the RIF namespace, Syntax such as xsd:string should be understood as a compact uri -- a macro that expands to a concatenation of the character sequence denoted by the prefix xsd and the string string. In the next version of this document we intend to introduce a syntax for defining prefixes for compact URIs.