protocol

application_protocol

Application metadata predicates, including optional source provenance facts.

Availability:
logtalk_load(application(loader))
Author: Paulo Moura
Version: 1:1:0
Date: 2026-03-25
Compilation flags:
static
Dependencies:
(none)
Remarks:
  • Explicit metadata: All predicates describe metadata declared by the application. The protocol does not require or imply reflection over the current and transient state of some application repository.

  • Release metadata: Predicates such as name/1, version/1, description/1, license/1, distribution/1, package/1, release_date/1, and valid_until_date/1 are intended for release-oriented metadata.

  • Source provenance metadata: Predicates such as repository/1, repository_branch/1, repository_commit/1, repository_commit_date/1, repository_commit_author/1, repository_commit_message/1, git_object_identifier/1, and software_heritage_identifier/1 are optional explicit provenance facts about the source used for the application and may or may not correspond to the release artifact identity.

Inherited public predicates:
(none)

Public predicates

name/1

Application name.

Compilation flags:
static
Template:
name(Name)
Mode and number of proofs:
name(?atom) - zero_or_one

version/1

Application version.

Compilation flags:
static
Template:
version(Version)
Mode and number of proofs:
version(?atom) - zero_or_one

description/1

Application short description.

Compilation flags:
static
Template:
description(Description)
Mode and number of proofs:
description(?atom) - zero_or_one

license/1

Application license.

Compilation flags:
static
Template:
license(License)
Mode and number of proofs:
license(?atom) - zero_or_one

homepage/1

Application homepage URL.

Compilation flags:
static
Template:
homepage(URL)
Mode and number of proofs:
homepage(?atom) - zero_or_one

distribution/1

Application distribution or download location.

Compilation flags:
static
Template:
distribution(URL)
Mode and number of proofs:
distribution(?atom) - zero_or_one

package/1

Application package identifier as a PURL.

Compilation flags:
static
Template:
package(PURL)
Mode and number of proofs:
package(?atom) - zero_or_one

loader_file/1

Application main loader file absolute path.

Compilation flags:
static
Template:
loader_file(File)
Mode and number of proofs:
loader_file(?atom) - zero_or_one

creators/1

Application creators, authors, or other credited producers of the application or its release metadata.

Compilation flags:
static
Template:
creators(Creators)
Mode and number of proofs:
creators(?list(atom)) - zero_or_one

supplier/1

Application supplier.

Compilation flags:
static
Template:
supplier(Supplier)
Mode and number of proofs:
supplier(?atom) - zero_or_one

originator/1

Original source of the application software when distinct from its creators.

Compilation flags:
static
Template:
originator(Originator)
Mode and number of proofs:
originator(?atom) - zero_or_one

built_date/1

Application build date.

Compilation flags:
static
Template:
built_date(Date)
Mode and number of proofs:
built_date(?atom) - zero_or_one

release_date/1

Application release date.

Compilation flags:
static
Template:
release_date(Date)
Mode and number of proofs:
release_date(?atom) - zero_or_one

valid_until_date/1

Application validity limit date.

Compilation flags:
static
Template:
valid_until_date(Date)
Mode and number of proofs:
valid_until_date(?atom) - zero_or_one

external_reference/2

Application explicit external references using the same vocabulary as the corresponding first-class metadata predicates. The second argument can be a URL or a non-URL identifier depending on the reference type.

Compilation flags:
static
Template:
external_reference(Type,Locator)
Mode and number of proofs:
external_reference(?atom,?atom) - zero_or_more

repository/1

Application source provenance repository metadata.

Compilation flags:
static
Template:
repository(URL)
Mode and number of proofs:
repository(?atom) - zero_or_one

repository_branch/1

Application source provenance git branch metadata.

Compilation flags:
static
Template:
repository_branch(Branch)
Mode and number of proofs:
repository_branch(?atom) - zero_or_one

repository_commit/1

Application source provenance git commit metadata.

Compilation flags:
static
Template:
repository_commit(Hash)
Mode and number of proofs:
repository_commit(?atom) - zero_or_one

repository_commit_abbreviated/1

Application abbreviated source provenance git commit metadata.

Compilation flags:
static
Template:
repository_commit_abbreviated(Hash)
Mode and number of proofs:
repository_commit_abbreviated(?atom) - zero_or_one

repository_commit_date/1

Application source provenance git commit date metadata.

Compilation flags:
static
Template:
repository_commit_date(Date)
Mode and number of proofs:
repository_commit_date(?atom) - zero_or_one

repository_commit_author/1

Application source provenance git commit author metadata.

Compilation flags:
static
Template:
repository_commit_author(Author)
Mode and number of proofs:
repository_commit_author(?atom) - zero_or_one

repository_commit_message/1

Application source provenance git commit message metadata.

Compilation flags:
static
Template:
repository_commit_message(Message)
Mode and number of proofs:
repository_commit_message(?atom) - zero_or_one

git_object_identifier/1

Application source provenance git object identifier metadata as a gitoid.

Compilation flags:
static
Template:
git_object_identifier(GITOID)
Mode and number of proofs:
git_object_identifier(?atom) - zero_or_one

software_heritage_identifier/1

Application source provenance Software Heritage identifier metadata as an SWHID.

Compilation flags:
static
Template:
software_heritage_identifier(SWHID)
Mode and number of proofs:
software_heritage_identifier(?atom) - zero_or_one

property/1

Enumerates declared application metadata and optional source provenance as individual property terms.

Compilation flags:
static
Template:
property(Property)
Mode and number of proofs:
property(?compound) - zero_or_more

Protected predicates

(none)

Private predicates

(none)

Operators

(none)