Wikicat Technical Design/Series Entities

From Meta, a Wikimedia project coordination wiki
Jump to: navigation, search

Series-related Wikicat datamodel entities.

Series[edit]

Wikicat Series ERD.png

A series is a "group of separate items related to one another by the fact that each item bears, in addition to its own title proper, a collective title applying to the work as a whole." (Logical Structure of the AACR I, tab. 2, p. 1). A series may be ongoing, in the case of a periodical or journal, or of finite extent in the case of a fixed number of monographs published under one series statement.

    > DESC series;
    
    COLUMN        TYPE          DESC
    ----------------------------------------------------
    series_id     INT(8)        Primary key of the entity
                  NOT NULL                                
    super_series_id INT(8)      Parent series of a sub-series.
    series_lang   INT(8)        Predominant language of the series;
                                foreign key to the OmegaWiki
                                table Language
    series_script INT(8)        Predominant script of series; foreign
                                key to OmegaWiki table Script
    serial_type   VARCHAR2(3)   Serial type.  Foreign key to
                  NOT NULL      SERIAL_TYPE
    part_number   VARCHAR2(25)  Section or part number of the series
                                in relation to its parent/super series
    part_name     VARCHAR2(100) Section or part name for a sub-series
    conf_pub_flag BOOLEAN       Conference publication indicator flag
    gov_jurisdiction VARCHAR2(3) If a government publication, the
                                jurisdictional level of the 
                                publishing agency.  Foreign key
                                to GOVERNMENT_JURISDICTION_LEVEL
    group_tpage_av  VARCHAR2(3) Issue grouping (volume) title page availability;
                                foreign key to SERIES_SUPP_AV_TYPE
    group_index_av  VARCHAR2(3) Issue grouping (volume) index availability;
                                foreign key to SERIES_SUPP_AV_TYPE
    cumm_index_flag BOOLEAN     Flag indicating if a cummalative index
                                is available.
    series_start  DATE          Start date of the series
    series_end    DATE          End date of the series

Based on the 225 field of UNIMARC and 440 of MARC21.

Series Issue Schedule[edit]

Series can change their issue schedules over time, or even have distinct schedules that exist in parallel at the same time. This means that there is a 1-to-many relationship between series and series issue schedules.

    > DESC series_issue_schedule;
    
    COLUMN        TYPE          DESC
    ----------------------------------------------------
    iss_sched_id  INT(8)        Primary key of the entity
                  NOT NULL     
    series_id     INT(8)        Series for the ordering; foreign
                  NOT NULL      key to SERIES
    iss_sched_text VARCHAR2(200) Text representation of the issue schedule
                  TRANSLATABLE
    freq_issue    VARCHAR2(3)   Frequency of issue.  Foreign
                  NOT NULL      key to PERIODICITY_TYPE
    reg_issue     VARCHAR2(3)   Regularity of issue. Foreign key
                  NOT NULL      key to REG_ISSUE_TYPE
    group_name    VARCHAR2(50)  Name of the issue grouping- e.g. "Volume"
    group_period  VARHAR2(3)    Period of the issue grouping.
                                Foreign key key to PERIODICITY_TYPE
    first_group   VARCHAR2(50)  Sequence/number of the first group
    last_group    VARCHAR2(50)  Sequence/number of the last group
    fst_grp_fst_iss VARCHAR2(50) First issue sequence/number within the first group
    lst_grp_lst_iss VARCHAR2(50) Last issue sequence/number within the last group
    fst_issue_seq VARCHAR2(50)  First absolute issue sequence/number value,
                                if it exits
    lst_issue_seq VARCHAR2(50)  Last absolute issue sequence/number value,
                                if it exits
    issue_calendar INT(8)       Calendar according to which issues
                                are released.  Foreign key to CALENDAR
    start_date    DATE          Start of the issue schedule
                  NOT NULL
    end_date      DATE          End of the issue schedule

Based on the 207 field of UNIMARC and field 362 of MAR21. Here is an example from that section of the Manual: "A daily newspaper was published from April 1, 1946 to October 10, 1972 starting with volume 1 number 1 and ending with volume 26, number 195. In addition, each issue was numbered consecutively from 1 to 6943." For such a schedule:

 freq_issue = 'day'
 group_name = 'Volume'
 group_period = 'ann' (annual)
 first_group = '1'
 last_group = '26'
 fst_grp_fst_iss = '1'
 lst_grp_lst_iss = '195'
 fst_issue_seq = '1'
 lst_issue_seq = '6943'

Series Relationships[edit]

The series relationship table reflects the fact that not only do series have whole/part relationships in the case of series and their sub-series, but that series frequently merge and split over time. This is modeled by the series transactions table, and its child table, series transaction parts. The latter describes the role of each series that is part of the transaction.

    > DESC series_transaction;
    
    COLUMN        TYPE          DESC
    ----------------------------------------------------
    series_trxn_id INT(8)       Primary key of the series transaction
    note          VARCHAR2(100) Note on the transaction
                  TRANSLATABLE
    start_date    DATE NOT NULL Begin date of the transaction
    end_date      DATE          End date of the transaction
    > DESC series_trxn_parts;
    
    COLUMN        TYPE          DESC
    ----------------------------------------------------
    series_trxn_id INT(8)       Primary key of the series transaction
    series_id     INT(8)        Id of a series in the transaction;
                  NOT NULL      foreign key to SERIES
    role          VARCHAR2(3)   Role of the series in this trxn;
                                may be different for different series
                                in the same transaction, especially if it
                                is non-symmetric (e.g merge); foreign key
                                to SERIES_TRXN_ROLE_TYPE

Example: series 1 is split into series 2, 3, and 4.