There is also a pack for UUIDs: https://eu.swi-prolog.org/pack/list?p=pluuid
Explanation of UUIDs at Wikipedia: https://en.wikipedia.org/wiki/Universally_unique_identifier
- UUID Version 1: generated from 60+13 bit timestamp+clocksequence and "node ID" (generally MAC address)
- UUID Version 2: generated from an identifier (generally group or user ID), time and node ID (generally MAC address). So-called "DCE security" UUID.
- UUID Version 3: deterministic UUID generated by MD5-hashing a "namespace identifier and name" (e.g. an URL)
- UUID Version 4: generated using a random or pseudo-random number
- UUID Version 5: deterministic UUID generated by SHA1-hashing a "namespace identifier and name" (e.g. an URL)
See also Java's UUID implementation