Glossary of RuleML 0.91 for OO jDREW

Ben Craig

Quick link: Specification

Contents

Introduction

This glossary describes every tag of RuleML as of version 0.91 supported by OO jDREW

Glossary

<And>
A conjunctive expression, where <And>Atom</And> is equivalent to Atom.

Attributes: @closure

(See: connective module)

<Assert>
A KQML-like performative acting as a 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.

Attributes: @mapClosure

(See: performative module and FOL RuleML)

<Atom>
A logical atom, i.e. an expression formed from a predicate (or relation) applied to a collection of its (logical) arguments. The relation (<Rel>) is followed by a sequence of zero or more arguments. Optional user-defined slots (<slot>) are also permitted before and/or after the arguments. Rest variables (<repo> and <resl>) are also permitted. For example, "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)

@closure
An attribute indicating how the contained free variables are quantified. Allowed values are "universal" and "existential".

(See: connective module)

<Data>
A fixed argument like 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)

<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. 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 @in has value "no", the <Expr> corresponds to a complex term (<Cterm>) in 0.9 and earlier:
<Expr in="no">
  <Fun>book</Fun>
  <Var>title</Var>
  <Var>author</Var>
  <Var>table of contents</Var>
  <Var>chapters</Var>
</Expr>
On the other hand, if the attribute @in has value "yes", the <Expr> corresponds to a nano (<Nano>) in 0.9 and earlier.

Attributes: @type

(See: expr module and Functional Ruleml)

<Fun>
A user-defined function name of an <Expr>. It is optionally surrounded by an operator (<op>).

(See: expr module)

<Implies>
An implication rule. 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>
  <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

(See: connective module)

<Ind>
An individual constant, as in predicate logic, which can also be considered to be a fixed argument like RDF resources.

Attributes: @type

(See: term module)

@mapClosure
An attribute indicating how the free variables falling within its scope (i.e. child elements) are quantified. Allowed values are "universal".

(See: connective module)

<Naf>
A "by default" negation of a logical atom (<Atom>) (i.e. "weak" negation or negation as failure).

(See: naf module)

<op>
An operator expression including either a relation (<Rel>) of an atom (<Atom>), a function name (<Fun>) of a (<Expr>).

(See: atom module, expr module and holog module)

<Plex>
A collection of (ordered) arguments and/or (unordered) user-defined slots (<slot>), identical to an uninterpreted expression (<Expr in="no">) except not having a user-specified function name (equivalent to having a system-specified constructor 'Plex'). 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>

(See: expr module)

<Query>
A KQML-like performative acting as a wrapper specifying that its content is queried, making an 'implicit <Rulebase>' assumption. This allows the separation of declarative content from such procedural performatives.

Attributes: @closure

(See: performative module and FOL RuleML)

<Rel>
A relation, i.e. a logical predicate, of an atom (<Atom>). It is optionally surrounded by an operator (<op>).

(See: atom module)

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

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

<Rulebase>
A collection of rules that can be ordered or unordered, without or with duplicates. For example: ssn.ruleml

Attributes: @mapClosure

(See: connective module)

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

(See: slot module)

@type
A role for optionally specify a term's (user-defined) type.

(See: term module)

<Var>
A logical variable, as in logic programming.

Attributes: @type

(See: term module)


Page Version: 2007-08-09


"Practice what you preach": XML source of this homepage at index.xml (index.xml.txt);
transformed to HTML via the adaptation of Michael Sintek's SliML XSLT stylesheet at homepage.xsl (View | Page Source)