Rule markup languages will be the vehicle for using rules on the Web and in other distributed systems. They allow publishing, deploying, executing and communicating rules in a network. They may also play the role of a lingua franca for exchanging rules between different systems and tools. In a narrow sense, a rule markup language is a concrete (XML-based) rule syntax for the Web. In a broader sense, it should have an abstract syntax as a common basis for defining various concrete languages addressing different consumers. The main purposes of a rule markup language are to permit the publication, interchange and reuse of rules. This chapter introduces important requirements and design issues for general Web rule languages to fulfill these tasks. Characteristics of several important general standardization or standards-proposing efforts for (XML-based) rule markup languages including W3C RIF, RuleML, R2ML, SWRL as well as (human-readable) Semantic Web rule languages such as TRIPLE, N3, Jena, and Prova are discussed with respect to these identified issues.
Web Rule Languages
Rule markup (serialization) languages have been developed for the Web-based interchange of, e.g., privacy policies, business rules, and - as focused here - Semantic Web rules. Rules are central to knowledge representation for the Semantic Web (Boley, 2007), hence are increasingly considered as being side by side with ontologies, e.g. in W3C's layered Semantic Web architecture (2007 version shown in Figure 1).
Semantic Web Layer Cake [adapted from (W3C, 2007)]
Rule interchange in an open format is important for all higher Semantic Web layers, including a Web of Trust and, generally, a Pragmatic Web (Paschke et al, 2007), and is crucial for applications in eBusiness, eGovernment, eHealth, etc. This section introduces major rule markup languages including RuleML, R2ML, and RIF, as well as human-readable Semantic Web rule languages such as TRIPLE and N3, and platform-specific rule engine languages such as Jena and Prova.
Key Terms in this Chapter
Derivation Rules: Infer conclusions from conditions (as in Datalog and Horn logic), where facts are a special case with constantly true conditions.
Deontic Rules: Describe rights and obligations, e.g., of institutions and agents in the context of evolving states (situations triggered by events/actions) and state transitions, where integrity rules (see above) are a special case (‘introspectively’) affecting the rule set itself.
Integrity Rules (or integrity constraints): Assertions which express conditions (or queries) that must always be satisfied.
Reaction Rules are (Behavioral / Action) Rules: (Re)act on occurred events (external events or changed conditions) by executing actions, where production rules are a special case with events restricted to changed conditions.
Procedural Attachment: A function or predicate whose implementation is given by an external procedure.
Semantic Web Rule Language: A rule language specifically tailored for the semantic web with a human-friendly syntax, e.g., a scripting syntax (as opposed to a Rule Markup Language for the Semantic Web).
Transformation Rules: Specify term rewriting, which can be considered as derivation rules of logics with (oriented) equality.
Facts: Various kinds of information such as asserted atoms (formulas), individual-class memberships (of ontology classes), (object-oriented) instances, stored data (e.g., relational, XML), states and event occurrences which might be qualified, e.g., by priorities, temporally, etc.
Rule Interchange Format: A common interchange format, such as e.g. W3C RIF or RuleML, for different rule types and rule families.
Rule Markup Language: A concrete markup-based rule syntax using e.g. XML for the Web.
Built-in Predicates or Functions: Special restricted predicate or function symbols in the rule language for concrete domains, e.g., built-ins for strings, numerics, Boolean values, date, time, intervals, lists, etc.