Project

General

Profile

Query » History » Revision 19

Revision 18 (Alison Craig, 03/04/2015 01:31 PM) → Revision 19/29 (Alison Craig, 03/04/2015 01:32 PM)

Query 
 ===== 
 The Query parameter are named as an Interest (Interest) 

     /<prefix>/query/<query-parameters> 

 with a Data response of 

     /<prefix>/query/<query-parameters> 


 For the Query Protocol, the user will send query parameters as a JSON list, with the format: <tt>{[field1]=[search1],[field2]=[search2],?=[search3]</tt>} where <tt>field1</tt> and <tt>field2</tt> are Name components, <tt>?</tt> indicates an autocomplete search, and <tt>search*</tt> is what to use for searching on. <i>(See [[Schema]])</i> 

 In response, the Query backend of the Catalog will make Data available that includes a list of names that match the query. 

 ---- 

 <b>JSON Schemas</b> 

 <b><i>JSON Query</i></b> 
 The query name is formatted JSON stored in the query-parameters of the Interest: 

      /<prefix>/query/<query-parameters> 

 ``` 

 { 
     "$schema": "http://json-schema.org/draft-04/schema#", 
     "title": "catalog query", 
     "type": "object", 
     "items": { 
         "title": "query parameters", 
         "type": "object", 
         "properties": { 
             "name": { 
                 "type": "string" 
             }, 
             "activity": { 
                 "type": "string" 
             }, 
             "product": { 
                 "type": "string" 
             }, 
             "organization": { 
                 "type": "string" 
             }, 
             "model": { 
                 "type": "string" 
             }, 
             "experiment": { 
                 "type": "string" 
             }, 
             "frequency": { 
                 "type": "string" 
             }, 
             "modeling realm": { 
                 "type": "string" 
             }, 
             "variable name": { 
                 "type": "string" 
             }, 
             "ensemble member": { 
                 "type": "string" 
             }, 
             "ensemble": { 
                 "type": "string" 
             }, 
             "sample granularity": { 
                 "type": "string" 
             }, 
             "start time": { 
                 "type": "string" 
             }, 
             "field campaign": { 
                 "type": "string" 
             }, 
             "optical properties for radiation": { 
                 "type": "string" 
             }, 
             "grid resolution": { 
                 "type": "string" 
             }, 
             "output type": { 
                 "type": "string" 
             }, 
             "timestamp": { 
                 "type": "string" 
             }, 
             "?": { 
                 "description": "Autocomplete search field" 
                 "type": "string" 
             } 
         }, 
         "required": [] 
     } 
 } 

 ``` 


 <b><i>Query Results Data JSON</b></i> 
 With the query results, the Data returns the Query Results by using the query parameters (above) in the Name produced and a JSON Blob for the results:  

     /<prefix>/query/<query-parameters> 



 ``` 
 { 
     "$schema": "http://json-schema.org/draft-04/schema#", 
     "title": "Catalog Query Result", 
     "type": "array", 
     "items": { 
         "title": "QueryResults", 
         "type": "object", 
         "properties": { 
             "Length": { 
                 "description": "Total number of results" 
                 "type": "integer" 
             }, 
             "View": { 
                "minimum": 2 
                "maximum": 2 
                "description": "Pair of integers indicating which subset of the results we are receiving (first value being the lower index, second the upper index)"  
                "type": Array 
             }, 
             "Results": { 
                "description": "List of NDN names" 
                "type": Array 
             }, 
             "Next": { 
                 "description": "Autocomplete search potential next field(s)" 
                 "type": Array 
             } 
         }, 
         "required": [Length,View] 
     }, 
    
 } 
 ```