wiki-archive/twiki/data/TAPIR/GetInvokedOperations.txt,v

1164 lines
17 KiB
Plaintext
Raw Normal View History

head 1.45;
access;
symbols;
locks; strict;
comment @# @;
1.45
date 2007.01.09.00.00.00; author MoinMoin; state Exp;
branches;
next 1.44;
1.44
date 2007.01.09.00.00.00; author MoinMoin; state Exp;
branches;
next 1.43;
1.43
date 2007.01.09.00.00.00; author MoinMoin; state Exp;
branches;
next 1.42;
1.42
date 2007.01.09.00.00.00; author MoinMoin; state Exp;
branches;
next 1.41;
1.41
date 2007.01.09.00.00.00; author MoinMoin; state Exp;
branches;
next 1.40;
1.40
date 2007.01.09.00.00.00; author MoinMoin; state Exp;
branches;
next 1.39;
1.39
date 2007.01.09.00.00.00; author MoinMoin; state Exp;
branches;
next 1.38;
1.38
date 2007.01.09.00.00.00; author MoinMoin; state Exp;
branches;
next 1.37;
1.37
date 2007.01.09.00.00.00; author MoinMoin; state Exp;
branches;
next 1.36;
1.36
date 2007.01.09.00.00.00; author MoinMoin; state Exp;
branches;
next 1.35;
1.35
date 2007.01.09.00.00.00; author MoinMoin; state Exp;
branches;
next 1.34;
1.34
date 2007.01.09.00.00.00; author MoinMoin; state Exp;
branches;
next 1.33;
1.33
date 2007.01.09.00.00.00; author MoinMoin; state Exp;
branches;
next 1.32;
1.32
date 2007.01.09.00.00.00; author MoinMoin; state Exp;
branches;
next 1.31;
1.31
date 2007.01.09.00.00.00; author MoinMoin; state Exp;
branches;
next 1.30;
1.30
date 2007.01.09.00.00.00; author MoinMoin; state Exp;
branches;
next 1.29;
1.29
date 2007.01.09.00.00.00; author MoinMoin; state Exp;
branches;
next 1.28;
1.28
date 2007.01.09.00.00.00; author MoinMoin; state Exp;
branches;
next 1.27;
1.27
date 2007.01.09.00.00.00; author MoinMoin; state Exp;
branches;
next 1.26;
1.26
date 2007.01.09.00.00.00; author MoinMoin; state Exp;
branches;
next 1.25;
1.25
date 2007.01.09.00.00.00; author MoinMoin; state Exp;
branches;
next 1.24;
1.24
date 2007.01.09.00.00.00; author MoinMoin; state Exp;
branches;
next 1.23;
1.23
date 2007.01.09.00.00.00; author MoinMoin; state Exp;
branches;
next 1.22;
1.22
date 2007.01.09.00.00.00; author MoinMoin; state Exp;
branches;
next 1.21;
1.21
date 2007.01.09.00.00.00; author MoinMoin; state Exp;
branches;
next 1.20;
1.20
date 2007.01.09.00.00.00; author MoinMoin; state Exp;
branches;
next 1.19;
1.19
date 2007.01.09.00.00.00; author MoinMoin; state Exp;
branches;
next 1.18;
1.18
date 2007.01.09.00.00.00; author MoinMoin; state Exp;
branches;
next 1.17;
1.17
date 2007.01.09.00.00.00; author MoinMoin; state Exp;
branches;
next 1.16;
1.16
date 2007.01.09.00.00.00; author MoinMoin; state Exp;
branches;
next 1.15;
1.15
date 2007.01.09.00.00.00; author MoinMoin; state Exp;
branches;
next 1.14;
1.14
date 2007.01.09.00.00.00; author MoinMoin; state Exp;
branches;
next 1.13;
1.13
date 2007.01.09.00.00.00; author MoinMoin; state Exp;
branches;
next 1.12;
1.12
date 2007.01.09.00.00.00; author MoinMoin; state Exp;
branches;
next 1.11;
1.11
date 2007.01.09.00.00.00; author MoinMoin; state Exp;
branches;
next 1.10;
1.10
date 2007.01.09.00.00.00; author MoinMoin; state Exp;
branches;
next 1.9;
1.9
date 2007.01.09.00.00.00; author MoinMoin; state Exp;
branches;
next 1.8;
1.8
date 2007.01.09.00.00.00; author MoinMoin; state Exp;
branches;
next 1.7;
1.7
date 2007.01.09.00.00.00; author MoinMoin; state Exp;
branches;
next 1.6;
1.6
date 2007.01.09.00.00.00; author MoinMoin; state Exp;
branches;
next 1.5;
1.5
date 2007.01.09.00.00.00; author MoinMoin; state Exp;
branches;
next 1.4;
1.4
date 2007.01.09.00.00.00; author MoinMoin; state Exp;
branches;
next 1.3;
1.3
date 2007.01.09.00.00.00; author MoinMoin; state Exp;
branches;
next 1.2;
1.2
date 2007.01.09.00.00.00; author MoinMoin; state Exp;
branches;
next 1.1;
1.1
date 2007.01.09.00.00.00; author MoinMoin; state Exp;
branches;
next ;
desc
@Initial revision
@
1.45
log
@Revision 45
@
text
@All TAPIR operations can alternatively be invoked with a http GET URL. The operation name itself is specified in a parameter called "op". If not specified the default operation is metadata.
---+++ Global parameters (valid for all operations)
* op=[ping,metadata,capabilities,inventory,search]
* default=metadata
* cardinality=1..1
* xslt=[URI]
* default=null
* cardinality=0..1
* xslt-apply=[true,false,1,0]
* default=false
* cardinality=0..1
* log-only=[true,false,1,0]
* default=false
* cardinality=0..1
---+++ The accepted list of parameters for each operation
---+++++ ping
* op=[ping,p]
---+++++ metadata
* op=[metadata,m]
---+++++ capabilities
* op=[capabilities,c]
---+++++ inventory
* op=[inventory,i]
* count=[true,false,1,0]
* default=false
* cardinality=0..1
* start=[[integer][>= 1]]
* default=1
* cardinality=0..1
* limit=[[integer][>=0, NONE]]
* default=NONE
* cardinality=0..1
Then either a "template" parameter must be present:
* template=[URI]
* default=null
* cardinality=0..1
Or one or more concepts with an optional filter:
* concept=[[fully][qualified or alias]]
* default=(UNDEFINED which must be interpreted by implementation to mean no concepts and therefore empty response)
* cardinality=0..n
* filter=[expression]
* default=null
* cardinality=0..1
Parameter "template" takes precedence over "concept". So if both are present, "concept" (and the optional "filter") should be ignored.
---+++++ search
* op=[search,s]
* count=[true,false,1,0]
* default=false
* cardinality=0..1
* start=[[integer][>= 1]]
* default=1
* cardinality=0..1
* limit=[[integer][>=0, NONE]]
* default=NONE
* cardinality=0..1
Then either a "template" parameter must be present:
* template=[URI]
* default=null
* cardinality=0..1
Or a "model" parameter with optional "partial", "filter" and "orderby":
* model=[URI]
* default=null
* cardinality=0..1
* partial=[XPath]
* default=null
* cardinality=0..n
* filter=[expression]
* default=null
* cardinality=0..1
* orderby=[[fully][qualified or alias]]
* default=null
* cardinality=0..n
Parameter "template" takes precedence over "model". So if both are are present, "model" (and the optionals "partial", "filter" and "orderby") should be ignored.
* envelope=[true,false,1,0]
* default=true
* cardinality=0..1
---+++ Filter encoding
Filter expressions in GET requests will be infix equivalents to their XML counterparts
---++++ Order of Operations
The precedence of operators follows these rules:
<verbatim>
E: AOP, COP, LOP
AOP: Mul, Div, Add, Sub
COP: Equals
LOP: Not, And, Or
</verbatim>
Blocks can be formed by using simple parenthesis ( )
---++++ BNF Grammar For GET Filter expressions
WikiPedia:Backus-Naur_form
<verbatim>
<expression> ::= <logical_operator> |
<comparative_operator>
<comparative_operator> ::= <unary_comparison_expression> |
<binary_comparison_expression> |
<unbound_comparison_expression>
<logical_operator> ::= <unary_logical_expression> | <binary_logical_expression>
<literal> ::= '"' <string> '"'
<concept> ::= <concept_alias> |
<qualified_concept>
<concept_alias> ::= <local_concept_alias> "@@" <namespace_alias>
<local_concept_alias> ::= <string>
<namespace_alias> ::= <string>
<qualified_concept> ::= <string>
<value> ::= <literal> |
<concept> |
<arithmetic_expression>
<arithmetic_expression> ::= <value> <arithmetic_operator> <value>
<unary_comparison_expression> ::= <unary_comparison_operator> <concept>
<binary_comparison_expression> ::= <value> <binary_comparison_operator> <value>
<unbound_comparison_expression> ::= <unbound_comparison_operator> <expression> {<expression>}
<unary_logical_expression> ::= <unary_logical_operator> <expression>
<binary_logical_expression> ::= <expression> <binary_logical_operator> <expression>
<unary_comparison_operator> ::= "isNull"
<binary_comparison_operator> ::= "Equals" |
"Like" |
"GreaterThan" |
"LessThan" |
"GreaterThanOrEquals" |
"LessThanOrEquals"
<unbound_comparison_operator> ::= "In"
<unary_logical_operator> ::= "Not"
<binary_logical_operator> ::= "And" |
"Or"
<arithmetic_operator> ::= <ADD> |
<DIV> |
<MUL> |
<SUB>
<ADD> ::= "+"
<SUB> ::= "-"
<MUL> ::= "*"
<DIV> ::= "/"
<string> ::= <any_char> { <any_char> }
</verbatim>
---+++++ Filter example
<verbatim>
isnull country@@dwc2 or FullScientificName@@abcd206 like "Abies*" and country@@dwc2 equals "Spain"
would be more explicit:
((isnull country@@dwc2) or((FullScientificName@@abcd206 like "Abies*") and(country@@dwc2 equals "Spain")))
</verbatim>
@
1.44
log
@Revision 44
@
text
@d125 1
d127 65
a191 42
S := E
"Start symbol"
E := LOP | COP
"Expression"
COP := UCE | BCE | MCE
"Comparative operator"
LOP := ULE | BLE
"Logical operator"
L := "literal"
"Literal"
C := ALIAS | QCONCEPT
"Concept"
ALIAS := IdAlias@@NsAlias
"Concept alias"
QCONCEPT := String
"Qualified concept"
VAL := L | C | AE
"Value"
AE := VAL AOP VAL
"Arithmetic expression"
UCE := UCOP C
"Unary comparison expression"
BCE := VAL BCOP VAL
"Binary comparison expression"
MCE := MCOP E*
"Multiple comparison expression"
ULE := ULOP E
"Unary logical expression"
BLE := E BLOP E
"Binary logical expression"
UCOP := isNull
"Unary comparison operators"
BCOP := Equals | Like | GreaterThan | LessThan | GreaterThanOrEquals | LessThanOrEquals
"Binary comparison operators"
MCOP := In
"Multiple comparison operators"
ULOP := Not
"Unary logical operators"
BLOP := And | Or
"Binary logical operators"
AOP := ADD | DIV | MUL | SUB
"Arithmetic operators"
@
1.43
log
@Revision 43
@
text
@d140 1
a140 1
QCONCEPT := FullNamespace::ConceptId
d151 1
a151 1
"Multiple comparison expression" example: IN ("1","2","3")
@
1.42
log
@Revision 42
@
text
@a108 12
---+++++ view
* op=[view,v]
* view=[URI]
* default=null
* cardinality=1..1
* envelope=[true,false,1,0]
* default=false
* cardinality=0..1
@
1.41
log
@Revision 41
@
text
@d46 1
a46 1
Then either a template parameter must be present:
d62 1
a62 1
Parameter "template" takes precedence over "concept" and "filter". So if all of them are present, "concept" and "filter" should be ignored.
d79 8
d89 1
a89 1
* cardinality=1..1
d103 2
a108 1
@
1.40
log
@Revision 40
@
text
@d46 8
d56 1
a56 1
* cardinality=1..n
d62 2
@
1.39
log
@Revision 39
@
text
@a53 5
* orderby=[[fully][qualified or alias]]
* default=null
* cardinality=0..n
@
1.38
log
@Revision 38
@
text
@d1 1
a1 3
All TAPIR operations can alternatively be invoked with a http GET URL.
The operation name itself is specified in a parameter called "op".
If not specified the default operation is metadata.
d16 4
@
1.37
log
@Revision 37
@
text
@d134 1
a134 1
ALIAS := NsAlias@@IdAlias
@
1.36
log
@Revision 36
@
text
@d7 1
a7 1
* default=capabilities
a9 4
* envelope=[true,false,1,0]
* default=false
* cardinality=0..1
a25 1
d74 1
a74 1
* cardinality=0..1
d88 5
d96 8
@
1.35
log
@Revision 35
@
text
@d3 1
a3 1
If not specified the default operation is capabilities.
@
1.34
log
@Revision 34
@
text
@d160 1
a160 1
isnull country@@dwc or FullScientificName@@abcd206 like "Abies*" and country@@dwc equals "Spain"
d164 1
a164 1
((isnull country@@dwc) or((FullScientificName@@abcd206 like "Abies*") and(country@@dwc equals "Spain")))
@
1.33
log
@Revision 33
@
text
@d3 1
a3 1
If not specified the default operation is capabilities/metadata (TBD).
@
1.32
log
@Revision 32
@
text
@d160 1
a160 1
isnull*myConcept and*freak like "Carlos*" or*country equals "Spain"
d164 1
a164 1
(((isnull*myConcept) and (*freak like "Carlos*")) or (*country equals "Spain"))
@
1.31
log
@Revision 31
@
text
@d124 1
a124 1
C := *concept
d126 4
@
1.30
log
@Revision 30
@
text
@d93 1
a93 1
===== view=====
@
1.29
log
@Revision 29
@
text
@d25 1
a25 1
* op=ping
d28 1
a28 1
* op=metadata
d32 1
a32 1
* op=capabilities
d35 1
a35 1
* op=inventory
d63 1
a63 1
* op=search
d93 2
@
1.28
log
@Revision 28
@
text
@d79 1
a79 1
* cardinality=0..1 GetInvokedOperations!\ When template and model are present model is ignored GetInvokedOperations!\
@
1.27
log
@Revision 27
@
text
@d57 1
a57 1
* orderby=[XPath]
d89 1
a89 1
* orderby=[XPath]
@
1.26
log
@Revision 26
@
text
@d57 1
a57 1
* template=[URI] GetInvokedOperations!\ When a template is present concept&filter are ignored GetInvokedOperations!\
d59 1
a59 1
* cardinality=0..1
a80 4
* template=[URI]
* default=null
* cardinality=0..1
d89 4
@
1.25
log
@Revision 25
@
text
@d49 1
a49 1
* concept=[[*however][we decide to represent them]]
d53 9
@
1.24
log
@Revision 24
@
text
@d2 1
a2 1
The operation name itself is specified in a parameter called "operation".
@
1.23
log
@Revision 23
@
text
@d14 1
a14 1
* xsl=[URI]
d18 1
a18 1
* xsl-apply=[true,false,1,0]
@
1.22
log
@Revision 22
@
text
@d10 9
a18 1
* envelope=[true,false]
d37 1
a37 1
* count=[true,false]
d56 1
a56 1
* count=[true,false]
@
1.21
log
@Revision 21
@
text
@d60 6
a65 2
* view=[[however][we decide to represent them]]
* default=???
d68 3
a70 1
* partial=[]
@
1.20
log
@Revision 20
@
text
@d132 1
d134 1
@
1.19
log
@Revision 19
@
text
@d95 1
a95 1
LOP := ULE | MLE
d113 2
a114 2
MLE :=
"Multiple logical expression"
d123 2
a124 2
MLOP := And | Or
"Multiple logical operators"
@
1.18
log
@Revision 18
@
text
@d77 1
d85 2
d109 2
a110 2
MCE :=
"Multiple comparison expression"
d132 2
@
1.17
log
@Revision 17
@
text
@d125 5
@
1.16
log
@Revision 16
@
text
@d87 1
d89 1
d91 1
d93 1
d95 1
d97 1
d99 1
d101 1
d103 1
d105 1
d107 1
d109 1
d111 1
d113 1
d115 1
d117 1
d119 1
d121 1
d123 1
@
1.15
log
@Revision 15
@
text
@d86 7
a92 7
S := E
E := LOP | COP
COP := UCE | BCE | MCE
LOP := ULE | MLE
L := "literal"
C := *concept
VAL := L | C | AE
@
1.14
log
@Revision 14
@
text
@d77 1
a77 1
d82 1
a82 1
d85 1
a85 1
d105 1
@
1.13
log
@Revision 13
@
text
@d74 31
a104 1
Filter expressions in GET requests will be infix equivalents to their XML counterparts Where grouping cannot be implied by normal order of operations
@
1.12
log
@Revision 12
@
text
@d41 1
a41 1
* concept=[[however][we decide to represent them]]
d65 10
@
1.11
log
@Revision 11
@
text
@d1 1
a1 1
All (?) TAPIR operations can alternatively be invoked with a http GET URL.
@
1.10
log
@Revision 10
@
text
@d61 4
a64 2
* default=(UNDEFINED which must be interpreted by implementation to mean no concepts and therefore empty response)
* cardinality=1..n
@
1.9
log
@Revision 9
@
text
@d6 1
a6 1
* op=[ping,metadata,capabilities,inventory,earch]
d47 16
a62 4
* view: The URI of a view or the alias specified by the local provider (not globally unique)
* start:
* limit:
*
@
1.8
log
@Revision 8
@
text
@d5 1
a5 1
=== Global parameters (valid for all operations)
@
1.7
log
@Revision 7
@
text
@d5 9
d17 1
a17 1
* operation=ping
d20 2
a21 1
* operation=metadata
d24 1
a24 1
* operation=capabilities
d27 1
a27 1
* operation=inventory
d46 1
a46 1
* operation=search
@
1.6
log
@Revision 6
@
text
@d21 1
a21 1
* cardinality=1
d23 3
a25 3
* start=[[integer][>= 0]]
* default=0
* cardinality=1
d27 3
a29 3
* limit=[[integer][>=0]]
* default=1
* cardinality=1
d31 3
a33 3
* concept=[[any][string (if URL, must be URL encoded)]]
* default=null
* cardinality=n
@
1.5
log
@Revision 5
@
text
@d24 1
a24 1
* default=1
@
1.4
log
@Revision 4
@
text
@d23 1
a23 1
* start=[[integer][> 1]]
@
1.3
log
@Revision 3
@
text
@d20 3
a22 2
default=false
cardinality=1
d24 3
a26 2
default=1
cardinality=1
d28 3
a30 2
default=1
cardinality=1
d32 2
a33 2
default=null
cardinality=n
@
1.2
log
@Revision 2
@
text
@d19 13
a37 1
@
1.1
log
@Initial revision
@
text
@d5 3
a7 2
The accepted list of parameters for each operation:
---+++ ping
d10 1
a10 1
---+++ metadata
d13 1
a13 1
---+++ capabilities
d16 1
a16 1
---+++ inventory
d19 1
a19 1
---+++ search
a25 2
@