X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=doc%2Fexamples.xml;h=10cbeb58febd5ce8e0075633154ddf8cae541340;hb=bdd8fba38500ff9292f7125d61a6072406bb949d;hp=f2af44421d6e1a8f9c3908e45df5e493b3153b61;hpb=518c06f68ffac6658aa792da45282a165b32ca95;p=idzebra-moved-to-github.git diff --git a/doc/examples.xml b/doc/examples.xml index f2af444..10cbeb5 100644 --- a/doc/examples.xml +++ b/doc/examples.xml @@ -1,5 +1,5 @@ - + Example Configurations @@ -10,7 +10,7 @@ driven by a master configuration file, which may refer to other subsidiary configuration files. By default, they try to use zebra.cfg in the working directory as the - master file; but this can be changed using the -t + master file; but this can be changed using the -c option to specify an alternative master configuration file. @@ -53,22 +53,26 @@ This example shows how Zebra can be used with absolutely minimal configuration to index a body of - XML + XML documents, and search them using - XPath + XPath expressions to specify access points. - Go to the examples/dinosauricon subdirectory + Go to the examples/zthes subdirectory of the distribution archive. - There you will find a records subdirectory, - which contains some raw XML data to be added to the database: in - this case, as single file, genera.xml, - which contain information about all the known dinosaur genera as of - August 2002. + There you will find a Makefile that will + populate the records subdirectory with a file of + Zthes + records representing a taxonomic hierarchy of dinosaurs. (The + records are generated from the family tree in the file + dino.tree.) + Type make records/dino.xml + to make the XML data file. - Now we need to create the Zebra database, which we do with the + Now we need to create a Zebra database to hold and index the XML + records. We do this with the Zebra indexer, zebraidx, which is driven by the zebra.cfg configuration file. For our purposes, we don't need any @@ -76,7 +80,7 @@ minimal file that just tells zebraidx where to find the default indexing rules, and how to parse the records: - profilePath: .:../../tab:../../../yaz/tab + profilePath: .:../../tab recordType: grs.sgml @@ -106,32 +110,27 @@ $ yaz-client tcp:@:9999 Connecting...Ok. - Z> find @attr 1=/GENUS/MEANING @and lizard earthquakes + Z> find @attr 1=/Zthes/termName Sauroposeidon Number of hits: 1 Z> format xml Z> show 1 - <GENUS name="Sauroposeidon" type="with"> - <MEANING>lizard Poseidon <LOW>(Greek god of, among other things, earthquakes)</LOW></MEANING> - <SPECIES name="proteles"> - <AUTHOR type="vide" name="Franklin" year="2000"></AUTHOR> - <AUTHOR name="Wedel, Cifelli, Sanders"></AUTHOR> - </SPECIES> - <PLACE name="Oklahoma"></PLACE> - <TIME value="Albian"></TIME> - <LENGTH value="30" q="1"></LENGTH> - <REMAINS content="rib, cervical vertebrae"></REMAINS> - <ESSAY> - <P> This new <NOMEN name="Brachiosaurus"></NOMEN>-like <LINK content="dinosaur"></LINK> - was perhaps the tallest. With its head raised, it stood 60 feet (nearly - 20 m) tall. </P> - </ESSAY> + <Zthes> + <termId>22</termId> + <termName>Sauroposeidon</termName> + <termType>PT</termType> + <relation> + <relationType>BT</relationType> + <termId>21</termId> + <termName>Brachiosauridae</termName> + <termType>PT</termType> + </relation> <idzebra xmlns="http://www.indexdata.dk/zebra/"> - <size>593</size> - <localnumber>891</localnumber> - <filename>records/genera.xml</filename> + <size>245</size> + <localnumber>23</localnumber> + <filename>records/dino.xml</filename> </idzebra> - </GENUS> + </Zthes> @@ -139,63 +138,102 @@ + - Example 2: Supporting Z39.50 Searches + Example 2: Supporting Interoperable Searches - You may have noticed as zebraidx was building - the database that it issued a warning, which we ignored at the - time: - - $ zebraidx update records - 00:45:46-08/10: ../../index/zebraidx(5016) [warn] records/genera.xml:0 Couldn't open GENUS.abs [No such file or directory] - - + The problem with the previous example is that you need to know the + structure of the documents in order to find them. For example, + when we wanted to find the record for the taxon + Sauroposeidon, + we had to formulate a complex XPath + /Zthes/termName + which embodies the knowledge that taxon names are specified in a + <termName> element inside the top-level + <Zthes> element. - - - - + + + +