The library provides operations on UUIDs. Please consult other sources
for understanding UUIDs and the implications of the different UUID
versions. Some typical calls are given below:
?- uuid(X).
X = 'ea6589fa-19dd-11e2-8a49-001d92e1879d'.
?- uuid(X, [url('http://www.swi-prolog.org')]).
X = '73a07870-6a90-3f2e-ae2b-ffa538dc7c2c'.
- See also
- - http://www.ossp.org/pkg/lib/uuid/
- - https://en.wikipedia.org/wiki/Universally_unique_identifier
- To be done
- - Compare UUIDs, extract time and version from UUIDs
- uuid(-UUID) is det
- UUID is an atom representing a new UUID. This is the same as
calling
uuid(UUID, [])
. See uuid/2 for options.
- uuid(-UUID, +Options) is det
- Create a new UUID according to Options. The following options
are defined:
- version(+Versions)
- Integer in the range 1..5, which specifies the UUID version
that is created. Default is 1.
- dns(DNS)
- url(URL)
- oid(OID)
- x500(X500)
- Provide additional context information for UUIDs using version
3 or 5. If there is no explicit version option, UUID version
3 is used.
- format(+Format)
- Representation of the UUID. Default is
atom
, yielding atoms
such as 8304efdd-bd6e-5b7c-a27f-83f3f05c64e0
. The
alternative is integer
, returning a large integer that
represents the 128 bits of the UUID.
If SWI-Prolog was not built with the OSSP UUID dependency library a
simple Prolog alternative that only implements version 4 random
UUIDs is provided. In this case the default version is 4 and the
only admissible options are version(4)
and format(Format)
.
- uuid_property(+UUID, ?Property)
- True when UUID is a property of the given UUID. Supported properties
are:
- version(V)
- Return the version of the UUID (1..5)
- time(-Stamp)
- Time using SWI-Prolog's time stamp (float with seconds
since January 1, 1970, UTC). Only for version 1 and 2
UUIDs
- To be done
- - Implement more properties.
- is_uuid(@UUID) is semidet
- True when UUID is a UUID represented as an atom. It merely validates
that the length is 36 characters, there are
-
at the right place
and all other characters are hexadecimal.