From 8b19b1a98b1a4c1e2ad706aad217589d3c4134ba Mon Sep 17 00:00:00 2001 From: Gary King Date: Wed, 1 Oct 2008 10:23:41 -0400 Subject: [PATCH] User guide darcs-hash:20081001142341-3cc5d-c75ba18cfd9d6f98dc8f9777b998b4086c8fc067.gz --- website/source/resources/header.md | 14 +- website/source/resources/shared-header.md | 13 + website/source/resources/ug-footer.md | 15 + website/source/resources/ug-header.md | 2 + website/source/user-guide-details/algorithms.mmd | 32 ++ website/source/user-guide-details/deprecated.mmd | 9 + website/source/user-guide-details/dotty.mmd | 9 + .../source/user-guide-details/introspection.mmd | 27 ++ website/source/user-guide-details/iteration.mmd | 15 + website/source/user-guide-details/manipulation.mmd | 17 + .../source/user-guide-details/miscellaneous.mmd | 9 + website/source/user-guide-details/motivation.mmd | 31 ++ .../source/user-guide-details/random-graphs.mmd | 13 + website/source/user-guide-details/search.mmd | 9 + website/source/user-guide.css | 207 +++++++++++++ website/source/user-guide.md | 85 +++++ website/website.tmproj | 324 ++++++++++++++++++++ 17 files changed, 818 insertions(+), 13 deletions(-) create mode 100644 website/source/resources/shared-header.md create mode 100644 website/source/resources/ug-footer.md create mode 100644 website/source/resources/ug-header.md create mode 100644 website/source/user-guide-details/algorithms.mmd create mode 100644 website/source/user-guide-details/deprecated.mmd create mode 100644 website/source/user-guide-details/dotty.mmd create mode 100644 website/source/user-guide-details/introspection.mmd create mode 100644 website/source/user-guide-details/iteration.mmd create mode 100644 website/source/user-guide-details/manipulation.mmd create mode 100644 website/source/user-guide-details/miscellaneous.mmd create mode 100644 website/source/user-guide-details/motivation.mmd create mode 100644 website/source/user-guide-details/random-graphs.mmd create mode 100644 website/source/user-guide-details/search.mmd create mode 100644 website/source/user-guide.css create mode 100644 website/source/user-guide.md create mode 100644 website/website.tmproj diff --git a/website/source/resources/header.md b/website/source/resources/header.md index 75f35f1..914a580 100644 --- a/website/source/resources/header.md +++ b/website/source/resources/header.md @@ -1,18 +1,6 @@ -{include shared-links.md} - -{set-property html yes} -{set-property style-sheet "http://common-lisp.net/project/cl-containers/shared/style-200.css"} -{set-property author "Gary Warren King"} +{include shared-header.md} [devel-list]: http://common-lisp.net/cgi-bin/mailman/listinfo/cl-graph-devel [cliki-home]: http://www.cliki.net//cl-graph [tarball]: http://common-lisp.net/project/cl-graph/cl-graph.tar.gz - diff --git a/website/source/resources/shared-header.md b/website/source/resources/shared-header.md new file mode 100644 index 0000000..db3ccde --- /dev/null +++ b/website/source/resources/shared-header.md @@ -0,0 +1,13 @@ +{include shared-links.md} +{set-property html yes} +{set-property style-sheets "http://common-lisp.net/project/cl-containers/shared/style-200.css" "user-guide.css"} +{set-property author "Gary Warren King"} + + diff --git a/website/source/resources/ug-footer.md b/website/source/resources/ug-footer.md new file mode 100644 index 0000000..dbb27c4 --- /dev/null +++ b/website/source/resources/ug-footer.md @@ -0,0 +1,15 @@ + + diff --git a/website/source/resources/ug-header.md b/website/source/resources/ug-header.md new file mode 100644 index 0000000..2d261df --- /dev/null +++ b/website/source/resources/ug-header.md @@ -0,0 +1,2 @@ +{include shared-header.md} +{set-property title "CL-Graph Users Guide"} diff --git a/website/source/user-guide-details/algorithms.mmd b/website/source/user-guide-details/algorithms.mmd new file mode 100644 index 0000000..c00e029 --- /dev/null +++ b/website/source/user-guide-details/algorithms.mmd @@ -0,0 +1,32 @@ +{docs connected-components} +{docs connected-component-count} +{docs find-connected-components} +{docs connected-graph-p} +{docs breadth-first-visitor} +{docs breadth-first-search-graph} +{docs dfs} +{docs dfs-visit} +{docs dfs-tree-edge-p} +{docs dfs-back-edge-p} +{docs dfs-forward-edge-p} +{docs dfs-cross-edge-p} +{docs dfs-edge-type} +{docs mst-find-set} +{docs mst-make-set} +{docs mst-tree-union} +{docs mst-link} +{docs minimum-spanning-tree} + +{docs generate-directed-free-tree} + +{docs project-bipartite-graph} + +{docs traverse-elements} +{docs traverse-elements-helper} + +{docs assortativity-coefficient} +{docs graph-roots} + +{docs topological-sort} +{docs assign-level} + diff --git a/website/source/user-guide-details/deprecated.mmd b/website/source/user-guide-details/deprecated.mmd new file mode 100644 index 0000000..e0eb775 --- /dev/null +++ b/website/source/user-guide-details/deprecated.mmd @@ -0,0 +1,9 @@ +{docs map-over-all-combinations-of-k-vertexes} +{docs map-over-all-combinations-of-k-edges} +{docs tag-edges} +{docs tag-all-edges} +{docs untag-edges} +{docs untag-all-edges} + +{docs tagged-edge-p} +{docs untagged-edge-p} diff --git a/website/source/user-guide-details/dotty.mmd b/website/source/user-guide-details/dotty.mmd new file mode 100644 index 0000000..ae3790f --- /dev/null +++ b/website/source/user-guide-details/dotty.mmd @@ -0,0 +1,9 @@ +{docs graph->dot} +{docs graph->dot-properties} +{docs vertex->dot} +{docs edge->dot} +{comment {docs (setf dot-attribute-value)}} +{docs dot-attribute-value} +{docs graph->dot-external} +{docs ensure-valid-dot-attribute} +{docs write-name-for-dot} diff --git a/website/source/user-guide-details/introspection.mmd b/website/source/user-guide-details/introspection.mmd new file mode 100644 index 0000000..657d4bd --- /dev/null +++ b/website/source/user-guide-details/introspection.mmd @@ -0,0 +1,27 @@ +{docs edge-count} +{docs vertex-count} +{docs source-edge-count} +{docs target-edge-count} +{docs number-of-neighbors} +{docs has-children-p} +{docs has-parent-p} + +{docs source-vertex} +{docs target-vertex} +{docs undirected-edge-p} +{docs directed-edge-p} +{docs make-vertex-edges-container} +{docs other-vertex} +{docs vertices-share-edge-p} + +{docs out-edge-for-vertex-p} +{docs in-undirected-cycle-p} +{docs adjacentp} +{docs depth} +{docs edge-lessp-by-weight} +{docs edge-lessp-by-direction} +{docs weight} + +{docs rootp} +{docs in-cycle-p} +{docs any-undirected-cycle-p} diff --git a/website/source/user-guide-details/iteration.mmd b/website/source/user-guide-details/iteration.mmd new file mode 100644 index 0000000..6cdbb22 --- /dev/null +++ b/website/source/user-guide-details/iteration.mmd @@ -0,0 +1,15 @@ +{docs iterate-children} +{docs iterate-parents} +{docs iterate-neighbors} +{docs iterate-edges} +{docs iterate-source-edges} +{docs iterate-target-edges} +{docs source-edges} +{docs target-edges} +{docs child-vertexes} +{docs parent-vertexes} +{docs neighbor-vertexes} +{docs iterate-vertexes} +{docs edges} +{docs vertexes} + diff --git a/website/source/user-guide-details/manipulation.mmd b/website/source/user-guide-details/manipulation.mmd new file mode 100644 index 0000000..a34af6f --- /dev/null +++ b/website/source/user-guide-details/manipulation.mmd @@ -0,0 +1,17 @@ +{docs make-graph} +{docs add-edges-to-graph} +{docs add-vertex} +{docs add-edge} +{docs add-edge-between-vertexes} +{docs delete-edge} +{docs delete-all-edges} +{docs delete-edge-between-vertexes} +{docs delete-vertex} +{docs replace-vertex} +{docs add-edge-to-vertex} + +{docs make-vertex-container} +{docs make-edge-container} +{docs make-edge-for-graph} +{docs make-vertex-for-graph} +{docs make-graph-from-vertexes} \ No newline at end of file diff --git a/website/source/user-guide-details/miscellaneous.mmd b/website/source/user-guide-details/miscellaneous.mmd new file mode 100644 index 0000000..a77d6b2 --- /dev/null +++ b/website/source/user-guide-details/miscellaneous.mmd @@ -0,0 +1,9 @@ +{docs force-undirected} + +{docs renumber-vertexes} +{docs renumber-edges} +{docs initialize-vertex-data} + +{docs complete-links} +{docs subgraph-containing} +{docs make-filtered-graph} \ No newline at end of file diff --git a/website/source/user-guide-details/motivation.mmd b/website/source/user-guide-details/motivation.mmd new file mode 100644 index 0000000..dda2672 --- /dev/null +++ b/website/source/user-guide-details/motivation.mmd @@ -0,0 +1,31 @@ +A significant portion of almost any non-trivial programming +effort goes into the manipulation of structured data. Many +data structures can be viewed as containers. These may be +ordered or unordered, associative (indexed) or sequential and +so forth. The power and beauty of some programming languages +derives in no small part from their ability to handle +container classes well (Smalltalk comes to mind) and other +languages have gone to great lengths to incorporate flexible +containers into their frameworks (C++'s STL for example). +Although Common Lisp includes a number of *containers* +(hash-tables, lists and arrays) there are many useful data +structures that are not built-in (e.g., binary search trees) +and the existing containers have a fragmented interface that +shows Lisp's peripatetic evolution. + +The Common Lisp Container Library ({clcl}) extends Lisp in two +ways: it adds new container functionality and, by +standardizing container interfaces, it makes using them +significantly easier. The standard interface also lends +itself to more a flexible design and development process +since data structure decisions are easier to change as the +program evolves. {clcl}~ thereby expends the power of Lisp and +makes it an even better tool for both rapid prototyping +\emph{and} production code. + +The remainder of this document will cover the container types +available in {clcl}, the methods applicable to these +containers, information about the internal design of {clcl} +and examples of containers in use. As will become evident, +{clcl}'s design borrows from the Standard Template Library, +Smalltalk and existing Lisp idioms wherever possible. diff --git a/website/source/user-guide-details/random-graphs.mmd b/website/source/user-guide-details/random-graphs.mmd new file mode 100644 index 0000000..45dae28 --- /dev/null +++ b/website/source/user-guide-details/random-graphs.mmd @@ -0,0 +1,13 @@ +Requires [cl-variants][]. + +{docs generate-gnm} +{docs generate-gnp} +{docs generate-undirected-graph-via-assortativity-matrix} +{docs generate-undirected-graph-via-vertex-probabilities} +{docs generate-scale-free-graph} +{docs generate-assortative-graph-with-degree-distributions} +{docs generate-simple-preferential-attachment-graph} +{docs generate-preferential-attachment-graph} + +{docs graph-edge-mixture-matrix} +{docs graph-mixing-matrix} diff --git a/website/source/user-guide-details/search.mmd b/website/source/user-guide-details/search.mmd new file mode 100644 index 0000000..76ae1c6 --- /dev/null +++ b/website/source/user-guide-details/search.mmd @@ -0,0 +1,9 @@ +{docs find-vertex} +{docs search-for-vertex} +{docs find-edge} +{docs find-edge-between-vertexes} +{docs find-vertex-if} +{docs find-edge-if} +{docs find-edges-if} +{docs find-vertexes-if} +{docs find-edge-between-vertexes-if} diff --git a/website/source/user-guide.css b/website/source/user-guide.css new file mode 100644 index 0000000..a0c4162 --- /dev/null +++ b/website/source/user-guide.css @@ -0,0 +1,207 @@ +/* @group toc */ + +.table-of-contents { + font-size: 90%; + margin-bottom: 1em; + padding-bottom: 1em; +} + +.table-of-contents h2, h3, h4 { + padding-top: 0; + padding-bottom: 0; + margin-top: 0; + margin-bottom: 1px; +} + +.table-of-contents h2 { + font-size: inherit; + font-style: inherit; + position: relative; + left: 2em; +} + +.table-of-contents h3 { + font-size: inherit; + font-style: inherit; + position: relative; + left: 4em; +} + +.table-of-contents h4 { + font-size: inherit; + font-style: inherit; + position: relative; + left: 6em; +} + +.table-of-contents h5 { + font-size: inherit; + font-style: inherit; + position: relative; + left: 8px; +} + +/* @end */ + +/* @group anchors */ + +a.none { + text-decoration: none; + color:black } + +a.none:visited { text-decoration: none; color:black } + +a.none:active { text-decoration: none; color:black } + +a.none:hover { text-decoration: none; color:black } + +a { + text-decoration: none; + } + +a:visited { + text-decoration: none; +} + +a:active { + text-decoration: underline; +} + +a:hover { + text-decoration: underline; +} + +/* @end */ + +/* @group Reference */ + +.reference { + padding-bottom: 1em; +} + +.reference h3 { + margin-top: 2em; + font-size: 110%; + border-bottom: 1px solid silver; + border-top: 4px solid gray; + padding-top: 3px; + padding-bottom: 3px; +} + + + +/* @end */ + +body { + font-family: Georgia, "Times New Roman", Times, serif; + margin-right: 0.5in; + margin-left: 0.5in; + margin-bottom: 0.25px; +} + +h1, h2, h3, h4 { + font-family: "Lucida Grande", Lucida, Verdana, sans-serif; +} + +h2 { +} + +h3, h4 { + font-style: italic; +} + +.hidden { + visibility: hidden; +} + +.documentation { + margin-right: 1em; + margin-left: 1em; +} + +.function { + +} + +.documentation.header { + display: block; + position: relative; + border-top-style: solid; + border-top-width: 1pt; + padding-top: 4px; + margin-top: 2em; +} + +.documentation.contents { + top: 10px; + position: relative; +} + +.documentation-name { + font-weight: bold; + float: left; + padding-right: 10px; + width: 125px; +} + +.documentation-kind { + float: right; + font-style: italic; + color: gray; + padding-left: 10px; +} + +.documentation-arguments { + float: left; + width: 350px; + font-style: italic; +} + +.documentation p { + clear: both; + margin-right: 1em; + margin-left: 1em; +} + +pre { + background-color: #ffc8ff; + overflow: auto; + padding-bottom: 5px; + margin-right: 1cm; + margin-left: 1cm; + font-family: "Courier New", Courier, mono; +} + +.note { + border: 2px inset gray; + padding: 0.5em; + margin-right: 2em; + margin-left: 2em; +} + +#footer { + margin-top: 2em; + border-top-style: inset; + border-top-width: 2px; +} +#navigation li { + display: inline; + border-right-style: dotted; + border-right-width: 1px; + border-left-style: dotted; + border-left-width: 1px; + border-collapse: collapse; + padding-right: 0.25em; + padding-left: 0.25em; + margin-right: 1em; +} + +#navigation { + text-align: center; +} + +#timestamp { + font-size: 80%; + text-align: right; +} + diff --git a/website/source/user-guide.md b/website/source/user-guide.md new file mode 100644 index 0000000..a6b53f2 --- /dev/null +++ b/website/source/user-guide.md @@ -0,0 +1,85 @@ +{include resources/ug-header.md} +{set-property title "CL-Graph User's Guide"} +{set-property style-sheet user-guide} +{set-property docs-package cl-graph} + +# CL-Graph User's Guide + +# Table of Contents + +{table-of-contents :start 2 :depth 3} + +## Introduction + +In Mathematics and Computer Science, a _graph_ is a +collection of _vertexes_ connected by _edges_. Edges may be +_directed_ or _undirected_ (i.e., sometimes you really can't +get there from here). Both edges and vertexes may have +additional data associated with them. Graphs are useful +because you can use them to represent most anything: food +webs, hypertext, the world wide web, protein/protein +interactions, language, who publishes with whom, etc. + +CL-Graph is a general graph library built on +[cl-containers][]. It provides an open-ended API for +building, examining and manipulating graphs as well as +implementations of many of the usual suspects of graph +algorithms and measures. + +## Using a graph + +### Creation and manipulation + +{include "user-guide-details/manipulation.mmd"} + +### Tell me about yourself - introspection + +{include "user-guide-details/introspection.mmd"} + +### Search + +{include "user-guide-details/search.mmd"} + +### Algorithms + +{include "user-guide-details/algorithms.mmd"} + +### Iteration + +{include "user-guide-details/iteration.mmd"} + +### CL-Graph and dotty + +{include "user-guide-details/dotty.mmd"} + +### Random Graphs + +{include user-guide-details/random-graphs.mmd} + +### Miscellaneous + +{include user-guide-details/miscellaneous.mmd} + +### Deprecated - to be removed soon + +{include user-guide-details/deprecated.mmd} + +## Index of Functions + +{docs-index (function macro) function} + +
+ +{comment + +#### Glossary + +{glossary} + + +#### Footnotes + +{footnotes} +} + +{include resources/ug-footer.md} diff --git a/website/website.tmproj b/website/website.tmproj new file mode 100644 index 0000000..6ead674 --- /dev/null +++ b/website/website.tmproj @@ -0,0 +1,324 @@ + + + + + currentDocument + source/user-guide-details/iteration.mmd + documents + + + expanded + + name + source + regexFolderFilter + !.*/(\.[^/]*|CVS|_darcs|_MTN|\{arch\}|blib|.*~\.nib|.*\.(framework|app|pbproj|pbxproj|xcode(proj)?|bundle))$ + sourceDirectory + source + + + filename + ../../shared/shared-links.md + lastUsed + 2008-10-01T13:35:22Z + + + fileHierarchyDrawerWidth + 190 + metaData + + ../../shared/shared-links.md + + caret + + column + 41 + line + 23 + + firstVisibleColumn + 0 + firstVisibleLine + 17 + + source/index.md + + caret + + column + 0 + line + 1 + + firstVisibleColumn + 0 + firstVisibleLine + 0 + + source/resources/footer.md + + caret + + column + 6 + line + 14 + + firstVisibleColumn + 0 + firstVisibleLine + 0 + + source/resources/header.md + + caret + + column + 0 + line + 6 + + firstVisibleColumn + 0 + firstVisibleLine + 0 + + source/resources/navigation.md + + caret + + column + 0 + line + 1 + + firstVisibleColumn + 0 + firstVisibleLine + 0 + + source/resources/shared-header.md + + caret + + column + 0 + line + 5 + + firstVisibleColumn + 0 + firstVisibleLine + 0 + + source/resources/ug-header.md + + caret + + column + 0 + line + 2 + + firstVisibleColumn + 0 + firstVisibleLine + 0 + + source/user-guide-details/algorithms.mmd + + caret + + column + 0 + line + 0 + + firstVisibleColumn + 0 + firstVisibleLine + 0 + + source/user-guide-details/deprecated.mmd + + caret + + column + 0 + line + 0 + + firstVisibleColumn + 0 + firstVisibleLine + 0 + + source/user-guide-details/dotty.mmd + + caret + + column + 0 + line + 0 + + firstVisibleColumn + 0 + firstVisibleLine + 0 + + source/user-guide-details/introspection.mmd + + caret + + column + 0 + line + 0 + + firstVisibleColumn + 0 + firstVisibleLine + 0 + + source/user-guide-details/iteration.mmd + + caret + + column + 6 + line + 0 + + firstVisibleColumn + 0 + firstVisibleLine + 0 + + source/user-guide-details/manipulation.mmd + + caret + + column + 0 + line + 0 + + firstVisibleColumn + 0 + firstVisibleLine + 0 + + source/user-guide-details/miscellaneous.mmd + + caret + + column + 0 + line + 0 + + firstVisibleColumn + 0 + firstVisibleLine + 0 + + source/user-guide-details/motivation.mmd + + caret + + column + 6 + line + 29 + + firstVisibleColumn + 0 + firstVisibleLine + 0 + + source/user-guide-details/random-graphs.mmd + + caret + + column + 0 + line + 0 + + firstVisibleColumn + 0 + firstVisibleLine + 0 + + source/user-guide-details/search.mmd + + caret + + column + 0 + line + 0 + + firstVisibleColumn + 0 + firstVisibleLine + 0 + + source/user-guide.css + + caret + + column + 0 + line + 0 + + firstVisibleColumn + 0 + firstVisibleLine + 0 + + source/user-guide.md + + caret + + column + 0 + line + 74 + + firstVisibleColumn + 0 + firstVisibleLine + 42 + + + openDocuments + + source/resources/header.md + source/index.md + source/user-guide.md + source/user-guide.css + source/user-guide-details/motivation.mmd + source/user-guide-details/miscellaneous.mmd + source/user-guide-details/manipulation.mmd + source/user-guide-details/introspection.mmd + source/user-guide-details/search.mmd + source/user-guide-details/iteration.mmd + source/user-guide-details/deprecated.mmd + source/user-guide-details/dotty.mmd + source/user-guide-details/random-graphs.mmd + source/user-guide-details/algorithms.mmd + ../../shared/shared-links.md + source/resources/ug-header.md + source/resources/shared-header.md + source/resources/footer.md + source/resources/navigation.md + + showFileHierarchyDrawer + + windowFrame + {{611, 97}, {578, 778}} + + -- 1.7.10.4