Comment
[irspy-moved-to-github.git] / zebra / pqf.properties
1 # $Id: pqf.properties,v 1.18 2007-03-29 17:14:13 mike Exp $
2 #
3 # Properties file to drive the YAZ CQL-to-PQF converter for Zebra.
4 # This specifies the interpretation of various CQL indexes, relations,
5 # etc. in terms of Type-1 query attributes.
6 #
7 # For documentation of required structure attributes (4=X) see:
8 # http://www.indexdata.com/zebra/doc/querymodel-zebra.html#querymodel-pqf-apt-mapping-structuretype
9
10 # Identifiers for prefixes used in this file. (index.*)
11 set.cql         = info:srw/cql-context-set/1/cql-v1.1
12 set.rec         = info:srw/cql-context-set/2/rec-1.1
13 set.net         = info:srw/cql-context-set/2/net-1.0
14 set.dc          = info:srw/cql-context-set/1/dc-v1.1
15 set.zeerex      = info:srw/cql-context-set/2/zeerex-1.1
16
17 # The default set when an index doesn't specify one: Net
18 set             = info:srw/cql-context-set/2/net-1.0
19
20 # The default index when none is specified by the query
21 index.cql.serverChoice                  = 1=cql:anywhere
22
23 index.cql.anywhere                      = 1=cql:anywhere
24 index.cql.allRecords                    = 1=_ALLRECORDS 2=103
25 index.rec.id                            = 1=rec:id 4=104
26 index.rec.lastModificationDate          = 1=rec:lastModificationDate 4=5
27 index.net.protocol                      = 1=net:protocol
28 index.net.version                       = 1=net:version 4=3
29 index.net.method                        = 1=net:method
30 index.net.host                          = 1=net:host 4=3
31 index.net.port                          = 1=net:port 4=3
32 index.net.path                          = 1=net:path 4=3
33 index.zeerex.reliability                = 1=zeerex:reliability 4=109
34 index.zeerex.reliabilityAtLeast         = 1=zeerex:reliability 2=4 4=109
35 index.dc.title                          = 1=dc:title
36 index.dc.creator                        = 1=dc:creator
37 index.dc.description                    = 1=dc:description
38 index.zeerex.numberOfRecords            = 1=zeerex:numberOfRecords
39 index.zeerex.set                        = 1=zeerex:set
40 index.zeerex.index                      = 1=zeerex:index
41 index.zeerex.attributeType              = 1=zeerex:attributeType
42 index.zeerex.attributeValue             = 1=zeerex:attributeValue
43 index.zeerex.schema                     = 1=zeerex:schema
44 index.zeerex.recordSyntax               = 1=zeerex:recordSyntax 4=3
45 index.zeerex.supports_relation          = 1=zeerex:supports_relation
46 index.zeerex.supports_relationModifier  = 1=zeerex:supports_relationModifier
47 index.zeerex.supports_maskingCharacter  = 1=zeerex:supports_maskingCharacter
48 index.zeerex.default_contextSet         = 1=zeerex:default_contextSet
49 index.zeerex.default_index              = 1=zeerex:default_index
50 # Extensions
51 index.zeerex.libType                    = 1=zeerex:libType 4=3
52 index.zeerex.country                    = 1=zeerex:country 4=3
53
54 # Relation attributes are selected according to the CQL relation by
55 # looking up the "relation.<relation>" property:
56 #
57 relation.<                              = 2=1
58 relation.le                             = 2=2
59 relation.eq                             = 2=3
60 relation.exact                          = 2=3
61 relation.ge                             = 2=4
62 relation.>                              = 2=5
63 relation.<>                             = 2=6
64
65 # BIB-1 doesn't have a server choice relation, so we just make the
66 # choice here, and use equality (which is clearly correct).
67 relation.scr                            = 2=3
68
69 # Relation modifiers.
70 #
71 relationModifier.relevant               = 2=102
72 relationModifier.fuzzy                  = 5=103
73         ### truncation=regExpr-2 (5=102) in Zebra is "fuzzy matching"
74 relationModifier.stem                   = 2=101
75 relationModifier.phonetic               = 2=100
76 relationModifier.regexp                 = 5=102
77
78 # Non-standard extensions to provoke Zebra's inline sorting
79 relationModifier.sort                   = 7=1
80 relationModifier.sort-desc              = 7=2
81 relationModifier.numeric                = 4=109
82
83 # Usually this is taken care of by CQL term-anchoring with "^", but
84 # since that is not done for regular expressions, we need a way to
85 # state it explicitly in these cases.
86 relationModifier.firstInField           = 3=1
87
88 # Position attributes may be specified for anchored terms (those
89 # beginning with "^", which is stripped) and unanchored (those not
90 # beginning with "^").  This may change when we get a BIB-1 truncation
91 # attribute that says "do what CQL does".
92 #
93 position.first                          = 3=1 6=1
94         # "first in field"
95 position.any                            = 3=3 6=1
96         # "any position in field"
97 position.last                           = 3=4 6=1
98         # not a standard BIB-1 attribute
99 position.firstAndLast                   = 3=3 6=3
100         # search term is anchored to be complete field
101
102 # Structure attributes may be specified for individual relations; a
103 # default structure attribute my be specified by the pseudo-relation
104 # "*", to be used whenever a relation not listed here occurs.
105 #
106 structure.exact                         = 4=108
107         # string
108 structure.all                           = 4=2
109 structure.any                           = 4=2
110 structure.*                             = 4=1
111         # phrase
112
113 # Truncation attributes used to implement CQL wildcard patterns.  The
114 # simpler forms, left, right- and both-truncation will be used for the
115 # simplest patterns, so that we produce PQF queries that conform more
116 # closely to the Bath Profile.  However, when a more complex pattern
117 # such as "foo*bar" is used, we fall back on Z39.58-style masking.
118 #
119 truncation.right                        = 5=1
120 truncation.left                         = 5=2
121 truncation.both                         = 5=3
122 truncation.none                         = 5=100
123 truncation.regexp                       = 5=102
124 truncation.z3958                        = 5=104
125
126 # Finally, any additional attributes that should always be included
127 # with each term can be specified in the "always" property.
128 #
129 #always                                 = 6=1
130 # 6=1: completeness = incomplete subfield