Syntax Diagrams

Syntax diagrams specify the syntax of IBM® SPSS® Statistics commands, such as the allowed subcommands, keywords, and keyword values. Although not required for an extension command, it is recommended to create a syntax diagram for users of your extension command. You may even want to make it available from the submitted syntax itself, perhaps with a HELP subcommand. Creating the syntax diagram will also simplify the task of creating the XML specification file for the extension command.

The rasch function from the R ltm package has the following specification:

rasch(data, constraint = NULL, IRT.param = TRUE, start.val = NULL, 
    na.action = NULL, control = list())

We will wrap this function in an extension command named SPSSINC RASCH DEMO and allow the user to specify the data and na.action arguments, but keep the default values for all of the other arguments. The argument data is a data frame whose columns contain the variables to analyze and na.action specifies the handling of missing values.

SPSSINC RASCH DEMO 
/VARIABLES ITEMS=variable list
[/OPTIONS MISSING={LISTWISE**  } ]
                  {ALLAVAILABLE}

The syntax diagram starts with the command name. Subcommands are specified with a forward slash (/), followed by the name of the subcommand, followed by the specifications of keywords belonging to the subcommand. In this example, the VARIABLES subcommand specifies the variables for the Rasch analysis. The keyword ITEMS specifies the variable list, which will be used to populate the argument data to the rasch function.

Optional subcommands and keywords are enclosed in square brackets ([ ]). In this example, the OPTIONS subcommand is optional.

Braces ({ }) indicate a choice between elements. In this example, the keyword MISSING can be set to LISTWISE or ALLAVAILABLE.

A double asterisk (**) indicates the default value of a keyword if the associated keyword is omitted. In this example, the value LISTWISE will be used if the MISSING keyword is omitted.

Note that the square brackets ([ ]), braces ({ }), and double asterisks (**) are not part of the actual syntax.

Next