wiki-archive/twiki/data/TAPIR/BerlinMeetingProposal.txt

68 lines
4.7 KiB
Plaintext

---+ Results from the Berlin Protocol Meeting
---+++++ XQuery
The XqueryLanguage seems not appropiate for now, as not enough free tools are availbale and writing parsers on our own would be too much work and hard to confine.
---+++++ Changes agreed in Berlin
Improvement to the SecondProposal:
* Terminology
* provider=host: a whole provider software installation
* datasource=database="collection of objects": a single connected database or a datasubset e.g. visible through a view supporting different ConceptualSchemas
* resource: a single datasource bound to a single ConceptualSchema
* AccessPoints
* for providers supporting all RequestTypes
* metadata response returns metadata for the provider and all its datasources
* capabilities response returns ???
* initially do not merge responses from several datasources, although it might be desireable in the future, esp. for inventories.
* for datasources supporting all RequestTypes
* metadata response returns metadata for the provider and this datasource incl all "resources"=schemas with their record numbers
* capabilities response returns capability of this datasource. that is config&request type capabilities for each resource seperately
* Header
* leave request <type> attribute and generically name the element following header for all requests details "message"
* source repeatable with sequence important and the first source element being the original source
* source element keeps resource attribute to allow to specify origin of the data. might be repeated for a response of several datasources
* destination element repeatable to submit distributed queries to several and single providers
* destination element keeps resource attribute to allow adressing of several datasources within a single request to a provider
* remove compression element
* move detailed software/components complex type to provider related capability and just keep the overall versioning with <software name="xxx" version="xyz" BerlinMeetingProposal>
* RequestTypes
* PingRequest
* CapabilitiesRequest
* MetadataRequest
* InventoryRequest
* SearchRequest
* *open issue:* CustomSearch needed?
* metadata response, see MetadataProposalTwo
* drop IPR, insert supported schemas incl record count
* add logo URL
* attach date-last-updated to resource
* capabilities response, see CapabilitiesProposalThree
* ConceptualBindingProposalOne accepted. OK to use namespace declaration in xml manner. Concept identifier attribute can be called "path".
* SearchRequest
* search based on the full/partial search for a single configured ConceptualSchema
* allows to combine several schemas for a response (to use extension schemas) by specifying a list of qualified concepts instead. See SearchProposalTwo for details.
* always returns a valid document. in case mandatory data is missing, drop the record or branch. dont use NULLs in response.
* when requesting no concept at all, return only the mandatory concepts.
* request the root node of a schema to retrieve the full document
* allow to ask for BranchNodes to implicitly request all child LeafNodes
* sorting is not appropiate nor doable
* specify the top level structure of the search response in the protocol with a slot for metadata and one for the content defined as records.
* allow the response of multiple "datasets" with different metadata from a single datasource to suit the needs of databases like fishbase and systax
* allow the
* allow the metadata definition to be chosen by the provider and make it a mandatory part of the reponse that cannot be altered by any request. Do so for all paging and subsequent responses to the same client.
* InventoryRequest
* allow multiple concepts to be scanned
* optionally request sorting of result list. order by sequence of requested concepts if multiple.
* valid filter operators
* Logical: AND, OR, NOT with AND + OR taking multiple arguments while NOT is unary.
* Comparative: equals, lessThan, lessThanOrEquals, greaterThan, greaterThanOrEquals, like, in, isNull, isMapped
* filters
* allow search requests without filters (affects both).
* evaluate to false if concept is not mapped but compared
* insert info/warn diagnostic if unmapped concept encountered in request
* use common Error Codes and prefixes for classification of codes. To be specified in more detail.
* Using a single POST or GET parameter called "request" which contains either the XML message or an URL pointing to the XML message.