Structured comments come in two flavours, the line-comment (%) based 
one, seen mostly in the Prolog community and the block-comment (/*...*/) 
based one, commonly seen in the Java and C domains. As we cannot 
determine the argument names, type and modes from following (predicate) 
source itself, we must supply this in the comment.1See section 
11. The overall structure of the comment therefore is:
@keyword value, see section 
6)
The /*...*/ style comment starts with
/**<white>. The type and mode declarations 
start at the first non-blank line and are ended by a blank line.
The %-style line comments start with %!<white> 
or, for compatibility reasons, with %%<white>.2The %% 
leader was considered to give too many false positives on arbitrary 
source code. It is still accepted, but invalid comments are silently 
ignored, while invalid comments that start with % result in 
a warning. The type and mode declaration is ended by the 
first line that starts with a single %. E.g., the following two 
fragments are identical wrt. PlDoc. Skipping blank-lines in /** 
comments allows to start the comment on the second line.
%! predicate(-Arg:type) is nondet % Predicate ...
/** * predicate(-Arg:type) is nondet * * Predicate ... */
The JavaDoc style keyword list starts at the first line starting with @<word>.