From: Mark T. <mt...@nl...> - 2010-08-10 23:27:08
|
Hi Ya'aqov, For our browse (at the National Library of Australia) we actually do this matching at runtime. For example: # "Use instead" and "see also" entries come from our Voyager authority # data http://catalogue.nla.gov.au/Browse/Subjects?browse=subjects&from=cookery http://catalogue.nla.gov.au/Browse/Subjects?browse=subjects&from=fencing # Likewise for names http://catalogue.nla.gov.au/Browse/Names?browse=authors&from=knuth # Corporate bodies too http://catalogue.nla.gov.au/Browse/Names?browse=authors&from=conference+board+in+canada This works using a combination of SQLite and a separate Lucene index for authority data. The list of ordered headings is stored in an SQLite database--one database per type of browse. There are no smarts here at all: we just use SQLite because it's fast and convenient to query. At runtime, we can get a page of browse results from a particular point with queries like: > select rowid from headings where key >= 'cookery' order by key limit 1; rowid 498838 [1 rows of 1 fields returned] > select heading from headings where rowid >= 498838 order by rowid limit 10; heading 'Cookery' 'Cookery -- 1965-' 'Cookery, Afghan' 'Cookery, African' 'Cookery -- Alabama' 'Cookery (Alligators)' 'Cookery (Almonds)' 'Cookery, American' 'Cookery, American -- Bibliography' 'Cookery, American -- California style' ("key" in the above is just a sort key produced by normalising each heading--removing most punctuation, ignoring case, etc.) Once we have an ordered page of headings, we match each it back to our authority data by querying our separate authority index. This index is small enough to be updated per night, and just contains the linkages between headings taken from our authority data. If we were populating our entry for "Cookery", we would first search for: preferred:Cookery to see if it was a preferred form of the heading. That gives no matches in this case, so we do another search to see if the heading "Cookery" appears in other authority records. That gives two matches: stored/uncompressed,indexed<insteadOf:Cookery> stored/uncompressed,indexed<insteadOf:Cuisine> stored/uncompressed,indexed<insteadOf:Food preparation> stored/uncompressed,indexed<preferred:Cooking> stored/uncompressed,indexed<seeAlso:Home economics> stored/uncompressed,indexed<seeAlso:Dinners and dining> stored/uncompressed,indexed<seeAlso:Food> stored/uncompressed,indexed<seeAlso:Gastronomy> stored/uncompressed,indexed<seeAlso:Table> stored/uncompressed,indexed<insteadOf:Cook-books> stored/uncompressed,indexed<insteadOf:Cookery> stored/uncompressed,indexed<insteadOf:Recipe books> stored/uncompressed,indexed<preferred:Cookbooks> stored/uncompressed,indexed<scopenote:subdivision Feeding and feeds--Recipes under individual animals and groups of animals, e.g. Cattle--Feeding and feeds--Recipes; also subdivision Diet therapy--Recipes under individual diseases and types of diseases, e.g. Cancer--Diet therapy--Recipes; Heart--Diseases--Diet therapy--Recipes> stored/uncompressed,indexed<seeAlso:Books> stored/uncompressed,indexed<seeAlso:Cooking> which is what allows us to produce: Cookery Use instead: Cooking Cookbooks Cheers, Mark Ya'aqov Ziso <ya...@gm...> writes: > Hi Julia, > > Subject browse is dependent on your library's processing/matching your > bibs with LCSH. How OFTEN do you do that? monthly? quarterly? yearly? > other? > > Do you something similar for your Names/Authors? do you include in > names also corporate bodies and conferences? again, how often? Kindest > thanks, -- Mark Triggs Systems Administrator Business Systems Support, The National Library of Australia <mt...@nl...> |