protocol

# `interval_algebra_protocol`

Allen interval algebra protocol over the 13 base relation atoms.

Availability:
`logtalk_load(intervals(loader))`
Author: Paulo Moura
Version: 1:0:0
Date: 2026-05-13
Compilation flags:
`static`
Dependencies:
(none)
Remarks:
(none)
Inherited public predicates:
(none)

## Public predicates

### `relation/1`

Enumerates valid Allen base relation atoms in canonical order.

Compilation flags:
`static`
Template:
`relation(Relation)`
Mode and number of proofs:
`relation(?atom)` - `zero_or_more`

### `converse/2`

Relates an Allen base relation atom with its converse relation atom.

Compilation flags:
`static`
Template:
`converse(Relation,Converse)`
Mode and number of proofs:
`converse(?atom,?atom)` - `zero_or_more`

### `compose/3`

Returns the canonical ordered list of Allen base relation atoms resulting from composing two Allen base relation atoms.

Compilation flags:
`static`
Template:
`compose(Relation1,Relation2,Relations)`
Mode and number of proofs:
`compose(+atom,+atom,-list(atom))` - `zero_or_one`

## Protected predicates

(none)

## Private predicates

(none)

## Operators

(none)

See also

interval_protocol, interval, interval_algebra, interval_relation_set_protocol, interval_relation_set