These possible requirements were enumerated during a brainstorming sessions at F2F2. They were projected on a screen while they were entered, so there was some consensus that they were written down accurately, but there was no consensus that any of these possible requirements should actually be accepted at this time. Many of them clearly need to be better understood and debated.
Some Proposed Requirements
- At Least Two Implemented Rule Systems Can Interchange One Simple Rule
- Any Ruleset in any Rule System (in the Source Set) to RIF
- Interchange Between Production Rule Systems
- Precision: It must be clear the extent to which the semantics of a rule has been maintained by the translation to RIF
- Formal Semantics: It must be clear what ground facts are entailed by any RIF ruleset
- Real-Time exchange of business rules in business process management (maybe Design Goal) * Self-Consistency: syntactic and semantic validity
- Support for deductive, reactive, and normative (integrity constraints) rules
- Support for metadata that could facilitate interchange
- Identifying which member of the family of possible dialects is used in this Ruleset
- Support for XML data -- typed by XML schema -- as imput to rule (XML Document, XML Nodeset [as in xquery]). XML Document represents eg a business object model.
- If language is in target set of RIF and has a std way of executing rules, facts about that should be expressible in the RIF. Codification of Procedural Semantics
- Rules within a ruleset should have the same operational semantics (refining above)
- Encode preference: Rete vs Sequential executions, ordering
- No (mandatory) unique names assumption (two names can refer to the same thing; no implied dis-equality between different names)
- Open World Assumption
- Closed World Assumption
- Two rulesets in target languages of the RIF, you can translate them into RIF together/merged.
- Interchange of provenance of rulesets
- Ability to work with multiple rulesets with distinct owners ("multiple theories", "scopes") -- eg constrain my inference on a particular query to a particular set of rulesets
- identifiable set of facts
- antecedent of rules is relative to that set of facts
- relationships between sets of facts (everything in this one is in that one)
- Ability of a rule to refer to other rulesets
- Soundness; (but maybe this isnt a property of RIF, so much as on RIF-related systems)
- Soundness Preserving (huh?)
- RIF Faithfully Captures semantics of target languages
- Allow Existentials in the head of Rules
- Normatively adopt a standard for fact interchange (eg RDF/XML)
- Support for Priorities and Preferences (cf. Courteous Logic)
- Support both: Don't Know (Horn Logic) and Don't Care (Producion Rules) non-determinism
- Graceful Degredation (requirement on translator) -- use the core as much as possible?
- Each feature-package labeled about which other feature-packages it is compatible with (or maybe the users/programmers need to know this, not the machines)
Graceful failure -- if RIF->RL1, some feature can't be done correctly, then there should be some proscribed behavior
[ Note -- some requirements on RIF and some on RIF Processors ]
- It must be possible to write invertable translators -- round-trip preserving -- for any rule language (turing?)
- Support user defined functions (procedural attachments) [ Harold to clarify with Paul and Gary ]
- Builtins for arithmetic
- Business Meaning (Semantics) is preserved in Interchange (repeat of above)
- Human Readability (including comments) is preserved in Interchange
- OWL can be carried in RIF
- Preserve that there was a procedural attachment in a rule -- preserve some metadata (state changing, parameters)
- Two Alethic and Two Deontic Operators
- RIF must be extensible
- It must be possible to distinguish between real-world objects and IT data which represents them