| script | ::= | ( namespaceDeclaration )* ( plan | kStoreDecl )* <EOF> |
| namespaceDeclaration | ::= | <USE> ( <NSDEFAULT> | <WORD> <FOR> ) ( <QUALIFIED_NAME> | <LT> <URI> <URI_GT> ) <DOT> |
| plan | ::= | <PLAN> ( identifierValue )? ( planElement )* <END> <DOT> |
| planElement | ::= | planWeight |
| | | planComment | |
| | | planLabel | |
| | | planPostCondition | |
| | | planTrigger | |
| | | planBody | |
| | | planWithIntention | |
| planWeight | ::= | <WEIGHT> <INTEGER_LITERAL> |
| planComment | ::= | <COMMENT> stringValue |
| planLabel | ::= | <LABEL> stringValue |
| planPostCondition | ::= | <POSTCONDITION> ksSentence |
| planTrigger | ::= | <TRIGGER> trigger |
| planWithIntention | ::= | <WITH> <INTENTION> ( ksVar | ksSymbol ) ( <VARS> ksVar ( <COMMA> ksVar )* )? |
| planBody | ::= | <DO> planStep0 |
| planStep0 | ::= | planStep1 ( <PIPE> planStep0 )* |
| planStep1 | ::= | planStep2 ( <SEMICOLON> planStep1 )* |
| planStep2 | ::= | step |
| | | <LPAREN> planStep0 <RPAREN> | |
| step | ::= | ( printlnAct | printAct | shutdownAct | commitAct | failAct | maintainAct | postAct | intendAct | performAct | dropIntentionAct | invokeAct | assertAct | assertStrategyTermAct | retractAct | denyAct | sendAct | suspendAct | resumeAct | dispatchAct | agentNameAct | substituteVarsAct | evalExpression | holdsTest | occurredTest | hasPlanTest | unificationTest ) |
| printAct | ::= | <PRINT> <LPAREN> ( logValueSeries )? <RPAREN> |
| printlnAct | ::= | <PRINTLN> <LPAREN> ( logValueSeries )? <RPAREN> |
| shutdownAct | ::= | <SHUTDOWN> |
| commitAct | ::= | <COMMIT> |
| failAct | ::= | <FAIL> |
| maintainAct | ::= | <MAINTAIN> ksSentence |
| postAct | ::= | <POST> ksEvent |
| intendAct | ::= | <INTEND> ( <THAT> ksSentence | <GOAL> ksIdentifierOrVar | ksIdentifierOrVar ) ( <AS> ksVar )? |
| invokeAct | ::= | <INVOKE> ksIdentifierOrVar |
| agentNameAct | ::= | <AGENTNAME> <LPAREN> ksVar <RPAREN> |
| substituteVarsAct | ::= | <SUBSTITUTE_VARS> <LPAREN> ( ksVar | stringLiteral ) <COMMA> ( ksVar | stringLiteral ) <RPAREN> |
| evalExpression | ::= | ( ksVar | intLiteral | doubleLiteral ) <IS> arithExpression |
| hasPlanTest | ::= | <HASPLAN> ksIdentifierOrVar |
| unificationTest | ::= | ksValue ( <EQUALS_EQUALS> | <NOT_EQUALS> ) ksValue |
| dropIntentionAct | ::= | <DROP> ( <INTEND> ( <THAT> ksSentence | <GOAL> ksIdentifierOrVar | ksIdentifierOrVar ) | <REFERENCE> ksSymbolOrVar ) |
| performAct | ::= | <AT> ( <LBRACKET> ( <TYPE> <EQUALS> ksSymbol | ksSymbol ) ( <COMMA> ksSymbol <EQUALS> ksValue )* <RBRACKET> )? identifierValue |
| sendAct | ::= | <SEND> ksMessage |
| assertAct | ::= | <ASSERT> ksSentence ( ( <USING> <CONTEXT> ksSymbol ) | ( <IN> ksSymbol ) )? |
| assertStrategyTermAct | ::= | <ASSERT> ( <GOAL> | <STRATEGY> ) ( ksIdentifierOrVar )? ( <OUTCOME> ksSentence )? ( <STRATEGY> ksSymbolOrVar )? ( <PLAN> ksIdentifierOrVar )? ( <AS> ksSymbolOrVar )? |
| retractAct | ::= | <RETRACT> ksSentence ( ( <USING> <CONTEXT> ksSymbol ) | ( <IN> ksSymbol ) )? |
| denyAct | ::= | <DENY> ksSentence ( ( <USING> <CONTEXT> ksSymbol ) | ( <IN> ksSymbol ) )? |
| resumeAct | ::= | <RESUME> trigger |
| suspendAct | ::= | <SUSPEND> ( <FOR> duration )? |
| dispatchAct | ::= | <DISPATCH> ( ( ksSymbol ( <INTEGER_LITERAL> )? ) | ( <NS> ksSymbol ) )? <TO> ( ksSymbol ) ( <PRIORITY> <INTEGER_LITERAL> )? ( <IN> ksSymbol )? |
| holdsTest | ::= | <HOLDS> ( <PREMISE> )? ksSentence ( ( <USING> <CONTEXT> ksSymbol ) | ( <IN> ksSymbol ) )? |
| occurredTest | ::= | <OCCURRED> occurredExpr |
| kStoreDecl | ::= | <AXIOMS> ( identifierValue )? ( <STANDARDISED> )? ( <ONTOLOGY> ontologySpecification ( <COMMA> ontologySpecification )* )? ( <CONTAINS> axiomSpecification )? <END> <DOT> |
| ontologySpecification | ::= | ksSymbol |
| axiomSpecification | ::= | ( ksSentence <DOT> )* |
| sentences | ::= | ( ksSentence ( <DOT> ksSentence )* )? ( <DOT> )? <EOF> |
| ksSentence | ::= | ( sentenceTerm ( <LOG_AND> ksSentence | <LOG_OR> ksSentence | <LOG_IMPLIES> ksSentence | ) ) |
| sentenceTerm | ::= | ( predicate | <LPAREN> ksSentence <RPAREN> | <NOT> sentenceTerm | <EXISTS> quantVars <COLON> ksSentence | <FORALL> quantVars <COLON> ksSentence | ksValue <EQUALS> ksValue | <B> ksSymbolOrVar <COLON> ksSentence | <I> ( ksSymbolOrVar )? <COLON> ksSentence | <I_THAT> ( ksSymbolOrVar )? <COLON> ksSentence | <D> ( ksSymbolOrVar )? <COLON> ksSentence ) |
| quantVars | ::= | <IND_VARIABLE> ( <COMMA> <IND_VARIABLE> )* |
| predicate | ::= | ksSymbol <LPAREN> ( logValueSeries )? <RPAREN> |
| logicalLiteral | ::= | ( <NOT> )? predicate |
| ksValue | ::= | ( intLiteral | doubleLiteral | stringLiteral | booleanLiteral | ksVar | identifierValue | list | ksEvent | ksAction | ksMessage | ksReification | ksReference ) ( <FIELD_DEREF> ( ksSymbol ) )? |
| intLiteral | ::= | <INTEGER_LITERAL> |
| doubleLiteral | ::= | <DOUBLE_LITERAL> |
| stringLiteral | ::= | stringValue |
| stringValue | ::= | <STRING_LITERAL> |
| booleanLiteral | ::= | <TRUE> |
| | | <FALSE> | |
| ksVar | ::= | <IND_VARIABLE> |
| ksSymbol | ::= | ( <QUALIFIED_NAME> | <LT> <URI> <URI_GT> | <WORD> ) |
| list | ::= | <LBRACKET> ( logValueSeries )? <RBRACKET> |
| term | ::= | ksSymbol <LPAREN> ( logValueSeries )? <RPAREN> |
| ksIdentifierOrVar | ::= | ( identifierValue | ksVar ) |
| identifierValue | ::= | ksSymbol ( <LPAREN> ( logValueSeries )? <RPAREN> ( namedArgsList )? )? |
| fixedSymbolicValue | ::= | ksSymbol ( <LPAREN> ( logValueSeries )? <RPAREN> )? |
| ksEventOrMessage | ::= | ( ksEvent | ksMessage ) |
| ksEvent | ::= | <EVENT> identifierValue |
| ksAction | ::= | <ACTION> identifierValue |
| ksMessage | ::= | <MESSAGE> ( identifierValue | namedArgsList ) |
| namedArgsList | ::= | <LBRACE> ( namedPair )? ( <COMMA> namedPair )* <RBRACE> |
| namedPair | ::= | ksSymbol <EQUALS> ksValue |
| ksReification | ::= | <SENTENCE> <LPAREN> ksSentence <RPAREN> |
| ksReference | ::= | ( <IOTA> | <ALL> | <ANY> ) <LPAREN> ksValue <COMMA> ksSentence <RPAREN> |
| logValueSeries | ::= | ksValue ( <COMMA> ksValue )* |
| ksSymbolOrVar | ::= | ( ksVar | ksSymbol ) |
| trigger | ::= | triggerTerm ( ( <LOG_AND> trigger ) | ( <LOG_OR> trigger ) )? |
| triggerTerm | ::= | ( <ON> triggerExpr | <AFTER> triggerExpr | <LPAREN> trigger <RPAREN> ) |
| triggerExpr | ::= | ( ksVar <AS> )? ( <ANY> <EVENT> | <ANY> <MESSAGE> | ksEventOrMessage ( <TAG> triggerTag )? ) |
| triggerTag | ::= | ( intLiteral | ksVar ) |
| occurredExpr | ::= | triggerExpr ( ( <LOG_AND> occurredExpr ) | ( <LOG_OR> occurredExpr ) )? |
| duration | ::= | <INTEGER_LITERAL> <MS> |
| | | <INTEGER_LITERAL> <S> | |
| | | <INTEGER_LITERAL> <MIN> | |
| | | <INTEGER_LITERAL> <H> | |
| | | <INTEGER_LITERAL> <COLON> <INTEGER_LITERAL> <COLON> <INTEGER_LITERAL> ( <DOT> <INTEGER_LITERAL> )? | |
| namedParameterList | ::= | <LBRACE> ( ksSymbol <TILDE> ksValue ( <COMMA> ksSymbol <TILDE> ksValue )* )? <RBRACE> |
| arithExpression | ::= | expression1 ( ( <PLUS> arithExpression ) | ( <MINUS> arithExpression ) )? |
| expression1 | ::= | expression2 ( ( <TIMES> expression1 ) | ( <DIVIDE> expression1 ) | ( <REMAIN> expression1 ) )? |
| expression2 | ::= | ksValue |
| | | <LPAREN> arithExpression <RPAREN> | |
| | | ksSymbol <LPAREN> arithExpression <RPAREN> | |
| | | ksSymbol <LPAREN> arithExpression <COMMA> arithExpression <RPAREN> |