Грамматика языка CCCR (v2.4)

Язык конструирования контекстно связанных рекурсивных вычислений (context-compute-construct-recursive) для трансляции иерархических (или сводимых к иерархическим) структур данных в RDF представление

Пример

Легенда:

  • ::= - эквивалентно
  • ( ... ) - конструкция встречается один раз
  • ( ... )? - конструкция встречается ноль или один раз
  • ( ... ) * - конструкция может встречаться ноль или несколько раз
  • | - "или" одна из перечисленных конструкций

  1. Базовые конструкции:

    1. CCCR ::= { "description" : Description }
    2. Description ::= { ( Context )? ( ,About )? (, Properties )? }
    3. Properties ::= "properties" : [ Property ( , Property ) * ]
    4. Property ::= { QName (, Context )? ( , URI | Literal | Description ) }
  2. Частные конструкции:

    1. URI ::= "URI" : URIExpr | { computedExpression }
    2. Context ::= { ( PredicatesList ) ( , PseudoVariable ) * }
    3. pseudoVariable ::= Name : ( Literal | computedExpression )
    4. About ::= "about" : ( Literal | computedExpression )
    5. QName ::= "QName" : { { "nameSpace" : URIExpr } , { "PrefixedName" : PrefixedName } }
    6. PredicatesList ::= "predicates" : [ LiteralExpr (, LiteralExpr ) * ] | { computedExpression } - задает перечесление предикатов, к которым итеративно будет применяться инструктуция
    7. Literal ::= "literal" : LiteralExpr | { computedExpression }
    8. computedExpression ::= "compute" : { xquery | sparql | include }
    9. xquery ::= "xquery" : XQueryExpr | [ XQueryExpr ( , XQueryExpr ) ] | { include }
    10. sparql ::= "sparql" : SPARQLExpr | { ( { Context }, ) include }
    11. include ::= "include" : { URI }