category

# `diagram(Format)`

- `Format` - Graph language file format.

Common predicates for generating diagrams.

Availability:
`logtalk_load(diagrams(loader))`
Author: Paulo Moura
Version: 3:5:0
Date: 2024-04-01
Compilation flags:
`static`
Extends:
`public` options
Provides:
logtalk::message_prefix_stream/4
logtalk::message_tokens//2
Uses:
graph_language_registry
list
logtalk
modules_diagram_support
os
pairs
type
user
Remarks:
(none)
Inherited public predicates:
check_option/1 check_options/1 default_option/1 default_options/1 option/2 option/3 valid_option/1 valid_options/1

## Public predicates

### `libraries/3`

Creates a diagram for a set of libraries using the specified options. The `Project` argument is used as a prefix for the diagram file name.

Compilation flags:
`static`
Template:
`libraries(Project,Libraries,Options)`
Mode and number of proofs:
`libraries(+atom,+list(atom),+list(compound))` - `one`

### `libraries/2`

Creates a diagram for a set of libraries using the default options. The `Project` argument is used as a prefix for the diagram file name.

Compilation flags:
`static`
Template:
`libraries(Project,Libraries)`
Mode and number of proofs:
`libraries(+atom,+list(atom))` - `one`

### `libraries/1`

Creates a diagram for a set of libraries using the default options. The prefix `libraries` is used for the diagram file name.

Compilation flags:
`static`
Template:
`libraries(Libraries)`
Mode and number of proofs:
`libraries(+list(atom))` - `one`

### `all_libraries/1`

Creates a diagram for all loaded libraries using the specified options.

Compilation flags:
`static`
Template:
`all_libraries(Options)`
Mode and number of proofs:
`all_libraries(+list(compound))` - `one`

### `all_libraries/0`

Creates a diagram for all loaded libraries using default options.

Compilation flags:
`static`
Mode and number of proofs:
`all_libraries` - `one`

### `rlibrary/2`

Creates a diagram for a library and its sub-libraries using the specified options.

Compilation flags:
`static`
Template:
`rlibrary(Library,Options)`
Mode and number of proofs:
`rlibrary(+atom,+list(compound))` - `one`

### `rlibrary/1`

Creates a diagram for a library and its sub-libraries using default options.

Compilation flags:
`static`
Template:
`rlibrary(Library)`
Mode and number of proofs:
`rlibrary(+atom)` - `one`

### `library/2`

Creates a diagram for a library using the specified options.

Compilation flags:
`static`
Template:
`library(Library,Options)`
Mode and number of proofs:
`library(+atom,+list(compound))` - `one`

### `library/1`

Creates a diagram for a library using default options.

Compilation flags:
`static`
Template:
`library(Library)`
Mode and number of proofs:
`library(+atom)` - `one`

### `directories/3`

Creates a diagram for a set of directories using the specified options. The `Project` argument is used as a prefix for the diagram file name.

Compilation flags:
`static`
Template:
`directories(Project,Directories,Options)`
Mode and number of proofs:
`directories(+atom,+list(atom),+list(compound))` - `one`

### `directories/2`

Creates a diagram for a set of directories using the default options. The `Project` argument is used as a prefix for the diagram file name.

Compilation flags:
`static`
Template:
`directories(Project,Directories)`
Mode and number of proofs:
`directories(+atom,+list(atom))` - `one`

### `rdirectory/3`

Creates a diagram for a directory and its sub-directories using the specified options. The `Project` argument is used as a prefix for the diagram file name.

Compilation flags:
`static`
Template:
`rdirectory(Project,Directory,Options)`
Mode and number of proofs:
`rdirectory(+atom,+atom,+list(compound))` - `one`

### `rdirectory/2`

Creates a diagram for a directory and its sub-directories using default options. The `Project` argument is used as a prefix for the diagram file name.

Compilation flags:
`static`
Template:
`rdirectory(Project,Directory)`
Mode and number of proofs:
`rdirectory(+atom,+atom)` - `one`

### `rdirectory/1`

Creates a diagram for a directory and its sub-directories using default options. The name of the directory is used as a prefix for the diagram file name.

Compilation flags:
`static`
Template:
`rdirectory(Directory)`
Mode and number of proofs:
`rdirectory(+atom)` - `one`

### `directory/3`

Creates a diagram for a directory using the specified options. The `Project` argument is used as a prefix for the diagram file name.

Compilation flags:
`static`
Template:
`directory(Project,Directory,Options)`
Mode and number of proofs:
`directory(+atom,+atom,+list(compound))` - `one`

### `directory/2`

Creates a diagram for a directory using default options. The `Project` argument is used as a prefix for the diagram file name.

Compilation flags:
`static`
Template:
`directory(Project,Directory)`
Mode and number of proofs:
`directory(+atom,+atom)` - `one`

### `directory/1`

Creates a diagram for a directory using default options. The name of the directory is used as a prefix for the diagram file name.

Compilation flags:
`static`
Template:
`directory(Directory)`
Mode and number of proofs:
`directory(+atom)` - `one`

