Architecture

From RuleML Wiki
Jump to: navigation, search

The overall architecture of RuleML comprises a metamodel, semantic principles (e.g., the use of semantic styles) and serialization principles (e.g., the use of 'striped' XML), a lattice of language features for modular language customization (in MYNG), a system of families of languages defined semantically (e.g., via model theory) and schema-syntactically (via schema languages such as XSD and RNC), and formatters (normalizers and compactifiers) defined as (XML-serialization) transformers (e.g., via XSLT).

Starting from Initial Steps and an early Design, the RuleML system of Web rules was refined via XSD modularization, and then led to the RuleML 1.0 architecture (Overarching) and to the RuleML 1.02 system of families (Specification of RuleML 1.02). To allow highly modular customization of RuleML in Relax NG, MYNG was developed, enriching the backbone of named Deliberation RuleML languages with many more feature-defined languages. A RuleML Metamodel was also designed (in parallel to the LegalRuleML Metamodel).

The Object-Oriented (OO) aspect of RuleML integrates relations with slots, Object IDentifiers (OIDs), and types. Three well-known languages of the Deliberation RuleML family are, in the order of increasing expressivity, Datalog RuleML, Hornlog RuleML, and FOL RuleML. In the following some of these are being described.

1 Object-Oriented RuleML

Object-Oriented RuleML (OO RuleML) supports frame-like knowledge representation with facts (instances) and rules (methods). OO RuleML's slots, object identifiers, and types have become part of RuleML generally. Further development has led to Positional-Slotted Object-Applicative RuleML (PSOA RuleML).

2 FOL RuleML

The FOL RuleML language has been developed in interaction between the RuleML Steering Committee and the Joint Committee, with input from Simplified Common Logic (SCL). FOL RuleML shares/reuses most of the earlier RuleML LP syntax, incorporating First-Order-Logic quantifiers and disjunctions as well as equivalence and negation. FOL RuleML strives for a strict separation of declarative content from procedural (Assert, Query) performatives, as pioneered by KQML. This and further changes to RuleML 0.87 also benefited other sublanguages towards RuleML 0.9, in particular the Horn logic subset. FOL RuleML is the rule component of SWRL FOL and a proposed FOL content language for SWSI. It can be viewed as a generalization of SWRL FOL in that it is an XML form of full FOL, with n-ary relations (predicate symbols) and constructors (logical function symbols). This work led to an FOL RuleML W3C Member Submission.

FOL RuleML has since been incorporated into the RuleML family of languages, particularly the Deliberation subfamily. FOL RuleML 0.9, using a monolithic DTD specification, has been modified in a series of modular XSD specifications leading to RuleML 1.0, whose FOL language folog is specified in both XSD and RNC.