Changes between Version 70 and Version 71 of FCS-Specification-ScrapBook
- Timestamp:
- 03/12/14 17:52:24 (10 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
FCS-Specification-ScrapBook
v70 v71 31 31 3. '''Explicitly list supported Data Views by collection''': Amend the Endpoint Description to explicitly encode which Data Views are supported by a given collection. The semantics between parent-child is, that children `MUST` "inherit" the Data Views of the parent, i.e. a child collection must support all Data Views supported by the parent collection. Something along the lines of: 32 32 {{{#!xml 33 <ed:EndpointDescription xmlns:ed="http://clarin.eu/fcs/ 1.0/endpoint-description">33 <ed:EndpointDescription xmlns:ed="http://clarin.eu/fcs/endpoint-description"> 34 34 <ed:Profile>basic</ed:Profile> 35 35 <ed:SupportedDataViews> … … 66 66 4. '''Endpoint Capabilities''': `<Capability>` elements in the Endpoint Description verbosely describe capabilities of an Endpoint in a more fine grained fashion than a Profile. A Profile is a collection of capabilities. Endpoint Description could look like the following: 67 67 {{{#!xml 68 <ed:EndpointDescription xmlns:ed="http://clarin.eu/fcs/ 1.0/endpoint-description">68 <ed:EndpointDescription xmlns:ed="http://clarin.eu/fcs/endpoint-description"> 69 69 <ed:Profile>basic</ed:Profile> 70 70 <ed:Capabilities> … … 218 218 The following XML namespace names and prefixes are used throughout this specification. The column "Recommended Syntax" indicates, which syntax variant `SHOULD` be used by the Endpoint to serialize the XML response. 219 219 ||=Prefix =||=Namespace Name =||=Comment =||= Recommended Syntax =|| 220 || `fsc` || `http://clarin.eu/fcs/ 1.0`|| CLARIN-FCS Resources || prefixed ||221 || `ed` || `http://clarin.eu/fcs/ 1.0/endpoint-description`|| CLARIN-FCS Endpoint Description || prefixed ||222 || `hits` || `http://clarin.eu/fcs/ 1.0/hits`|| CLARIN-FCS Generic Hits || prefixed ||220 || `fsc` || `http://clarin.eu/fcs/resource` || CLARIN-FCS Resources || prefixed || 221 || `ed` || `http://clarin.eu/fcs/endpoint-description` || CLARIN-FCS Endpoint Description || prefixed || 222 || `hits` || `http://clarin.eu/fcs/dataview/hits` || CLARIN-FCS Generic Hits || prefixed || 223 223 || `sru` || `http://www.loc.gov/zing/srw/` || SRU || prefixed || 224 224 || `diag` || `http://www.loc.gov/zing/srw/diagnostic/` || SRU Diagnostics || prefixed || … … 266 266 ''Basic profile'':: 267 267 Endpoints `MUST` support ''term-only'' queries. \\ 268 Endpoints `SHOULD` support ''terms'' combined with boolean operator queries (''AND'' and ''OR''), including sub queries. Endpoints `MAY` also support ''NOT'' or ''PROX'' operator queries. If the Endpoint does not support a query, i.e. the used operators are not supported by the Endpoint, it `MUST` return an appropriate error message using the appropriate SRU diagnostic. \\268 Endpoints `SHOULD` support ''terms'' combined with boolean operator queries (''AND'' and ''OR''), including sub-queries. Endpoints `MAY` also support ''NOT'' or ''PROX'' operator queries. If the Endpoint does not support a query, i.e. the used operators are not supported by the Endpoint, it `MUST` return an appropriate error message using the appropriate SRU diagnostic. \\ 269 269 Examples for valid CQL queries for the ''basic profile'': 270 270 {{{ … … 306 306 The elements `<fcs:Resource>`, `<fcs:ResourceFragment>` and `<fcs:DataView>` `MAY` carry a `@pid` and/or a `@ref` attribute, which allows linking to the original data represented by the Resource, Resource Fragment, or Data View. A `@pid` attribute `MUST` contain a valid persistent identifier, a `@ref` `MUST` contain valid URI, i.e. a "plain" URI without the additional semantics of being a persistent reference. 307 307 308 Endpoints `MUST` use the identifier `http://clarin.eu/fcs/ 1.0` for the ''responseItemType'' (= content for the `<sru:recordSchema>` element) in SRU responses.308 Endpoints `MUST` use the identifier `http://clarin.eu/fcs/resource` for the ''responseItemType'' (= content for the `<sru:recordSchema>` element) in SRU responses. 309 309 310 310 Endpoints `MAY` serialize hits as multiple Data Views, however they `MUST` provide the Generic Hits (HITS) Data View either encoded as a Resource Fragment (if applicable), or otherwise within the Resource (if there is no reasonable Resource Fragment). Other Data Views `SHOULD` be put in a place that is logical for their content (as is to be determined by the Endpoint), e.g. a metadata Data View would most likely be put directly below Resource and a Data View representing some annotation layers directly around the hit is more likely to belong within a Resource Fragment. … … 312 312 [=#REF_Example_1]Example 1: 313 313 {{{#!xml 314 <fcs:Resource xmlns:fcs="http://clarin.eu/fcs/ 1.0" pid="http://hdl.handle.net/4711/00-15">314 <fcs:Resource xmlns:fcs="http://clarin.eu/fcs/resource" pid="http://hdl.handle.net/4711/00-15"> 315 315 <fcs:DataView type="application/x-clarin-fcs-hits+xml"> 316 316 <!-- data view payload omitted --> … … 322 322 [=#REF_Example_2]Example 2: 323 323 {{{#!xml 324 <fcs:Resource xmlns:fcs="http://clarin.eu/fcs/ 1.0" pid="http://hdl.handle.net/4711/08-15">324 <fcs:Resource xmlns:fcs="http://clarin.eu/fcs/resource" pid="http://hdl.handle.net/4711/08-15"> 325 325 <fcs:ResourceFragment> 326 326 <fcs:DataView type="application/x-clarin-fcs-hits+xml"> … … 334 334 [=#REF_Example_3]Example 3: 335 335 {{{#!xml 336 <fcs:Resource xmlns:fcs="http://clarin.eu/fcs/ 1.0"336 <fcs:Resource xmlns:fcs="http://clarin.eu/fcs/resource" 337 337 pid="http://hdl.handle.net/4711/08-15" ref="http://repos.example.org/file/text_08_15.html"> 338 338 <fcs:DataView type="application/x-cmdi+xml" … … 370 370 <!-- potential @pid and @ref attributes omitted --> 371 371 <fcs:DataView type="application/x-clarin-fcs-hits+xml"> 372 <hits:Result xmlns:hits="http://clarin.eu/fcs/ 1.0/hits">372 <hits:Result xmlns:hits="http://clarin.eu/fcs/dataview/hits"> 373 373 The quick brown <hits:Hit>fox</hits:Hit> jumps over the lazy dog. 374 374 </hits:Result> … … 379 379 <!-- potential @pid and @ref attributes omitted --> 380 380 <fcs:DataView type="application/x-clarin-fcs-hits+xml"> 381 <hits:Result xmlns:hits="http://clarin.eu/fcs/ 1.0/hits">381 <hits:Result xmlns:hits="http://clarin.eu/fcs/dataview/hits"> 382 382 The quick brown <hits:Hit>fox</hits:Hit> jumps over the lazy <hits:Hit>dog</hits:Hit>. 383 383 </hits:Result> … … 466 466 [=#REF_Example_4]Example 4: 467 467 {{{#!xml 468 <ed:EndpointDescription xmlns:ed="http://clarin.eu/fcs/ 1.0/endpoint-description">468 <ed:EndpointDescription xmlns:ed="http://clarin.eu/fcs/endpoint-description"> 469 469 <ed:Profile>basic</ed:Profile> 470 470 <ed:SupportedDataViews> … … 490 490 [=#REF_Example_5]Example 5: 491 491 {{{#!xml 492 <ed:EndpointDescription xmlns:ed="http://clarin.eu/fcs/ 1.0/endpoint-description">492 <ed:EndpointDescription xmlns:ed="http://clarin.eu/fcs/endpoint-description"> 493 493 <ed:Profile>basic</ed:Profile> 494 494 <ed:SupportedDataViews> … … 584 584 `<zr:serverInfo>` as defined in [#REF_Explain SRU-Explain] (`REQUIRED`) \\ 585 585 `<zr:databaseInfo>` as defined in [#REF_Explain SRU-Explain] (`REQUIRED`) \\ 586 `<zr:schemaInfo>` as defined in [#REF_Explain SRU-Explain] (`REQUIRED`). This element `MUST` contain an element `<zr:schema>` with an `@identifier` attribute with a value of `http://clarin.eu/fcs/ 1.0` and an `@name` attribute with a value of `fcs`. \\586 `<zr:schemaInfo>` as defined in [#REF_Explain SRU-Explain] (`REQUIRED`). This element `MUST` contain an element `<zr:schema>` with an `@identifier` attribute with a value of `http://clarin.eu/fcs/resource` and an `@name` attribute with a value of `fcs`. \\ 587 587 `<zr:configInfo>` is `OPTIONAL``\\ 588 588 An ''extended'' profile may define how the `<zr:indexInfo>` element is to be used, therefore it is `NOT RECOMMENDED` for Endpoints to define custom extensions. … … 641 641 </sru:echoedExplainRequest> 642 642 <sru:extraResponseData> 643 <ed:EndpointDescription xmlns:ed="http://clarin.eu/fcs/ 1.0/endpoint-description">643 <ed:EndpointDescription xmlns:ed="http://clarin.eu/fcs/endpoint-description"> 644 644 <ed:Profile>basic</ed:Profile> 645 645 <ed:SupportedDataViews> … … 670 670 The ''searchRetrieve'' operation of the SRU protocol is used for searching in the Resources that are provided by the Endpoint. The SRU protocol defines the serialization of request and response formats in [#REF_SRU_12 OASIS-SRU-12]. In SRU, search result hits are encoded down to a record level, i.e. the `<sru:record>` element, and SRU allows records to be serialized in various formats, so called ''record schemas''. 671 671 672 Endpoints `MUST` support the CLARIN-FCS record schema (see section [#resultFormat Result Format]) and `MUST` use the value `http://clarin.eu/fcs/ 1.0` for the ''responseItemType'' ("record schema identifier").672 Endpoints `MUST` support the CLARIN-FCS record schema (see section [#resultFormat Result Format]) and `MUST` use the value `http://clarin.eu/fcs/resource` for the ''responseItemType'' ("record schema identifier"). 673 673 Endpoints `MUST` represent exactly ''one hit'' within the Resource as one SRU record, i.e. `<sru:record>` element. 674 674 … … 686 686 <sru:records> 687 687 <sru:record> 688 <sru:recordSchema>http://clarin.eu/fcs/ 1.0</sru:recordSchema>688 <sru:recordSchema>http://clarin.eu/fcs/resource</sru:recordSchema> 689 689 <sru:recordPacking>xml</sru:recordPacking> 690 690 <sru:recordData> 691 <fcs:Resource xmlns:fcs="http://clarin.eu/fcs/ 1.0" pid="http://hdl.handle.net/4711/08-15">691 <fcs:Resource xmlns:fcs="http://clarin.eu/fcs/resource" pid="http://hdl.handle.net/4711/08-15"> 692 692 <fcs:ResourceFragment> 693 693 <fcs:DataView type="application/x-clarin-fcs-hits+xml"> … … 732 732 }}} 733 733 734 If an invalid persistent identifier is passed by the Client, the Endpoint `MUST` issue a `http://clarin.eu/fcs/ 1.0/diagnostic/1` diagnostic, i.e add the appropiate XML fragment to the `<sru:diagnostics>` element of the response. The Endpoint `MAY` treat this condition as fatal, i.e. just issue the diagnostic and perform no search or it `MAY` treat it a non-fatal and perform the search.734 If an invalid persistent identifier is passed by the Client, the Endpoint `MUST` issue a `http://clarin.eu/fcs/diagnostic/1` diagnostic, i.e add the appropiate XML fragment to the `<sru:diagnostics>` element of the response. The Endpoint `MAY` treat this condition as fatal, i.e. just issue the diagnostic and perform no search or it `MAY` treat it a non-fatal and perform the search. 735 735 736 736 … … 744 744 === List of diagnoistics === 745 745 Apart from the SRU diagnostics defined in [#REF_SRU_12 OASIS-SRU-12, Appendix C] and [#REF_LOC_DIAG LOC-DIAG], the following diagnostics are used in CLARIN-FCS. The "Details Format" column specifies what `SHOULD` be returned in the details field. If this column is blank, the format is "undefined" and the Endpoint `MAY` return whatever it feels appropriate, including nothing. 746 ||=Identifier URI 747 || `http://clarin.eu/fcs/ 1.0/diagnostic/1` || Persistent identifier passed in for restricting the search is invalid || The offending persistent identifier ||746 ||=Identifier URI =||=Description =||= Details Format =|| 747 || `http://clarin.eu/fcs/diagnostic/1` || Persistent identifier passed in for restricting the search is invalid || The offending persistent identifier || 748 748 749 749 == Non-normative Appendix … … 782 782 The following example illustrates how an extension can be embedded into the Result Format: 783 783 {{{#!xml 784 <fcs:Resource xmlns:fcs="http://clarin.eu/fcs/ 1.0" pid="hdl:4711/0815">784 <fcs:Resource xmlns:fcs="http://clarin.eu/fcs/resource" pid="hdl:4711/0815"> 785 785 <fcs:DataView type="application/x-clarin-fcs-hits+xml"> 786 <hits:Result xmlns:hits="http://clarin.eu/fcs/ 1.0/hits">786 <hits:Result xmlns:hits="http://clarin.eu/fcs/dataview/hits"> 787 787 The quick brown <hits:Hit>fox</hits:Hit> jumps over the lazy <hits:Hit>dog</hits:Hit>. 788 788 </hits:Result> … … 818 818 * [[oschonef|Oliver (IDS)]]: We could already prepare for for feature encoding, by adding adding a `<feature>` elements to the Endpoint Description. Or better call the capabilities, so something along the lines of: 819 819 {{{#!xml 820 <ed:EndpointDescription xmlns:ed="http://clarin.eu/fcs/ 1.0/endpoint-description">820 <ed:EndpointDescription xmlns:ed="http://clarin.eu/fcs/endpoint-description"> 821 821 <ed:Profile>basic</ed:Profile> 822 822 <ed:Capabilities> 823 823 <!-- capabilities should be identified by closed vocabulary; maybe encoded by URIs? --> 824 <ed:Capability>http://clarin.eu/fcs/ 1.0/feature/basic-search</ed:Capability>824 <ed:Capability>http://clarin.eu/fcs/feature/basic-search</ed:Capability> 825 825 <!-- actually the next would already be an extended capability beyond the basic profile --> 826 <ed:Capability>http://clarin.eu/fcs/ 1.0/feature/query-expansion</ed:Capability>826 <ed:Capability>http://clarin.eu/fcs/feature/query-expansion</ed:Capability> 827 827 </ed:Capabilities> 828 828 <!-- other EndpointDescription stuff ... --> … … 838 838 * [[oschonef|Oliver (IDS)]]: Yes, so do you think we should mark "supported dataviews" per collection/resource? Something along the lines like: 839 839 {{{#!xml 840 <ed:EndpointDescription xmlns:ed="http://clarin.eu/fcs/ 1.0/endpoint-description">840 <ed:EndpointDescription xmlns:ed="http://clarin.eu/fcs/endpoint-description"> 841 841 <ed:Profile>basic</ed:Profile> 842 842 <ed:SupportedDataViews>