Use entity idcommon rather than common
[idzebra-moved-to-github.git] / doc / Notes
1 $Id: Notes,v 1.1 2002-12-02 15:38:33 mike Exp $
2
3 The secret guide to what to actually _do_ when configuring Zebra
4 ----------------------------------------------------------------
5
6 (This is a not-for-public-consumption document that airs rather too
7 much dirty laundry.  It throws up rather a lot of "why" questions, but
8 should at least solve some "what" problems.)
9
10
11 1.  Create a zebra.cfg file that specifies:
12         profilePath: .:../../tab
13         recordType: grs.sgml
14
15 2.  Add a
16         attset: whatever.att
17     for every attribute set that you want clients to be able to use in
18     queries without being told "unsupported attribute set".
19
20 3.  Add
21         tagsysno: 0
22     if you plan to generate your own unique identifiers as (for
23     example) a Zthes data-set must do.
24
25 4.  Look at the document element of your XML input files.  What is the
26     element?  Create a "something.abs" file named after the document
27     element: for example, when dealing with Zthes data, you need to
28     make "Zthes.abs" (capitalisation as specified, because that's
29     what's in the XML).  In that file, put the following lines.
30
31 5.  Add "attset whatever.att" directive for each attribute set that
32     you want to support.  Yes yes, I know you already did that in the
33     "zebra.cfg" file: this is just the way it is.
34
35 6.  Add "tagset whatever.tag" for every tag-set used by the GRS-1
36     schema you want to present to clients.
37
38 7.  Add "xpath enable" if you want clients to be able to use XPath
39     access points like this:
40         find @attr 1=/Zthes/termName sauroposeidon
41
42 8.  For each element in the GRS-1 schema specified by the profile
43     you're trying to implement, add a line that says:
44         elm (<tagSet>,<tagValue>) <elementName> !
45     for example,
46         elm (1,14) termId !
47     For elements that you don't need to be able to search, substitute
48     "-" for the "!" at the end of the line.
49
50     Nested elements (within sub-structures) look like this:
51         elm (2,30)/(4,3) relationType -
52
53 9.  For each tagset you referenced in the whatever.abs file, copy the
54     relevant file from the zebra/tab directory.  For every tag listed
55     in that file that you use, if your XML input files use a different
56     element name from what's already listed, add your element name
57     after the offical one, separated by a slash like this:
58         tag 1 title/termName string
59
60     These hacked tagset files will be used in preference to the
61     distributed one because your profilePath (see above) begins with
62     ".", the current directory.
63
64     For some profiles, you may need to create a brand new tagset file
65     because the Zebra distribution doesn't support them at all.  No
66     problem: just use an existing one as a template.
67
68 That should handle record-presentation side.  Now for searching:
69
70 10. For each attset that you referenced in the zebra.cfg and
71     whatever.abs files, either:
72         A. Copy the distributed .att file       ### Is this right?
73         B. Create a new whatever.att file
74     For every access point that you want to be able to use, change the
75     access-point name to the corresponding element-name in the input
76     XML files.
77
78 Issues:
79 * How can we set up separately access points for elements with the
80   same tagnames but at different places in the record structure?
81 * This is all a bit crap, isn't it?