.. index:: single: application_protocol .. _application_protocol/0: .. rst-class:: right **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) .. contents:: :local: :backlinks: top Public predicates ----------------- .. index:: name/1 .. _application_protocol/0::name/1: ``name/1`` ^^^^^^^^^^ Application name. | **Compilation flags:** | ``static`` | **Template:** | ``name(Name)`` | **Mode and number of proofs:** | ``name(?atom)`` - ``zero_or_one`` ------------ .. index:: version/1 .. _application_protocol/0::version/1: ``version/1`` ^^^^^^^^^^^^^ Application version. | **Compilation flags:** | ``static`` | **Template:** | ``version(Version)`` | **Mode and number of proofs:** | ``version(?atom)`` - ``zero_or_one`` ------------ .. index:: description/1 .. _application_protocol/0::description/1: ``description/1`` ^^^^^^^^^^^^^^^^^ Application short description. | **Compilation flags:** | ``static`` | **Template:** | ``description(Description)`` | **Mode and number of proofs:** | ``description(?atom)`` - ``zero_or_one`` ------------ .. index:: license/1 .. _application_protocol/0::license/1: ``license/1`` ^^^^^^^^^^^^^ Application license. | **Compilation flags:** | ``static`` | **Template:** | ``license(License)`` | **Mode and number of proofs:** | ``license(?atom)`` - ``zero_or_one`` ------------ .. index:: homepage/1 .. _application_protocol/0::homepage/1: ``homepage/1`` ^^^^^^^^^^^^^^ Application homepage URL. | **Compilation flags:** | ``static`` | **Template:** | ``homepage(URL)`` | **Mode and number of proofs:** | ``homepage(?atom)`` - ``zero_or_one`` ------------ .. index:: distribution/1 .. _application_protocol/0::distribution/1: ``distribution/1`` ^^^^^^^^^^^^^^^^^^ Application distribution or download location. | **Compilation flags:** | ``static`` | **Template:** | ``distribution(URL)`` | **Mode and number of proofs:** | ``distribution(?atom)`` - ``zero_or_one`` ------------ .. index:: package/1 .. _application_protocol/0::package/1: ``package/1`` ^^^^^^^^^^^^^ Application package identifier as a PURL. | **Compilation flags:** | ``static`` | **Template:** | ``package(PURL)`` | **Mode and number of proofs:** | ``package(?atom)`` - ``zero_or_one`` ------------ .. index:: loader_file/1 .. _application_protocol/0::loader_file/1: ``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`` ------------ .. index:: creators/1 .. _application_protocol/0::creators/1: ``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`` ------------ .. index:: supplier/1 .. _application_protocol/0::supplier/1: ``supplier/1`` ^^^^^^^^^^^^^^ Application supplier. | **Compilation flags:** | ``static`` | **Template:** | ``supplier(Supplier)`` | **Mode and number of proofs:** | ``supplier(?atom)`` - ``zero_or_one`` ------------ .. index:: originator/1 .. _application_protocol/0::originator/1: ``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`` ------------ .. index:: built_date/1 .. _application_protocol/0::built_date/1: ``built_date/1`` ^^^^^^^^^^^^^^^^ Application build date. | **Compilation flags:** | ``static`` | **Template:** | ``built_date(Date)`` | **Mode and number of proofs:** | ``built_date(?atom)`` - ``zero_or_one`` ------------ .. index:: release_date/1 .. _application_protocol/0::release_date/1: ``release_date/1`` ^^^^^^^^^^^^^^^^^^ Application release date. | **Compilation flags:** | ``static`` | **Template:** | ``release_date(Date)`` | **Mode and number of proofs:** | ``release_date(?atom)`` - ``zero_or_one`` ------------ .. index:: valid_until_date/1 .. _application_protocol/0::valid_until_date/1: ``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`` ------------ .. index:: external_reference/2 .. _application_protocol/0::external_reference/2: ``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`` ------------ .. index:: repository/1 .. _application_protocol/0::repository/1: ``repository/1`` ^^^^^^^^^^^^^^^^ Application source provenance repository metadata. | **Compilation flags:** | ``static`` | **Template:** | ``repository(URL)`` | **Mode and number of proofs:** | ``repository(?atom)`` - ``zero_or_one`` ------------ .. index:: repository_branch/1 .. _application_protocol/0::repository_branch/1: ``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`` ------------ .. index:: repository_commit/1 .. _application_protocol/0::repository_commit/1: ``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`` ------------ .. index:: repository_commit_abbreviated/1 .. _application_protocol/0::repository_commit_abbreviated/1: ``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`` ------------ .. index:: repository_commit_date/1 .. _application_protocol/0::repository_commit_date/1: ``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`` ------------ .. index:: repository_commit_author/1 .. _application_protocol/0::repository_commit_author/1: ``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`` ------------ .. index:: repository_commit_message/1 .. _application_protocol/0::repository_commit_message/1: ``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`` ------------ .. index:: git_object_identifier/1 .. _application_protocol/0::git_object_identifier/1: ``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`` ------------ .. index:: software_heritage_identifier/1 .. _application_protocol/0::software_heritage_identifier/1: ``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`` ------------ .. index:: property/1 .. _application_protocol/0::property/1: ``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)