## Usage

# check whether the graph is acyclic/completely directed.
acyclic(x, directed = FALSE, debug = FALSE)
directed(x)
# check whether there is a path between two nodes.
path(x, from, to, direct = TRUE, underlying.graph = FALSE, debug = FALSE)
# build the skeleton or a complete orientation of the graph.
skeleton(x)
pdag2dag(x, ordering)
# build a subgraph spanning a subset of nodes.
subgraph(x, nodes)

## Arguments

x

an object of class `bn`

. `acyclic`

, `directed`

and
`path`

also accept objects of class `bn.fit`

.

from

a character string, the label of a node.

to

a character string, the label of a node (different from
`from`

).

direct

a boolean value. If `FALSE`

ignore any arc between
`from`

and `to`

when looking for a path.

underlying.graph

a boolean value. If `TRUE`

the underlying
undirected graph is used instead of the (directed) one from the `x`

argument.

ordering

the labels of all the nodes in the graph; their order is the
node ordering used to set the direction of undirected arcs.

nodes

the labels of the nodes that induce the subgraph.

directed

a boolean value. If `TRUE`

only completely directed
cycles are considered; otherwise undirected arcs will also be considered
and treated as arcs present in both directions.

debug

a boolean value. If `TRUE`

a lot of debugging output is
printed; otherwise the function is completely silent.