A generic element is a main element whose syntax and/or semantics is underspecified unless an attached attribute or header element provides a predefined value or an IRI pointer to a user-defined specification
For example, represents the application of a generic operator, which may be used for modal operators or logical connectives such as exclusive disjunction. Generic elements provide extension points for user-defined syntactic and semantic variation. The following table provides a listing of Generic Node elements and the attributes or header elements that may be used to specialize them.
@strength @style @hasStrength
Two equivalent normative serializations are defined in the Relax NG and XSD schemas – a normalized serialization and a compact serialization.
In many cases, edge elements are redundant because they could be reconstructed based on the type or position of the parent and child node elements. In the RuleML syntax, such edges are skippable. LegalRuleML syntax allows the two extreme cases - either no edge tags are skipped in the document (the normalized serialization) or the tags of all skippable edges in the document are omitted (the compact serialization). The normalized serialization may be reconstructed from a document in compact serialization by applying the normalizer XSLT transformation (xslt/lrml-xml/normalizer/lrml_normalizer.xslt), which reconstructs the skipped edge tags.
The compact serialization of LegalRuleML reduces verbosity without loss of information.
The compact serialization may be derived from the normalized serialization by removing the start and end tags of skippable edge elements.
The compact serialization may be obtained from a document in normalized serialization by applying the compactifier XSLT transformation (xslt/lrml-xml/compactifier/lrml_compactifier.xslt).
Note that RuleML has a relaxed serialization that allows edges to be optionally skipped and also allows a (mostly) arbitrary ordering of child elements. RuleML in the relaxed serialization is not allowed to be embedded within LegalRuleML – the embedded RuleML must be in either normalized or compact serialization, consistent with the serialization of the parent LegalRuleML.
In order to provide a simple path for checking the conformance, a basic dialect of the compact serialization was introduced. The basic dialect is a proper sublanguage of the compact serialization that does not allow
* the use of the CURIE abbreviation for IRIs
* the edge.
With these restrictions, it is possible to confirm conformance as a Basic Dialect XML file through only XSD validation.
Inside of LegalRuleML, we employ four well-known design patterns:
container, which is a structure of elements having independent existence (e.g., can include several sub-elements);
collection, a subpattern of container that is in the form of a list of elements of the same type (e.g., that is a sequence of elements);
recursive element (e.g., can have descendants that are other elements);
marker, an element that uses attribute @sameAs for identifying a source, e.g., .
E.9.1Collection Design Pattern
LegalRuleML uses a collection design pattern for efficiently organizing, representing and referring to metadata, e.g. metamodel class lrmlmm:AuthorityCollection and corresponding Node . The lrmlmm:Collection class in the LegalRuleML metamodel is the superclass for the collection syntactic constructs, which is in turn a subclass of rdf:List. The lrmlmm:hasMember property is the superproperty for the properties of collections indicated by edges such as . The name of the collection element indicates the type of its members. Properties may be assigned to all members using an attribute on or header child element within the Collection element. For example, the member type for a particular collection may be specialized using the attribute @memberType or a child element . Metadata collections must occur in a prescribed order in a LegalRuleML document (see 5.16).
Like other Node elements, collections may be labeled with an @key attribute, which is referenced with @keyref for distributed definition of collections. The semantics of LegalRuleML collections is that of sets, i.e. unordered and without duplication.
E.9.2Recursive Element Pattern
The RuleML syntax uses recursive elements, i.e. elements that may have descendants of the same name, to represent the inherently recursive nature of logical connectives and functional expressions. LegalRuleML introduces some specialized logical connectives which are similarly recursive, as follows:
In order to reduce redundancy through modularization, some of the collections elements are recursive, as follows:
Similarly, the element that is used to efficiently construct contextual relationships is recursive to facilitate modularization:
The marker interface pattern is used in programming to annotate entities. In LegalRuleML, external entities are in many cases required to be aliased with a local identifier, which may then be referenced as the subject or object of annotations. The syntax that implements the marker interface pattern in LegalRuleML consists of the following attributes: