diff options
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/sisu/v0/css.rb | 2 | ||||
| -rw-r--r-- | lib/sisu/v0/db_columns.rb | 41 | ||||
| -rw-r--r-- | lib/sisu/v0/db_create.rb | 120 | ||||
| -rw-r--r-- | lib/sisu/v0/db_tests.rb | 78 | ||||
| -rw-r--r-- | lib/sisu/v0/harvest_authors.rb | 27 | ||||
| -rw-r--r-- | lib/sisu/v0/param.rb | 41 | 
6 files changed, 182 insertions, 127 deletions
| diff --git a/lib/sisu/v0/css.rb b/lib/sisu/v0/css.rb index 2094134f..927a253f 100644 --- a/lib/sisu/v0/css.rb +++ b/lib/sisu/v0/css.rb @@ -302,7 +302,7 @@ WOK      position: absolute;      top: 80px;      left: 0; -    margin-left: 0; +    margin-left: 1%;      width: 20%;    }    #column_center { diff --git a/lib/sisu/v0/db_columns.rb b/lib/sisu/v0/db_columns.rb index 6c9778ab..1ea16c95 100644 --- a/lib/sisu/v0/db_columns.rb +++ b/lib/sisu/v0/db_columns.rb @@ -66,9 +66,15 @@ module SiSU_DB_columns      def lt_subtitle        600      end -    def lt_creator +    def lt_author        600      end +    def lt_author_title +      100 +    end +    def lt_author_nationality +      100 +    end      def lt_illustrator        600      end @@ -87,21 +93,6 @@ module SiSU_DB_columns      def lt_date        10      end -    def lt_date_created -      10 -    end -    def lt_date_issued -      10 -    end -    def lt_date_available -      10 -    end -    def lt_date_modified -      10 -    end -    def lt_date_valid -      10 -    end      def lt_type        600      end @@ -198,6 +189,24 @@ module SiSU_DB_columns      def lt_subj        64      end +    def lt_orig_pub +      400 +    end +    def lt_orig_pub_date +      400 +    end +    def lt_orig_pub_institution +      200 +    end +    def lt_orig_pub_nationality +      200 +    end +    def lt_writing_focus_nationality +      100 +    end +    def lt_topic_register +      2000 +    end      def document_clean # restriction not necessary #12000 #2712        60000      end diff --git a/lib/sisu/v0/db_create.rb b/lib/sisu/v0/db_create.rb index 189b7acf..df1e91df 100644 --- a/lib/sisu/v0/db_create.rb +++ b/lib/sisu/v0/db_create.rb @@ -100,59 +100,73 @@ module SiSU_DB_create          } unless @opt.cmd =~/q/          @conn.execute(%{            CREATE TABLE metadata ( -            tid               BIGINT PRIMARY KEY, -            title             VARCHAR(#{lt_title}) NULL, -            subtitle          VARCHAR(#{lt_subtitle}) NULL, -            creator           VARCHAR(#{lt_creator}) NULL, -            illustrator       VARCHAR(#{lt_illustrator}) NULL, -            translator        VARCHAR(#{lt_translator}) NULL, -            subject           VARCHAR(#{lt_subject}) NULL, -            date              VARCHAR(#{lt_date}) NULL, -            date_created      VARCHAR(#{lt_date_created}) NULL, -            date_issued       VARCHAR(#{lt_date_issued}) NULL, -            date_available    VARCHAR(#{lt_date_available}) NULL, -            date_valid        VARCHAR(#{lt_date_valid}) NULL, -            date_modified     VARCHAR(#{lt_date_modified}) NULL, -/*          date              DATE, */ -/*          date_created      DATE, */ -/*          date_issued       DATE, */ -/*          date_available    DATE, */ -/*          date_valid        DATE, */ -/*          date_modified     DATE, */ -            type              VARCHAR(#{lt_type}) NULL, -            description       VARCHAR(#{lt_description}) NULL, -            publisher         VARCHAR(#{lt_publisher}) NULL, -            contributor       VARCHAR(#{lt_contributor}) NULL, -            prepared_by       VARCHAR(#{lt_prepared_by}) NULL, -            digitized_by      VARCHAR(#{lt_digitized_by}) NULL, -            format            VARCHAR(#{lt_format}) NULL, -            identifier        VARCHAR(#{lt_identifier}) NULL, -            source            VARCHAR(#{lt_source}) NULL, -            language          VARCHAR(#{lt_language}) NULL, -            language_original VARCHAR(#{lt_language_original}) NULL, -            relation          VARCHAR(#{lt_relation}) NULL, -            coverage          VARCHAR(#{lt_coverage}) NULL, -            rights            VARCHAR(#{lt_rights}) NULL, -            copyright         VARCHAR(#{lt_copyright}) NULL, -            owner             VARCHAR(#{lt_owner}) NULL, -            keywords          VARCHAR(#{lt_keywords}) NULL, -            comment           VARCHAR(#{lt_comment}) NULL, -            loc               VARCHAR(#{lt_loc}) NULL, -            dewey             VARCHAR(#{lt_dewey}) NULL, -            isbn              VARCHAR(#{lt_isbn}) NULL, -            pg                VARCHAR(#{lt_pg}) NULL, -            abstract          VARCHAR(#{lt_abstract}) NULL, -            prefix_a          TEXT NULL, -            prefix_b          TEXT NULL, -            skin              VARCHAR(#{lt_skin}) NULL, -            markup            VARCHAR(#{lt_markup}) NULL, -            links             VARCHAR(#{lt_links}) NULL, -            information       VARCHAR(#{lt_information}) NULL, -            contact           VARCHAR(#{lt_contact}) NULL, -            suffix            VARCHAR(#{lt_suffix}) NULL, -            filename          VARCHAR(#{lt_filename}) NULL UNIQUE, -            types             CHAR(#{lt_types}) NULL, -            subj              VARCHAR(#{lt_subj}) NULL +            tid                  BIGINT PRIMARY KEY, +            title                VARCHAR(#{lt_title}) NULL, +            subtitle             VARCHAR(#{lt_subtitle}) NULL, +            author               VARCHAR(#{lt_author}) NULL, +/* plan to replace creator field, currently used, with author field */ +            creator              VARCHAR(#{lt_author}) NULL, +            author_title         VARCHAR(#{lt_author_title}) NULL, +            author_nationality   VARCHAR(#{lt_author_nationality}) NULL, +            illustrator          VARCHAR(#{lt_illustrator}) NULL, +            translator           VARCHAR(#{lt_translator}) NULL, +            subject              VARCHAR(#{lt_subject}) NULL, +            date                 VARCHAR(#{lt_date}) NULL, +            date_added_to_site   VARCHAR(#{lt_date}) NULL, +            date_created         VARCHAR(#{lt_date}) NULL, +            date_issued          VARCHAR(#{lt_date}) NULL, +            date_available       VARCHAR(#{lt_date}) NULL, +            date_valid           VARCHAR(#{lt_date}) NULL, +            date_modified        VARCHAR(#{lt_date}) NULL, +            date_translated      VARCHAR(#{lt_date}) NULL, +/*          date                 DATE, */ +/*          date_added_to_site   DATE, */ +/*          date_created         DATE, */ +/*          date_issued          DATE, */ +/*          date_available       DATE, */ +/*          date_valid           DATE, */ +/*          date_modified        DATE, */ +/*          date_translated      DATE, */ +            type                 VARCHAR(#{lt_type}) NULL, +            description          VARCHAR(#{lt_description}) NULL, +            publisher            VARCHAR(#{lt_publisher}) NULL, +            contributor          VARCHAR(#{lt_contributor}) NULL, +            prepared_by          VARCHAR(#{lt_prepared_by}) NULL, +            digitized_by         VARCHAR(#{lt_digitized_by}) NULL, +            format               VARCHAR(#{lt_format}) NULL, +            identifier           VARCHAR(#{lt_identifier}) NULL, +            source               VARCHAR(#{lt_source}) NULL, +            language             VARCHAR(#{lt_language}) NULL, +            language_original    VARCHAR(#{lt_language_original}) NULL, +            relation             VARCHAR(#{lt_relation}) NULL, +            coverage             VARCHAR(#{lt_coverage}) NULL, +            rights               VARCHAR(#{lt_rights}) NULL, +            copyright            VARCHAR(#{lt_copyright}) NULL, +            owner                VARCHAR(#{lt_owner}) NULL, +            keywords             VARCHAR(#{lt_keywords}) NULL, +            comment              VARCHAR(#{lt_comment}) NULL, +            loc                  VARCHAR(#{lt_loc}) NULL, +            dewey                VARCHAR(#{lt_dewey}) NULL, +            isbn                 VARCHAR(#{lt_isbn}) NULL, +            pg                   VARCHAR(#{lt_pg}) NULL, +            abstract             VARCHAR(#{lt_abstract}) NULL, +            prefix_a             TEXT NULL, +            prefix_b             TEXT NULL, +            skin                 VARCHAR(#{lt_skin}) NULL, +            markup               VARCHAR(#{lt_markup}) NULL, +            links                VARCHAR(#{lt_links}) NULL, +            information          VARCHAR(#{lt_information}) NULL, +            contact              VARCHAR(#{lt_contact}) NULL, +            suffix               VARCHAR(#{lt_suffix}) NULL, +            filename             VARCHAR(#{lt_filename}) NULL UNIQUE, +            types                CHAR(#{lt_types}) NULL, +            subj                 VARCHAR(#{lt_subj}) NULL, +            original_publication VARCHAR(#{lt_orig_pub}) NULL, +            original_publication_date VARCHAR(#{lt_orig_pub_date}) NULL, +            original_publication_institution VARCHAR(#{lt_orig_pub_institution}) NULL, +            original_publication_nationality VARCHAR(#{lt_orig_pub_nationality}) NULL, +            writing_focus_nationality VARCHAR(#{lt_writing_focus_nationality}) NULL, +            topic_register       VARCHAR(#{lt_topic_register}) NULL            );            #{@comment.metadata}          }) diff --git a/lib/sisu/v0/db_tests.rb b/lib/sisu/v0/db_tests.rb index 4a18f694..86e7ca25 100644 --- a/lib/sisu/v0/db_tests.rb +++ b/lib/sisu/v0/db_tests.rb @@ -70,45 +70,49 @@ module SiSU_DB_tests      end      def verify        unless @opt.cmd =~/q/ -      puts @ck.tp[:fns].length.to_s            + ' checklength ' + @ck.tp[:fns]            if @ck.tp[:fns]            and @ck.tp[:fns].length            >@ck.lt_filename -      puts @ck.tp[:title].length.to_s          + ' checklength ' + @ck.tp[:title]          if @ck.tp[:title]          and @ck.tp[:title].length          >@ck.lt_title -      puts @ck.tp[:subtitle].length.to_s       + ' checklength ' + @ck.tp[:subtitle]       if @ck.tp[:subtitle]       and @ck.tp[:subtitle].length       >@ck.lt_subtitle -      puts @ck.tp[:creator].length.to_s        + ' checklength ' + @ck.tp[:creator]        if @ck.tp[:creator]        and @ck.tp[:creator].length        >@ck.lt_creator -      puts @ck.tp[:illustrator].length.to_s    + ' checklength ' + @ck.tp[:illustrator]    if @ck.tp[:illustrator]    and @ck.tp[:illustrator].length    >@ck.lt_illustrator -      puts @ck.tp[:translator].length.to_s     + ' checklength ' + @ck.tp[:translator]     if @ck.tp[:translator]     and @ck.tp[:translator].length     >@ck.lt_translator -      puts @ck.tp[:prepared_by].length.to_s    + ' checklength ' + @ck.tp[:prepared_by]    if @ck.tp[:prepared_by]    and @ck.tp[:prepared_by].length    >@ck.lt_prepared_by -      puts @ck.tp[:digitized_by].length.to_s   + ' checklength ' + @ck.tp[:digitized_by]   if @ck.tp[:digitized_by]   and @ck.tp[:digitized_by].length   >@ck.lt_digitized_by -      puts @ck.tp[:subject].length.to_s        + ' checklength ' + @ck.tp[:subject]        if @ck.tp[:subject]        and @ck.tp[:subject].length        >@ck.lt_subject -      puts @ck.tp[:description].length.to_s    + ' checklength ' + @ck.tp[:description]    if @ck.tp[:description]    and @ck.tp[:description].length    >@ck.lt_description -      puts @ck.tp[:publisher].length.to_s      + ' checklength ' + @ck.tp[:publisher]      if @ck.tp[:publisher]      and @ck.tp[:publisher].length      >@ck.lt_publisher -      puts @ck.tp[:contributor].length.to_s    + ' checklength ' + @ck.tp[:contributor]    if @ck.tp[:contributor]    and @ck.tp[:contributor].length    >@ck.lt_contributor -      puts @ck.tp[:date].length.to_s           + ' checklength ' + @ck.tp[:date]           if @ck.tp[:date]           and @ck.tp[:date].length           >@ck.lt_date -      puts @ck.tp[:date_created].length.to_s   + ' checklength ' + @ck.tp[:date_created]   if @ck.tp[:date_created]   and @ck.tp[:date_created].length   >@ck.lt_date_created -      puts @ck.tp[:date_issued].length.to_s    + ' checklength ' + @ck.tp[:date_issued]    if @ck.tp[:date_issued]    and @ck.tp[:date_issued].length    >@ck.lt_date_issued -      puts @ck.tp[:date_valid].length.to_s     + ' checklength ' + @ck.tp[:date_valid]     if @ck.tp[:date_valid]     and @ck.tp[:date_valid].length     >@ck.lt_date_valid -      puts @ck.tp[:date_available].length.to_s + ' checklength ' + @ck.tp[:date_available] if @ck.tp[:date_available] and @ck.tp[:date_available].length >@ck.lt_date_available -      puts @ck.tp[:date_modified].length.to_s  + ' checklength ' + @ck.tp[:date_modified]  if @ck.tp[:date_modified]  and @ck.tp[:date_modified].length  >@ck.lt_date_modified -      puts @ck.tp[:type].length.to_s           + ' checklength ' + @ck.tp[:type]           if @ck.tp[:type]           and @ck.tp[:type].length           >@ck.lt_type -      puts @ck.tp[:format].length.to_s         + ' checklength ' + @ck.tp[:format]         if @ck.tp[:format]         and @ck.tp[:format].length         >@ck.lt_format -      puts @ck.tp[:identifier].length.to_s     + ' checklength ' + @ck.tp[:identifier]     if @ck.tp[:identifier]     and @ck.tp[:identifier].length     >@ck.lt_identifier -      puts @ck.tp[:source].length.to_s         + ' checklength ' + @ck.tp[:source]         if @ck.tp[:source]         and @ck.tp[:source].length         >@ck.lt_source -      puts @ck.tp[:language].length.to_s       + ' checklength ' + @ck.tp[:language]       if @ck.tp[:language]       and @ck.tp[:language].length       >@ck.lt_language -      puts @ck.tp[:language_original].length.to_s + ' checklength ' + @ck.tp[:language_original] if @ck.tp[:language_original] and @ck.tp[:language_original].length >@ck.lt_language_original +      puts @ck.tp[:fns].length.to_s                + ' checklength ' + @ck.tp[:fns]                if @ck.tp[:fns]                and @ck.tp[:fns].length                >@ck.lt_filename +      puts @ck.tp[:title].length.to_s              + ' checklength ' + @ck.tp[:title]              if @ck.tp[:title]              and @ck.tp[:title].length              >@ck.lt_title +      puts @ck.tp[:subtitle].length.to_s           + ' checklength ' + @ck.tp[:subtitle]           if @ck.tp[:subtitle]           and @ck.tp[:subtitle].length           >@ck.lt_subtitle +      puts @ck.tp[:creator].length.to_s            + ' checklength ' + @ck.tp[:creator]            if @ck.tp[:creator]            and @ck.tp[:creator].length            >@ck.lt_creator +      puts @ck.tp[:author_title].length.to_s       + ' checklength ' + @ck.tp[:author_title]       if @ck.tp[:author_title]       and @ck.tp[:author_title].length       >@ck.lt_author_title +      puts @ck.tp[:illustrator].length.to_s        + ' checklength ' + @ck.tp[:illustrator]        if @ck.tp[:illustrator]        and @ck.tp[:illustrator].length        >@ck.lt_illustrator +      puts @ck.tp[:translator].length.to_s         + ' checklength ' + @ck.tp[:translator]         if @ck.tp[:translator]         and @ck.tp[:translator].length         >@ck.lt_translator +      puts @ck.tp[:prepared_by].length.to_s        + ' checklength ' + @ck.tp[:prepared_by]        if @ck.tp[:prepared_by]        and @ck.tp[:prepared_by].length        >@ck.lt_prepared_by +      puts @ck.tp[:digitized_by].length.to_s       + ' checklength ' + @ck.tp[:digitized_by]       if @ck.tp[:digitized_by]       and @ck.tp[:digitized_by].length       >@ck.lt_digitized_by +      puts @ck.tp[:subject].length.to_s            + ' checklength ' + @ck.tp[:subject]            if @ck.tp[:subject]            and @ck.tp[:subject].length            >@ck.lt_subject +      puts @ck.tp[:description].length.to_s        + ' checklength ' + @ck.tp[:description]        if @ck.tp[:description]        and @ck.tp[:description].length        >@ck.lt_description +      puts @ck.tp[:publisher].length.to_s          + ' checklength ' + @ck.tp[:publisher]          if @ck.tp[:publisher]          and @ck.tp[:publisher].length          >@ck.lt_publisher +      puts @ck.tp[:contributor].length.to_s        + ' checklength ' + @ck.tp[:contributor]        if @ck.tp[:contributor]        and @ck.tp[:contributor].length        >@ck.lt_contributor +      puts @ck.tp[:date].length.to_s               + ' checklength ' + @ck.tp[:date]               if @ck.tp[:date]               and @ck.tp[:date].length               >@ck.lt_date +      puts @ck.tp[:date_created].length.to_s       + ' checklength ' + @ck.tp[:date_created]       if @ck.tp[:date_created]       and @ck.tp[:date_created].length       >@ck.lt_date +      puts @ck.tp[:date_issued].length.to_s        + ' checklength ' + @ck.tp[:date_issued]        if @ck.tp[:date_issued]        and @ck.tp[:date_issued].length        >@ck.lt_date +      puts @ck.tp[:date_valid].length.to_s         + ' checklength ' + @ck.tp[:date_valid]         if @ck.tp[:date_valid]         and @ck.tp[:date_valid].length         >@ck.lt_date +      puts @ck.tp[:date_available].length.to_s     + ' checklength ' + @ck.tp[:date_available]     if @ck.tp[:date_available]     and @ck.tp[:date_available].length     >@ck.lt_date +      puts @ck.tp[:date_modified].length.to_s      + ' checklength ' + @ck.tp[:date_modified]      if @ck.tp[:date_modified]      and @ck.tp[:date_modified].length      >@ck.lt_date +      puts @ck.tp[:date_translated].length.to_s    + ' checklength ' + @ck.tp[:date_translated]    if @ck.tp[:date_translated]    and @ck.tp[:date_translated].length    >@ck.lt_date +      puts @ck.tp[:date_added_to_site].length.to_s + ' checklength ' + @ck.tp[:date_added_to_site] if @ck.tp[:date_added_to_site] and @ck.tp[:date_added_to_site].length >@ck.lt_date +      puts @ck.tp[:type].length.to_s               + ' checklength ' + @ck.tp[:type]               if @ck.tp[:type]               and @ck.tp[:type].length               >@ck.lt_type +      puts @ck.tp[:format].length.to_s             + ' checklength ' + @ck.tp[:format]             if @ck.tp[:format]             and @ck.tp[:format].length             >@ck.lt_format +      puts @ck.tp[:identifier].length.to_s         + ' checklength ' + @ck.tp[:identifier]         if @ck.tp[:identifier]         and @ck.tp[:identifier].length         >@ck.lt_identifier +      puts @ck.tp[:source].length.to_s             + ' checklength ' + @ck.tp[:source]             if @ck.tp[:source]             and @ck.tp[:source].length             >@ck.lt_source +      puts @ck.tp[:language].length.to_s           + ' checklength ' + @ck.tp[:language]           if @ck.tp[:language]           and @ck.tp[:language].length           >@ck.lt_language +      puts @ck.tp[:language_original].length.to_s  + ' checklength ' + @ck.tp[:language_original]  if @ck.tp[:language_original]  and @ck.tp[:language_original].length  >@ck.lt_language_original        #puts @ck.tp[:language_char].length.to_s     + ' checklength ' + @ck.tp[:language_char]       if @ck.tp[:language_char]       and @ck.tp[:language_char].length       >@ck.lt_language_char        #puts @ck.tp[:language_original_char].length.to_s + ' checklength ' + @ck.tp[:language_original_char]       if @ck.tp[:language_original_char]       and @ck.tp[:language_original_char].length       >@ck.lt_language_original_char -      puts @ck.tp[:relation].length.to_s       + ' checklength ' + @ck.tp[:relation]       if @ck.tp[:relation]       and @ck.tp[:relation].length       >@ck.lt_relation -      puts @ck.tp[:coverage].length.to_s       + ' checklength ' + @ck.tp[:coverage]       if @ck.tp[:coverage]       and @ck.tp[:coverage].length       >@ck.lt_coverage -      puts @ck.tp[:rights].length.to_s         + ' checklength ' + @ck.tp[:rights]         if @ck.tp[:rights]         and @ck.tp[:rights].length         >@ck.lt_rights -      puts @ck.tp[:copyright].length.to_s      + ' checklength ' + @ck.tp[:copyright]      if @ck.tp[:copyright]      and @ck.tp[:copyright].length      >@ck.lt_copyright -      puts @ck.tp[:owner].length.to_s          + ' checklength ' + @ck.tp[:owner]          if @ck.tp[:owner]          and @ck.tp[:owner].length          >@ck.lt_owner -      puts @ck.tp[:keywords].length.to_s       + ' checklength ' + @ck.tp[:keywords]       if @ck.tp[:keywords]       and @ck.tp[:keywords].length       >@ck.lt_keywords -      puts @ck.tp[:abstract].length.to_s       + ' checklength ' + @ck.tp[:abstract]       if @ck.tp[:abstract]       and @ck.tp[:abstract].length       >@ck.lt_abstract -      puts @ck.tp[:comment].length.to_s        + ' checklength ' + @ck.tp[:comment]        if @ck.tp[:comment]        and @ck.tp[:comment].length        >@ck.lt_comment -      puts @ck.tp[:loc].length.to_s            + ' checklength ' + @ck.tp[:loc]            if @ck.tp[:loc]            and @ck.tp[:loc].length            >@ck.lt_loc -      puts @ck.tp[:dewey].length.to_s          + ' checklength ' + @ck.tp[:dewey]          if @ck.tp[:dewey]          and @ck.tp[:dewey].length          >@ck.lt_dewey -      puts @ck.tp[:isbn].length.to_s           + ' checklength ' + @ck.tp[:isbn]           if @ck.tp[:isbn]           and @ck.tp[:isbn].length           >@ck.lt_isbn -      puts @ck.tp[:pg].length.to_s             + ' checklength ' + @ck.tp[:pg]             if @ck.tp[:pg]             and @ck.tp[:pg].length             >@ck.lt_pg -      puts @ck.tp[:date]                                                                   if  @ck.tp[:date] and not @ck.tp[:date].empty? and @ck.tp[:date] !~/\d\d-\d\d-\d\d/ +      puts @ck.tp[:relation].length.to_s           + ' checklength ' + @ck.tp[:relation]           if @ck.tp[:relation]           and @ck.tp[:relation].length           >@ck.lt_relation +      puts @ck.tp[:coverage].length.to_s           + ' checklength ' + @ck.tp[:coverage]           if @ck.tp[:coverage]           and @ck.tp[:coverage].length           >@ck.lt_coverage +      puts @ck.tp[:rights].length.to_s             + ' checklength ' + @ck.tp[:rights]             if @ck.tp[:rights]             and @ck.tp[:rights].length             >@ck.lt_rights +      puts @ck.tp[:copyright].length.to_s          + ' checklength ' + @ck.tp[:copyright]          if @ck.tp[:copyright]          and @ck.tp[:copyright].length          >@ck.lt_copyright +      puts @ck.tp[:owner].length.to_s              + ' checklength ' + @ck.tp[:owner]              if @ck.tp[:owner]              and @ck.tp[:owner].length              >@ck.lt_owner +      puts @ck.tp[:keywords].length.to_s           + ' checklength ' + @ck.tp[:keywords]           if @ck.tp[:keywords]           and @ck.tp[:keywords].length           >@ck.lt_keywords +      puts @ck.tp[:abstract].length.to_s           + ' checklength ' + @ck.tp[:abstract]           if @ck.tp[:abstract]           and @ck.tp[:abstract].length           >@ck.lt_abstract +      puts @ck.tp[:comment].length.to_s            + ' checklength ' + @ck.tp[:comment]            if @ck.tp[:comment]            and @ck.tp[:comment].length            >@ck.lt_comment +      puts @ck.tp[:loc].length.to_s                + ' checklength ' + @ck.tp[:loc]                if @ck.tp[:loc]                and @ck.tp[:loc].length                >@ck.lt_loc +      puts @ck.tp[:dewey].length.to_s              + ' checklength ' + @ck.tp[:dewey]              if @ck.tp[:dewey]              and @ck.tp[:dewey].length              >@ck.lt_dewey +      puts @ck.tp[:isbn].length.to_s               + ' checklength ' + @ck.tp[:isbn]               if @ck.tp[:isbn]               and @ck.tp[:isbn].length               >@ck.lt_isbn +      puts @ck.tp[:pg].length.to_s                 + ' checklength ' + @ck.tp[:pg]                 if @ck.tp[:pg]                 and @ck.tp[:pg].length                 >@ck.lt_pg +      puts @ck.tp[:topic_register].length.to_s     + ' checklength ' + @ck.tp[:topic_register]     if @ck.tp[:topic_register]     and @ck.tp[:topci_register].length     >@ck.lt_topic_register +      puts @ck.tp[:date]                                                                           if @ck.tp[:date] and not @ck.tp[:date].empty? and @ck.tp[:date] !~/\d\d-\d\d-\d\d/        end      end    end diff --git a/lib/sisu/v0/harvest_authors.rb b/lib/sisu/v0/harvest_authors.rb index 9586fcc3..9678e4f7 100644 --- a/lib/sisu/v0/harvest_authors.rb +++ b/lib/sisu/v0/harvest_authors.rb @@ -102,16 +102,18 @@ module HARVEST_authors      end      def extract_harvest        data,filename,idx_array=@data,@filename,@idx_array -      @publication_details,@title,@subtitle,@fulltitle,@author,@author_format=nil,nil,nil,nil,nil,nil +      @orig_pub,@title,@subtitle,@fulltitle,@author,@author_format=nil,nil,nil,nil,nil,nil        @authors=[]        rgx={}        rgx[:author]=/^@(?:author|creator):\s+(.+)/        rgx[:title]=/^@title:\s+(.+)/        rgx[:subtitle]=/^@subtitle:\s+(.+)/ -      rgx[:publication_details]=/^@original_publication_details:\s+(.+)/ +      rgx[:date]=/^@subtitle:\s+(.+)/ +      rgx[:date]=/^@date:\s+(\d{4})/ +      rgx[:orig_pub]=/^@original_publication:\s+(.+)/        data.each do |para| -        if para=~ rgx[:publication_details] -          @publication_details=rgx[:publication_details].match(para)[1] +        if para=~ rgx[:orig_pub] +          @orig_pub=rgx[:orig_pub].match(para)[1]          end          if para=~ rgx[:title]            @title=rgx[:title].match(para)[1] @@ -122,19 +124,22 @@ module HARVEST_authors          if para=~ rgx[:author]            @author_format=rgx[:author].match(para)[1]          end -        break if @title and @subtitle and @author and @publication_details +        if para=~ rgx[:date] +          @date=rgx[:date].match(para)[1] +        end +        break if @title and @subtitle and @author and @date and @orig_pub        end        @fulltitle=if @subtitle          @title + ' - ' + @subtitle        else @title        end -      if @title and @author_format #and @publication_details +      if @title and @author_format #and @orig_pub (publication details)          creator=FORMAT::Author.new(@author_format.strip).author_details          @authors,@authorship=creator[:authors],creator[:authorship]          file=filename.sub(/\.ss[mt]$/,'') -        idx_array <<= { :filename => filename, :file => file, :publication_details => @publication_details, :title => @fulltitle, :author => creator } +        idx_array <<= { :filename => filename, :file => file, :orig_pub => @orig_pub, :date => @date, :title => @fulltitle, :author => creator }        else -        #p "missing author field: #@filename title: #@title; author: #@author_format; idx: #@publication_details" +        #p "missing author field: #@filename title: #@title; author: #@author_format; idx: #@orig_pub"        end        idx_array.flatten!        idx_array @@ -156,7 +161,7 @@ module HARVEST_authors            if @@the_idx_authors[author].class==NilClass              @@the_idx_authors[author]={:md => []}            end -          @@the_idx_authors[author][:md] << { :filename => idx[:filename], :file => idx[:file], :author => idx[:author], :title => idx[:title] } +          @@the_idx_authors[author][:md] << { :filename => idx[:filename], :file => idx[:file], :author => idx[:author], :title => idx[:title], :date => idx[:date] }          end        end        @the_idx=@@the_idx_authors @@ -290,9 +295,9 @@ WOK            @output[:html] << x            a[1][:md].each do |x|              if @output[:html_mnt].class == File -              @output[:html_mnt] << %{<p class="publication">[<a href="#{x[:file]}.sst">src</a>]  <a href="file://#{@env.path.output}/#{x[:file]}/#{@page}">#{x[:title]}</a>, #{x[:author][:authors_s]} -- [<a href="#{x[:file]}.sst">#{x[:file]}.sst</a>]</p>} +              @output[:html_mnt] << %{<p class="publication">[<a href="#{x[:file]}.sst">src</a>]  #{x[:date]} <a href="file://#{@env.path.output}/#{x[:file]}/#{@page}">#{x[:title]}</a>, #{x[:author][:authors_s]} -- [<a href="#{x[:file]}.sst">#{x[:file]}.sst</a>]</p>}              end -            @output[:html] << %{<p class="publication"><a href="../#{x[:file]}/#{@page}">#{x[:title]}</a>, #{x[:author][:authors_s]}</p>} +            @output[:html] << %{<p class="publication">#{x[:date]} <a href="../#{x[:file]}/#{@page}">#{x[:title]}</a>, #{x[:author][:authors_s]}</p>}            end          end        end diff --git a/lib/sisu/v0/param.rb b/lib/sisu/v0/param.rb index 0d2095dd..ec80e0dd 100644 --- a/lib/sisu/v0/param.rb +++ b/lib/sisu/v0/param.rb @@ -118,9 +118,9 @@ module SiSU_Param        @doc={ :lv=>[] }        @doc[:fns],@doc[:fnb],@doc[:scr_suffix]='','',''        @@publisher='SiSU scribe' -      attr_accessor :cmd,:mod,:env,:fn,:fns,:fnb,:fnn,:fnt,:fnl,:flv,:fnz,:fnstex,:ocn,:sfx_src,:sfx,:pdf,:file_type,:dir_out,:dir_tex,:dir_lout,:txt_path,:site_skin,:sisu,:sisu_version,:ruby_version,:title,:dc_title,:html_title,:subtitle,:subtitle_tex,:creator_home,:dc_creator,:authors,:authorship,:translator,:illustrator,:prepared_by,:digitized_by,:dc_subject,:dc_description,:dc_publisher,:dc_contributor,:dc_date,:dc_date_created,:dc_date_issued,:dc_date_available,:dc_date_valid,:dc_date_modified,:date_scheme,:date_created_scheme,:date_issued_scheme,:date_available_scheme,:date_valid_scheme,:date_modified_scheme,:dc_type,:dc_format,:dc_identifier,:dc_source,:dc_language,:language_original,:dc_relation,:dc_coverage,:dc_rights,:keywords,:comments,:abstract,:cls_loc,:cls_dewey,:cls_pg,:cls_isbn,:papersize,:papersize_array,:toc,:lv1,:lv2,:lv3,:lv4,:lv5,:lv6,:pagenew,:pagebreak,:num_top,:toc_lev_limit,:flag_endnotes,:flag_auto_endnotes,:flag_separate_endnotes,:flag_separate_endnotes_make,:flag_auto_heading_num,:markup,:markup_instruction,:markup_version,:markup_declared,:make_bold,:make_italic,:flag_tables,:vocabulary,:doc_skin,:doc_css,:yaml,:lnk,:prefix_a,:prefix_b,:suffix,:information,:contact,:icon,:image,:ad_url,:ad_png,:ad_alt,:ad_began,:flag_promo,:promo,:ad_home,:stmp,:stmpd,:sc_filename,:sc_number,:sc_date,:sc_time,:sc_info,:yamladdr,:locale,:wc_lines,:wc_words,:wc_bytes,:file_encoding,:file_size,:user,:home,:hostname,:pwd,:firstseg,:programs,:creator_copymark,:lang,:en,:dgst,:dgst_skin,:generated,:tags,:tag_array,:concord_make,:seg_names,:seg_autoname_safe,:set_header_title,:set_heading_top,:set_heading_seg,:heading_seg_first,:heading_seg_first_flag,:base_program,:man_section,:man_name,:man_synopsis,:ec,:opt,:sem_tag,:book_idx,:topic_register,:topic_register_array,:original_publication_details +      attr_accessor :cmd,:mod,:env,:fn,:fns,:fnb,:fnn,:fnt,:fnl,:flv,:fnz,:fnstex,:ocn,:sfx_src,:sfx,:pdf,:file_type,:dir_out,:dir_tex,:dir_lout,:txt_path,:site_skin,:sisu,:sisu_version,:ruby_version,:title,:dc_title,:html_title,:subtitle,:subtitle_tex,:creator_home,:dc_creator,:author_title,:author_nationality,:authors,:authorship,:translator,:illustrator,:prepared_by,:digitized_by,:dc_subject,:dc_description,:dc_publisher,:dc_contributor,:dc_date,:dc_date_created,:dc_date_issued,:dc_date_available,:dc_date_valid,:dc_date_modified,:date_translated,:date_added_to_site,:date_scheme,:date_created_scheme,:date_issued_scheme,:date_available_scheme,:date_valid_scheme,:date_modified_scheme,:dc_type,:dc_format,:dc_identifier,:dc_source,:dc_language,:language_original,:dc_relation,:dc_coverage,:dc_rights,:keywords,:comments,:abstract,:cls_loc,:cls_dewey,:cls_pg,:cls_isbn,:papersize,:papersize_array,:toc,:lv1,:lv2,:lv3,:lv4,:lv5,:lv6,:pagenew,:pagebreak,:num_top,:toc_lev_limit,:flag_endnotes,:flag_auto_endnotes,:flag_separate_endnotes,:flag_separate_endnotes_make,:flag_auto_heading_num,:markup,:markup_instruction,:markup_version,:markup_declared,:make_bold,:make_italic,:flag_tables,:vocabulary,:doc_skin,:doc_css,:yaml,:lnk,:prefix_a,:prefix_b,:suffix,:information,:contact,:icon,:image,:ad_url,:ad_png,:ad_alt,:ad_began,:flag_promo,:promo,:ad_home,:stmp,:stmpd,:sc_filename,:sc_number,:sc_date,:sc_time,:sc_info,:yamladdr,:locale,:wc_lines,:wc_words,:wc_bytes,:file_encoding,:file_size,:user,:home,:hostname,:pwd,:firstseg,:programs,:creator_copymark,:lang,:en,:dgst,:dgst_skin,:generated,:tags,:tag_array,:concord_make,:seg_names,:seg_autoname_safe,:set_header_title,:set_heading_top,:set_heading_seg,:heading_seg_first,:heading_seg_first_flag,:base_program,:man_section,:man_name,:man_synopsis,:ec,:opt,:sem_tag,:book_idx,:topic_register,:topic_register_array,:original_publication,:original_publication_date,:original_publication_nationality,:original_publication_institution,:writing_focus        def initialize(fns_array,opt) -        @env=@fn=@fns=@fnb=@fnn=@fnt=@fnl=@flv=@fnz=@fnstex=@ocn=@sfx_src=@sfx=@pdf=@file_type=@dir_out=@dir_tex=@dir_lout=@txt_path=@flag_endnotes=@flag_auto_endnotes=@flag_separate_endnotes=@flag_separate_endnotes_make=@site_skin=@sisu=@sisu_version=@ruby_version=@title=@dc_title=@html_title=@subtitle=@subtitle_tex=@creator_home=@dc_creator=@translator=@illustrator=@prepared_by=@digitized_by=@dc_subject=@dc_description=@dc_publisher=@dc_contributor=@dc_date=@dc_date_created=@dc_date_issued=@dc_date_available=@dc_date_valid=@dc_date_modified=@date_scheme=@date_created_scheme=@date_issued_scheme=@date_available_scheme=@date_valid_scheme=@date_modified_scheme=@dc_type=@dc_format=@dc_identifier=@dc_source=@dc_language=@language_original=@dc_relation=@dc_coverage=@dc_rights=@keywords=@comments=@abstract=@cls_loc=@cls_dewey=@cls_pg=@cls_isbn=@papersize=@toc=@lv1=@lv2=@lv3=@lv4=@lv5=@lv6=@pagenew=@pagebreak=@num_top=@toc_lev_limit=@flag_auto_heading_num=@make_bold=@make_italic=@flag_tables=@vocabulary=@doc_skin=@doc_css=@yaml=@lnk=@prefix_a=@prefix_b=@suffix=@information=@contact=@icon=@ad_url=@ad_png=@ad_alt=@ad_began=@promo=@ad_home=@stmp=@stmpd=@sc_filename=@sc_number=@sc_date=@sc_time=@sc_info=@yamladdr=@locale=@wc_lines=@wc_words=@wc_bytes=@file_encoding=@file_size=@firstseg=@programs=@creator_copymark=@lang=@en=@dgst=@dgst_skin=@generated=@heading_seg_first=@base_program=@man_synopsis=@topic_register=@original_publication_details=nil +        @env=@fn=@fns=@fnb=@fnn=@fnt=@fnl=@flv=@fnz=@fnstex=@ocn=@sfx_src=@sfx=@pdf=@file_type=@dir_out=@dir_tex=@dir_lout=@txt_path=@flag_endnotes=@flag_auto_endnotes=@flag_separate_endnotes=@flag_separate_endnotes_make=@site_skin=@sisu=@sisu_version=@ruby_version=@title=@dc_title=@html_title=@subtitle=@subtitle_tex=@creator_home=@dc_creator=@author_title=@author_nationality=@translator=@illustrator=@prepared_by=@digitized_by=@dc_subject=@dc_description=@dc_publisher=@dc_contributor=@dc_date=@dc_date_created=@dc_date_issued=@dc_date_available=@dc_date_valid=@dc_date_modified=@date_translated=@date_added_to_site=@date_scheme=@date_created_scheme=@date_issued_scheme=@date_available_scheme=@date_valid_scheme=@date_modified_scheme=@dc_type=@dc_format=@dc_identifier=@dc_source=@dc_language=@language_original=@dc_relation=@dc_coverage=@dc_rights=@keywords=@comments=@abstract=@cls_loc=@cls_dewey=@cls_pg=@cls_isbn=@papersize=@toc=@lv1=@lv2=@lv3=@lv4=@lv5=@lv6=@pagenew=@pagebreak=@num_top=@toc_lev_limit=@flag_auto_heading_num=@make_bold=@make_italic=@flag_tables=@vocabulary=@doc_skin=@doc_css=@yaml=@lnk=@prefix_a=@prefix_b=@suffix=@information=@contact=@icon=@ad_url=@ad_png=@ad_alt=@ad_began=@promo=@ad_home=@stmp=@stmpd=@sc_filename=@sc_number=@sc_date=@sc_time=@sc_info=@yamladdr=@locale=@wc_lines=@wc_words=@wc_bytes=@file_encoding=@file_size=@firstseg=@programs=@creator_copymark=@lang=@en=@dgst=@dgst_skin=@generated=@heading_seg_first=@base_program=@man_synopsis=@topic_register=@original_publication_details=@original_publication=@original_publication_date=@original_publication_nationality=@original_publication_institution=@writing_focus=nil          @man_section=1          @man_name='man page "name/whatis" information not provided, set in header @man: name=[whatis information]'          @data,@fns,@cmd,@mod,@opt=fns_array,opt.fns,opt.cmd,opt.mod,opt #@data used as data @@ -324,6 +324,8 @@ module SiSU_Param                names=name_format($1)                @authorship=@dc_creator=names[:name_str]                @authors=names[:name_a_h] +            when /^@(?:creator|author)\.title:\s+(.+?)$/; @author_title=$1                          # Prof. Dr. etc. +            when /^@(?:creator|author)\.nationality:\s+(.+?)$/; @author_nationality=$1              when /^(?:@(?:translator|translated_by):|0~(?:translator|translated_by))\s+(.+?)$/m     #% metainfo                names=name_format($1)                @translator=names[:name_str] @@ -336,18 +338,20 @@ module SiSU_Param              when /^(?:@digitized_by:|0~digitized_by)\s+(.+?)$/m                                     #% metainfo DC                names=name_format($1)                @digitized_by=names[:name_str] -            when /^(?:@subject:|0~subject)\s+(.+?)$/m                                               #% metainfo DC -              @dc_subject=$1 -            when /^(?:@description:|0~description)\s+(.+?)$/m                                       #% metainfo DC & rss feed -              @dc_description=$1 +            when /^(?:@subject:|0~subject)\s+(.+?)$/m; @dc_subject=$1                                               #% metainfo DC +            when /^(?:@description:|0~description)\s+(.+?)$/m; @dc_description=$1                   #% metainfo DC & rss feed              when /^(?:@contributor:|0~contributor)\s+(.+?)$/m                                       #% metainfo DC                names=name_format($1)                @dc_contributor=names[:name_str] -            when /^(?:@publisher:|0~publisher)\s+(.+?)$/m                                           #% metainfo DC -              @dc_publisher=$1 +            when /^(?:@publisher:|0~publisher)\s+(.+?)$/m; @dc_publisher=$1                         #% metainfo DC +            when /^@original_publication:\s+(.+?)$/m; @original_publication=$1 +            when /^@original_publication\.date:\s+(.+?)$/; @original_publication_date=$1 +            when /^@original_publication\.nationality:\s+(.+?)$/; @original_publication_nationality=$1 +            when /^@original_publication\.institution:\s+(.+?)$/; @original_publication_institution=$1 +            when /^@writing_focus\.nationality:\s+(.+?)$/; @writing_focus=$1                       # e.g. Finland (where and article on Finnish law)              when /^(?:@|0~)date.+?$/m                                                               #% metainfo DC                if para =~/(?:@date:|0~date)\s+(.+?)$/m -                @dc_date=$1.strip +                @dc_date=$1.strip                                                                   #% original publication date unless the substantive text is updated/modified, then date of update                  if @dc_date !~regx_date \                  and not @dc_date.empty?                    tell=SiSU_Screen::Ansi.new(@cmd,'Date Format should be','YYYY-MM-DD','please correct document','Date','field, current value:',@dc_date) @@ -355,6 +359,15 @@ module SiSU_Param                  end                  @date_scheme='scheme="ISO-8601"' if @dc_date =~/\d{4}-\d{2}-\d{2}/                end +              if para =~/(?:@date\.added_to_site:|0~date\.added_to_site)\s+(.+?)$/m +                @date_added_to_site=$1.strip +                if @date_added_to_site !~regx_date \ +                and not @date_added_to_site.empty? +                  tell=SiSU_Screen::Ansi.new(@cmd,'Date Format should be','YYYY-MM-DD','please correct document','Date','field, current value:',@date_added_to_site) +                  tell.instruct if @cmd =~/v/ +                end +                @date_scheme='scheme="ISO-8601"' if @date_added_to_site =~/\d{4}-\d{2}-\d{2}/ +              end                if para =~/(?:@date\.created:|0~date\.created)\s*(.+?)$/m                  date=$1.strip                  if date !~regx_date \ @@ -405,6 +418,16 @@ module SiSU_Param                  @dc_date_modified=date                  @date_modified_scheme='scheme="ISO-8601"' if date =~/\d{4}-\d{2}-\d{2}/                end +              if para =~/^(?:@date\.translated:|0~date\.translated)\s*(.+?)$/m +                date=$1.strip +                if date !~regx_date \ +                and not date.empty? +                  tell=SiSU_Screen::Ansi.new(@cmd,'Date Format should be','YYYY-MM-DD','please correct document','Date','field, current value:',date) +                  tell.instruct if @cmd =~/v/ +                end +                @date_translated=date +                @date_translated_scheme='scheme="ISO-8601"' if date =~/\d{4}-\d{2}-\d{2}/ +              end              when /^(?:@type:|0~type)\s+(.+?)$/m;             @dc_type=$1                                                 #% metainfo DC              when /^(?:@format:|0~format)\s+(.+?)$/m;         @dc_format=$1                                               #% metainfo DC              #when /^(?:@identifier:|0~identifier)\s+(.+?)$/m; @dc_identifier=$1                                           #% metainfo DC | 