### `files/3`

Creates a diagram for a set of files using the specified options. The file can be specified by name, basename, full path, or using library notation. The `Project` argument is used as a prefix for the diagram file name.

Compilation flags:
`static`
Template:
`files(Project,Files,Options)`
Mode and number of proofs:
`files(+atom,+list(atom),+list(compound))` - `one`

### `files/2`

Creates a diagram for a set of files using the default options. The file can be specified by name, basename, full path, or using library notation. The `Project` argument is used as a prefix for the diagram file name.

Compilation flags:
`static`
Template:
`files(Project,Files)`
Mode and number of proofs:
`files(+atom,+list(atom))` - `one`

### `files/1`

Creates a diagram for a set of files using the default options. The file can be specified by name, basename, full path, or using library notation. The prefix `files` is used for the diagram file name.

Compilation flags:
`static`
Template:
`files(Files)`
Mode and number of proofs:
`files(+list(atom))` - `one`

### `all_files/1`

Creates a diagram for all loaded files using the specified options.

Compilation flags:
`static`
Template:
`all_files(Options)`
Mode and number of proofs:
`all_files(+list(compound))` - `one`

### `all_files/0`

Creates a diagram for all loaded files using default options.

Compilation flags:
`static`
Mode and number of proofs:
`all_files` - `one`

### `format_object/1`

Returns the identifier of the object implementing the graph language currently being used. Fails if none is specified.

Compilation flags:
`static`
Template:
`format_object(Object)`
Mode and number of proofs:
`format_object(-object_identifier)` - `zero_or_one`

### `diagram_description/1`

Returns the diagram description.

Compilation flags:
`static`
Template:
`diagram_description(Description)`
Mode and number of proofs:
`diagram_description(-atom)` - `one`

### `diagram_name_suffix/1`

Returns the diagram name suffix.

Compilation flags:
`static`
Template:
`diagram_name_suffix(Suffix)`
Mode and number of proofs:
`diagram_name_suffix(-atom)` - `one`

## Protected predicates

### `diagram_caption/3`

Creates a diagram caption from the diagram description and the subject and its kind.

Compilation flags:
`static`
Template:
`diagram_caption(Kind,Subject,Description)`
Mode and number of proofs:
`diagram_caption(+atom,+callable,-atom)` - `one`

### `output_rlibrary/3`

Generates diagram output for a library and its sub-libraries using the specified options.

Compilation flags:
`static`
Template:
`output_rlibrary(Library,Path,Options)`
Mode and number of proofs:
`output_rlibrary(+atom,+atom,+list(compound))` - `one`

### `output_library/3`

Generates diagram output for a library using the specified options.

Compilation flags:
`static`
Template:
`output_library(Library,Path,Options)`
Mode and number of proofs:
`output_library(+atom,+atom,+list(compound))` - `one`

### `output_rdirectory/3`

Generates diagram output for a directory and its sub-directories using the specified options.

Compilation flags:
`static`
Template:
`output_rdirectory(Project,Path,Options)`
Mode and number of proofs:
`output_rdirectory(+atom,+atom,+list(compound))` - `one`

### `output_externals/1`

Output external nodes using the specified options depending on the value of the boolean option `externals/1`.

Compilation flags:
`static`
Template:
`output_externals(Options)`
Mode and number of proofs:
`output_externals(+list(compound))` - `one`

### `output_files/2`

Generates diagram output for a list of files using the specified options.

Compilation flags:
`static`
Template:
`output_files(Files,Options)`
Mode and number of proofs:
`output_files(+list,+list(compound))` - `one`

### `output_file/4`

Generates diagram output for a file using the specified options.

Compilation flags:
`static`
Template:
`output_file(Path,Basename,Directory,Options)`
Mode and number of proofs:
`output_file(+atom,+atom,+atom,+list(compound))` - `one`

### `output_sub_diagrams/1`

Outputs sub-diagrams using the specified options.

Compilation flags:
`static`
Template:
`output_sub_diagrams(Options)`
Mode and number of proofs:
`output_sub_diagrams(+list(compound))` - `one`

### `reset/0`

Resets all temporary information used when generating a diagram.

Compilation flags:
`static`
Mode and number of proofs:
`reset` - `one`

### `output_node/6`

Outputs a graph node.

Compilation flags:
`static`
Template:
`output_node(Identifier,Label,Caption,Contents,Kind,Options)`
Mode and number of proofs:
`output_node(+nonvar,+nonvar,+nonvar,+list(nonvar),+atom,+list(compound))` - `one`

### `node/6`

Enumerates, by backtracking, all saved nodes.

Compilation flags:
`static`
Template:
`node(Identifier,Label,Caption,Contents,Kind,Options)`
Mode and number of proofs:
`node(?nonvar,?nonvar,?nonvar,?list(compound),?atom,?list(compound))` - `zero_or_more`

### `edge/5`

Enumerates, by backtracking, all saved edges.

Compilation flags:
`static`
Template:
`edge(From,To,Labels,Kind,Options)`
Mode and number of proofs:
`edge(?nonvar,?nonvar,?list(nonvar),?atom,?list(compound))` - `zero_or_more`

