Uses of Rules
Rules describe the general association of causes with effects ('laws'), situations with actions ('triggers'), premises with conclusions ('implications'), and so are used to represent: physical, chemical, and biological processes; medical guidelines; business and legal policies; conditional equations, preferences, and probabilities; statistical correlations; grammars; logics; database views; as well as declarative (functional, logic, and functional-logic) programs. While the if-then associations of imperative programs are hard-coded into a control flow, those of rule systems are 'soft-coded' into a rulebase (e.g., a set of rules) such that a rule engine can choose an appropriate rule for invocation in each computational cycle. Through transformation chains of iterated rule choices and invocations, arbitrary computations can be performed. Rules thus constitute the smallest units of computation, which can be aggregated into rulebase modules of rules and other rulebases.
Very special (constantly-true-premise, i.e. premiseless) "if true then conclusion" implications are facts in the form of the conclusion constituting a data record, including for relational and object-centered data (PSOA RuleML) as well as for cases/examples in CBR and machine learning. Other special (single-premise, unary-predicate) implications in rulebases are equivalent to taxonomic subsumptions in ontologies (DistriSemWeb), more general rules can be used to extend ontologies, and rules provide query-transformation and semantics-implementation techniques for ontologies. Many uses of (ontologies and) rules are also combined in Rule-Based Data Access.
Besides transforming queries, i.e. predicate/relation applications, rules can transform, e.g., function applications to returned values (via term rewriting), situation/action pairs to result situations, state/input pairs to successor-state/output pairs, as well as events to correlated events. Rules can be invoked in the forward (bottom-up) direction, e.g. to associate given facts with a derived fact, or in the backward (top-down) direction, e.g. to associate a query with subqueries sufficient for answering it.
Compatible rule notions with incompatible rule notations had emerged. RuleML has been established as a system of families of languages for Web rules allowing all of these to be precisely and uniformly defined. Since rules are both descriptive and operational, a rule specification can be directly executed and debugged as a program. Since rule implications are formulas of a logic, a rule specification can be directly proved correct. Employing the Web-based RuleML, specifications can interoperate across heterogeneous applications, e.g. on intranets and the Internet. The system of RuleML's Web rules is defined, in part, through schema languages (normatively, in Relax NG) for Web documents and data originally developed for XML and later transferred to other formats such as JSON.
Rules are thus being used for many interconnected purposes, capturing regularities in overlapping application domains such as the following:
- Software Engineering: Schema discovery over big data can infer explicit rules for use in data processing, as described by Jordi Cabot in his RuleML+RR 2017 keynote The Secret Life of Rules in Software Engineering
- Mechanical, Chemical, Electrical, ... Engineering: Planning, configuration, and diagnosis rules (also model-based approaches appreciate and combine with rules, as described by Adnan Darwiche in the classical article Model-based diagnosis under real-world constraints)
- Health: Diagnosis rules, clinical guidelines, self-help profiles, etc. (including MYCIN, SemanticCT, and PatientSupporter)
- Finance: Compliance rules, trading rules, investment/loan policies, etc. (OMG and EDM are developing the Financial Industry Business Ontology (FIBO), for which data, structural, and operative rules are needed)
- Commerce: Business rules (starting from XML versions such as the Business Rules Markup Language (BRML) of IBM's project on Business Rules for Electronic Commerce, and continued in many projects including the Rulemotion SBVR editor)
- Decisioning: From decision tables to trees to rules (leading up to Silicon Valley Decision Management success stories)
- Legislation: Legal reasoning (initiated by Robert Kowalski with Marek Sergot, Fariba Sadri et al. at Imperial College for a logical formalization of the British Nationality Act, and continued with Anthony Burton at WHO/UNICEF for estimating global, country-by-country, infant-immunization coverage (WUENIC), as well as in LegalRuleML and related efforts)
- Security: Access authentication (Tim Berners-Lee proposed registration engines that use authentication rules such as the following: Any person who was some time in the last 2 months an employee of an organization which was some time in the last 2 months a W3C member may register.)
- (Serious) Games: On the 'playing field' of (serious) games, rules are often employed both for defining legal moves and for (heuristic) planning of sequences of high-utility moves
- Cognitive Architectures: Some cognitive architectures such as the well-known Soar are based on production rules
Rather than reinventing rule principles and incompatible serializations in each such community, the idea of RuleML is to 'package' the rule aspect of these domains and make it available as an (XML) namespace, .../RuleML, which can be mixed with a namespace for natural-language (XHTML) texts and possible domain-specific namespaces (much like MathML is mixed into such domain texts).
Rule-based systems serialized in RuleML are summarized in Introducing RuleML.