Glossary of Deliberation RuleML 1.0

From RuleML Wiki
Jump to: navigation, search

Notice of Obsolescence

This glossary has been superceded. See Glossary of Deliberation RuleML.

Authors: David Hirtle, Tshering Dema, Doan Dai Duong, Le Thi Thu Thuy, Omair Shafiq, Tara Athan, Harold Boley

Quick links:

Overarching : Overarching Specification of Web Rules

Prerequisites: None, Level: Semi-formal

Deliberation RuleML : Specification of Deliberation RuleML

Prerequisites: None, Level: Semi-formal

Primer : Introduction to the RuleML Language

Prerequisites: None, Level: Informative

Content Models : High-level Presentation of the RuleML Serialization Grammar

Prerequisites: EBNF or Relax NG, Level: Semi-formal

XSD Schemas : Machine-readable schemas in XSD

Prerequisites: XSD, Level: Formal

Relax NG Schemas : Machine-readable grammar in the Relax NG language

Prerequisites: Relax NG, Level: Formal

MYNG : Modular sYNtax confiGurator, a GUI for customizing Relax NG schemas

Prerequisites: None, Level: Formal

Normalizer : Stylesheet for transforming into the normal-form serialization

Prerequisites: XSLT, Level: Formal

Upgrader : Stylesheet for transforming from Version 0.91 into Version 1.0

Prerequisites: XSLT, Level: Formal

Examples : Illustrative Instances of the Version 1.0 Language

Prerequisites: Primer, Level: Informative

Glossary : Definitions of Elements and Attributes

Prerequisites: Primer, Level: Semi-formal

Schema Docs : Diagrammatic Presentation of the RuleML Normal-Form Serialization Grammar

Prerequisites: Primer, Level: Semi-formal

OO jDREW : Reference Implementation of RuleML Operational Semantics

Prerequisites: Naf Hornlog RuleML, Level: Formal

Implementations : Implemented RuleML tools

Prerequisites: None, Level: Informative

This version: ruleml.org/1.0/glossary

Latest version: ruleml.org/glossary

Version history:
Date Version
2005-11-09 -

Version 0.9 HTML

2006-08-24 -

Version 0.91 HTML

2012-05-26 -

Version 1.0 HTML

2012-05-26 -

Version 1.0 Wiki

2014-11-19 -

Version 1.01 Wiki

2015-MM-DD -

Version 1.02 Wiki-Dev


This glossary describes every tag of RuleML as of version 1.0.

1 <act>

A role used for the performatives ( <Assert>, <Query>, <Retract> ) contained in the top element (<RuleML>)
Attributes: @index
(See performative module)

2 <And>

A conjunctive expression, where <And>F</And> is equivalent to F for any formula F, and <And/> is always true.
Attributes: @closure
(See: connective module)

3 <arg>

A role used for the positional arguments of a logical atom (<Atom>), i.e. any of the following: <Ind>, <Data>, <Var>, <Skolem> or <Reify> (also <Expr> and <Plex> in non-Datalog sublanguages).
Attributes: @index (required)
(See: term module)

4 <Assert>

A performative wrapper specifying that its content (optionally surrounded by a <formula> role) is asserted, making an 'implicit <Rulebase>' assumption. This allows the separation of declarative content from such procedural performatives (as pioneered by KQML, which has a similar performative 'tell').
Attributes: @mapDirection, @mapClosure, @mapMaterial
(See: performative module and FOL RuleML)

5 <Atom>

A logical atom, i.e. an expression formed from a predicate (or relation) applied to a collection of operands. The relation (<Rel>) is followed by a sequence of zero or more positional arguments (<arg>). Optional user-defined slots (<slot>) are also permitted before and/or after the positional arguments. Rest variables -- <repo> (positional) and <resl> (slotted) -- are also permitted. For example, one way to formalize "John is the father of Mary":
<Atom> 
  <Rel>father</Rel>    
  <Ind>John</Ind>    
  <slot><Ind>daughter</Ind><Ind>Mary</Ind></slot>  
</Atom>
Attributes: @closure
(See: atom module and holog module)

