Glossary of Deliberation RuleML 1.01

From RuleML Wiki
Jump to: navigation, search

Authors: 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

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

XSD Schemas : Machine-readable schemas in XSD

Prerequisites: XSD, 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.01

Prerequisites: XSLT, Level: Formal

Examples : Illustrative Instances of the Version 1.01 Language

Prerequisites: Primer, Level: Informative

Glossary : Definitions of Elements and Attributes

Prerequisites: Primer, Level: Semi-formal

Content Models : Simplified XML Element and Attribute Definitions

Prerequisites: Primer, Level: Semi-formal

Schema Docs : Diagrammatic Presentation of Content Models

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: deliberation.ruleml.org/1.01/glossary

Latest version: deliberation.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.01.

1 <act>

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

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: And within Query and And elsewhere schema docs)

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: arg schema doc)

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')[1].
Attributes: @mapDirection, @mapClosure, @mapMaterial
(See: Assert schema doc )

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 a daughter, Mary and a son, Bill":
 <Atom>
   <Rel>is father of</Rel>
   <Ind>John</Ind>
   <slot><Ind>daughter</Ind><Ind>Mary</Ind></slot>
   <slot><Ind>son</Ind><Ind>Bill</Ind></slot>
 </Atom>
Attributes: @closure
(See: Atom schema doc)

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: closure schema doc)

8 <Const>

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

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: Data schema doc)

10 <declare>

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

11 <degree>

An optional uncertainty value (between 0.0 and 1.0) that may be assigned to atomic formulas and equations.[3]
(See: degree schema doc)

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: direction schema doc)

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: Entails schema doc)

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">factorial</Fun>      
    <Data xsi:type="xs:int">0</Data>    
  </Expr>    
  <Data xsi:type="xs:int">1</Data>  
</Equal>
<Equal>    
  <left>      
    <Expr >        
      <Fun per="value">factorial</Fun>        
      <Data xsi:type="xs:int">0</Data>      
    </Expr>    
  </left>    
  <right>      
    <Data xsi:type="xs:int">1</Data>    
  </right>      
</Equal>
Attributes: @oriented
(See: Equal schema doc)

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: Equivalent schema doc)

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: Exists schema doc)

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.[4]

Attributes: @per, @type
(See: Expr schema doc)

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: Forall schema doc)

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: formula in Assert/Retract and similar schema docs)

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: Fun schema doc)

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 "body" of the rule. Also used as the "antecedent" part of an entailment (<Entails>).
(See: if in Implies and if in Entails schema docs)

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: Implies schema doc)

24 <Ind>

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

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: index in act and index in arg schema docs)

26 <InstanceOf>

A class membership molecule.[5]
(See: frame module )

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 in Fun and similar schema docs)

28 <left>

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

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: mapClosure in Assert and similar schema docs)

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: mapDirection in And and similar schema docs)

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".[4]
(See: mapMaterial in And and similar schema docs)

32 @material

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

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: meta schema doc)

35 @minCard

An attribute optionally specifying a <slot>'s minimum cardinality.
(See: [ttp://ruleml.org/1.0/xsd/modules/slot_module.xsd 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 schema doc)

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

schema doc)

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: node in And and similar schema docs)

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: oid schema doc)

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: op in Atom and op in Expr schema docs)

41 <Or>

A disjunctive formula, where <Or>Atom</Or> is equivalent to Atom and <Or/> is always false.
Attributes: @closure
(See: Or within Query and Or elsewhere schema docs)

42 @oriented

An attribute indicating whether an equation (<Equal>) is oriented (directed) or unoriented (symmetric).[4] 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: oriented schema doc)

43 @per

An attribute employed to indicate whether a simple function name (<Fun>) or an expression used as a complex function name (<Expr>) will be interpreted.[4] 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: per in Expr and per in Fun schema docs)

44 <Plex>

A collection of (ordered) arguments (optionally enclosed by <arg>) and/or (unordered) user-defined slots (<slot>), analogous to an expression (<Expr>) with the uninterpreted (constructor) function (equivalent to having a system-specified constructor <Fun per="value">Plex</Fun>) applied to the same arguments. 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: Plex and similar schema docs)

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.[1] This allows the separation of declarative content from such procedural performatives (as pioneered by KQML, which has a similar performative 'ask').
Attributes: @closure
(See: Query schema doc)

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: Reify schema doc)

47 <Rel>

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

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: repo schema doc)

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: resl schema doc)

50 <Retract>

A performative wrapper specifying that its content (optionally surrounded by a <formula> role) is to be deleted, making an 'implicit <Rulebase>' assumption.[1] 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: Retract schema doc)

51 <right>

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

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: Rulebase schema doc)

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: RuleML schema doc)

54 <Set>

A set-valued result as in t[m -></nowiki> {v1,...,vk}].[6]
(See: frame module)

55 <Signature>

A signature molecule of the form t[m =></nowiki> v][7]
(See: frame module)

56 <Skolem>

A Skolem individual constant.[8]
Attributes: @type
(See: Skolem schema doc)

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 schema doc)

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: strong schema doc)

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: then in Implies and []http://deliberation.ruleml.org/1.01/doc/naffologeq_normal/naffologeq_normal_xsd_Element_Group_spec_then_2.html#then_2_then then in Entails] schema docs)

62 <torso>

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

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: type on Expr and similar schema docs)

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.[4] 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: val schema doc)

66 <Var>

A logical variable, as in logic programming.
Attributes: @type
(See: Var schema doc)

67 <weak>

A role used for negation as failure (<Naf>).
(See: weak schema doc)

68 @weight

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

69 References

  1. 1.0 1.1 1.2 http://ruleml.org/fol FOL RuleML
  2. http://www.w3.org/Submission/SWSF-SWSL/#ruleml-hilog SWSL submission to the W3C
  3. http://image.ntua.gr/FuzzyRuleML Fuzzy RuleML
  4. 4.0 4.1 4.2 4.3 4.4 http://ruleml.org/fun Functional Ruleml
  5. http://www.w3.org/Submission/SWSF-SWSL/#ruleml-frames SWSL submission to the W3C
  6. http://www.w3.org/Submission/SWSF-SWSL/#ruleml-frames SWSL submission to the W3C
  7. http://www.w3.org/Submission/SWSF-SWSL/#ruleml-frames SWSL submission to the W3C
  8. http://ruleml.org/posl/poslintweb-talk.pdf Integrating Positional and Slotted Knowledge on the Semantic Web slides