<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE TEI.2 PUBLIC "-//TEI P4//DTD Main DTD Driver File//EN"
"/dev/null"  [
<!ENTITY % TEI.prose 'INCLUDE'>
<!ENTITY % TEI.linking 'INCLUDE'>
<!ENTITY % TEI.figures 'INCLUDE'>
<!ENTITY % TEI.analysis 'INCLUDE'>
<!ENTITY % TEI.XML 'INCLUDE'>

<!ATTLIST xref  url CDATA #IMPLIED >

<!ENTITY version    "1.1.release-candidate.3" >
]>
<TEI.2>
    <teiHeader>
        <fileDesc>
            <titleStmt>
                <title>The Classical Text Services specification: version &version;</title>
                <author>Neel Smith</author>
                <sponsor>Center for Hellenic Studies</sponsor>
            </titleStmt>
            <publicationStmt>
                <!-- one of (address authority availability date distributor idno p pubPlace publisher) -->
                <publisher> Center for Hellenic Studies</publisher>
                <date>2005</date>
                <availability>
                    <p>Licensed under the Creative Commons Attribution-NonCommercial-ShareAlike
                        License. To view a copy of this license, visit
                        http://creativecommons.org/licenses/by-nc-sa/1.0/ or send a letter to
                        Creative Commons, 559 Nathan Abbott Way, Stanford, California 94305, USA.
                    </p>
                </availability>
            </publicationStmt>
            <sourceDesc>
                <p>Original born-digital work.</p>
            </sourceDesc>
        </fileDesc>
    </teiHeader>
    <text>
        <body>
            <div id="preface" n="Preface">
                <p>This document defines version <emph>&version;</emph> of the Classical Text
                    Services implementation specification (CTS). The specification defines
                    interaction between a client and server providing identification of texts and
                    retrieval of fragments texts using notions of "work" and "citation" traditional
                    in classical studies. For an overview of the Classical Text Services, see <xref
                        url="http://chs75.harvard.edu/projects/diginc/techpub/cts"
                        >http://chs75.harvard.edu/projects/diginc/techpub/cts</xref>. </p>
            </div>
            <div id="versions" n="1">
                <head>Versions</head>
                <p>Release versions are identified by two dot-separated integers, with the first
                    being most significant. E.g., "2.0" is greater than "1.10" but "1.10" is greater
                    than "1.2". </p>
                <p>Experimental, pre-release versions may also be available from the CHS version
                    control archive or directly from a CHS website. An identifier for a pre-release
                    version is composed of a regular release-version number followed by a string
                    indicating its test status (e.g., "1.2.beta" or "1.2.release-candidate").
                    Optionally, the identifer for a test version may have a further positive integer
                    indicating its sequence in that test series (e.g., "1.2.beta.2"). </p>
                <p> A version number is a required attribute on the 
                    TextInventory element returned by a <term type="code">GetCapabilities</term>
                    request (defined below). As of version 1.1.release-candidate, client
                    applications may optionally indicate a version number in a <term type="code"
                        >version</term> parameter with any request. Use of a <term type="code"
                        >version</term> parameter in client requests may be required in future
                    versions of this protocol. </p>
            </div>
            <div id="communication" n="2">
                <head>Requirements for client-server communication</head>
                <p>CTS uses the HyperText Transfer Protocol [IETF RFC 2616] for communication
                    between client and server. An instance of Classical Text Services, referred to
                    hereafter as a CTS "base URL" is an HTTP Uniform Resource Locator (URL). This
                    URL is not required to return any content, although it is strongly recommended
                    that a request for a CTS URL return basic information identifying the CTS in
                    either text-only or XHTML format. </p>
                <p> The CTS base URL serves as a URL prefix for CTS requests: CTS requests are
                    formed by adding request parameters directly to the base request URL. More
                    formally, the concatenation of the base request URL with URL parameters must
                    produce a string forming a valid URL according to the requirements of the URL
                    specification [IETF RFC 2396] and the HTTP Common Gateway Interface standard
                    (CGI). Each parameter's name and value pair must be separated from any following
                    parameters by an ampersand ("&amp;", Unicode x0026); name and value for each
                    individual parameter must be separated by an equals sign ("=", Unicode x003D). .
                    All CTS requests include a URL parameter named <term type="code">request</term>.
                    The value of this parameter must be the name of a request defined in version
                    &version;. For all requests other than <term type="code"
                    >GetCapabilities</term>, one or more additional parameters are required as
                    defined in this specification. If any of the characters "/", "&amp;", or "="
                    appear in the value of a parameter, they must therefore be encoded as defined in
                    IETF RFC 2616. In version &version;, CTS requires use of the GET method for
                    all requests. </p>
                <p>Examples of <term type="code">GetCapabilities</term> requests formed from valid
                    CTS base URLs: <term type="code">http://myhost/mycts?</term> is a valid base URL
                    because the request string <term type="code"
                        >http://myhost/mycts?request=GetCapabilities</term> is a valid URL. <term
                        type="code">http://myhost/mycts?configuration=default&amp;</term> is
                    also a valid base URL because the request <term type="code"
                        >http://myhost/mycts?configuration=default&amp;request=GetCapabilities</term>
                    is a valid URL. </p>
                <p>In addition, CTS reserves a special meaning for two characters. When the period
                    (".", Unicode x002E) appears in <term type="code">ref</term> or <term
                        type="code">range</term> parameters, it separates hierarchical components of
                    a reference. If a period instead represents a character in the reference value,
                    it must be URL escaped. Similarly, in the <term type="code">range</term>
                    parameter, the hyphen ("-", Unicode x002D) separates two <term type="code"
                    >ref</term> components of a range. If a hyphen instead represents a character in
                    the range value, it must be URL escaped. See the following section on
                    parameters.</p>
                <p> Although the specification allows periods and hyphens to appear as literal
                    values for <term type="code">ref</term> and <term type="code">range</term>
                    parameters, editors of TEI documents for use in a CTS instance are strongly
                    discouraged from including periods or hyphens in the literal values of
                    individual components of a hierarchical reference scheme. </p>
                <p>Parameter names and values are both case sensitive. Order of parameters in a
                    request is not significant. </p>
            </div>
            <div id="parameters" n="3">
                <head>Common parameters</head>
                <p>The following parameters are allowed or required in one or more CTS requests to
                    refer to parts of a TextInventory's hierarchy of works. Using required and
                    allowed parameters, a CTS client can refer to a work or group of works at any
                    level of the TextInventory hierarchy. It is an error if the value of one of
                    these parameters does not appear in the corresponding section of the
                    TextInventory as summarized here: </p>
                <list type="gloss">
                    <label>
                        <term type="code">textgroup</term>
                    </label>
                    <item>Identifier of a TextGroup; corresponds to the <term type="code"
                        >projid</term> attribute of a <term type="code">textgroup</term> element in
                        the TextInventory, and must be unique within the scope of the TextInventory.</item>
                    <label>
                        <term type="code">collection</term>
                    </label>
                    <item>Identifier of a Collection; corresponds to the <term type="code">id</term>
                        attribute of a <term type="code">collection</term> element in the
                        TextInventory and must be unique within the scope of the TextInventory. </item>
                    <label>
                        <term type="code">work</term>
                    </label>
                    <item>Identifier of a Work; corresponds to the <term type="code">projid</term>
                        attribute in the TextInventory and must be unique within the scope of the
                        containing TextGroup. </item>
                    <label>
                        <term type="code">edition</term>
                    </label>
                    <item>Identifier of an Edition; corresponds to the <term type="code"
                        >projid</term> attribute on an <term type="code">editioncomments</term>
                        element in the TextInventory and must be unique among all edition and
                        translation identifiers within the scope of the containing Work. </item>
                    <label>
                        <term type="code">translation</term>
                    </label>
                    <item>Identifier of a Translation; corresponds to the <term type="code"
                        >projid</term> attribute of a <term type="code">translationcomments</term>
                        element in the TextInventory and must be unique among all edition and
                        translation identifiers within the scope of the containing Work. </item>
                    <label>
                        <term type="code">exemplar</term>
                    </label>
                    <item>Identifier of an Exemplar; corresponds to the <term type="code"
                        >projid</term> attribute of an <term type="code">exemplar</term> element in
                        the TextInventory and must be unique within the scope of the containing
                        Edition or Translation. </item>
                </list>
                <p>The following parameters are allowed or required in one or more CTS requests to
                    refer to portions of an on-line text in the citation scheme described in the
                    TextInventory for that work. </p>
                <list type="gloss">
                    <label>
                        <term type="code">ref</term>
                    </label>
                    <item>A reference is a concatenation of zero or more strings representing
                        components in a hierarchical citation scheme. Each component except the last
                        is joined to following components by a period (".", Unicode x002E). It is an
                        error if the components of a reference cannot be derived from the return
                        value of a <term type="code">GetValidReff</term> request by examining the
                            <term type="code">n</term> attributes of successively contained elements
                        in the citation scheme beginning with the root element of the citation
                        scheme. See below on the <term type="code">GetValidReff</term> request. A
                        reference composed of zero elements (the empty string, "") is defined to
                        mean a reference to an entire Work. </item>
                    <label>
                        <term type="code">range</term>
                    </label>
                    <item>A range is a concatenation of exactly two valid references (as described
                        above) joined by a hyphen ("-", Unicode x002D) . The individual references
                        must contain the same number of reference components: it is an error if the
                        references do not refer to the same depth of the citation hierarchy. It is
                        an error if the first reference does not precede the second reference in the
                        document order of the requested work. </item>
                </list>
            </div>
            <div id="requests" n="4">
                <head>The CTS requests</head>
                <p>Classical Text Services requires implementation of six requests. These requests
                    are named <term type="code">GetCapabilities</term>, <term type="code"
                    >GetWorks</term>, <term type="code">GetValidReff</term>, <term type="code"
                        >GetPassage</term>, <term type="code">GetTEIHeader</term> and <term
                        type="code">DownloadText</term>, and include required and allowed parameters
                    as defined in the following sections. </p>
                <p> The reply to a CTS request is always a well-formed XML document with a root
                    element having the same name as the CTS request. The reply document always
                    contains exactly two elements, the first of which is named <term type="code"
                        >request</term>. The format of the <term type="code">request</term> element
                    is unspecified, and may be used for any purpose the implementation wishes. As
                    the name of the element is intended to imply, it is strongly recommended that
                    implementing software use this element to report back parameters passed in with
                    the request. Developers may also use this element for other purposes such as
                    embedding debugging information in a reply that complies with the CTS
                    specification. </p>
                <p> If the syntax and contents of request parameters do not fully comply with the
                    specifications in this document, the second element of the reply is named <term
                        type="code">error</term>; as of version &version; of the CTS
                    specification, the format and content of error reporting are left up to the
                    implementing software. Future versions of the protocol may define structures for
                    error reporting. </p>
                <p>If the syntax and contents of request parameters fully comply with the
                    specifications in this document, then the name and format of the second element
                    vary according to the request, and are defined in the following sections. As
                    specified below, four of the requests (<term type="code">GetCapabilities</term>,
                        <term type="code">GetWorks</term>, <term type="code">GetValidReff</term>,
                    and <term type="code">DownloadText</term>) require a second element that can be
                    validated against DTDs documented or included as appendices to this
                    specification; the <term type="code">GetPassage</term> and <term type="code"
                        >GetTEIHeader</term> requests return a second element containing either a
                    well-formed fragment of a valid TEI document, or a well-formed aggregate of
                    fragments of a valid TEI document. </p>
                <div n="1">
                    <head>GetCapabilities</head>
                    <p>Purpose: the <term type="code">GetCapabilities</term> request retrieves the
                        TextInventory of a CTS instance. The TextInventory defines the corpus of
                        texts known to the server and any optional services it supports. In version
                        &version;, no optional services are defined, but drafts of future
                        protocol versions have already proposed optional services, and optional
                        services are scheduled to be part of future versions. </p>
                    <p>No parameters other than the <term type="code">request</term> parameter are
                        required, but as wth all CTS requests, a request may optionally include a
                            <term type="code">version</term> parameter indicating the version of the
                        protocol preferred by the client. As of version &version;, servers are
                        not required to recognize or alter their reply in response to a <term
                            type="code">version</term> parameter. </p>
                    <table>
                        <row>
                            <cell role="label">Parameter</cell>
                            <cell role="label">Required/optional</cell>
                            <cell role="label">Description</cell>
                        </row>
                        <row>
                            <cell role="data">
                                <term type="code">version</term>
                            </cell>
                            <cell>optional</cell>
                            <cell>Client may indicate preferred version of CTS protocol</cell>
                        </row>
                    </table>
                    <p>Response: the second element validates against <term type="code"
                            >TextInventory.dtd</term> (see appendix). </p>
                </div>
                <div n="2">
                    <head>GetWorks</head>
                    <p>Purpose: The <term type="code">GetWorks</term> request is a convenience
                        method for rapid discovery of subsets of a TextInventory. If a TextGroup is
                        requested, the <term type="code">works</term> element of the response will
                        contain a literal fragment of the server's TextInventory rooted at the <term
                            type="code">textgroup</term> element with <term type="code"
                        >projid</term> attribute equal to the requested TextGroup. If a Collection
                        is requested, the <term type="code">works</term> element of the response
                        will contain one or more <term type="code">textgroup</term> elements, each
                        containing one or more <term type="code">work</term> elements. Only <term
                            type="code">work</term> elements containing a <term type="code"
                        >memberof</term> element with <term type="code">collection</term> attribute
                        equal to the requested Collection will be included. It is an error if the
                        requested TextGroup or Collection does not exist in the server's
                        TextInventory. </p>
                    <table>
                        <row>
                            <cell role="label">Request</cell>
                            <cell role="label">Required/optional</cell>
                            <cell role="label">Description</cell>
                        </row>
                        <row>
                            <cell role="data">
                                <term type="code">textgroup</term>
                            </cell>
                            <cell role="data">One and only one of <term type="code">textgroup</term>
                                or <term type="code">collection</term> is required.</cell>
                            <cell role="data">The parameter is the <term type="code">projid</term>
                                attribute of the desired <term type="code">textgroup</term> element.
                                It is an error if this value is not present in the TextInventory of
                                the CTS instance. </cell>
                        </row>
                        <row>
                            <cell role="data">
                                <term type="code">collection</term>
                            </cell>
                            <cell role="data">One and only one of <term type="code">textgroup</term>
                                or <term type="code">collection</term> is required.</cell>
                            <cell role="data"> The parameter is the <term type="code">id</term>
                                attribute of the desired collection. It is an error if this value is
                                not present in the TextInventory of the CTS instance. </cell>
                        </row>
                        <row>
                            <cell role="data">
                                <term type="code">version</term>
                            </cell>
                            <cell>optional</cell>
                            <cell>Client may indicate preferred version of CTS protocol</cell>
                        </row>
                    </table>
                    <p>Response: the second element validates against <term type="code"
                        >GetWorks.dtd</term> (see appendix). </p>
                </div>
                <div n="3">
                    <head>GetValidReff</head>
                    <p>Purpose: the <term type="code">citation</term> element of a TextInventory
                        (exposed either through the <term type="code">GetCapabilities</term> or
                            <term type="code">GetWorks</term> request) defines the syntax and
                        semantic labels for a citation scheme; the <term type="code"
                        >GetValidReff</term> request complements this by identifying all valid
                        values for an on-line version of a requested work up to a specified level of
                        the citation hierarchy. </p>
                    <table>
                        <row>
                            <cell role="label">Request</cell>
                            <cell role="label">Required/optional</cell>
                            <cell role="label">Description</cell>
                        </row>
                        <row>
                            <cell role="data">
                                <term type="code">level</term>
                            </cell>
                            <cell role="data">required</cell>
                            <cell role="data">The parameter is an integer value specifying the depth
                                of the citation hierarchy to retreive. The highest level of the
                                citation hierarchy is defined to be a level of 0. </cell>
                        </row>
                        <row>
                            <cell role="data">
                                <term type="code">textgroup</term>
                            </cell>
                            <cell role="data">required</cell>
                            <cell role="data"> The parameter is the <term type="code">projid</term>
                                attribute of the <term type="code">textgroup</term> element
                                containing the desired work. It is an error if this value is not
                                present in the TextInventory of the CTS instance. </cell>
                        </row>
                        <row>
                            <cell role="data">
                                <term type="code">work</term>
                            </cell>
                            <cell role="data">required</cell>
                            <cell role="data"> The parameter is the <term type="code">projid</term>
                                attribute of the desired work. It is an error if this value is not
                                present in the TextInventory of the CTS instance. </cell>
                        </row>
                        <row>
                            <cell role="data">
                                <term type="code">edition</term>
                            </cell>
                            <cell role="data">One and only one of <term type="code">edition</term>
                                or <term type="code">translation</term> is required.</cell>
                            <cell role="data"> The parameter is the <term type="code">projid</term>
                                of the desired Edition. It is an error if the requested Edition
                                contains neither an <term type="code">online</term> element nor an
                                    <term type="code">exemplar</term> element containing an <term
                                    type="code">online</term> element. </cell>
                        </row>
                        <row>
                            <cell role="data">
                                <term type="code">translation</term>
                            </cell>
                            <cell role="data">One and only one of <term type="code">edition</term>
                                or <term type="code">translation</term> is required.</cell>
                            <cell role="data"> The parameter is the <term type="code">projid</term>
                                of the desired Translation. It is an error if the requested
                                Translation contains neither an <term type="code">online</term>
                                element nor an <term type="code">exemplar</term> element containing
                                an <term type="code">online</term> element. </cell>
                        </row>
                        <row>
                            <cell role="data">
                                <term type="code">exemplar</term>
                            </cell>
                            <cell role="data">optional</cell>
                            <cell role="data"> The parameter is the <term type="code">projid</term>
                                of a specific Exemplar. It is valid to include an <term type="code"
                                    >exemplar</term> parameter only if one and only one of <term
                                    type="code">translation</term> or <term type="code"
                                >edition</term> parameters is also supplied. It is an error if the
                                requested Exemplar does not exist within the requested Edition or
                                Translation element of the server's TextInventory. </cell>
                        </row>
                        <row>
                            <cell role="data">
                                <term type="code">version</term>
                            </cell>
                            <cell>optional</cell>
                            <cell>Client may indicate preferred version of CTS protocol</cell>
                        </row>
                    </table>
                    <p>Response: validates against the <term type="code">GetValidReff.dtd</term>
                    </p>
                </div>
                <div n="4">
                    <head>GetPassage</head>
                    <p>Purpose: retrieve a fragment of a TEI-conformant document by canonical
                        reference at any granularity allowed by the citation scheme, at any notional
                        level of a Work known to a server's TextInventory. It is an error if no
                        Edition, Translation or Exemplar of a work contains an <term type="code"
                            >online</term> element, but the <term type="code">GetPassage</term>
                        request does not require specific identification of an Edition, Translation
                        or Exemplar. </p>
                    <table>
                        <row>
                            <cell role="label">Request</cell>
                            <cell role="label">Required/optional</cell>
                            <cell role="label">Description</cell>
                        </row>
                        <row>
                            <cell role="data">
                                <term type="code">ref</term>
                            </cell>
                            <cell role="data">One and only one of <term type="code">ref</term> or
                                    <term type="code">range</term> is required. </cell>
                            <cell role="data">A reference to a single passage in a hierarchical
                                reference system. It is an error if the number of components in a
                                Reference exceeds the number of citation elements in the applicable
                                citation scheme. See discussion in section 3, "Common parameters,"
                                for further requirements on format and content of a
                            Reference.</cell>
                        </row>
                        <row>
                            <cell role="data">
                                <term type="code">range</term>
                            </cell>
                            <cell role="data">One and only one of <term type="code">ref</term> or
                                    <term type="code">range</term> is required. </cell>
                            <cell role="data"> A reference to a section of text spanning two or more
                                elements as defined by a hierarchical reference system. See
                                discussion in section 3, "Common parameters," for further
                                requirements on format and content of a Range. </cell>
                        </row>
                        <row>
                            <cell role="data">
                                <term type="code">contextsize</term>
                            </cell>
                            <cell role="data">The optional <term type="code">contextsize</term>
                                parameter is valid only in conjunction with a <term type="code"
                                >ref</term> parameter.</cell>
                            <cell role="data">The parameter specifies the number of units of context
                                to include before and after the section of text identified by the
                                    <term type="code">ref</term> parameter, at the same level of the
                                citation hierarchy. If <term type="code">contextsize</term> is
                                defined, the CTS reply will include all preceding and following
                                sections of the document at the same level of the citation hierarchy
                                up to <term type="code">contextsize</term> sections. It is
                                <emph>not</emph> an error if the document contains fewer than <term
                                    type="code">contextsize</term> preceding or following sections.
                                It is an error if the parameter is not a positive integer.</cell>
                        </row>
                        <row>
                            <cell role="data">
                                <term type="code">textgroup</term>
                            </cell>
                            <cell role="data">required</cell>
                            <cell role="data"> The parameter is the <term type="code">projid</term>
                                attribute of the <term type="code">textgroup</term> element
                                containing the desired work. It is an error if this value is not
                                present in the TextInventory of the CTS instance. </cell>
                        </row>
                        <row>
                            <cell role="data">
                                <term type="code">work</term>
                            </cell>
                            <cell role="data">required</cell>
                            <cell role="data"> The parameter is the <term type="code">projid</term>
                                attribute of the desired work. It is an error if this value is not
                                present in the TextInventory of the CTS instance. </cell>
                        </row>
                        <row>
                            <cell role="data">
                                <term type="code">edition</term>
                            </cell>
                            <cell role="data">Optionally, one and only one of <term type="code"
                                    >edition</term> or <term type="code">translation</term> may be
                                included. </cell>
                            <cell role="data"> The parameter is the <term type="code">projid</term>
                                of the desired Edition. It is an error if this value is not present
                                in the TextInventory of the CTS instance. In the absence of either
                                an <term type="code">edition</term> or <term type="code"
                                >translation</term> parameter, choice of a default is left to
                                implementing program. It is an error if the implementation's default
                                (either Edition or Translation) is not present in the TextInventory
                                of the CTS instance. It is an error if either the requested Edition,
                                or in its absence the default Edition or Translation, contains
                                neither an <term type="code">online</term> element nor an <term
                                    type="code">exemplar</term> element containing an <term
                                    type="code">online</term> element.</cell>
                        </row>
                        <row>
                            <cell role="data">
                                <term type="code">translation</term>
                            </cell>
                            <cell role="data">Optionally, one and only one of <term type="code"
                                    >edition</term> or <term type="code">translation</term> may be
                                included. </cell>
                            <cell role="data"> The parameter is the <term type="code">projid</term>
                                of the desired Translation. It is an error if this value is not
                                present in the TextInventory of the CTS instance. In the absence of
                                either an <term type="code">edition</term> or <term type="code"
                                    >translation</term> parameter, choice of a default is left to
                                implementing program. It is an error if the implementation's default
                                (either Edition or Translation) is not present in the TextInventory
                                of the CTS instance. It is an error if either the requested
                                Translation, or in its absence the default Edition or Translation,
                                contains neither an <term type="code">online</term> element nor an
                                    <term type="code">exemplar</term> element containing an <term
                                    type="code">online</term> element.</cell>
                        </row>
                        <row>
                            <cell role="data">
                                <term type="code">exemplar</term>
                            </cell>
                            <cell role="data">optional</cell>
                            <cell role="data"> The parameter is the <term type="code">projid</term>
                                of a specific Exemplar. It is valid to include an <term type="code"
                                    >exemplar</term> parameter only if one and only one of <term
                                    type="code">translation</term> or <term type="code"
                                >edition</term> parameters is also supplied. It is an error if the
                                requested Exemplar does not exist within the requested Edition or
                                Translation element of the server's TextInventory. </cell>
                        </row>
                        <row>
                            <cell role="data">
                                <term type="code">version</term>
                            </cell>
                            <cell>optional</cell>
                            <cell>Client may indicate preferred version of CTS protocol</cell>
                        </row>
                    </table>
                    <p>Response: the second element is named <term type="code">TEIFrag</term>. It
                        contains the well-formed fragment of the requested document referred to by
                        either the <term type="code">ref</term> or <term type="code">range</term>
                        parameter. The <term type="code">lang</term> attribute on the <term
                            type="code">TEIFrag</term> element indicates the base language of the
                        document. </p>
                </div>
                <div n="5">
                    <head>GetTEIHeader</head>
                    <p>Purpose: retrieve metadata about a specific on-line Edition, Translation or
                        Exemplar. </p>
                    <table>
                        <row>
                            <cell role="label">Request</cell>
                            <cell role="label">Required/optional</cell>
                            <cell role="label">Description</cell>
                        </row>
                        <row>
                            <cell role="data">
                                <term type="code">textgroup</term>
                            </cell>
                            <cell role="data">required</cell>
                            <cell role="data"> The parameter is the <term type="code">projid</term>
                                attribute of the <term type="code">textgroup</term> element
                                containing the desired work. It is an error if this value is not
                                present in the TextInventory of the CTS instance. </cell>
                        </row>
                        <row>
                            <cell role="data">
                                <term type="code">work</term>
                            </cell>
                            <cell role="data">required</cell>
                            <cell role="data"> The parameter is the <term type="code">projid</term>
                                attribute of the desired work. It is an error if this value is not
                                present in the TextInventory of the CTS instance. </cell>
                        </row>
                        <row>
                            <cell role="data">
                                <term type="code">edition</term>
                            </cell>
                            <cell role="data">One and only one of <term type="code">edition</term>
                                or <term type="code">translation</term> must be included.</cell>
                            <cell role="data"> The parameter is the <term type="code">projid</term>
                                of the desired Edition. It is an error if this value is not present
                                in the TextInventory of the CTS instance. </cell>
                        </row>
                        <row>
                            <cell role="data">
                                <term type="code">translation</term>
                            </cell>
                            <cell role="data">One and only one of <term type="code">edition</term>
                                or <term type="code">translation</term> must be included.</cell>
                            <cell role="data"> The parameter is the <term type="code">projid</term>
                                of the desired Translation. It is an error if this value is not
                                present in the TextInventory of the CTS instance. </cell>
                        </row>
                        <row>
                            <cell role="data">
                                <term type="code">exemplar</term>
                            </cell>
                            <cell role="data">optional</cell>
                            <cell role="data"> The parameter is the <term type="code">projid</term>
                                of a specific Exemplar. It is valid to include an <term type="code"
                                    >exemplar</term> parameter only if one and only one of <term
                                    type="code">translation</term> or <term type="code"
                                >edition</term> parameters is also supplied. It is an error if the
                                requested Exemplar does not exist within the requested Edition or
                                Translation element of the server's TextInventory. </cell>
                        </row>
                        <row>
                            <cell role="data">
                                <term type="code">version</term>
                            </cell>
                            <cell>optional</cell>
                            <cell>Client may indicate preferred version of CTS protocol</cell>
                        </row>
                    </table>
                    <p>Reponse: the second element, named <term type="code">teiHeader</term>, may
                        contain any content that would be valid as the <term type="code"
                        >teiHeader</term> of a document according to the fourth public release of
                        the Text Encoding Initiative's Guidelines (Sperberg-McQueen, C.M.. and
                        Burnard, L., eds., 2002, <title>TEI P4: Guidelines for Electronic Text
                            Encoding and Interchange</title>). </p>
                </div>
                <div n="6">
                    <head>DownloadText</head>
                    <p>Purpose: the <term type="code">DownloadText</term> request is a convenience
                        method for easy retrieval of complete TEI-conformant documents. It is an
                        error if the requested document does not contain an <term type="code"
                        >online</term> element in the server's TextInventory. </p>
                    <table>
                        <row>
                            <cell role="label">Request</cell>
                            <cell role="label">Required/optional</cell>
                            <cell role="label">Description</cell>
                        </row>
                        <row>
                            <cell role="data">
                                <term type="code">textgroup</term>
                            </cell>
                            <cell role="data">required</cell>
                            <cell role="data"> The parameter is the <term type="code">projid</term>
                                attribute of the <term type="code">textgroup</term> element
                                containing the desired work. It is an error if this value is not
                                present in the TextInventory of the CTS instance. </cell>
                        </row>
                        <row>
                            <cell role="data">
                                <term type="code">work</term>
                            </cell>
                            <cell role="data">required</cell>
                            <cell role="data"> The parameter is the <term type="code">projid</term>
                                attribute of the desired work. It is an error if this value is not
                                present in the TextInventory of the CTS instance. </cell>
                        </row>
                        <row>
                            <cell role="data">
                                <term type="code">edition</term>
                            </cell>
                            <cell role="data">One and only one of <term type="code">edition</term>
                                or <term type="code">translation</term> must be included.</cell>
                            <cell role="data"> The parameter is the <term type="code">projid</term>
                                of the desired Edition. It is an error if this value is not present
                                in the TextInventory of the CTS instance. </cell>
                        </row>
                        <row>
                            <cell role="data">
                                <term type="code">translation</term>
                            </cell>
                            <cell role="data">One and only one of <term type="code">edition</term>
                                or <term type="code">translation</term> must be included.</cell>
                            <cell role="data"> The parameter is the <term type="code">projid</term>
                                of the desired Translation. It is an error if this value is not
                                present in the TextInventory of the CTS instance. </cell>
                        </row>
                        <row>
                            <cell role="data">
                                <term type="code">exemplar</term>
                            </cell>
                            <cell role="data">optional</cell>
                            <cell role="data"> The parameter is the <term type="code">projid</term>
                                of a specific Exemplar. It is valid to include an <term type="code"
                                    >exemplar</term> parameter only if one and only one of <term
                                    type="code">translation</term> or <term type="code"
                                >edition</term> parameters is also supplied. It is an error if the
                                requested Exemplar does not exist within the requested Edition or
                                Translation element of the server's TextInventory. </cell>
                        </row>
                        <row>
                            <cell role="data">
                                <term type="code">version</term>
                            </cell>
                            <cell>optional</cell>
                            <cell>Client may indicate preferred version of CTS protocol</cell>
                        </row>
                    </table>
                    <p>Response: a complete document that validates against the DTDs in the fourth
                        public release of the Text Encoding Initiative's Guidelines
                        (Sperberg-McQueen, C.M.. and Burnard, L., eds., 2002, <title>TEI P4:
                            Guidelines for Electronic Text Encoding and Interchange</title>).</p>
                </div>
            </div>
            <div id="dtds" n="5">
                <head>The CTS DTDs</head>
                <p>The appended DTDs referred to previously in this specification are part of the
                    Classical Text Services specification. </p>
                <div n="A">
                    <head>TextInventory.dtd</head>
                    <p>PUBLIC identifier: <term type="code">"-//Center for Hellenic Studies//DTD
                            TextInventory 1.1//EN"</term>
                    </p>
                    <p>
                        <emph>insert DTD here</emph>
                    </p>
                </div>
                <div n="B">
                    <head>textgroup.dtd</head>
                    <p/>
                </div>
                <div n="C">
                    <head>GetWorks.dtd</head>
                    <p>PUBLIC identifier: <term type="code">"-//Center for Hellenic Studies//DTD
                            GetWorks 1.1//EN"</term>
                    </p>
                    <p>
                        <emph>insert DTD here</emph>
                    </p>
                </div>
                <div n="D">
                    <head>GetWorks.dtd</head>
                    <p>PUBLIC identifier: <term type="code">"-//Center for Hellenic Studies//DTD
                            GetValidReff 1.1//EN"</term>
                    </p>
                    <p>
                        <emph>insert DTD here</emph>
                    </p>
                </div>
            </div>
        </body>
    </text>
</TEI.2>