6 @card

An attribute optionally specifying a <slot>'s cardinality.
(See: slot module)

7 @closure

An attribute indicating how the contained free variables are quantified. Allowed values are "universal" and "existential".
(See: connective module)

8 <Const>

A neutralized constant (for <Rel> and <Ind>) of a Hilog term (<Uniterm>). It is optionally surrounded by an operator (<op>).
Attributes: @type, @iri
(See: holog module and the SWSL submission to the W3C)

9 <Data>

A fixed character sequence (like XML PCDATA and RDF literals). It may be optionally associated with an XML Schema built-in datatype using the xsi:type attribute. For example:
<Data xsi:type="xs:dateTime">2002-10-10T17:00:00Z</Data>
is valid (according to the dateTime datatype), but the following is not:
<Data xsi:type="xs:dateTime">tomorrow</Data>
Note, however, that <Data>tomorrow</Data> is valid because no built-in datatype is given and that XML is also permissible, e.g.
<Data>        
  <ex:object>       
    <ex:id>115897</ex:id>       
    <ex:owner>John Doe</ex:owner>     
  </ex:object>   
</Data>
(See: term module)

10 <declare>

A role used for variables (<Var>) declared within a quantifier (<Forall> or <Exists>).
(See: quantifier module)

11 <degree>

An optional uncertainty value (between 0.0 and 1.0) that may be assigned to atomic formulas and equations.
(See: atom module) and Fuzzy RuleML

12 @direction

An attribute indicating the intended direction of an implication rule's (<Implies>) inferencing. It has a neutral default value of "bidirectional". Other allowed values are "forward" and "backward".
(See: connective module)

13 <Entails>

Used to <Assert>/<Query> that/whether the sequence of formulas in the first <Rulebase> entails the sequence of formulas in the second, e.g. the first acting as a knowledge base and the second acting as its integrity constraints. For example: ssn.ruleml
(See: connective module)

14 <Equal>

An equational formula consisting of two expressions, each of which may be optionally surrounded by a left (<left>) or a right (<right>) role. For example, "factorial(0)=1" may be equivalently represented in the following two ways:
<Equal>    
  <Expr>      
    <Fun per="value">fac</Fun>      
    <Data xsi:type="xs:int">0</Data>    
  </Expr>    
  <Data xsi:type="xs:int">1</Data>  
</Equal>
<Equal>    
  <left>      
    <Expr >        
      <Fun per="value">fac</Fun>        
      <Data xsi:type="xs:int">0</Data>      
    </Expr>    
  </left>    
  <right>      
    <Data xsi:type="xs:int">1</Data>    
  </right>      
</Equal>
Attributes: @oriented
(See: equality module)

15 <Equivalent>

An equivalence formula, which is "syntactic sugar" for a pair of conjoined converse implication rules (<Implies>). It consists of a pair of (optionally skipped) <torso> roles. For example, "A person owning an object is equivalent to an object belonging to a person":
<Equivalent>
  <torso>
    <Atom>
      <Rel>own</Rel>
      <Var>person</Var>
      <Var>object</Var>
    </Atom>
  </torso>
  <torso>
    <Atom>
      <Rel>belongs</Rel>
      <Var>object</Var>
      <Var>person</Var>
    </Atom>
  </torso>
</Equivalent>
Attributes: @closure
(See: connective module)

16 <Exists>

Explicit existential quantifier. It consists of one or more variables (<Var>), each optionally surrounded by a <declare> role, followed by a logical formula (optionally surrounded by a <formula> role).
Attributes
(See: quantifier module)

17 <Expr>

A logical function of the form "f(...)" where f is a function name. The function name (<Fun>) is followed by a sequence of zero or more arguments (<arg>). Optional user-defined slots (<slot>) are also permitted before and/or after the arguments, just like an atom (<Atom>). Rest variables (<repo> and <resl>) are also permitted. If the attribute @per has value "copy", the <Expr> corresponds to a complex term (<Cterm>) in 0.9 and earlier:
<Expr>
  <Fun per="copy">book</Fun>
  <Var>title</Var>
  <Var>author</Var>
  <Var>table of contents</Var>
  <Var>chapters</Var>
