Skip to content

Parameters

Definition

<iterator name="an_iterator_identifier">
Attribute Type Description
name string The identifier of this iterator

An iterator is an element which makes TDM assume propositions in order, one at a time.

Parents

Behaviour

Enumeration

The propositions contained in the <enumerate> element, will be assumed, one at a time. It is possible to check if an enumeration has more items by using the <condition> has_more_items.

It is also possible to add a limit attribute to the enumerate element, which makes the has_more_items element evaluate true only for the limit first elements.

Random Enumeration

By using the randomize="true" attribute of the <enumerate> element, propositions will be enumerated in random order.

See also <query>

Examples

An iterator that will iterate blue items

If called four times, all items will be enumerated, in order of definition. A fifth call would restart with the first item.

  <iterator name="blue_item">
    <enumerate>
        <proposition predicate="car_colour" value="blue"/>
        <proposition predicate="bike_colour" value="blue"/>
        <proposition predicate="house_colour" value="blue"/>
        <proposition predicate="sky_colour" value="blue"/>
    </enumerate>
  </query>

An iterator that will iterate over the four seasons in random order

If called four times, all seasons will be enumerated, in order of definition. This could also be achieved using a domain <query>.

  <iterator name="season">
    <enumerate randomize="true">
        <proposition predicate="favourite_season" value="spring"/>
        <proposition predicate="favourite_season" value="summer"/>
        <proposition predicate="favourite_season" value="autumn"/>
        <proposition predicate="favourite_season" value="winter"/>
    </enumerate>
  </query>

A query that will enumerate some propositions in random order

  <iterator name="random_stuff">
    <enumerate randomize="true">
        <proposition predicate="favourite_season" value="spring"/>
        <proposition predicate="favourite_city" value="berlin"/>
        <proposition predicate="favourite_show" value="flying_circus"/>
        <proposition predicate="first_name" value="john"/>
    </enumerate>
  </query>

A query that will enumerate two random propositions

  <iterator name="random_stuff">
    <enumerate randomize="true" limit="2">
        <proposition predicate="favourite_season" value="spring"/>
        <proposition predicate="favourite_city" value="berlin"/>
        <proposition predicate="favourite_show" value="flying_circus"/>
        <proposition predicate="first_name" value="john"/>
    </enumerate>
  </query>

Last update: May 20, 2022