protocol

# `iso_639_protocol`

Protocol for ISO 639 language and language-group lookups.

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

## Public predicates

### `language/3`

Enumerates ISO 639-1 entries as alpha-2, alpha-3, and English name tuples.

Compilation flags:
`static`
Template:
`language(Alpha2,Alpha3,Name)`
Mode and number of proofs:
`language(?atom,?atom,?atom)` - `zero_or_more`

### `language_code/5`

Enumerates ISO 639-2 entries as bibliographic code, terminologic code, alpha-2 code, English name, and class tuples. The class is one of `individual`, `macrolanguage`, `collective`, `special`, or `local_use`.

Compilation flags:
`static`
Template:
`language_code(Bibliographic,Terminologic,Alpha2,Name,Class)`
Mode and number of proofs:
`language_code(?atom,?atom,?atom,?atom,?atom)` - `zero_or_more`

### `language/5`

Enumerates ISO 639-3 entries as alpha-3 code, alpha-2 code, scope, type, and English name tuples. The scope is one of `individual`, `macrolanguage`, `collective`, or `special` and the type is one of `living`, `extinct`, `ancient`, `constructed`, or `special`.

Compilation flags:
`static`
Template:
`language(Alpha3,Alpha2,Scope,Type,Name)`
Mode and number of proofs:
`language(?atom,?atom,?atom,?atom,?atom)` - `zero_or_more`

### `language_group/2`

Enumerates ISO 639-5 entries as group code and English name tuples.

Compilation flags:
`static`
Template:
`language_group(Code,Name)`
Mode and number of proofs:
`language_group(?atom,?atom)` - `zero_or_more`

## Protected predicates

(none)

## Private predicates

(none)

## Operators

(none)