### `output_edges/1`

Outputs all edges.

Compilation flags:
`static`
Template:
`output_edges(Options)`
Mode and number of proofs:
`output_edges(+list(compound))` - `one`

### `save_edge/5`

Saves a graph edge.

Compilation flags:
`static`
Template:
`save_edge(From,To,Labels,Kind,Options)`
Mode and number of proofs:
`save_edge(+nonvar,+nonvar,+list(nonvar),+atom,+list(compound))` - `one`

### `output_missing_externals/1`

Outputs missing external nodes (usually due to unloaded resources) that are referenced from edges.

Compilation flags:
`static`
Template:
`output_missing_externals(Options)`
Mode and number of proofs:
`output_missing_externals(+list(compound))` - `one`

### `not_excluded_file/4`

True when the given file is not excluded from the generated output. Excluded files may be specified by full path or by basename and with or without extension. Excluded directories may be listed by full or relative path.

Compilation flags:
`static`
Template:
`not_excluded_file(Path,Basename,ExcludedDirectories,ExcludedFiles)`
Mode and number of proofs:
`not_excluded_file(+atom,+atom,+list(atom),+list(atom))` - `zero_or_one`

### `output_file_path/4`

Returns the output file path.

Compilation flags:
`static`
Template:
`output_file_path(Name,Options,Format,Path)`
Mode and number of proofs:
`output_file_path(+atom,+list(atom),+object_identifier,-atom)` - `one`

### `locate_library/2`

Locates a library given its name.

Compilation flags:
`static`
Template:
`locate_library(Library,Path)`
Mode and number of proofs:
`locate_library(+atom,-atom)` - `one`

### `locate_directory/2`

Locates a directory given its name or full path.

Compilation flags:
`static`
Template:
`locate_directory(Directory,Path)`
Mode and number of proofs:
`locate_directory(+atom,-atom)` - `one`

### `locate_file/5`

Locates a file given its name, basename, full path, or library notation representation.

Compilation flags:
`static`
Template:
`locate_file(File,Basename,Extension,Directory,Path)`
Mode and number of proofs:
`locate_file(+atom,+atom,+atom,+atom,-atom)` - `one`

### `ground_entity_identifier/3`

Converts an entity identifier to a ground term.

Compilation flags:
`static`
Template:
`ground_entity_identifier(Kind,Identifier,GroundIdentifier)`
Mode and number of proofs:
`ground_entity_identifier(+atom,+callable,-callable)` - `one`

### `filter_file_extension/3`

Filters the file name extension depending on the `file_extensions/1` option.

Compilation flags:
`static`
Template:
`filter_file_extension(Basename,Options,Name)`
Mode and number of proofs:
`filter_file_extension(+atom,+list(compound),-atom)` - `one`

### `filter_external_file_extension/3`

Filters the external file name extension depending on the `file_extensions/1` option.

Compilation flags:
`static`
Template:
`filter_external_file_extension(Path,Options,Name)`
Mode and number of proofs:
`filter_external_file_extension(+atom,+list(compound),-atom)` - `one`

### `add_link_options/3`

Adds `url/1`, `urls/2`, and `tooltip/1` link options (for use by the graph language) based on the specified path to the list of options.

Compilation flags:
`static`
Template:
`add_link_options(Path,Options,LinkingOptions)`
Mode and number of proofs:
`add_link_options(+atom,+list(compound),-list(compound))` - `one`

### `omit_path_prefix/3`

Removes a prefix from a path, returning the relative path, when using the option `omit_path_prefixes/1`. Used mainly for constructing directory and file node identifiers and captions.

Compilation flags:
`static`
Template:
`omit_path_prefix(Path,Options,Relative)`
Mode and number of proofs:
`omit_path_prefix(+atom,+list(compound),-atom)` - `one`

### `add_node_zoom_option/4`

Adds node zoom options when using the zoom option.

Compilation flags:
`static`
Template:
`add_node_zoom_option(Identifier,Suffix,Options,NodeOptions)`
Mode and number of proofs:
`add_node_zoom_option(+atom,+atom,+list(compound),-list(compound))` - `one`

### `message_diagram_description/1`

Diagram description for progress messages.

Compilation flags:
`static`
Template:
`message_diagram_description(Description)`
Mode and number of proofs:
`message_diagram_description(?atom)` - `one`

## Private predicates

### `node_/6`

Table of saved nodes.

Compilation flags:
`dynamic`
Template:
`node_(Identifier,Label,Caption,Contents,Kind,Options)`
Mode and number of proofs:
`node_(?nonvar,?nonvar,?nonvar,?list(compound),?atom,?list(compound))` - `zero_or_more`

### `edge_/5`

Table of saved edges.

Compilation flags:
`dynamic`
Template:
`edge_(From,To,Labels,Kind,Options)`
Mode and number of proofs:
`edge_(?nonvar,?nonvar,?list(nonvar),?atom,?list(compound))` - `zero_or_more`

## Operators

(none)