From: Wolfgang P. <wol...@iv...> - 2005-09-18 23:55:54
|
i wonder if ccl specifications $YAZ_attributes and $CCL_names can be "misused to define a more complex query not just terms appended ... e.g we define each qualifier in $YAZ_attributes: "bge_tit" => "u=4 r=3 p=3 s=pw t=100 c=1" serves as a qualifier QUESTION would it be wise to use something like "bge_tit" => "(( u=4 r=3 p=3 s=pw t=100 c=1) or ( u=8004 r=3 p=3 s=pw t=100 c=1 ))" ? ??????????? -------- as another thing i have not quite understood the role of $CCL_names. "bge_tit" => "tit" does it define just an alias or can i do more with it ? ====================== after revising the data model of emilda's marc usage and having the problem to merge VERY different records of varois sources into _Native if would opt in general to : 1) define any searches to be done as symbolic names on pseudo-fields (like the pseudo-entry "any") in "table marc_configuration" as not_editable, searchable, not_list, not_extended and map them to private bib-1-attributes (>=5000) e.g. ('bge_tit','','bge_tit','','','Titel',0,1,1,0,0), 2) define any "real" fields in "table marc_configuration" as editable, not_searchable, ??_list, ??_extended e.g. #->5000 bge-tit (245c:)->5001 bge-aut ('245','all','book00_title','','','Titel',1,0,1,1,1), ('245a',NULL,'book00_title_hst','','','Hauptsachtitel',1,0,1,0,0), ('245b',NULL,'book00_rem_of_title','','','Sonstige-Titelteile',1,0,1,0,0), ('245c',NULL,'book00_stm_of_resp','','','Verfasser',1,0,1,0,0), ('246','all','book01_title','','','Nebentitel und Variationen',1,0,1,0,1), ('246a',NULL,'book01_title_nst','','','Nebensachtitel',1,0,1,0,0), ('130','all','book02_title','','','Einheitssachtitel-Haupteintrag',1,0,1,0,1), ('130a',NULL,'book02_title_est','','','Einheitssachtitel',1,0,1,0,0), ('730','all','book03_title','','','Einheitssachtitel-Nebeneintrag',1,0,1,0,1), ('730a',NULL,'book03_title_est','','','Einheitssachtitel',1,0,1,0,0), ('490','all','book04_title','','','Serientitel-Vorlage/Verweisform',1,0,1,1,1), ('490a',NULL,'book04_title_est','','','Serientitel',1,0,1,0,0), ('440','all','book05_title','','','Übergeordnete-Gesamteinheit',1,0,1,0,1), ('440a',NULL,'book05_title_est','','','Serientitel',1,0,1,0,0), #->5001 bge-aut ('100','all','book00_author','','','Hauptautor-Person',1,0,1,1,1), ('100a',NULL,'book00_author_personal_name','','','Hauptautor-Person-Name',1,0,1,0,0), ('700','all','book01_author','','','Nebenautor-Person',1,0,1,0,1), ('700a',NULL,'book01_author_personal_name','','','Nebenautor-Person-Name',1,0,1,0,0), ('110','all','book00_author_corp','','','Hauptautor-Korporation',1,0,1,1,1), ('110a',NULL,'book00_author_corp_name','','','Hauptautor-Korporation-Name',1,0,1,0,0), ('710','all','book01_author_corp','','','Nebenautor-Korporation',1,0,1,0,1), ('710a',NULL,'book01_author_corp_name','','','Nebenautor-Korporation-Name',1,0,1,0,0), 3) set up bib1.attr and usmarc.abs to index them accordingly e.g. att 5000 bge-tit att 5001 bge-aut .... att 5999 bge-null att 1016 any 1016,5000,5001,5002,5003,5004,5005,5006,5010,5011,5012,5014,5016 e.g. elm 245 bge-null - elm 245/? bge-tit !:w,!:p,!:s elm 245/?/c bge-aut !:w,!:p,!:s elm 246 bge-null - elm 246/? bge-null - elm 246/?/a bge-tit !:w,!:p,!:s elm 130 bge-null - elm 130/? bge-null - elm 130/?/a bge-tit !:w,!:p,!:s elm 730 bge-null - elm 730/? bge-null - elm 730/?/a bge-tit !:w,!:p,!:s elm 490 bge-null - elm 490/? bge-null - elm 490/?/a bge-tit !:w,!:p,!:s elm 440 bge-null - elm 440/? bge-null - elm 440/?/a bge-tit !:w,!:p,!:s elm 245 bge-null - elm 245/? bge-tit !:w,!:p,!:s elm 245/?/c bge-aut !:w,!:p,!:s elm 246 bge-null - elm 246/? bge-null - elm 246/?/a bge-tit !:w,!:p,!:s elm 130 bge-null - elm 130/? bge-null - elm 130/?/a bge-tit !:w,!:p,!:s elm 730 bge-null - elm 730/? bge-null - elm 730/?/a bge-tit !:w,!:p,!:s elm 490 bge-null - elm 490/? bge-null - elm 490/?/a bge-tit !:w,!:p,!:s elm 440 bge-null - elm 440/? bge-null - elm 440/?/a bge-tit !:w,!:p,!:s 3) set up MARC.inc accordingly $YAZ_attributes = Array( $REMOTE_DATABASE[_("Native")] => Array( "any" => "u=1016 t=l t=r t=n t=b s=pw", "bge_tit" => "u=5000 t=l t=r t=n t=b s=pw", "bge_aut" => "u=5001 t=l t=r t=n t=b s=pw", //... ), $REMOTE_DATABASE["GBV"] => Array( "any" => "u=1016 r=3 p=3 s=2 t=100 c=1", //word "bge_tit" => "u=4 r=3 p=3 s=pw t=100 c=1", //phrase,word "bge_aut" => "u=1004 r=3 p=3 s=1 t=100 c=1", //phrase //... ), ); ==> THINGS WON (i hope) : a) a clear design without having to "pivot" every entity exactly to one MARC-field b) i can process various records from various sources very differently (including the Native source) which can be populated from any target-z3950-servers which might speak very different "dialects" c) it is very easy to incorporate changes d) i can establish search-field-names which are NOT bound to the names of MARC-fields e) as MARC-fields are often not clearly assigned to one dedicated bibliographic entity but often merge things i can cope with this easily (note e.g. the special case field 245c is typically author-, not title-related) f) as one bibliographic entity is often spread over various MARC-fields and i have to collect things i can cope with this easily (note e.g. subjects which are found in at leasst 20 places on 2 different servers) -------- comments welcome w.pichler |