head 1.1; access; symbols; locks; strict; comment @# @; 1.1 date 2007.01.09.00.00.00; author MoinMoin; state Exp; branches; next ; desc @Initial revision @ 1.1 log @Initial revision @ text @---+ Datasource Search Proposal I This proposal for a general search request unifies the FullSearch and the PartialSearch. It defines the search request and response on a RecordBasedApproach as opposed to the DocumentBasedApproach. ---+++++ Request Definition Based on the PartialSearch we suggest this structure for a request (ABCD example):
... search
* ...
There is no need to give a RecordDefinition as the RecordBasedApproach considers global elements of a ConceptualSchema to represent a single record. If multiple global elements are requested in order to extend a schema (as in the example above), all global elements refering to the same record internally (related inside the database) should be grouped by the protocol defined element. ---+++++ Schema Extension & Record Response The record based response presented below will be embedded in the SearchResponseTopStructure. This page only explains the record part of the search to be used within the top level structure including metadata defined by the SearchResponseTopStructure. The search is also meant for integrating data in a response from different ConceptualSchemas to support e.g. extension schemas for DarwinCore. The idea is to leave the structure below a root element definition immutable and only allow the addition ("inheritance") of new root elements within a RecordObject. So for example a RecordObject of DarwinCore looking like this: 2001-12-17T09:30:47-05:00 String String String String String String String String String could be extended with microbial data taken from another ConceptualSchema definition like this: 2001-12-17T09:30:47-05:00 String String String String String String String String String String String Complex data types (objects) like a ABCD unit would be immutable, as the ABCD schema would have to define slots for extending it with other elements. It would only be possible to extend the RecordObject at the same level as the ABCD unit, thus adding RecordObjectProperties. Imagine a ABCD unit RecordObject as this: String normalizedString normalizedString normalizedString 1967-08-13 normalizedString Specimen normalizedString String String normalizedString String String normalizedString normalizedString normalizedString normalizedString 0000-01-01T00:00 0000-01-01T00:00 normalizedString Extending this RecordObject with the same concepts as above in DarwinCore, you would get: String normalizedString normalizedString normalizedString 1967-08-13 normalizedString Specimen normalizedString String String normalizedString String String normalizedString normalizedString normalizedString normalizedString 0000-01-01T00:00 0000-01-01T00:00 normalizedString String String @