Download Firefox: WindowsMac OS X
logo       
Google Custom Search
    AddThis Social Bookmark Button

ccl specs & design proposals: msg#00023

Subject: ccl specs & design proposals
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


<Prev in Thread] Current Thread [Next in Thread>