364 | | === Endpoint Description and Identification === |
365 | | |
366 | | Yada Yada Yada ... |
| 363 | === Endpoint Description === |
| 364 | |
| 365 | Endpoints need to provide information about their capabilities to support auto-configuration of Clients, This capabilities include, among other information, the Profile that is supported by an Endpoint. The ''Endpoint Description'' mechanism provides the necessary facility to provide this information to the Clients. Endpoints `MUST` encode their capabilities using an XML format and embed this information into the SRU/CQL protocol as described in section [#explain Operation ''explain'']. The XML fragment generated by the Endpoint for the Endpoint Description `MUST` be valid according to the XML schema "[source:FederatedSearch/schema/Endpoint-Description.xsd Endpoint-Description.xsd]" ([source:FederatedSearch/schema/Endpoint-Description.xsd?format=txt download]). |
| 366 | |
| 367 | The XML fragment for ''Endpoint Description'' is encoded as an `<ed:EndpointDescription>` element, that contains the following children: |
| 368 | * one `<ed:Profile>` element (`REQUIRED`) \\ |
| 369 | The value of the `<ed:Profile>` element indicates the Profile, that is supported by the Endpoint. \\ |
| 370 | Valid values are: |
| 371 | * `basic`: the Endpoint supports the ''basic'' Profile \\ |
| 372 | '''NOTE''': a future CLARIN-FCS specification will introduce more values. |
| 373 | * one `<ed:SupportedDataViews>` (`REQUIRED`) \\ |
| 374 | A list of Data Views, that are supported by this Endpoint. This list is composed of one or more `<ed:SupportedDataView>` elements. The content of a `<ed:SupportedDataView>` `MUST` be the MIME type of a supported Data View, e.g. `application/x-clarin-fcs-hits+xml`. |
| 375 | * one `<ed:Collections>` element (`REQUIRED`) \\ |
| 376 | A list of (top-level) collections that are available at the Endpoint. The `<ed:Collections>` element contains one or more `<ed:Collection>` elements (see below). An Endpoint `MUST` declare at least one (top-level) collection. |
| 377 | |
| 378 | The `<ed:Collection>` element contains a detailed description of a collection that is available at an Endpoint. A collection is a searchable entity, e.g. a single corpus. The `<ed:Collection>` has a mandatory `@pid` attribute, that contains persistent identifier of the collection. This value `MUST` be the same as the ''!MdSelfLink'' of the CMDI record describing the collection. The `<ed:Collection>` element contains the following children: |
| 379 | * one or more `<ed:Title>` elements (`REQUIRED`) \\ |
| 380 | A human readable title for the collection. A `REQUIRED` `@xml:lang` attribute indicates the language of the title. An English title is `REQUIRED`. The list of titles `MUST NOT` contain duplicate entries for the same language. |
| 381 | * zero or more `<ed:Description>` elements (`OPTIONAL`) \\ |
| 382 | An optional human-readable description of the collection. Is `SHOULD` be at most one sentence. A `REQUIRED` `@xml:lang` attribute indicates the language of the description. If supplied, an English version is `REQUIRED`. The list of descriptions `MUST NOT` contain duplicate entries for the same language. |
| 383 | * zero or one `<ed:LandingPageURI>` element (`OPTIONAL`) \\ |
| 384 | A link to a website for this collection, e.g. a landing page for a collection, i.e. a web-site that describes a corpus. |
| 385 | * one `<ed:Languages>` element (`REQUIRED`) \\ |
| 386 | The (relevant) languages available within the collection. The `<ed:Languages>` element contains one or more `<ed:Language>` elements. The content of a `<ed:Language>` element `MUST` be a ISO 639-3 three letter language code. This element should be repeated for all languages (relevant) available ''within'' the collection, however this list `MUST NOT` contain duplicate entries. |
| 387 | * zero or one `<ed:Collections>` element (`OPTIONAL`) \\ |
| 388 | If a collection has searchable sub-collections the Endpoint `MUST` supply additional finer grained collection elements, which are wrapped in a `<ed:Collections>` element. A sub-collection is a searchable entity within a collection, e.g. a sub-corpus. |
| 389 | |
| 390 | [=#REF_ED_Example_1]Example 1: |
| 391 | {{{#!xml |
| 392 | <ed:EndpointDescription xmlns:ed="http://clarin.eu/fcs/1.0/endpoint-description"> |
| 393 | <ed:Profile>basic</ed:Profile> |
| 394 | <ed:SupportedDataViews> |
| 395 | <ed:SupportedDataView>application/x-clarin-fcs-hits+xml</ed:SupportedDataView> |
| 396 | </ed:SupportedDataViews> |
| 397 | <ed:Collections> |
| 398 | <!-- just one top-level collection at the Endpoint --> |
| 399 | <ed:Collection pid="http://hdl.handle.net/4711/0815"> |
| 400 | <ed:Title xml:lang="de">Goethe Corpus</ed:Title> |
| 401 | <ed:Title xml:lang="en">Goethe Korpus</ed:Title> |
| 402 | <ed:Description xml:lang="de">Der Goethe Korpus des IDS Mannheim.</ed:Description> |
| 403 | <ed:Description xml:lang="en">The Goethe corpus of IDS Mannheim.</ed:Description> |
| 404 | <ed:LandingPageURI>http://repos.example.org/corpus1.html</ed:LandingPageURI> |
| 405 | <ed:Languages> |
| 406 | <ed:Language>deu</ed:Language> |
| 407 | </ed:Languages> |
| 408 | </ed:Collection> |
| 409 | </ed:Collections> |
| 410 | </ed:EndpointDescription> |
| 411 | }}} |
| 412 | This [#REF_ED_Example_1 example] shows a simple Endpoint Description for an Endpoint that supports the ''basic'' Profile and only provides the Generic Hits Data View. It only provides one top-level collection identified by the persistent identifier `http://hdl.handle.net/4711/0815`. The collection a title as well as a description in German and English. A landing page is located at `http://repos.example.org/corpus1.html`. The searchable collection contents are only available in German. |
| 413 | |
| 414 | [=#REF_ED_Example_2]Example 2: |
| 415 | {{{#!xml |
| 416 | <ed:EndpointDescription xmlns:ed="http://clarin.eu/fcs/1.0/endpoint-description"> |
| 417 | <ed:Profile>basic</ed:Profile> |
| 418 | <ed:SupportedDataViews> |
| 419 | <ed:SupportedDataView>application/x-clarin-fcs-hits+xml</ed:SupportedDataView> |
| 420 | <ed:SupportedDataView>application/x-cmdi+xml</ed:SupportedDataView> |
| 421 | </ed:SupportedDataViews> |
| 422 | <ed:Collections> |
| 423 | <!-- top-level collection 1 --> |
| 424 | <ed:Collection pid="http://hdl.handle.net/4711/0815"> |
| 425 | <ed:Title xml:lang="de">Goethe Corpus</ed:Title> |
| 426 | <ed:Title xml:lang="en">Goethe Korpus</ed:Title> |
| 427 | <ed:Description xml:lang="de">Der Goethe Korpus des IDS Mannheim.</ed:Description> |
| 428 | <ed:Description xml:lang="en">The Goethe corpus of IDS Mannheim.</ed:Description> |
| 429 | <ed:LandingPageURI>http://repos.example.org/corpus1.html</ed:LandingPageURI> |
| 430 | <ed:Languages> |
| 431 | <ed:Language>deu</ed:Language> |
| 432 | </ed:Languages> |
| 433 | </ed:Collection> |
| 434 | <!-- top-level collection 2 --> |
| 435 | <ed:Collection pid="http://hdl.handle.net/4711/0816"> |
| 436 | <ed:Title xml:lang="de">Mannheimer Morgen newspaper Corpus</ed:Title> |
| 437 | <ed:Title xml:lang="en">Zeitungskorpus des Mannheimer Morgen</ed:Title> |
| 438 | <ed:LandingPageURI>http://repos.example.org/corpus2.html</ed:LandingPageURI> |
| 439 | <ed:Languages> |
| 440 | <ed:Language>deu</ed:Language> |
| 441 | </ed:Languages> |
| 442 | <ed:Collections> |
| 443 | <!-- sub-collection 1 of top-level collection 2 --> |
| 444 | <ed:Collection pid="http://hdl.handle.net/4711/0816-1"> |
| 445 | <ed:Title xml:lang="de">Mannheimer Morgen newspaper Corpus (before 1990)</ed:Title> |
| 446 | <ed:Title xml:lang="en">Zeitungskorpus des Mannheimer Morgen (vor 1990)</ed:Title> |
| 447 | <ed:LandingPageURI>http://repos.example.org/corpus2.html#sub1</ed:LandingPageURI> |
| 448 | <ed:Languages> |
| 449 | <ed:Language>deu</ed:Language> |
| 450 | </ed:Languages> |
| 451 | </ed:Collection> |
| 452 | <!-- sub-collection 2 of top-level collection 2 --> |
| 453 | <ed:Collection pid="http://hdl.handle.net/4711/0816-2"> |
| 454 | <ed:Title xml:lang="de">Mannheimer Morgen newspaper Corpus (after 1990)</ed:Title> |
| 455 | <ed:Title xml:lang="en">Zeitungskorpus des Mannheimer Morgen (nach 1990)</ed:Title> |
| 456 | <ed:LandingPageURI>http://repos.example.org/corpus2.html#sub2</ed:LandingPageURI> |
| 457 | <ed:Languages> |
| 458 | <ed:Language>deu</ed:Language> |
| 459 | </ed:Languages> |
| 460 | </ed:Collection> |
| 461 | </ed:Collections> |
| 462 | </ed:Collection> |
| 463 | </ed:Collections> |
| 464 | </ed:EndpointDescription> |
| 465 | }}} |
| 466 | This more complex [#REF_ED_Example_2 example] show a Endpoint Description for an Endpoint that, similar to [#REF_ED_Example_1 Example 1], supports the ''basic'' profile. In addition to the Generic Hits Data View it also supports CMDI the CMDI Data View. The Endpoint has two top-level collections (identified by the persistent identifiers `http://hdl.handle.net/4711/0815` and `http://hdl.handle.net/4711/0816`. The second top-level collection has two sub-collections, identified by the persistent identifier `http://hdl.handle.net/4711/0816-1` and `http://hdl.handle.net/4711/0816-2`. All collections are described using several properties, like title, description, etc. |