[Ex-plain] Changes Proposal

Robert Sanderson azaroth at liverpool.ac.uk
Mon Nov 24 13:11:10 CET 2003


> ZeeRex talks about indexSets, whereas in SRW 1.1 they've been renamed to 
> contextSets as they can contain more than just indexes.  So do we want to 
> change our references to contextSet?

I'm going to be more radical this week and propose the following:

We remove all notion of types of 'set' and just talk about 'sets' in the
abstract.  Everyone knows in Z39.50 we're talking about attribute sets,
or context/index sets for SRW.  In the future there may be other types of
'set' which we want to talk about for different protocols or versions too 
(unlikely but possible).

In resolution to the long standing 'what do we do about short names for 
attribute sets' I therefore propose that the zeerex document map them with 
the 'set' element in the same way that SRW maps context set short names to 
URIs. This would be for use only within the document obviously, otherwise 
use the full OID.

So, for SRW:

<indexInfo>
  <set name="dc" identifier="http://..."/>
  <index>
    <map><name set="dc">title</name></map>
  </index>
</indexInfo>

And for Z39.50:

<indexInfo>
  <set name="bib1" identifier="1.2.840.10003.3.1"/>
  <index>
    <map><attr type="1" set="bib1">4</attr></map>
  </index>
</indexInfo>

> configInfo:
> Now ... do we want to supportsify extra*ResponseData, or is that implied 
> from the request types?

You have to be able to request them somehow, so IMO we don't need to add 
in the fact that you're able to accept the request /and/ give the 
response.

New DTD attached for perusal.

Changes:
Removed indexSet and attributeSet attributes from attr and name.
Renamed indexSet element to set.
Added set attribute to attr and name.
Added name attribute to schema.
Renamed oid attribute of recordSyntax to identifier for consistency.
Added value attribute to supports.
Removed order requirement of configInfo.
Added requirement of one or more elements within indexInfo.

Currently called 1.10, but might be worth a 2.0.

Rob



-------------- next part --------------

<!--        ###### ZeeRex SGML DTD ######       -->
<!-- Author: Rob Sanderson (azaroth at liv.ac.uk)  -->
<!-- Version: 1.10                               -->
<!-- Date: 24 November, 2003                    -->
<!-- Documentation:  http://explain.z3950.org/  -->

<!ELEMENT explain - - (serverInfo, databaseInfo?, metaInfo?, indexInfo?, (recordInfo|schemaInfo)?, configInfo?)>
<!ATTLIST explain
                  authoritative (true|false) "false"
                  id CDATA #IMPLIED>


<!-- ###### Server Info ###### -->
<!ELEMENT serverInfo - - (host, port, database, authentication?)>
<!ATTLIST serverInfo
                     protocol CDATA "Z39.50"
		     version CDATA "3"
		     wsdl CDATA #IMPLIED>

