File: botch-graph-shortest-path.pod

package info (click to toggle)
botch 0.24-6
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 1,084,624 kB
  • sloc: xml: 11,924,892; ml: 4,489; python: 3,890; sh: 1,268; makefile: 334
file content (109 lines) | stat: -rw-r--r-- 3,780 bytes parent folder | download | duplicates (5)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
=head1 NAME

botch-graph-shortest-path - find the shortest path(s) between two vertices of a graph in GraphML or dot format

=head1 SYNOPSIS

=over

=item B<botch-graph-shortest-path> [options] --source I<SOURCE> [--source I<SOURCE> ...] --target I<TARGET> [--target I<TARGET> ...] [I<ingraph>] [I<outgraph>]

=back

=head1 DESCRIPTION

Extract the subgraph of the shortest path between two specific nodes in the
input graph.

The B<--target> and B<--source> options are mandatory and can be specified more
than once.

If either (or both) of the positional arguments is/are omitted, then read
GraphML or dot from standard input and/or write GraphML or dot to standard
output, respectively.  Passing a '-' as either argument, explicitly specifies
to read the input from standard input and write the output to standard output,
respectively.

The input graph type will be determined automatically. If the output graph is
given as a filename, then the output type will be GraphML if the filename ends
with .xml and dot if the filename ends with .dot. If the output is done on
standard output then it will happen in the same format as the input graph.

=head1 OPTIONS

=over 4

=item B<-h, --help>

Display help.

=item B<--target=>I<TARGET>

This option picks the target vertex. The TARGET argument is a key/value pair
(separated by a colon) of a graph attribute and its desired value. If more than
one vertex matches the given key/value pair, then the smallest (by node
comparison) is chosen.

The special key C<__ID__> allows one to select the unique vertex identifier.

This option can be specified more than once. The final set of vertices is
chosen such that all vertices match all key/value pairs. Multiple B<--target>
options thus form a logical conjunction (they are AND-ed together).

=item B<--source=>I<SOURCE>

This option picks the source vertex. The SOURCE argument is a key/value pair
(separated by a colon) of a graph attribute and its desired value. If more than
one vertex matches the given key/value pair, then the smallest (by node
comparison) is chosen.

The special key C<__ID__> allows one to select the unique vertex identifier.

This option can be specified more than once. The final set of vertices is
chosen such that all vertices match all key/value pairs. Multiple B<--source>
options thus form a logical conjunction (they are AND-ed together).

=item B<--all>

instead of finding an arbitrary shortest path, find all shortest paths

=item B<-v, --verbose>

Be verbose.

=back

=head1 EXAMPLE

Extract the subgraph of the shortest path from a certain version of the
build-essential binary vertex to a certain version of the ghc source vertex.

  botch-graph-shortest-path --source name:build-essential --source version:11.7 --source type:bin --target name:ghc --target version:7.8.4-8 --target type:src < in.xml > out.xml

or giving input and output as positional arguments:

  botch-graph-shortest-path --source name:build-essential --source version:11.7 --source type:bin --target name:ghc --target version:7.8.4-8 --target type:src in.xml out.xml

=head1 BUGS

See L<http://bugs.debian.org/botch>.

=head1 SEE ALSO

Debian doc-base Manual F</usr/share/doc/botch/wiki/Home.html>

=head1 AUTHOR

This man page was written by Johannes Schauer. Botch is written by Johannes
Schauer and Pietro Abate.

=head1 COPYRIGHT

Copyright 2012-2014 Johannes Schauer, Pietro Abate

This program is free software: you can redistribute it and/or modify it under
the terms of the GNU Lesser General Public License as published by the Free
Software Foundation, either version 3 of the License, or (at your option) any
later version. A special linking exception to the GNU Lesser General Public
License applies to this library, see the COPYING file for more information.