</Expr>

On the other hand, if the attribute @per has value "value", the <Expr> corresponds to a nano (<Nano>) in 0.9 and earlier.

Attributes: @per, @type
(See: expr module and Functional Ruleml)

18 <Forall>

Explicit universal quantifier. It consists of one or more variables (<Var>), each optionally surrounded by a <declare> role, followed by a logical formula (optionally surrounded by a <formula> role).
(See: quantifier module)

19 <formula>

The formula role of a conjunctive (<And>) or disjunctive (<Or>) formula, quantifier (<Forall> or <Exists>), rulebase <Rulebase>), or performative (<Assert>, <Query> or <Retract>).
(See: connective module, performative module and quantifier module)

20 <Fun>

A user-defined function name of an <Expr>. It is optionally surrounded by an operator (<op>).
Attributes: @iri, @per (and @val in equality sublanguages)
(See: expr module)

21 <Get>

A slot access primitive.
(See: frame module, and the SWSL submission to the W3C)

22 <if>

The "if" part of an implication rule (<Implies>) containing the premise(s), also known as the "antecedent" or "head" of the rule. Also used as the "antecedent" part of an entailment (<Entails>).
(See: connective module)

23 <Implies>

An implication rule. It consists of a conclusion role (<then>) followed by a premise role (<if>), or, equivalently (since roles constitute unordered elements), a premise role followed by a conclusion role. For example, "The discount for a customer buying a product is 5.0 percent if the customer is premium and the product is regular":
<Implies>
  <if>
    <And>
      <Atom>
        <Rel>premium</Rel>
        <Var>customer</Var>
      </Atom>
      <Atom>
        <Rel>regular</Rel>
        <Var>product</Var>
      </Atom>
    </And>
  </if>
  <then>
    <Atom>
      <Rel>discount</Rel>
      <Var>customer</Var>
      <Var>product</Var>
      <Ind>5.0 percent</Ind>
    </Atom>
  </then>
</Implies>
Alternatively, the roles may be skipped, in which case the premise comes first followed by the conclusion as suggested by the element name 'Implies' (since the if of a rule implies the 'then', not vice versa). Using the same example, the order changes:
<Implies>
  <And>
    <Atom>
      <Rel>premium</Rel>
      <Var>customer</Var>
    </Atom>
    <Atom>
      <Rel>regular</Rel>
      <Var>product</Var>
    </Atom>
  </And>
  <Atom>
    <Rel>discount</Rel>
    <Var>customer</Var>
    <Var>product</Var>
    <Ind>5.0 percent</Ind>
  </Atom>
</Implies>
Attributes: @closure, @direction, @material
(See: connective module)

24 <Ind>

An individual constant, as in predicate logic (which can have an IRI like an RDF resource).
Attributes: @type, @iri
(See: term module)

25 @index

A required role for specifying the position of a positional argument (see <arg>) within a logical atom (<Atom>). Also used to specify the position of a performative (see <act>) within the top element (<RuleML>).
(See: term module)

26 <InstanceOf>

A class membership molecule.
(See: frame module, and the SWSL submission to the W3C)

27 @iri

An optional attribute of <Ind>, <Rel>, and <Fun> for referring to an IRI like for XHTML anchors. On <Ind>s (or <Const>s, in frame sublanguages) within an <oid>, this attribute can also act as a web label.
(See: iri module)

28 <left>

The left-hand side of an equation (<Equal>).
(See: equality module)

29 @mapClosure

An attribute indicating how the free variables falling within its scope (i.e. child elements) are quantified. See attribute mapping for more details. Allowed values are "universal" and "existential".
(See: connective module)

30 @mapDirection

An attribute indicating the intended direction of implication rule (<Implies>) inferencing of elements falling within its scope (i.e. child elements). See attribute mapping for more details. This attribute has a neutral default value of "bidirectional". Other allowed values are "forward" and "backward".
(See: connective module)

31 @mapMaterial

