-# $Id: pqf.properties,v 1.2 2003-12-18 13:44:59 mike Exp $
+# $Id: pqf.properties,v 1.14 2008-01-06 13:08:09 adam Exp $
#
# Propeties file to drive org.z3950.zing.cql.CQLNode's toPQF()
-# back-end. This specifies the interpretation of various CQL
-# qualifiers, relations, etc. in terms of Type-1 query attributes.
+# back-end and the YAZ CQL-to-PQF converter. This specifies the
+# interpretation of various CQL indexes, relations, etc. in terms
+# of Type-1 query attributes.
#
+# This configuration file generates queries using BIB-1 attributes.
# See http://www.loc.gov/z3950/agency/zing/cql/dc-indexes.html
-# for the Maintenance Agency's work-in-progress mapping of Dublic Core
-# qualifiers to Attribute Architecture (util, XD and BIB-2)
+# for the Maintenance Agency's work-in-progress mapping of Dublin Core
+# indexes to Attribute Architecture (util, XD and BIB-2)
# attributes.
-# Identifiers for prefixes used in this file. (qualifier.*)
-set.srw = http://www.loc.gov/zing/cql/srw-indexes/v1.0/
-set.dc = http://www.loc.gov/zing/cql/dc-indexes/v1.0/
-# default set (in query)
-set = http://www.loc.gov/zing/cql/dc-indexes/v1.0/
+# Identifiers for prefixes used in this file. (index.*)
+set.cql = info:srw/cql-context-set/1/cql-v1.2
+set.rec = info:srw/cql-context-set/2/rec-1.1
+set.dc = info:srw/cql-context-set/1/dc-v1.1
+set.bath = http://zing.z3950.org/cql/bath/2.0/
-# The default access point and result-set references
-qualifier.srw.serverChoice = 1=1016
- # "any"
+# The default set when an index doesn't specify one: Dublin Core
+set = info:srw/cql-context-set/1/dc-v1.1
-qualifier.dc.title = 1=4
-qualifier.dc.subject = 1=21
-qualifier.dc.creator = 1=1003
-qualifier.dc.author = 1=1003
+# The default index when none is specified by the query
+index.cql.serverChoice = 1=1016
+ # srw.serverChoice is deprecated in favour of cql.serverChoice
+ # BIB-1 "any"
+index.cql.allRecords = 1=_ALLRECORDS 2=103
+
+index.rec.id = 1=12
+
+index.dc.title = 1=4
+index.dc.subject = 1=21
+index.dc.creator = 1=1003
+index.dc.author = 1=1003
### Unofficial synonym for "creator"
-qualifier.dc.editor = 1=1020
-qualifier.dc.publisher = 1=1018
-qualifier.dc.description = 1=62
+index.dc.editor = 1=1020
+index.dc.publisher = 1=1018
+index.dc.description = 1=62
# "abstract"
-qualifier.dc.date = 1=30
-qualifier.dc.resourceType = 1=1031
+index.dc.date = 1=30
+index.dc.resourceType = 1=1031
# guesswork: "Material-type"
-qualifier.dc.format = 1=1034
+index.dc.format = 1=1034
# guesswork: "Content-type"
-qualifier.dc.resourceIdentifier = 1=12
+index.dc.resourceIdentifier = 1=12
# "Local number"
-qualifier.dc.source = 1=1019
+index.dc.source = 1=1019
# "Record-source"
-qualifier.dc.language = 1=54
+index.dc.language = 1=54
# "Code--language"
-qualifier.dc.relation = 1=?
+index.dc.relation = 1=?
### No idea how to represent this
-qualifier.dc.coverage = 1=?
+index.dc.coverage = 1=?
### No idea how to represent this
-qualifier.dc.rights = 1=?
+index.dc.rights = 1=?
### No idea how to represent this
-### These aren't right: I've just put them here for the Generator
-qualifier.bath.subject = 1=21
-qualifier.bath.author = 1=1003
-qualifier.foo>bar = 1=2000
-
# Relation attributes are selected according to the CQL relation by
# looking up the "relation.<relation>" property:
#
relation.> = 2=5
relation.<> = 2=6
-### These two are not really right:
-relation.all = 2=3
-relation.any = 2=3
+# These two are what Zebra uses -- may not work on other servers
+relation.all = 4=6
+relation.any = 4=105
# BIB-1 doesn't have a server choice relation, so we just make the
# choice here, and use equality (which is clearly correct).
# Relation modifiers.
#
relationModifier.relevant = 2=102
-relationModifier.fuzzy = 2=100
- ### 100 is "phonetic", which is not quite the same thing
+relationModifier.fuzzy = 5=103
+ ### truncation=regExpr-2 (5=103) in Zebra is "fuzzy matching"
relationModifier.stem = 2=101
relationModifier.phonetic = 2=100
+# Non-standard extensions to provoke Zebra's inline sorting
+relationModifier.sort = 7=1
+relationModifier.sort-desc = 7=2
+relationModifier.numeric = 4=109
+
# Position attributes may be specified for anchored terms (those
# beginning with "^", which is stripped) and unanchored (those not
# beginning with "^"). This may change when we get a BIB-1 truncation
structure.* = 4=1
# phrase
+# Truncation attributes used to implement CQL wildcard patterns. The
+# simpler forms, left, right- and both-truncation will be used for the
+# simplest patterns, so that we produce PQF queries that conform more
+# closely to the Bath Profile. However, when a more complex pattern
+# such as "foo*bar" is used, we fall back on Z39.58-style masking.
+#
+truncation.right = 5=1
+truncation.left = 5=2
+truncation.both = 5=3
+truncation.none = 5=100
+truncation.regexp = 5=102
+truncation.z3958 = 5=104
+
# Finally, any additional attributes that should always be included
# with each term can be specified in the "always" property.
#
-always = 5=105 6=1
-# 5=105: the not-yet-standarised CQL-like trunction attribute
+always = 6=1
# 6=1: completeness = incomplete subfield
# Bath Profile support, added Thu Dec 18 13:06:20 GMT 2003
# See the Bath Profile for SRW at
# http://zing.z3950.org/cql/bath.html
-# Including the Bath Context Set defined within that document.
-
-qualifier.bath.keyTitle = 1=33
-qualifier.bath.possessingInstitution = 1=1044
-qualifier.bath.name = 1=1002
-qualifier.bath.personalName = 1=1
-qualifier.bath.corporateName = 1=2
-qualifier.bath.conferenceName = 1=3
-qualifier.bath.uniformTitle = 1=6
-qualifier.bath.issn = 1=8
-qualifier.bath.remoteSystemRecordNumber = 1=12 ### rec.id
-qualifier.bath.geographicName = 1=58
-qualifier.bath.notes = 1=63
-qualifier.bath.topicalSubject = 1=1079
-qualifier.bath.genreForm = 1=1075
+# including the Bath Context Set defined within that document.
+#
+# In this file, we only map index-names to BIB-1 use attributes, doing
+# so in accordance with the specifications of the Z39.50 Bath Profile,
+# and leaving the relations, wildcards, etc. to fend for themselves.
+
+index.bath.keyTitle = 1=33
+index.bath.possessingInstitution = 1=1044
+index.bath.name = 1=1002
+index.bath.personalName = 1=1
+index.bath.corporateName = 1=2
+index.bath.conferenceName = 1=3
+index.bath.uniformTitle = 1=6
+index.bath.isbn = 1=7
+index.bath.issn = 1=8
+index.bath.geographicName = 1=58
+index.bath.notes = 1=63
+index.bath.topicalSubject = 1=1079
+index.bath.genreForm = 1=1075