protocol

# `dimension_reduction_dataset_protocol`

Protocol for datasets used with unsupervised dimension reduction algorithms.

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

## Public predicates

### `attribute_values/2`

Enumerates by backtracking the attributes and their possible values. For discrete attributes, `Values` is a list of possible values. For continuous (numeric) attributes, `Values` is the atom `continuous`.

Compilation flags:
`static`
Template:
`attribute_values(Attribute,Values)`
Mode and number of proofs:
`attribute_values(?atom,-list(atom))` - `zero_or_more`
`attribute_values(?atom,-atom)` - `zero_or_more`

### `example/2`

Enumerates by backtracking the examples in the dataset. Each example has an `Id` and a list of `Attribute-Value` pairs.

Compilation flags:
`static`
Template:
`example(Id,AttributeValues)`
Mode and number of proofs:
`example(-integer,-list(pair))` - `zero_or_more`

## Protected predicates

(none)

## Private predicates

(none)

## Operators

(none)