Home

SoarDoc User`s Manual Introduction Getting Started

image

Contents

1. SoarDoc will generate documentation for any directory tree of Soar source files even if they haven t been commented yet Once you have the SoarDoc executable try this cd path to your source code S soardoc This will create a new directory html in the current directory containing a set of HTML files giving a basic overview of your system If your Soar productions are already documented by preceding comments try these commands instead cd path to your source code soardoc C UseExistingComments 1 SoarDoc will generate the same documentation as before but it will include your existing comments in the production documentation To further customize SoarDoc s output see the Configuration Options section The next section describes how to document your code to make the most out of SoarDoc Documenting the Code Special Documentation Blocks Special documentation blocks are simply specially formatted Soar comments The general format is as follows FH text SE H The block ends at the first line that does not begin with a character The contents of the blocks can be any valid SoarDoc command as well as HTML which will be passed through to the output unchanged HTML tags allow the user to easily format text create bulleted lists insert hyperlinks to external data include images etc Note Since Soar comments are really Tcl comments extra care has to be taken with and characters They must be balance
2. and the object it documents can be recorded Each command encodes who made the change the date the project the change affects and any developer comments By using a special reference parameter related changes in multiple parts of a file can be grouped together For further details and example usage see the created and modified command documentation in the General Commands section Main Page Documentation The main documentation page can be customized by inserting a documentation block as follows FE mainpage Title of Custom Main page lt h1 gt Introduction lt hl gt Here is some kind of introduction lt h2 gt Section 1 lt h1 gt Some more stuff here E H SE OH SHE SFE SE The body of a mainpage block can be arbitrary HTML It may also include ref commands to reference other areas of the documentation Structural Commands Groups Structural documentation commands allow for more granular control over the final output of SoarDoc Files and productions can be arbitrarily grouped creating a hierarchical organization of documentation For example productions and files could be hierarchically grouped by operator Here is a grouping example FE group groupl brief A brief description of groupl Detailed description of groupl Meanwhile in another file file brief A file Description of file ingroup groupl Se SE SE OSE Se OE HE HR This example defines a group cal
3. be the first command in the block problem space lt name gt lt name gt List of problem space names in which this operator may be selected i e its parents in the goal hierarchy Main Page Commands mainpage lt title gt Required Title used for the mainpage Group Commands group lt name gt group title Define a group The name of the group must not exist yet This command must be the first command in the block Structural Commands ref type lt anchor name gt Refer to another documentation object The type modifier allows a particular named object to be specified Here is an example that references a production it Please s ref prod name of production for more info it This will production a hyperlink to the documentation for production name of production type Description file A link to file documentation prod A link to production documentation ps A link to problem space documentation op A link to operator documentation group A link to group documentation start no soardoc and end no soardoc Used in pairs around sections of code that should be ignored by SoarDoc Trouble Shooting Here are problems that may arise while using SoarDoc Where I expect to see datamap graphs I see gibberish like digraph G node label N graph bb 0 0 0 0 You are using an old version of dot that doesn t support output of client side image maps dot o
4. prevent the shell from stripping out the single quotes On Linux the above example becomes soardoc C OutputDirectory output Unfortunately for all command line examples in this manual these double quotes must be added to use them in Linux Existing Soar Code If you have a large existing Soar system manually entering comment blocks for every object in your system would be very tedious SoarDoc has an autodoe mode which will generate stub documentation for all undocumented no existing SoarDoc comment block objects in the system autodoc mode is specified by setting the OutputFormat configuration parameter to autodoc Running SoarDoc in this mode will create a file called soardoc soar in the directory specified by the OutputDirectory parameter It will contain a set of stub comment blocks If UseExistingComments is set to 1 SoarDoc will include any existing comments in the stub blocks Since autodoc mode should be run relatively infrequently it s easier to run it as a one liner without having to modify your configuration file soardoc C OutputFormat autodoc C OutputDirectory C UseExistingComments 1 with all arguments on a single line of course If you have made manual changes to soardoc soar and then rerun SoarDoc in autodoc mode your changes will not be overwritten autodoc mode is especially useful for generating documentation for problem spaces and operators discovere
5. SoarDoc User s Manual Dave Ray ray soartech com October 16 2003 Introduction SoarDoc is an embedded metadata documentation format and tool for Soar This format facilitates the automatic generation of flexible project documentation in the spirit of Doxygen Javadoc and other documentation generation tools The SoarDoc tool takes as input a set of Soar source files and produces as output a set of HTML documentation for the files The output provides several distinct views onto the documentation For example the documentation can be browsed by source file problem space operator or by a complete alphabetical index of production names Getting Started This document assumes you already have the SoarDoc source code installed on your system SoarDoc requires Python version 2 2 available from www python org SoarDoc is not compatible with earlier versions of Python To find out which version of Python you have type python V at the command line The file soardoc py in the sre directory is the main script for SoarDoc To run SoarDoc you must pass soardoc py as an argument to the python interpreter like this path to python path to soardoc src soardoc py Running the makebat py script in SoarDoc s root directory will generate a shell script called soardoc soardoc bat on Windows systems that simplifies this process For the rest of this document it is assumed that this script is available on the system path
6. arameter to 1 o Set SoarDoc s DotPath and DotExeName parameters to point to the DOT executable in your GraphViz installation e Run SoarDoc Note that graphs and HTML pages will only be generated for problem spaces and operators that have been documented Running SoarDoc in autodoc mode with the XmIDatamap parameter set will generate stub documentation for all problem spaces and operators that dmgen identifies See the Overriding Configuration Parameters The C command line option can override configuration parameters specified in the configuration file The basic syntax of the command is soardoc C NameOfParameter ValueOfParameter If ValueOfParameter is a string value it must be enclosed in single quotes like this soardoc C OutputDirectory output On Linux it is necessary to enclose these options in double quotes to prevent the shell from stripping out the single quotes On Linux the above example becomes soardoc C OutputDirectory output Unfortunately for all command line examples in this manual these double quotes must be added to use them in Linux Existing Soar Code section below The image format used by DOT images is controlled by the DotImageFormat parameter Since some datamaps can be very large and gif and jpeg formats have image size limits it is recommended when possible that you use the png format Configuration Options Command Line Options Details of SoarDoc command
7. ators used by productions in this file if they don t specify one This command may appear more than once in a documentation block type lt type gt Default value for type command at production scope Production scope Commands The following commands may appear in the documentation block for a production production lt name gt Indicates that this documentation block documents the named production This command is optional if the block is immediately followed by the production it documents If used this command must be the first in the block kernel lt version gt Comment Indicates compatibility syntactic and semantic with a particular version of the Soar kernel This command may appear more than once in a documentation block to indicate compatibility with multiple kernels If this command is omitted then the production inherits the kernel commands used in the file scope documentation block problem space lt problem space name gt lt problem space name gt Indicates a list of problem spaces with which this production is associated This command may appear more than once in a documentation block If this command is omitted then the production inherits the problem space commands used in the file scope documentation block operator lt operator name gt lt operator name gt Indicates a list of operators with which this production is associated This command may appear more than once in a documentatio
8. centric notes These can be enabled disabled in the generated documentation depending upon the target audience Comments may be arbitrary HTML possibly spanning multiple lines and containing ref commands todo Comments All instances of the todo command are collected together to form a todo list in the generated documentation Comments may be arbitrary HTML possibly spanning multiple lines and containing ref commands File scope Commands The following commands may appear in the documentation block for a file file lt name gt Required Indicates that this documentation block documents a file lt name gt indicates the name of the file being documented If lt name gt is omitted then the name of the current file is used This command must be the first command in the block project lt name gt lt name gt A list of projects to which this file belongs kernel lt version gt Comment Indicates compatibility syntactic and semantic with a particular version of the Soar kernel This command may appear more than once in a documentation block to indicate compatibility with multiple kernels problem space lt problem space name gt lt problem space name gt Indicates the default problem spaces used by productions in this file if they don t specify one This command may appear more than once in a documentation block operator lt operator name gt lt operator name gt Indicates the default oper
9. d by dmgen After running dmgen to update your datamap rerun SoarDoc in autodoc mode to update the soardoc soar file with new problem space and operator documentation Processing Soar Log Trace Output SoarDoc can parse and generate an annotated HTML version of a Soar log file the contents of the agent window or a file generated by the log command in Soar When available operator names are replaced with their brief description making the trace more understandable for a non developer Here s the simplest way to do this assuming you have a log file log txt in the root directory of your source tree soardoc L log txt This will generate a file html log html To change the location of the output change the OutputDirectory config parameter To generate links to SoarDoc documentation enable the LogUseSoarDocs parameter If you change the OutputDirectory you will probably have to modify the LogPathToSoarDocs parameter as well See the default configuration file for many more configuration options Command Reference All SoarDoc commands begin with the symbol followed immediately by the command s name They may take zero or more arguments The arguments may span more than one line but the argument list is terminated with the next blank line a single and whitespace or the next line that is started with a SoarDoc General Commands The following commands may appear in the documentation block for any object fi
10. d even though they appear in comments Documenting a File A documentation block whose first command is file provides documentation for a file usually the file in which is appears Here is a sample for a file file brief A brief description of the file s purpose A more detailed possibly multi line description of the file s purpose This text can be lt b gt formatted lt b gt with normal HTML tags project MyProject kernel 8 3 Works kernel 8 4 Comments about kernel 8 4 created ray 20030120 MyProject modified ray 20030120 MyProject Added new production modified 1 ray 20030127 MyProject Made some general changes The file command specifies the name of the file that is being documented use relative paths as necessary Ifthe name is not given then the name of the current file is assumed The brief command specifies a short description of the file used for indices and tables of content in the output The main body of text is a more detailed description of the file and its contents The project command specifies a list of projects to which the file belongs The kernel command specifies a list of Soar kernel version numbers with which this file is compatible For more details on the created and modified commands see the Documenting Change History section Documenting a Production A documentation block that precedes a production definit
11. ion provides documentation for that production Here is an example production test0 brief A brief description of the production A more detailed possibly multi line description of the production This text can be lt b gt formatted lt b gt with normal HTML tags kernel 8 3 Works kernel 8 4 Comments about kernel 8 4 problem space test0 type elaboration created ray 20030120 modified 1 More specific description of change 1 Se OSE H SHE SHE H E HE SHE SE SHE H H H SE HE to state lt s gt problem space name test0O superstate operator point lt r gt io ae ct 0 0 gt lt s gt point lt r gt lt r gt sub achieved yes Here most of the commands are identical to those found in a file scope documentation block Since this documentation block immediately precedes a production definition then the production command is not entirely necessary but if the production was located elsewhere or if it was generated by say a call to a TCL function the production command would be required The problem space command specifies a list of problem spaces to which the production belongs Similarly the operator command is used to specify operators The type command indicates the production s type See the Command Reference section for details In the case of the type kernel problem space and operator commands these may be specified at file scope a
12. le production problem space operator or group brief lt description gt A single line description of the object used in indices and tables of content desc lt description gt A long usually multi line description of the object The dese command is the default command for any block Thus the actual command name may be omitted For example the following two blocks are equivalent FE production test0 brief A production desc Here is a long description with lt i gt lt b gt embedded lt b gt HTML tags lt i gt Se SE OSE H HE HE and FE production test0 brief A production Here is a long description with lt i gt lt b gt embedded lt b gt HTML tags lt i gt Se SE H H H H Note that in the second block desc was omitted ingroup lt group name gt lt group name gt Specifies that this object is a member of the given groups The groups must have been previously defined with the group command This command may appear more than once in a documentation block created lt user gt lt date gt lt project gt Comment Indicates when the file was created and the user that created it lt date gt should be in YYYYMMDD format modified refnum lt user gt lt date gt lt project gt Comment Indicates a modification to the object and the user that made the change lt date gt should be in YYYYMMDD format This command may appear more than once in a documentation block The o
13. led group1 The ingroup command is used to assign a documentation block to a particular group A documentation block may be assigned to multiple groups References Using the ref command inter block links can be created FE This is a description that has a link ref prod bowtie elaborate state problem space to a production This effect could also be achieved by embedding HTML anchors into the documentation blocks but this would be an assumption about the file layout of the final HTML output Ignoring Soar Code Using the start no soardoc and end no soardoc commands a section of a Soar source file can be ignored by SoarDoc Here is an example usage start no soardoc source load soar other code and productions that should be ignored end no soardoc Datamap Generator Integration SoarDoc can use the XML files generated by the Datamap Generator dmgen to produce browsable graphical representations of problem spaces and operators Graph generation requires an installation of the latest AT amp T GraphViz tools GraphViz is available from http www research att com sw tools graphviz The procedure is as follows e Run dmgen on your productions to generate a datamap using the XML output mode See dmgen doc for details of how to do this e In your SoarDoc config file soardocfile o Set SoarDoc s XmlDatamap parameter to the directory where the XML files are stored o Set SoarDoc s ShowDatamaps p
14. line options can be found by running SoarDoc with the h option For example S soardoc h Configuration File SoarDoc is currently implemented in Python and for convenience uses Python to specify its configuration file When SoarDoc is run it loads default values for configuration options Next it checks whether an alternate configuration file has been provided with the f command line option If so the file is loaded Otherwise SoarDoc looks for a file called soardocfile in the current directory and if it exists it is loaded This behavior is similar to that of Doxygen doxyfile or make makefile The g command line option will tell SoarDoc to print a default configuration file to standard output Thus the following command could be used to generate soardocfile soardoc g gt soardocfile When generated this file contains a complete list of configuration parameters with descriptions and default values The comments in this file are the documentation for all of SoarDoc s configuration parameters Overriding Configuration Parameters The C command line option can override configuration parameters specified in the configuration file The basic syntax of the command is soardoc C NameOfParameter ValueOfParameter If ValueOfParameter is a string value it must be enclosed in single quotes like this soardoc C OutputDirectory output On Linux it is necessary to enclose these options in double quotes to
15. n block If this command is omitted then the production inherits the operator commands used in the file scope documentation block type lt type gt Indicates the purpose of the production The suggested values for the lt type gt parameter are lt type gt Description elaboration state elaboration operator elaboration proposal application termination In Soar 7 there are productions which terminate an operator by asserting a reconsider preference selection These productions specify operator preferences persistent These productions are o supported elaborations tests that an operator exists but doesn t test the name of the operator suggest proposal If this command is omitted then its value is inherited from the type command at file scope if one exists Hint SoarDoc does not enforce this list of production types so you are free to invent your own and SoarDoc will happily display them as well as use them in the Productions by type index Problem Space scope Commands problem space lt name gt Required Name of the problem space This command must be the first command in the block operator lt name gt Name of the parent operator in the goal hierarchy If omitted then the parent operator is taken to be the operator with the same name as the problem space Operator scope Commands operator lt name gt Required Name of the operator This command must
16. nd then inherited by the documentation of all productions in the file When appropriate this will reduce the amount of repetitive typing required to adequately document a production For more details on the created and modified commands see the Documenting Change History section Documenting a Problem Space Although not explicitly defined in the Soar code a problem space may be documented using a SoarDoc documentation block Here is an example FE problem space test0 brief This is problem space test0 Long description of problem space test0 Qoperator operatoro This block defines documentation for problem space test0 The operator command specifies the name of the operator that spawns this problem state If omitted then the parent is assumed to be the operator with the same name as the problem space as is the convention in Soar programming Documenting an Operator An operator can be documented in the same manner as a problem space Here is an example FE operator operatorl brief This is operatorl Long description of operatorl problem space test0 This block defines documentation for operator operator1 The problem space command indicates its position in the operator hierarchy by specifying the names of the problem spaces in which the operator may apply Documenting Change History Using the created and modified commands the change history of a documentation block
17. ption Tcmap Get the latest version from http www research att com sw tools graphviz I m running autodoc mode but I can t find the generated soardoc soar file Output is always written to the directory indicated by the OutputDirectory parameter which defaults to html To quickly run in autodoc mode outputting to the current directory without modifying your config file try Ssoardoc C OutputFormat autodoc C OutputDirectory I have generated a datamap with dmgen and set all of the related config options XmIDatamap etc but no problem spaces or operators show up in my generated docs The reason you can t see them in SoarDoc s output is that none of them are documented in the code The quickest way to get them documented is soardoc C OutputFormat autodoc C OutputDirectory C UseExistingComments 1 This command will produce a soardoc soar file in the current directory with stub documentation blocks for all of your problem spaces and operators After this run soardoc again normally and the datamap information should appear in the output I m overriding configuration parameters on the command line with C and SoarDoc complains If you re running SoarDoc on Linux overridden config parameters must be enclosed in double quotes See the Overriding Configuration Parameters section for more information
18. ptional Comment parameter may span multiple lines and contain arbitrary HTML as well as ref commands refnum is an optional first parameter which must take the form of an integer enclosed in square brackets When present at file scope this creates a general modification note that other modified commands in the file can reference When it appears at any other scope then lt user gt lt date gt and lt project gt are inherited from the file modified command with the same refnum and are not required Only a comment is necessary Using this mechanism several changes throughout a file may be grouped together Here is an example of this usage At file scope file modified 1 ray 20030127 MyProject Made several related changes At production scope production modified 1 More details for change 1 At another production scope production modified 1 Even more details for change 1 Note that in the production scopes the user date and project are omitted when referring to a more general modification Also using change references in this manner allows the generation of reports where a change and all affected objects can be grouped together in a single location The name and date fields could probably be automatically filled in by CVS keyword substitutions but this may cause unwanted conflicts so care should be taken devnote Comments Developer

Download Pdf Manuals

image

Related Search

Related Contents

Hyundai H-CMD7080 User's Manual  Samsung GT-S8530L Manual de Usuario(Mexico)  User Manual - Devolutions    Kensington K33197  取扱説明書 ご使用前に必ず、ご確認ください  

Copyright © All rights reserved.
Failed to retrieve file