An attribute indicating the kind of all implication rules (<Implies>) falling within its scope (i.e. child elements). See attribute mapping for more details. Allowed values are "yes" (the default) and "no".
(See: connective module and Functional RuleML)

32 @material

An attribute indicating the kind of an implication rule (<Implies>). Allowed values are "yes" (the default) and "no".
(See: connective module)

33 @maxCard

An attribute optionally specifying a <slot>'s maximum cardinality.
(See: slot module)

34 <meta>

An optional role for internally attaching to a Node a single formula as meta-knowledge. Not available for leaf Nodes, such as <Var> or <Rel>.
(See: desc module)

35 @minCard

An attribute optionally specifying a <slot>'s minimum cardinality.
(See: slot module)

36 <Naf>

A "by default" negation of a logical atom (<Atom>) (i.e. "weak" negation or negation as failure). The negated atom may be optionally surrounded by a <weak> role.
(See: naf module)

37 <Neg>

A classical negation of a logical atom (<Atom>) (i.e. classical or "strong" negation). The negated atom may be optionally surrounded by a <strong> role.
(See: neg module)

38 @node

An optional IRI identifier for a Node, creating accessibility within the knowledge representation. This can help for representing prioritization between rules, for example. All Node tags (i.e. those that begin with an uppercase letter) of RuleML can be decorated with such an identifier. Web semantics requires that each IRI denote a unique Node in a unique rulebase.
(See: desc module)

39 <oid>

An optional label for the object of a slotted atom or expression. Note that oids are not required to be unique within a rulebase.
(See: desc module)

40 <op>

A role for operators, containing either a relation (<Rel>) of an atom (<Atom>), a function name (<Fun>) of a (<Expr>), or a neutralized constant (<Const>) of a Hilog term (<Uniterm>).
(See: atom module, expr module and holog module)

41 <Or>

A disjunctive formula, where <Or>Atom</Or> is equivalent to Atom.
Attributes: @closure
(See: connective module)

42 @oriented

An attribute indicating whether an equation (<Equal>) is oriented (directed) or unoriented (symmetric). Allowed values are "no" (unoriented, the default) and "yes" (oriented). For example, the (oriented) defining equation home(father-of(John)) = Mexico City appears as follows:
<Equal oriented="yes">
  <left>
    <Expr>
      <Fun per="value">home</Fun>
      <Expr>
        <Fun per="copy">father-of</Fun>
        <Ind>John</Ind>
      </Expr>
    </Expr>
  </left>
  <right>
    <Ind>Mexico City</Ind>
  </right>
</Equal>
(See: equality module and Functional RuleML)

43 @per

An attribute used to indicate whether a function (<Fun>) or an expr (<Expr>) will be interpreted. In equality sublanguages, it has three values "copy" (the default), "value" and "open", while in non-equality sublanguages it can only have the value "copy".
(See: expr module and Functional RuleML)

44 <Plex>

A collection of (ordered) arguments (optionally enclosed by <arg>) and/or (unordered) user-defined slots (<slot>), identical to an uninterpreted expression (<Expr>) except not having a user-specified function name (equivalent to having a system-specified constructor <Fun per="value">Plex</Fun>). Rest variables (<repo> and <resl>) are also permitted. For example:
<Plex>
  <Var>title</Var>
  <Var>author</Var>
  <Var>table of contents</Var>
  <Var>chapters</Var>
</Plex>
Attributes:
(See: expr module)

45 <Query>

A performative acting as a wrapper specifying that its content (optionally surrounded by a <formula> role) is queried, making an 'implicit <Rulebase>' assumption. This allows the separation of declarative content from such procedural performatives (as pioneered by KQML, which has a similar performative 'ask').
Attributes: @closure
(See: performative module and FOL RuleML)

46 <Reify>

Supports reification (a kind of instantiation or quasi-quotation) as needed by SWSL. It allows any RuleML tag available within the current sublanguage as content, treating it as a term for performing reasoning on, e.g. <Reify><Ind>John Doe</Ind></Reify>
(See: term module)

47 <Rel>

A relation, i.e. a logical predicate, of an atom (<Atom>). It is optionally surrounded by an operator (<op>).
Attributes: @iri
(See: atom module)

