X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=doc%2Ftools.xml;h=4d19542d5685bb1cdd82ae2fa83b8d2a44e128bb;hb=ac5f8ad9508f5b3ada38117b0da7ae23c650ab1e;hp=47af98803d9f2d8b51f69bb762727879e674137e;hpb=33c05384cfbca55da4ff97e5b2047b16596c72f7;p=yaz-moved-to-github.git diff --git a/doc/tools.xml b/doc/tools.xml index 47af988..4d19542 100644 --- a/doc/tools.xml +++ b/doc/tools.xml @@ -1,4 +1,4 @@ - + Supporting Tools @@ -72,47 +72,43 @@ int p_query_attset (const char *arg); The grammar of the PQF is as follows: - - Query ::= [ '@attrset' AttSet ] QueryStruct. - - AttSet ::= string. + + query ::= top-set query-struct. - QueryStruct ::= [ Attribute ] Simple | Complex. + top-set ::= [ '@attrset' string ] - Attribute ::= '@attr' [ AttSet ] AttributeType '=' AttributeValue. + query-struct ::= attr-spec | simple | complex - AttributeType ::= integer. + attr-spec ::= '@attr' [ string ] string query-struct - AttributeValue ::= integer. + complex ::= operator query-struct query-struct. - Complex ::= Operator QueryStruct QueryStruct. + operator ::= '@and' | '@or' | '@not' | '@prox' proximity. - Operator ::= '@and' | '@or' | '@not' | '@prox' Proximity. + simple ::= result-set | term. - Simple ::= ResultSet | Term. + result-set ::= '@set' string. - ResultSet ::= '@set' string. + term ::= string - Term ::= string | '"' string '"'. + proximity ::= exclusion distance ordered relation which-code unit-code. - Proximity ::= Exclusion Distance Ordered Relation WhichCode UnitCode. + exclusion ::= '1' | '0' | 'void'. - Exclusion ::= '1' | '0' | 'void'. + distance ::= integer. - Distance ::= integer. + ordered ::= '1' | '0'. - Ordered ::= '1' | '0'. + relation ::= integer. - Relation ::= integer. + which-code ::= 'known' | 'private' | integer. - WhichCode ::= 'known' | 'private' | integer. - - UnitCode ::= integer. - + unit-code ::= integer. + You will note that the syntax above is a fairly faithful - representation of RPN, except for the Attibute, which has been + representation of RPN, except for the Attribute, which has been moved a step away from the term, allowing you to associate one or more attributes with an entire query structure. The parser will automatically apply the given attributes to each term as required. @@ -156,14 +152,15 @@ int p_query_attset (const char *arg); - The EUROPAGATE research project working under the Libraries programme + The EUROPAGATE + research project working under the Libraries programme of the European Commission's DG XIII has, amongst other useful tools, implemented a general-purpose CCL parser which produces an output structure that can be trivially converted to the internal RPN - representation of YAZ (The Z_RPNQuery structure). + representation of &yaz; (The Z_RPNQuery structure). Since the CCL utility - along with the rest of the software - produced by EUROPAGATE - is made freely available on a liberal license, it - is included as a supplement to YAZ. + produced by EUROPAGATE - is made freely available on a liberal + license, it is included as a supplement to &yaz;. CCL Syntax @@ -206,7 +203,7 @@ int p_query_attset (const char *arg); | string -- Qualifiers is a list of strings separated by comma - Relation ::= '=' | '>=' | '<=' | '<>' | '>' | '<' + Relation ::= '=' | '>=' | '<=' | '<>' | '>' | '<' -- Relational operators. This really doesn't follow the ISO8777 -- standard. @@ -417,7 +414,7 @@ struct ccl_rpn_node *ccl_find_str (CCL_bibset bibset, const char *str, The OID module provides a higher-level representation of the - family of object identifers which describe the Z39.50 protocol and its + family of object identifiers which describe the Z39.50 protocol and its related objects. The definition of the module interface is given in the oid.h file. @@ -583,7 +580,7 @@ typedef struct oident The oid_ent_to_oid() function can be used whenever you need to prepare a PDU containing one or more OIDs. The separation of - the protocol element from the remainer of the + the protocol element from the remainder of the OID-description makes it simple to write applications that can communicate with either Z39.50 or OSI SR-based applications. @@ -660,6 +657,7 @@ typedef struct oident void nmem_reset(NMEM n); int nmem_total(NMEM n); void nmem_init(void); + void nmem_exit(void); @@ -675,15 +673,18 @@ typedef struct oident allocated on the handle. - - - The nibble memory pool is shared amongst threads. POSIX - mutex'es and WIN32 Critical sections are introduced to keep the - module thread safe. On WIN32 function nmem_init() - initializes the Critical Section handle and should be called once - before any other nmem function is used. - - + + The nibble memory pool is shared amongst threads. POSIX + mutex'es and WIN32 Critical sections are introduced to keep the + module thread safe. Function nmem_init() + initializes the nibble memory library and it is called automatically + the first time the YAZ.DLL is loaded. &yaz; uses + function DllMain to achieve this. You should + not call nmem_init or + nmem_exit unless you're absolute sure what + you're doing. Note that in previous &yaz; versions you'd have to call + nmem_init yourself. + @@ -698,7 +699,7 @@ typedef struct oident sgml-indent-step:1 sgml-indent-data:t sgml-parent-document: "yaz.xml" - sgml-local-catalogs: "../../docbook/docbook.cat" + sgml-local-catalogs: nil sgml-namecase-general:t End: -->