protocol

# `dataset_protocol`

Protocol for datasets used with classifier algorithms.

Availability:
`logtalk_load(classifier_protocols(loader))`
Author: Paulo Moura
Version: 1:0:0
Date: 2026-02-19
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`

### `class/1`

Returns the name of the target class attribute.

Compilation flags:
`static`
Template:
`class(Class)`
Mode and number of proofs:
`class(-atom)` - `one`

### `class_values/1`

Returns the list of possible values for the target class attribute.

Compilation flags:
`static`
Template:
`class_values(Values)`
Mode and number of proofs:
`class_values(-list(atom))` - `one`

### `example/3`

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

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

## Protected predicates

(none)

## Private predicates

(none)

## Operators

(none)