next up previous contents
Next: Result Up: Corese RDF Query and Previous: A person related to   Contents

Grammar

This section presents the syntax of the RDF Query Language.

QUERY ::=  SELECT DEFINE STAT ;


SELECT ::= select [one] [more] [list] [merge] GROUP COUNT SORT  [distinct] VARLIST DISPLAY MAX where  |  ;

GROUP ::=  group VAR GROUP | ;

COUNT ::= count VAR | ;

VARLIST ::= QNAME VARLIST | VAR VARLIST | ;

VAR ::= '?'[a-zA-Z0-9]*


SORT ::=  sort [reverse] VAR SORT | 

          sort [reverse] count SORT  |   ;


DISPLAY ::= display table | display flat | display asquery | display INT | ;

MAX ::= PROJECTION RESULT ;

PROJECTION ::= projection INT | ;

RESULT ::= result INT | ;



DEFINE ::=  PREF DEFINE | ;

PREF ::= PREFIX as NAMESPACE ;




STAT ::=  STRIPLE | STAT STAT | OR | STAT and STAT | 

          SOURCE  '(' STAT ')' | OPTION '(' STAT ')' ; 

OR ::= STAT or STAT ;


STRIPLE ::= SOURCE TRIPLE | CONSTRAINT ;

TRIPLE ::= RES PROP VALUE ;

SOURCE ::= source VAR | source QNAME | ;

OPTION ::=  | 'option' ;

CONSTRAINT ::=  RES is NODETEST | EXP OPER EXP ;

NODETEST ::= 'BlankNode' | 'Literal' | 'URI' | 'Bound' ;


EXP ::= TERM '+' EXP | TERM '-' EXP | TERM ;

TERM ::= FACT '*' TERM | FACT '/' TERM | FACT ;

FACT ::= '(' EXP ')' | '-' FACT | VAR | LIT | QNAME ;


RES ::=  VAR | QNAME ;

VALUE ::= RES |  VAR LANG | LIT ;

LIT ::= NUMBER | NUMBER '^^' DATATYPE | STR LANG | STR '^^' DATATYPE ;

STR ::=  '"' STRING '"' | "'" STRING "'" ;

LANG ::= | @en | @fr | ... ;




PROP ::= PQUALIFIER PROPERTY | ALL PROPERTY PATH ;

PROPERTY ::= QNAME | VAR |  QNAME :: VAR ;

PQUALIFIER ::=  not:: | direct:: |  ;

ALL ::= all | ;

PATH ::= '{' INT '}' | '[' INT ']' ;


OPER ::= SOPER | TOPER ;

SOPER ::= '<' | '<=' | '=' | '==' | '>=' | '>' | '!=' | '!==' | '~' | '!~' | 'in' |
'!in' | '^' | '!^' ;


TOPER ::= '<:' | '<=:' | '=:' | '>=:' | '>:' | '!<:' | '!<=:' | '!=:' |
          '!>=:' | '!>:' ;

QNAME : XML Namespace Qualified Name



Olivier Corby 2005-07-01