The answer is: ( ( Tri-Value "TRUE" ) ( Statement List ( ( ( "endorse-label" "load-label" ) ( "mailto:GoodMouseClicking@w3.org" ( ( version "PICS-1.1" ) ( service "http://www.musac.org/" ) ( original ( PICS-1.1 "http://www.musac.org/" labels by "alice@rater.org" ratings ( s 1 ) ) ) ( by "alice@rater.org" ) ( ratings ( s 1 ) ) ) ) ) ) ) ) A trace is as followed: eval: ( invoke "load-label" STATEMENT-LIST URL "http://www.musac.org/" ( EMBEDDED ) ) result: ( ( Tri-Value "TRUE" ) ( Statement List ( ( ( "load-label" ) ( ( "load-label" "http://www.w3.org/pub/WWW/Overview.html" EMBEDDED ) ( ( version "PICS-1.1" ) ( service "http://www.musac.org/" ) ( original ( PICS-1.1 "http://www.musac.org/" labels by "alice@rater.org" ratings ( s 1 ) ) ) ( by "alice@rater.org" ) ( ratings ( s 1 ) ) ) ) ) ) ) ) ------------------------------------------------------------ eval: ( invoke "endorse-label" STATEMENT-LIST "mailto:GoodMouseClicking@w3.org" ( "http://labels.com/" ) ) result: ( ( Tri-Value "TRUE" ) ( Statement List ( ( ( "endorse-label" "load-label" ) ( "mailto:GoodMouseClicking@w3.org" ( ( version "PICS-1.1" ) ( service "http://www.musac.org/" ) ( original ( PICS-1.1 "http://www.musac.org/" labels by "alice@rater.org" ratings ( s 1 ) ) ) ( by "alice@rater.org" ) ( ratings ( s 1 ) ) ) ) ) ) ) ) ------------------------------------------------------------ eval: ( match ( ( * "load-label" * ) ( * ( ( version "PICS-1.1" ) * ( service "http://www.musac.org/" ) * ( ratings ( RESTRICT < s 2 ) ) ) ) ) STATEMENT-LIST ) result: ( ( Tri-Value "TRUE" ) ( Statement List ( ( ( "endorse-label" "load-label" ) ( "mailto:GoodMouseClicking@w3.org" ( ( version "PICS-1.1" ) ( service "http://www.musac.org/" ) ( original ( PICS-1.1 "http://www.musac.org/" labels by "alice@rater.org" ratings ( s 1 ) ) ) ( by "alice@rater.org" ) ( ratings ( s 1 ) ) ) ) ) ) ) ) ------------------------------------------------------------ eval: ( false-if-unknown ( match ( ( * "load-label" * ) ( * ( ( version "PICS-1.1" ) * ( service "http://www.musac.org/" ) * ( ratings ( RESTRICT < s 2 ) ) ) ) ) STATEMENT-LIST ) ) result: ( ( Tri-Value "TRUE" ) ( Statement List ( ( ( "endorse-label" "load-label" ) ( "mailto:GoodMouseClicking@w3.org" ( ( version "PICS-1.1" ) ( service "http://www.musac.org/" ) ( original ( PICS-1.1 "http://www.musac.org/" labels by "alice@rater.org" ratings ( s 1 ) ) ) ( by "alice@rater.org" ) ( ratings ( s 1 ) ) ) ) ) ) ) ) ------------------------------------------------------------The output has two parts: an answer and a trace. An answer consists of two parts: a 'Tri-Value' and a 'Statement-List'. The 'Tri-Value' is the output of the policy evaluation and can return only "TRUE", "FALSE", or "UNKNOWN". The 'Statement-List' is a set of statements that supplement the tri-value. Each statement has two elements; the first element converys the context (speaker) of the statment, and the second element provides the content of the statement.
A trace is a list of pairs of (eval, result). 'Eval' field is the expression in which the interpreter is about to evaluate. 'Result' field is the output of that expression. The output has two parts: a 'Tri-Value' and a 'Statement-List', which is identical to the answer as described above.
That's all. Enjoy the demo!