<!ELEMENT host - - (#PCDATA)>
<!ELEMENT port - - (#PCDATA)>
<!ELEMENT database - - (#PCDATA)>
<!ATTLIST database
                   numRecs CDATA #IMPLIED
                   lastUpdate CDATA #IMPLIED>

<!ELEMENT authentication - - (open | (user?, group?, password?))>
<!ATTLIST authentication
                         required (true|false) "true">
<!ELEMENT open - - (#PCDATA)>
<!ELEMENT user - - (#PCDATA)>
<!ELEMENT group - - (#PCDATA)>
<!ELEMENT password - - (#PCDATA)>


<!-- ###### Database Info ###### -->

<!ELEMENT databaseInfo - - (title*, description*, (author | contact | extent | history | langUsage | restrictions | subjects | links)*  )>


<!-- Note that title is used in more than just databaseInfo -->
<!ELEMENT title - - (#PCDATA)>
<!ATTLIST title
                primary (true|false) #IMPLIED
                lang CDATA #IMPLIED>

<!ELEMENT description - - (#PCDATA)>
<!ATTLIST description
                      primary (true|false) #IMPLIED
                      lang CDATA #IMPLIED>

<!ELEMENT author - - (#PCDATA)>
<!ATTLIST author
                 primary (true|false) #IMPLIED
                 lang CDATA #IMPLIED>

<!ELEMENT contact - - (#PCDATA)>
<!ATTLIST contact
                  primary (true|false) #IMPLIED
                  lang CDATA #IMPLIED>

<!ELEMENT extent - - (#PCDATA)>
<!ATTLIST extent
                 primary (true|false) #IMPLIED
                 lang CDATA #IMPLIED>


<!ELEMENT history - - (#PCDATA)>
<!ATTLIST history
                  primary (true|false) #IMPLIED
                  lang CDATA #IMPLIED>

<!ELEMENT langUsage - - (#PCDATA)>
<!ATTLIST langUsage
                    codes CDATA #IMPLIED
                    primary (true|false) #IMPLIED
                    lang CDATA #IMPLIED>

<!ELEMENT restrictions - - (#PCDATA)>
<!ATTLIST restrictions
                       primary (true|false) #IMPLIED
                       lang CDATA #IMPLIED>

<!ELEMENT subjects - - (subject+)>
<!ELEMENT subject - - (#PCDATA)>

<!ELEMENT links - - (link+)>
<!ELEMENT link - - (#PCDATA)>
<!ATTLIST link
               type CDATA #IMPLIED>

<!-- ###### Meta Info ###### -->

<!ELEMENT metaInfo - - (dateModified, (aggregatedFrom, dateAggregated)?)>

<!ELEMENT dateModified - - (#PCDATA)>
<!ELEMENT aggregatedFrom - - (#PCDATA)>
<!ELEMENT dateAggregated - - (#PCDATA)>


<!-- ###### Index Info ###### -->

<!ELEMENT indexInfo - - ((set | index | sortKeyword)+)>

<!ELEMENT set - - EMPTY>
<!ATTLIST set
 	           name CDATA #REQUIRED
 	           identifier CDATA #REQUIRED>

<!ELEMENT index - - (title*, map+, configInfo?)>
<!ATTLIST index
                id CDATA #IMPLIED 
                search (true|false) #IMPLIED
                scan (true|false) #IMPLIED
                sort (true|false) #IMPLIED>


<!ELEMENT sortKeyword - - (#PCDATA)>

<!ELEMENT map - - ((attr+)|name)>
<!ATTLIST map
              primary (true|false) "false">

<!ELEMENT name - - (#PCDATA)-->
<!ATTLIST name 
               type CDATA #IMPLIED
               set CDATA #IMPLIED>


<!ELEMENT attr - - (#PCDATA)>
<!ATTLIST attr
               type CDATA #REQUIRED
               set CDATA "1.2.840.10003.3.1">

<!-- ###### Record Info ###### -->

<!ELEMENT recordInfo - - (recordSyntax+)>
<!ELEMENT recordSyntax - - (elementSet+)>
<!ATTLIST recordSyntax
                       name CDATA #IMPLIED 
                       identifier CDATA #IMPLIED>
<!ELEMENT elementSet - - (title*)>
<!ATTLIST elementSet
                              name CDATA #REQUIRED>

<!-- ###### Schema Info ###### -->

<!ELEMENT schemaInfo - - (schema+)>
<!ELEMENT schema - - (title*)>
<!ATTLIST schema
                 identifier CDATA #REQUIRED
                 name CDATA #REQUIRED>
		 

<!-- ###### Default Values ###### -->

<!ELEMENT configInfo - - ((default|setting|supports)*)>
<!ELEMENT default - - (#PCDATA)>
<!ATTLIST default
                  type CDATA #REQUIRED>
<!ELEMENT setting - - (#PCDATA)>
<!ATTLIST setting
                  type CDATA #REQUIRED>
<!ELEMENT supports - - (#PCDATA)>
<!ATTLIST supports 
                   type CDATA #REQUIRED
                   value (true|false) "true">



More information about the Ex-plain mailing list