48 <repo>

A positional rest variable used in <Atom>s, <Expr>s and <Plex>s. Note that <Plex>s are generated, so <repo>s are only available above the Datalog sublanguage.
(See: rest module)

49 <resl>

A slotted rest variable used in <Atom>s, <Expr>s and <Plex>s. Note that <Plex>s are generated, so <resl>s are only available above the Datalog sublanguage.
(See: rest module)

50 <Retract>

A performative wrapper specifying that its content (optionally surrounded by a <formula> role) is to be deleted, making an 'implicit <Rulebase>' assumption. This allows the separation of declarative content from such procedural performatives (as pioneered by KQML, which has a similar performative 'untell'). For example, if John no longer likes Mary then this fact could be retracted:
 <Retract>
   <Atom>
     <Rel>likes</Rel>
     <Ind>John</Ind>
     <Ind>Mary</Ind>
   </Atom>
 </Retract>
Attributes: @mapDirection, @mapClosure, @mapMaterial
(See: performative module and FOL RuleML)

51 <right>

The right-hand side of an equation (<Equal>).
(See: equality module)

52 <Rulebase>

A collection of rules that can be ordered or unordered, without or with duplicates. For example: ssn.ruleml
Attributes: @mapClosure, @mapDirection and @mapMaterial
(See: connective module)

53 <RuleML>

The n-ary top-level of a RuleML document. It permits (ordered) transactions of performatives (<Assert>, <Query> or <Retract>), optionally wrapped in <act>, making an 'implicitly sequential' assumption.
(See: performative module)

54 <Set>

A set-valued result as in t[m -> {v1,...,vk}].
(See: frame module, and the SWSL submission to the W3C)

55 <Signature>

A signature molecule of the form t[m => v]
(See: frame module, and the SWSL submission to the W3C)

56 <Skolem>

A Skolem individual constant.
Attributes: @type
(See: term module, and the Integrating Positional and Slotted Knowledge on the Semantic Web slides)

57 <slot>

A user-defined slot consisting of a name (first position) and a filler (second position). For example:
<slot>
  <Ind>color</Ind>
  <Ind>blue</Ind>
</slot>
Attributes: @weight, @card (and @minCard/@maxCard in SWSL sublanguages)
(See: slot module)

58 <SlotProd>

A polyadic path expressions element.
(See: frame module, and the SWSL submission to the W3C)

59 <strong>

A role used for classical negation (<Neg>).
(See: neg module)

60 <SubclassOf>

A subclass molecule.
(See: frame module, and the SWSL submission to the W3C)

61 <then>

The "then" part of an implication rule (<Implies>) containing the conclusion, also known as the "consequent" or "head" of the rule. Also used as the "consequent" part of an entailment (<Entails>).
(See: connective module)

62 <torso>

A symmetric role used in an equivalence formula (<Equivalent>) combining the asymmetric <then> and <if>.
(See: connective module)

63 @type

An attribute for optionally specifying a term (user-defined) type. See the oojdrew.ruleml instance for an example of the usage of @type.
(See: term module)

64 <Uniterm>

A Hilog term, generalizing <Atom> and <Expr>.
(See: holog module, and the SWSL submission to the W3C)

65 @val

This attribute is used to indicate whether a function (<Fun>) is deterministic or non-deterministic. It has two values: "1" (deterministic: exactly one) and "0.." (set-valued: zero or more). For example, the function children(John, Mary) can be interpreted in a set-valued manner using a definition children(John, Mary) = {Jory, Mahn}, so that the application children(John, Mary) returns {Jory, Mahn}:
<Expr>
  <Fun per="value" val="0..">children</Fun>
  <Ind>John</Ind>
  <Ind>Mary</Ind>
</Expr>
(See: equality module and Functional RuleML)

66 <Var>

A logical variable, as in logic programming.
Attributes: @type
(See: term module)

67 <weak>

A role used for negation as failure (<Naf>).
(See: naf module)

68 @weight

An attribute optionally specifying a <slot>'s relative weight.
(See: slot module)