sisu 7.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/bin/sisu +367 -0
- data/bin/sisugem +367 -0
- data/data/sisu/image/arrow_next_red.png +0 -0
- data/data/sisu/image/arrow_prev_red.png +0 -0
- data/data/sisu/image/arrow_up_red.png +0 -0
- data/data/sisu/image/b_bluebell.png +0 -0
- data/data/sisu/image/b_doc.png +0 -0
- data/data/sisu/image/b_epub.png +0 -0
- data/data/sisu/image/b_home.png +0 -0
- data/data/sisu/image/b_info.png +0 -0
- data/data/sisu/image/b_odf.png +0 -0
- data/data/sisu/image/b_pdf.png +0 -0
- data/data/sisu/image/b_search.png +0 -0
- data/data/sisu/image/b_toc.png +0 -0
- data/data/sisu/image/bullet_08.png +0 -0
- data/data/sisu/image/bullet_09.png +0 -0
- data/data/sisu/image/bullet_10.png +0 -0
- data/data/sisu/image/bullet_11.png +0 -0
- data/data/sisu/image/bullet_12.png +0 -0
- data/data/sisu/image/bullet_doc.png +0 -0
- data/data/sisu/image/bullet_red.png +0 -0
- data/data/sisu/image/dot_clear.png +0 -0
- data/data/sisu/image/dot_white.png +0 -0
- data/data/sisu/image/gplv3.png +0 -0
- data/data/sisu/image/gplv3_free_software.png +0 -0
- data/data/sisu/image/next.png +0 -0
- data/data/sisu/image/previous.png +0 -0
- data/data/sisu/image/rb7.ico +0 -0
- data/data/sisu/image/sisu.png +0 -0
- data/data/sisu/image/toctoc.png +0 -0
- data/data/sisu/version.yml +5 -0
- data/lib/sisu.rb +94 -0
- data/lib/sisu/air.rb +80 -0
- data/lib/sisu/ao.rb +590 -0
- data/lib/sisu/ao_character_check.rb +102 -0
- data/lib/sisu/ao_composite.rb +286 -0
- data/lib/sisu/ao_doc_objects.rb +565 -0
- data/lib/sisu/ao_doc_str.rb +2269 -0
- data/lib/sisu/ao_endnotes.rb +136 -0
- data/lib/sisu/ao_expand_insertions.rb +514 -0
- data/lib/sisu/ao_hash_digest.rb +174 -0
- data/lib/sisu/ao_idx.rb +422 -0
- data/lib/sisu/ao_images.rb +187 -0
- data/lib/sisu/ao_metadata.rb +86 -0
- data/lib/sisu/ao_misc_arrange.rb +207 -0
- data/lib/sisu/ao_numbering.rb +720 -0
- data/lib/sisu/ao_persist.rb +194 -0
- data/lib/sisu/ao_references.rb +502 -0
- data/lib/sisu/ao_syntax.rb +640 -0
- data/lib/sisu/cgi.rb +84 -0
- data/lib/sisu/cgi_pgsql.rb +270 -0
- data/lib/sisu/cgi_sql_common.rb +986 -0
- data/lib/sisu/cgi_sqlite.rb +244 -0
- data/lib/sisu/conf.rb +287 -0
- data/lib/sisu/constants.rb +388 -0
- data/lib/sisu/css.rb +3484 -0
- data/lib/sisu/db_columns.rb +1997 -0
- data/lib/sisu/db_create.rb +689 -0
- data/lib/sisu/db_dbi.rb +90 -0
- data/lib/sisu/db_drop.rb +207 -0
- data/lib/sisu/db_import.rb +877 -0
- data/lib/sisu/db_indexes.rb +146 -0
- data/lib/sisu/db_load_tuple.rb +323 -0
- data/lib/sisu/db_remove.rb +182 -0
- data/lib/sisu/db_select.rb +230 -0
- data/lib/sisu/db_sqltxt.rb +173 -0
- data/lib/sisu/db_tests.rb +114 -0
- data/lib/sisu/dbi.rb +166 -0
- data/lib/sisu/dbi_discrete.rb +206 -0
- data/lib/sisu/digests.rb +306 -0
- data/lib/sisu/dp.rb +1606 -0
- data/lib/sisu/dp_identify_markup.rb +161 -0
- data/lib/sisu/dp_make.rb +668 -0
- data/lib/sisu/embedded.rb +149 -0
- data/lib/sisu/errors.rb +84 -0
- data/lib/sisu/generic_parts.rb +131 -0
- data/lib/sisu/git.rb +277 -0
- data/lib/sisu/html.rb +775 -0
- data/lib/sisu/html_concordance.rb +391 -0
- data/lib/sisu/html_format.rb +1348 -0
- data/lib/sisu/html_harvest.rb +109 -0
- data/lib/sisu/html_harvest_author_format.rb +111 -0
- data/lib/sisu/html_harvest_authors.rb +466 -0
- data/lib/sisu/html_harvest_topics.rb +893 -0
- data/lib/sisu/html_lite_shared.rb +324 -0
- data/lib/sisu/html_manifest.rb +1032 -0
- data/lib/sisu/html_minitoc.rb +230 -0
- data/lib/sisu/html_parts.rb +437 -0
- data/lib/sisu/html_persist.rb +237 -0
- data/lib/sisu/html_promo.rb +440 -0
- data/lib/sisu/html_scroll.rb +235 -0
- data/lib/sisu/html_segments.rb +716 -0
- data/lib/sisu/html_shared.rb +62 -0
- data/lib/sisu/html_table.rb +64 -0
- data/lib/sisu/html_tune.rb +301 -0
- data/lib/sisu/hub.rb +277 -0
- data/lib/sisu/hub_actions.rb +1122 -0
- data/lib/sisu/hub_loop_markup_files.rb +170 -0
- data/lib/sisu/hub_options.rb +1695 -0
- data/lib/sisu/i18n.rb +702 -0
- data/lib/sisu/manpage.rb +377 -0
- data/lib/sisu/manpage_format.rb +85 -0
- data/lib/sisu/object_munge.rb +307 -0
- data/lib/sisu/prog_text_translation.rb +1702 -0
- data/lib/sisu/qrcode.rb +754 -0
- data/lib/sisu/relaxng.rb +1153 -0
- data/lib/sisu/remote.rb +246 -0
- data/lib/sisu/rexml.rb +148 -0
- data/lib/sisu/se.rb +158 -0
- data/lib/sisu/se_cleanoutput.rb +145 -0
- data/lib/sisu/se_clear.rb +105 -0
- data/lib/sisu/se_createsite.rb +273 -0
- data/lib/sisu/se_css.rb +221 -0
- data/lib/sisu/se_date.rb +92 -0
- data/lib/sisu/se_db.rb +214 -0
- data/lib/sisu/se_envcall.rb +326 -0
- data/lib/sisu/se_file_op.rb +2758 -0
- data/lib/sisu/se_filemap.rb +247 -0
- data/lib/sisu/se_get_init.rb +238 -0
- data/lib/sisu/se_hub_particulars.rb +234 -0
- data/lib/sisu/se_info_env.rb +2179 -0
- data/lib/sisu/se_info_port.rb +70 -0
- data/lib/sisu/se_info_system.rb +202 -0
- data/lib/sisu/se_load.rb +108 -0
- data/lib/sisu/se_processing.rb +659 -0
- data/lib/sisu/se_programs.rb +394 -0
- data/lib/sisu/se_remotes.rb +553 -0
- data/lib/sisu/se_standardise_lang.rb +176 -0
- data/lib/sisu/se_version.rb +174 -0
- data/lib/sisu/shared_images.rb +137 -0
- data/lib/sisu/shared_markup_alt.rb +336 -0
- data/lib/sisu/shared_metadata.rb +1361 -0
- data/lib/sisu/shared_sem.rb +156 -0
- data/lib/sisu/sisu_thor_lib.rb +407 -0
- data/lib/sisu/sitemaps.rb +224 -0
- data/lib/sisu/src_kdissert_share.rb +102 -0
- data/lib/sisu/src_po4a_share.rb +309 -0
- data/lib/sisu/src_po4a_shelf.rb +1217 -0
- data/lib/sisu/src_po4a_shelf_set.rb +297 -0
- data/lib/sisu/src_po4a_sst_ao_sst.rb +893 -0
- data/lib/sisu/src_po4a_sst_ao_sst_set.rb +284 -0
- data/lib/sisu/src_po4a_sstm.rb +135 -0
- data/lib/sisu/src_shared.rb +347 -0
- data/lib/sisu/src_sisupod_make.rb +171 -0
- data/lib/sisu/src_sisupod_sstm.rb +109 -0
- data/lib/sisu/sst_convert_markup.rb +323 -0
- data/lib/sisu/sst_do_inline_footnotes.rb +440 -0
- data/lib/sisu/sst_from_xml.rb +178 -0
- data/lib/sisu/sst_identify_markup.rb +482 -0
- data/lib/sisu/sst_to_s_xml_sax.rb +471 -0
- data/lib/sisu/termsheet.rb +163 -0
- data/lib/sisu/texinfo.rb +430 -0
- data/lib/sisu/texinfo_format.rb +541 -0
- data/lib/sisu/texpdf.rb +1162 -0
- data/lib/sisu/texpdf_format.rb +1689 -0
- data/lib/sisu/texpdf_parts.rb +235 -0
- data/lib/sisu/txt_asciidoc.rb +354 -0
- data/lib/sisu/txt_asciidoc_decorate.rb +207 -0
- data/lib/sisu/txt_markdown.rb +389 -0
- data/lib/sisu/txt_markdown_decorate.rb +207 -0
- data/lib/sisu/txt_orgmode.rb +376 -0
- data/lib/sisu/txt_orgmode_decorate.rb +186 -0
- data/lib/sisu/txt_output.rb +86 -0
- data/lib/sisu/txt_plain.rb +410 -0
- data/lib/sisu/txt_plain_decorate.rb +189 -0
- data/lib/sisu/txt_read.rb +109 -0
- data/lib/sisu/txt_rst.rb +371 -0
- data/lib/sisu/txt_rst_decorate.rb +186 -0
- data/lib/sisu/txt_shared.rb +241 -0
- data/lib/sisu/txt_textile.rb +367 -0
- data/lib/sisu/txt_textile_decorate.rb +186 -0
- data/lib/sisu/update.rb +141 -0
- data/lib/sisu/urls.rb +696 -0
- data/lib/sisu/utils.rb +232 -0
- data/lib/sisu/utils_composite.rb +115 -0
- data/lib/sisu/utils_response.rb +114 -0
- data/lib/sisu/utils_screen_text_color.rb +472 -0
- data/lib/sisu/utils_spell.rb +99 -0
- data/lib/sisu/webrick.rb +191 -0
- data/lib/sisu/wikispeak.rb +375 -0
- data/lib/sisu/xhtml.rb +472 -0
- data/lib/sisu/xhtml_epub2.rb +890 -0
- data/lib/sisu/xhtml_epub2_concordance.rb +322 -0
- data/lib/sisu/xhtml_epub2_format.rb +2272 -0
- data/lib/sisu/xhtml_epub2_persist.rb +278 -0
- data/lib/sisu/xhtml_epub2_segments.rb +599 -0
- data/lib/sisu/xhtml_epub2_tune.rb +330 -0
- data/lib/sisu/xhtml_parts.rb +183 -0
- data/lib/sisu/xhtml_shared.rb +62 -0
- data/lib/sisu/xhtml_table.rb +97 -0
- data/lib/sisu/xml_docbook5.rb +376 -0
- data/lib/sisu/xml_dom.rb +624 -0
- data/lib/sisu/xml_fictionbook2.rb +389 -0
- data/lib/sisu/xml_format.rb +865 -0
- data/lib/sisu/xml_md_oai_pmh_dc.rb +229 -0
- data/lib/sisu/xml_odf_odt.rb +887 -0
- data/lib/sisu/xml_odf_odt_format.rb +674 -0
- data/lib/sisu/xml_parts.rb +191 -0
- data/lib/sisu/xml_persist.rb +126 -0
- data/lib/sisu/xml_sax.rb +521 -0
- data/lib/sisu/xml_scaffold_structure_collapsed.rb +198 -0
- data/lib/sisu/xml_scaffold_structure_sisu.rb +201 -0
- data/lib/sisu/xml_shared.rb +665 -0
- data/lib/sisu/xml_tables.rb +261 -0
- data/lib/sisu/zap.rb +90 -0
- metadata +251 -0
|
@@ -0,0 +1,1997 @@
|
|
|
1
|
+
# encoding: utf-8
|
|
2
|
+
=begin
|
|
3
|
+
|
|
4
|
+
* Name: SiSU
|
|
5
|
+
|
|
6
|
+
** Description: documents, structuring, processing, publishing, search
|
|
7
|
+
*** modules shared by the different db types, dbi, postgresql, sqlite
|
|
8
|
+
|
|
9
|
+
** Author: Ralph Amissah
|
|
10
|
+
<ralph@amissah.com>
|
|
11
|
+
<ralph.amissah@gmail.com>
|
|
12
|
+
|
|
13
|
+
** Copyright: (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006,
|
|
14
|
+
2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015 Ralph Amissah,
|
|
15
|
+
All Rights Reserved.
|
|
16
|
+
|
|
17
|
+
** License: GPL 3 or later:
|
|
18
|
+
|
|
19
|
+
SiSU, a framework for document structuring, publishing and search
|
|
20
|
+
|
|
21
|
+
Copyright (C) Ralph Amissah
|
|
22
|
+
|
|
23
|
+
This program is free software: you can redistribute it and/or modify it
|
|
24
|
+
under the terms of the GNU General Public License as published by the Free
|
|
25
|
+
Software Foundation, either version 3 of the License, or (at your option)
|
|
26
|
+
any later version.
|
|
27
|
+
|
|
28
|
+
This program is distributed in the hope that it will be useful, but WITHOUT
|
|
29
|
+
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
|
30
|
+
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
|
31
|
+
more details.
|
|
32
|
+
|
|
33
|
+
You should have received a copy of the GNU General Public License along with
|
|
34
|
+
this program. If not, see <http://www.gnu.org/licenses/>.
|
|
35
|
+
|
|
36
|
+
If you have Internet connection, the latest version of the GPL should be
|
|
37
|
+
available at these locations:
|
|
38
|
+
<http://www.fsf.org/licensing/licenses/gpl.html>
|
|
39
|
+
<http://www.gnu.org/licenses/gpl.html>
|
|
40
|
+
|
|
41
|
+
<http://www.sisudoc.org/sisu/en/manifest/gpl.fsf.html>
|
|
42
|
+
|
|
43
|
+
** SiSU uses:
|
|
44
|
+
* Standard SiSU markup syntax,
|
|
45
|
+
* Standard SiSU meta-markup syntax, and the
|
|
46
|
+
* Standard SiSU object citation numbering and system
|
|
47
|
+
|
|
48
|
+
** Hompages:
|
|
49
|
+
<http://www.jus.uio.no/sisu>
|
|
50
|
+
<http://www.sisudoc.org>
|
|
51
|
+
|
|
52
|
+
** Git
|
|
53
|
+
<http://git.sisudoc.org/gitweb/?p=code/sisu.git;a=summary>
|
|
54
|
+
<http://git.sisudoc.org/gitweb/?p=code/sisu.git;a=blob;f=lib/sisu/db_columns.rb;hb=HEAD>
|
|
55
|
+
|
|
56
|
+
=end
|
|
57
|
+
module SiSU_DbColumns
|
|
58
|
+
require_relative 'se' # se.rb
|
|
59
|
+
require_relative 'db_sqltxt' # db_sqltxt.rb
|
|
60
|
+
class Columns < SiSU_DbText::Prepare
|
|
61
|
+
def initialize(md=nil)
|
|
62
|
+
@md=md
|
|
63
|
+
@db=SiSU_Env::InfoDb.new #watch
|
|
64
|
+
@lang ||=SiSU_i18n::Languages.new
|
|
65
|
+
if defined? md.opt.act \
|
|
66
|
+
and ((md.opt.act[:psql_import][:set]==:on \
|
|
67
|
+
|| md.opt.act[:psql_update][:set]==:on) \
|
|
68
|
+
or (md.opt.act[:sqlite_import][:set]==:on \
|
|
69
|
+
|| md.opt.act[:sqlite_update][:set]==:on)) \
|
|
70
|
+
and FileTest.exist?(md.fns)
|
|
71
|
+
txt_arr=IO.readlines(md.fns,'')
|
|
72
|
+
src=txt_arr.join("\n")
|
|
73
|
+
if @db.share_source?
|
|
74
|
+
@sisutxt=special_character_escape(src)
|
|
75
|
+
else @sisutxt=''
|
|
76
|
+
end
|
|
77
|
+
@fulltext=clean_searchable_text_from_document_objects(txt_arr)
|
|
78
|
+
else @sisutxt,@fulltext='',''
|
|
79
|
+
end
|
|
80
|
+
end
|
|
81
|
+
#% structures
|
|
82
|
+
#def column_define
|
|
83
|
+
# def varchar(name,size)
|
|
84
|
+
# "#{name} VARCHAR(#{size}) NULL,"
|
|
85
|
+
# end
|
|
86
|
+
#end
|
|
87
|
+
=begin
|
|
88
|
+
#% title
|
|
89
|
+
@title:
|
|
90
|
+
:subtitle:
|
|
91
|
+
:short:
|
|
92
|
+
:edition:
|
|
93
|
+
:language:
|
|
94
|
+
:note:
|
|
95
|
+
=end
|
|
96
|
+
def column
|
|
97
|
+
def title # DublinCore 1 - title
|
|
98
|
+
def name
|
|
99
|
+
'title'
|
|
100
|
+
end
|
|
101
|
+
def create_column
|
|
102
|
+
"#{name} VARCHAR(#{Db[:col_title]}) NOT NULL,"
|
|
103
|
+
end
|
|
104
|
+
def column_comment
|
|
105
|
+
%{COMMENT ON COLUMN metadata_and_text.#{name}
|
|
106
|
+
IS 'metadata full document title [DC1]';}
|
|
107
|
+
end
|
|
108
|
+
def tuple
|
|
109
|
+
if defined? @md.title.full \
|
|
110
|
+
and @md.title.full=~/\S+/
|
|
111
|
+
txt=@md.title.full
|
|
112
|
+
txt=special_character_escape(txt)
|
|
113
|
+
["#{name}, ","'#{txt}', "]
|
|
114
|
+
else ['','']
|
|
115
|
+
end
|
|
116
|
+
end
|
|
117
|
+
self
|
|
118
|
+
end
|
|
119
|
+
def title_main
|
|
120
|
+
def name
|
|
121
|
+
'title_main'
|
|
122
|
+
end
|
|
123
|
+
def create_column
|
|
124
|
+
"#{name} VARCHAR(#{Db[:col_title_part]}) NOT NULL,"
|
|
125
|
+
end
|
|
126
|
+
def column_comment
|
|
127
|
+
%{COMMENT ON COLUMN metadata_and_text.#{name}
|
|
128
|
+
IS 'metadata main document title';}
|
|
129
|
+
end
|
|
130
|
+
def tuple
|
|
131
|
+
if defined? @md.title.main \
|
|
132
|
+
and @md.title.main=~/\S+/
|
|
133
|
+
txt=@md.title.main
|
|
134
|
+
txt=special_character_escape(txt)
|
|
135
|
+
["#{name}, ","'#{txt}', "]
|
|
136
|
+
else ['','']
|
|
137
|
+
end
|
|
138
|
+
end
|
|
139
|
+
self
|
|
140
|
+
end
|
|
141
|
+
def title_sub
|
|
142
|
+
def name
|
|
143
|
+
'title_sub'
|
|
144
|
+
end
|
|
145
|
+
def create_column
|
|
146
|
+
"#{name} VARCHAR(#{Db[:col_title_part]}) NULL,"
|
|
147
|
+
end
|
|
148
|
+
def column_comment
|
|
149
|
+
%{COMMENT ON COLUMN metadata_and_text.#{name}
|
|
150
|
+
IS 'metadata document subtitle';}
|
|
151
|
+
end
|
|
152
|
+
def tuple
|
|
153
|
+
if defined? @md.title.sub \
|
|
154
|
+
and @md.title.sub=~/\S+/
|
|
155
|
+
txt=@md.title.sub
|
|
156
|
+
txt=special_character_escape(txt)
|
|
157
|
+
["#{name}, ","'#{txt}', "]
|
|
158
|
+
else ['','']
|
|
159
|
+
end
|
|
160
|
+
end
|
|
161
|
+
self
|
|
162
|
+
end
|
|
163
|
+
def title_short
|
|
164
|
+
def name
|
|
165
|
+
'title_short'
|
|
166
|
+
end
|
|
167
|
+
def create_column
|
|
168
|
+
"#{name} VARCHAR(#{Db[:col_title_part]}) NULL,"
|
|
169
|
+
end
|
|
170
|
+
def column_comment
|
|
171
|
+
%{COMMENT ON COLUMN metadata_and_text.#{name}
|
|
172
|
+
IS 'metadata document short title if any';}
|
|
173
|
+
end
|
|
174
|
+
def tuple
|
|
175
|
+
if defined? @md.title.short \
|
|
176
|
+
and @md.title.short=~/\S+/
|
|
177
|
+
txt=@md.title.short
|
|
178
|
+
txt=special_character_escape(txt)
|
|
179
|
+
["#{name}, ","'#{txt}', "]
|
|
180
|
+
else ['','']
|
|
181
|
+
end
|
|
182
|
+
end
|
|
183
|
+
self
|
|
184
|
+
end
|
|
185
|
+
def title_edition
|
|
186
|
+
def name
|
|
187
|
+
'title_edition'
|
|
188
|
+
end
|
|
189
|
+
def create_column
|
|
190
|
+
"#{name} VARCHAR(#{Db[:col_title_edition]}) NULL,"
|
|
191
|
+
end
|
|
192
|
+
def column_comment
|
|
193
|
+
%{COMMENT ON COLUMN metadata_and_text.#{name}
|
|
194
|
+
IS 'metadata document edition (version)';}
|
|
195
|
+
end
|
|
196
|
+
def tuple
|
|
197
|
+
if defined? @md.title.edition \
|
|
198
|
+
and @md.title.edition=~/\S+/
|
|
199
|
+
txt=@md.title.edition
|
|
200
|
+
txt=special_character_escape(txt)
|
|
201
|
+
["#{name}, ","'#{txt}', "]
|
|
202
|
+
else ['','']
|
|
203
|
+
end
|
|
204
|
+
end
|
|
205
|
+
self
|
|
206
|
+
end
|
|
207
|
+
def title_note
|
|
208
|
+
def name
|
|
209
|
+
'title_note'
|
|
210
|
+
end
|
|
211
|
+
def create_column
|
|
212
|
+
"#{name} VARCHAR(#{Db[:col_info_note]}) NULL,"
|
|
213
|
+
end
|
|
214
|
+
def column_comment
|
|
215
|
+
%{COMMENT ON COLUMN metadata_and_text.#{name}
|
|
216
|
+
IS 'metadata document notes associated with title';}
|
|
217
|
+
end
|
|
218
|
+
def tuple
|
|
219
|
+
if defined? @md.title.note \
|
|
220
|
+
and @md.title.note=~/\S+/
|
|
221
|
+
txt=@md.title.note
|
|
222
|
+
txt=special_character_escape(txt)
|
|
223
|
+
["#{name}, ","'#{txt}', "]
|
|
224
|
+
else ['','']
|
|
225
|
+
end
|
|
226
|
+
end
|
|
227
|
+
self
|
|
228
|
+
end
|
|
229
|
+
def title_language
|
|
230
|
+
def name
|
|
231
|
+
'title_language'
|
|
232
|
+
end
|
|
233
|
+
def create_column
|
|
234
|
+
"#{name} VARCHAR(#{Db[:col_language]}) NULL,"
|
|
235
|
+
end
|
|
236
|
+
def column_comment
|
|
237
|
+
%{COMMENT ON COLUMN metadata_and_text.#{name}
|
|
238
|
+
IS 'metadata document language [DC12]';}
|
|
239
|
+
end
|
|
240
|
+
def tuple
|
|
241
|
+
if @lang.list[@md.opt.lng][:n]
|
|
242
|
+
txt=@lang.list[@md.opt.lng][:n]
|
|
243
|
+
txt=special_character_escape(txt)
|
|
244
|
+
["#{name}, ","'#{txt}', "]
|
|
245
|
+
else ['','']
|
|
246
|
+
end
|
|
247
|
+
end
|
|
248
|
+
self
|
|
249
|
+
end
|
|
250
|
+
def title_language_char # consider
|
|
251
|
+
def name
|
|
252
|
+
'title_language_char'
|
|
253
|
+
end
|
|
254
|
+
def create_column
|
|
255
|
+
"#{name} VARCHAR(#{Db[:col_language_char]}) NULL,"
|
|
256
|
+
end
|
|
257
|
+
def column_comment
|
|
258
|
+
%{COMMENT ON COLUMN metadata_and_text.#{name}
|
|
259
|
+
IS 'metadata document language iso code';}
|
|
260
|
+
end
|
|
261
|
+
def tuple
|
|
262
|
+
if defined? @md.opt.lng \
|
|
263
|
+
and @md.opt.lng=~/\S+/
|
|
264
|
+
txt=@md.opt.lng
|
|
265
|
+
txt=special_character_escape(txt)
|
|
266
|
+
["#{name}, ","'#{txt}', "]
|
|
267
|
+
else ['','']
|
|
268
|
+
end
|
|
269
|
+
end
|
|
270
|
+
self
|
|
271
|
+
end
|
|
272
|
+
=begin
|
|
273
|
+
#% creator
|
|
274
|
+
@creator:
|
|
275
|
+
:author:
|
|
276
|
+
:editor:
|
|
277
|
+
:contributor:
|
|
278
|
+
:illustrator:
|
|
279
|
+
:photographer:
|
|
280
|
+
:translator:
|
|
281
|
+
:prepared_by:
|
|
282
|
+
:digitized_by:
|
|
283
|
+
:audio:
|
|
284
|
+
:video:
|
|
285
|
+
=end
|
|
286
|
+
def creator_author # DublinCore 2 - creator/author (author)
|
|
287
|
+
def name
|
|
288
|
+
'creator_author'
|
|
289
|
+
end
|
|
290
|
+
def create_column
|
|
291
|
+
"#{name} VARCHAR(#{Db[:col_name]}) NULL,"
|
|
292
|
+
end
|
|
293
|
+
def column_comment
|
|
294
|
+
%{COMMENT ON COLUMN metadata_and_text.#{name}
|
|
295
|
+
IS 'metadata document author (creator) [DC2]';}
|
|
296
|
+
end
|
|
297
|
+
def tuple
|
|
298
|
+
if defined? @md.creator.author_detail \
|
|
299
|
+
and @md.creator.author_detail.is_a?(Array) \
|
|
300
|
+
and @md.creator.author_detail.length > 0
|
|
301
|
+
txt=''
|
|
302
|
+
@md.creator.author_detail.each do |h|
|
|
303
|
+
txt=txt + %{#{h[:the]}, #{h[:others]}; }
|
|
304
|
+
end
|
|
305
|
+
txt=txt.gsub(/[;, ]+\s*$/,'')
|
|
306
|
+
txt=special_character_escape(txt)
|
|
307
|
+
["#{name}, ","'#{txt}', "]
|
|
308
|
+
else ['','']
|
|
309
|
+
end
|
|
310
|
+
end
|
|
311
|
+
self
|
|
312
|
+
end
|
|
313
|
+
def creator_author_honorific # consider
|
|
314
|
+
def name
|
|
315
|
+
'creator_author_hon'
|
|
316
|
+
end
|
|
317
|
+
def create_column
|
|
318
|
+
"#{name} VARCHAR(#{Db[:col_creator_misc_short]}) NULL,"
|
|
319
|
+
end
|
|
320
|
+
def column_comment
|
|
321
|
+
%{COMMENT ON COLUMN metadata_and_text.#{name}
|
|
322
|
+
IS 'metadata document author honorific (title e.g, Ms. Dr. Prof.)';}
|
|
323
|
+
end
|
|
324
|
+
def tuple
|
|
325
|
+
if defined? @md.creator.author_hon \
|
|
326
|
+
and @md.creator.author_hon=~/\S+/
|
|
327
|
+
txt=@md.creator.author_hon
|
|
328
|
+
txt=special_character_escape(txt)
|
|
329
|
+
["#{name}, ","'#{txt}', "]
|
|
330
|
+
else ['','']
|
|
331
|
+
end
|
|
332
|
+
end
|
|
333
|
+
self
|
|
334
|
+
end
|
|
335
|
+
def creator_author_nationality # consider
|
|
336
|
+
def name
|
|
337
|
+
'creator_author_nationality'
|
|
338
|
+
end
|
|
339
|
+
def create_column
|
|
340
|
+
"#{name} VARCHAR(#{Db[:col_creator_misc_short]}) NULL,"
|
|
341
|
+
end
|
|
342
|
+
def column_comment
|
|
343
|
+
%{COMMENT ON COLUMN metadata_and_text.#{name}
|
|
344
|
+
IS 'metadata nationality of document author (creator)';}
|
|
345
|
+
end
|
|
346
|
+
def tuple
|
|
347
|
+
if defined? @md.creator.author_nationality_detail \
|
|
348
|
+
and @md.creator.author_nationality=~/\S+/
|
|
349
|
+
txt=@md.creator.author_nationality_detail
|
|
350
|
+
txt=special_character_escape(txt)
|
|
351
|
+
["#{name}, ","'#{txt}', "]
|
|
352
|
+
else ['','']
|
|
353
|
+
end
|
|
354
|
+
end
|
|
355
|
+
self
|
|
356
|
+
end
|
|
357
|
+
def creator_editor
|
|
358
|
+
def name
|
|
359
|
+
'creator_editor'
|
|
360
|
+
end
|
|
361
|
+
def create_column
|
|
362
|
+
"#{name} VARCHAR(#{Db[:col_name]}) NULL,"
|
|
363
|
+
end
|
|
364
|
+
def column_comment
|
|
365
|
+
%{COMMENT ON COLUMN metadata_and_text.#{name}
|
|
366
|
+
IS 'metadata document editor name(s)';}
|
|
367
|
+
end
|
|
368
|
+
def tuple
|
|
369
|
+
if defined? @md.creator.editor_detail \
|
|
370
|
+
and @md.creator.editor_detail.is_a?(Array) \
|
|
371
|
+
and @md.creator.editor_detail.length > 0
|
|
372
|
+
txt=''
|
|
373
|
+
@md.creator.editor_detail.each do |h|
|
|
374
|
+
txt=txt + %{#{h[:the]}, #{h[:others]}; }
|
|
375
|
+
end
|
|
376
|
+
txt=txt.gsub(/[;, ]+\s*$/,'')
|
|
377
|
+
txt=special_character_escape(txt)
|
|
378
|
+
["#{name}, ","'#{txt}', "]
|
|
379
|
+
else ['','']
|
|
380
|
+
end
|
|
381
|
+
end
|
|
382
|
+
self
|
|
383
|
+
end
|
|
384
|
+
def creator_contributor # DublinCore 6 - contributor
|
|
385
|
+
def name
|
|
386
|
+
'creator_contributor'
|
|
387
|
+
end
|
|
388
|
+
def create_column
|
|
389
|
+
"#{name} VARCHAR(#{Db[:col_name]}) NULL,"
|
|
390
|
+
end
|
|
391
|
+
def column_comment
|
|
392
|
+
%{COMMENT ON COLUMN metadata_and_text.#{name}
|
|
393
|
+
IS 'metadata document contributor name(s) [DC6]';}
|
|
394
|
+
end
|
|
395
|
+
def tuple
|
|
396
|
+
if defined? @md.creator.contributor_detail \
|
|
397
|
+
and @md.creator.contributor_detail.is_a?(Array) \
|
|
398
|
+
and @md.creator.contributor_detail.length > 0
|
|
399
|
+
txt=''
|
|
400
|
+
@md.creator.contributor_detail.each do |h|
|
|
401
|
+
txt=txt + %{#{h[:the]}, #{h[:others]}; }
|
|
402
|
+
end
|
|
403
|
+
txt=txt.gsub(/[;, ]+\s*$/,'')
|
|
404
|
+
txt=special_character_escape(txt)
|
|
405
|
+
["#{name}, ","'#{txt}', "]
|
|
406
|
+
else ['','']
|
|
407
|
+
end
|
|
408
|
+
end
|
|
409
|
+
self
|
|
410
|
+
end
|
|
411
|
+
def creator_illustrator
|
|
412
|
+
def name
|
|
413
|
+
'creator_illustrator'
|
|
414
|
+
end
|
|
415
|
+
def create_column
|
|
416
|
+
"#{name} VARCHAR(#{Db[:col_name]}) NULL,"
|
|
417
|
+
end
|
|
418
|
+
def column_comment
|
|
419
|
+
%{COMMENT ON COLUMN metadata_and_text.#{name}
|
|
420
|
+
IS 'metadata document illustrator name(s)';}
|
|
421
|
+
end
|
|
422
|
+
def tuple
|
|
423
|
+
if defined? @md.creator.illustrator_detail \
|
|
424
|
+
and @md.creator.illustrator_detail.is_a?(Array) \
|
|
425
|
+
and @md.creator.illustrator_detail.length > 0
|
|
426
|
+
txt=''
|
|
427
|
+
@md.creator.illustrator_detail.each do |h|
|
|
428
|
+
txt=txt + %{#{h[:the]}, #{h[:others]}; }
|
|
429
|
+
end
|
|
430
|
+
txt=txt.gsub(/[;, ]+\s*$/,'')
|
|
431
|
+
txt=special_character_escape(txt)
|
|
432
|
+
["#{name}, ","'#{txt}', "]
|
|
433
|
+
else ['','']
|
|
434
|
+
end
|
|
435
|
+
end
|
|
436
|
+
self
|
|
437
|
+
end
|
|
438
|
+
def creator_photographer
|
|
439
|
+
def name
|
|
440
|
+
'creator_photographer'
|
|
441
|
+
end
|
|
442
|
+
def create_column
|
|
443
|
+
"#{name} VARCHAR(#{Db[:col_name]}) NULL,"
|
|
444
|
+
end
|
|
445
|
+
def column_comment
|
|
446
|
+
%{COMMENT ON COLUMN metadata_and_text.#{name}
|
|
447
|
+
IS 'metadata document photographer name(s)';}
|
|
448
|
+
end
|
|
449
|
+
def tuple
|
|
450
|
+
if defined? @md.creator.photographer_detail \
|
|
451
|
+
and @md.creator.photographer_detail.is_a?(Array) \
|
|
452
|
+
and @md.creator.photographer_detail.length > 0
|
|
453
|
+
txt=''
|
|
454
|
+
@md.creator.photographer_detail.each do |h|
|
|
455
|
+
txt=txt + %{#{h[:the]}, #{h[:others]}; }
|
|
456
|
+
end
|
|
457
|
+
txt=txt.gsub(/[;, ]+\s*$/,'')
|
|
458
|
+
txt=special_character_escape(txt)
|
|
459
|
+
["#{name}, ","'#{txt}', "]
|
|
460
|
+
else ['','']
|
|
461
|
+
end
|
|
462
|
+
end
|
|
463
|
+
self
|
|
464
|
+
end
|
|
465
|
+
def creator_translator
|
|
466
|
+
def name
|
|
467
|
+
'creator_translator'
|
|
468
|
+
end
|
|
469
|
+
def create_column
|
|
470
|
+
"#{name} VARCHAR(#{Db[:col_name]}) NULL,"
|
|
471
|
+
end
|
|
472
|
+
def column_comment
|
|
473
|
+
%{COMMENT ON COLUMN metadata_and_text.#{name}
|
|
474
|
+
IS 'metadata document translator name(s)';}
|
|
475
|
+
end
|
|
476
|
+
def tuple
|
|
477
|
+
if defined? @md.creator.translator_detail \
|
|
478
|
+
and @md.creator.translator_detail.is_a?(Array) \
|
|
479
|
+
and @md.creator.translator_detail.length > 0
|
|
480
|
+
txt=''
|
|
481
|
+
@md.creator.translator_detail.each do |h|
|
|
482
|
+
txt=txt + %{#{h[:the]}, #{h[:others]}; }
|
|
483
|
+
end
|
|
484
|
+
txt=txt.gsub(/[;, ]+\s*$/,'')
|
|
485
|
+
txt=special_character_escape(txt)
|
|
486
|
+
["#{name}, ","'#{txt}', "]
|
|
487
|
+
else ['','']
|
|
488
|
+
end
|
|
489
|
+
end
|
|
490
|
+
self
|
|
491
|
+
end
|
|
492
|
+
def creator_prepared_by
|
|
493
|
+
def name
|
|
494
|
+
'creator_prepared_by'
|
|
495
|
+
end
|
|
496
|
+
def create_column
|
|
497
|
+
"#{name} VARCHAR(#{Db[:col_name]}) NULL,"
|
|
498
|
+
end
|
|
499
|
+
def column_comment
|
|
500
|
+
%{COMMENT ON COLUMN metadata_and_text.#{name}
|
|
501
|
+
IS 'metadata document prepared by name(s)';}
|
|
502
|
+
end
|
|
503
|
+
def tuple
|
|
504
|
+
if defined? @md.creator.prepared_by_detail \
|
|
505
|
+
and @md.creator.prepared_by_detail.is_a?(Array) \
|
|
506
|
+
and @md.creator.prepared_by_detail.length > 0
|
|
507
|
+
txt=''
|
|
508
|
+
@md.creator.prepared_by_detail.each do |h|
|
|
509
|
+
txt=txt + %{#{h[:the]}, #{h[:others]}; }
|
|
510
|
+
end
|
|
511
|
+
txt=txt.gsub(/[;, ]+\s*$/,'')
|
|
512
|
+
txt=special_character_escape(txt)
|
|
513
|
+
["#{name}, ","'#{txt}', "]
|
|
514
|
+
else ['','']
|
|
515
|
+
end
|
|
516
|
+
end
|
|
517
|
+
self
|
|
518
|
+
end
|
|
519
|
+
def creator_digitized_by
|
|
520
|
+
def name
|
|
521
|
+
'creator_digitized_by'
|
|
522
|
+
end
|
|
523
|
+
def create_column
|
|
524
|
+
"#{name} VARCHAR(#{Db[:col_name]}) NULL,"
|
|
525
|
+
end
|
|
526
|
+
def column_comment
|
|
527
|
+
%{COMMENT ON COLUMN metadata_and_text.#{name}
|
|
528
|
+
IS 'metadata document digitized by name(s)';}
|
|
529
|
+
end
|
|
530
|
+
def tuple
|
|
531
|
+
if defined? @md.creator.digitized_by_detail \
|
|
532
|
+
and @md.creator.digitized_by_detail.is_a?(Array) \
|
|
533
|
+
and @md.creator.digitized_by_detail.length > 0
|
|
534
|
+
txt=''
|
|
535
|
+
@md.creator.digitized_by_detail.each do |h|
|
|
536
|
+
txt=txt + %{#{h[:the]}, #{h[:others]}; }
|
|
537
|
+
end
|
|
538
|
+
txt=txt.gsub(/[;, ]+\s*$/,'')
|
|
539
|
+
txt=special_character_escape(txt)
|
|
540
|
+
["#{name}, ","'#{txt}', "]
|
|
541
|
+
else ['','']
|
|
542
|
+
end
|
|
543
|
+
end
|
|
544
|
+
self
|
|
545
|
+
end
|
|
546
|
+
def creator_audio
|
|
547
|
+
def name
|
|
548
|
+
'creator_audio'
|
|
549
|
+
end
|
|
550
|
+
def create_column
|
|
551
|
+
"#{name} VARCHAR(#{Db[:col_name]}) NULL,"
|
|
552
|
+
end
|
|
553
|
+
def column_comment
|
|
554
|
+
%{COMMENT ON COLUMN metadata_and_text.#{name}
|
|
555
|
+
IS 'metadata document audio by name(s)';}
|
|
556
|
+
end
|
|
557
|
+
def tuple
|
|
558
|
+
if defined? @md.creator.audio_detail \
|
|
559
|
+
and @md.creator.audio_detail.is_a?(Array) \
|
|
560
|
+
and @md.creator.audio_detail.length > 0
|
|
561
|
+
txt=''
|
|
562
|
+
@md.creator.audio_detail.each do |h|
|
|
563
|
+
txt=txt + %{#{h[:the]}, #{h[:others]}; }
|
|
564
|
+
end
|
|
565
|
+
txt=txt.gsub(/[;, ]+\s*$/,'')
|
|
566
|
+
txt=special_character_escape(txt)
|
|
567
|
+
["#{name}, ","'#{txt}', "]
|
|
568
|
+
else ['','']
|
|
569
|
+
end
|
|
570
|
+
end
|
|
571
|
+
self
|
|
572
|
+
end
|
|
573
|
+
def creator_video
|
|
574
|
+
def name
|
|
575
|
+
'creator_video'
|
|
576
|
+
end
|
|
577
|
+
def create_column
|
|
578
|
+
"#{name} VARCHAR(#{Db[:col_name]}) NULL,"
|
|
579
|
+
end
|
|
580
|
+
def column_comment
|
|
581
|
+
%{COMMENT ON COLUMN metadata_and_text.#{name}
|
|
582
|
+
IS 'metadata document video by name(s)';}
|
|
583
|
+
end
|
|
584
|
+
def tuple
|
|
585
|
+
if defined? @md.creator.video_detail \
|
|
586
|
+
and @md.creator.video_detail.is_a?(Array) \
|
|
587
|
+
and @md.creator.video_detail.length > 0
|
|
588
|
+
txt=''
|
|
589
|
+
@md.creator.video_detail.each do |h|
|
|
590
|
+
txt=txt + %{#{h[:the]}, #{h[:others]}; }
|
|
591
|
+
end
|
|
592
|
+
txt=txt.gsub(/[;, ]+\s*$/,'')
|
|
593
|
+
txt=special_character_escape(txt)
|
|
594
|
+
["#{name}, ","'#{txt}', "]
|
|
595
|
+
else ['','']
|
|
596
|
+
end
|
|
597
|
+
end
|
|
598
|
+
self
|
|
599
|
+
end
|
|
600
|
+
=begin
|
|
601
|
+
#% language
|
|
602
|
+
#taken from other fields
|
|
603
|
+
@title:
|
|
604
|
+
:language:
|
|
605
|
+
@original:
|
|
606
|
+
:language:
|
|
607
|
+
#not available -->
|
|
608
|
+
#@language:
|
|
609
|
+
# :document:
|
|
610
|
+
# :original:
|
|
611
|
+
=end
|
|
612
|
+
def language_document
|
|
613
|
+
def name
|
|
614
|
+
'language_document'
|
|
615
|
+
end
|
|
616
|
+
def create_column
|
|
617
|
+
"#{name} VARCHAR(#{Db[:col_language]}) NULL,"
|
|
618
|
+
end
|
|
619
|
+
def column_comment
|
|
620
|
+
%{COMMENT ON COLUMN metadata_and_text.#{name}
|
|
621
|
+
IS 'metadata document language';}
|
|
622
|
+
end
|
|
623
|
+
def tuple
|
|
624
|
+
if @lang.list[@md.opt.lng][:n]
|
|
625
|
+
txt=@lang.list[@md.opt.lng][:n]
|
|
626
|
+
txt=special_character_escape(txt)
|
|
627
|
+
["#{name}, ","'#{txt}', "]
|
|
628
|
+
else ['','']
|
|
629
|
+
end
|
|
630
|
+
end
|
|
631
|
+
self
|
|
632
|
+
end
|
|
633
|
+
def language_document_char
|
|
634
|
+
def name
|
|
635
|
+
'language_document_char'
|
|
636
|
+
end
|
|
637
|
+
def create_column
|
|
638
|
+
"#{name} VARCHAR(#{Db[:col_language_char]}) NOT NULL,"
|
|
639
|
+
end
|
|
640
|
+
def column_comment
|
|
641
|
+
%{COMMENT ON COLUMN metadata_and_text.#{name}
|
|
642
|
+
IS 'metadata document language';}
|
|
643
|
+
end
|
|
644
|
+
def tuple
|
|
645
|
+
#modify check, is now required, SiSUv3d_
|
|
646
|
+
if defined? @md.opt.lng \
|
|
647
|
+
and @md.opt.lng=~/\S+/
|
|
648
|
+
txt=@md.opt.lng
|
|
649
|
+
txt=special_character_escape(txt)
|
|
650
|
+
["#{name}, ","'#{txt}', "]
|
|
651
|
+
else ['','']
|
|
652
|
+
end
|
|
653
|
+
end
|
|
654
|
+
self
|
|
655
|
+
end
|
|
656
|
+
def language_original
|
|
657
|
+
def name
|
|
658
|
+
'language_original'
|
|
659
|
+
end
|
|
660
|
+
def create_column
|
|
661
|
+
"#{name} VARCHAR(#{Db[:col_language]}) NULL,"
|
|
662
|
+
end
|
|
663
|
+
def column_comment
|
|
664
|
+
%{COMMENT ON COLUMN metadata_and_text.#{name}
|
|
665
|
+
IS 'metadata original document/text language';}
|
|
666
|
+
end
|
|
667
|
+
def tuple
|
|
668
|
+
if defined? @md.language.original \
|
|
669
|
+
and @md.language.original=~/\S+/
|
|
670
|
+
txt=@md.language.original
|
|
671
|
+
txt=special_character_escape(txt)
|
|
672
|
+
["#{name}, ","'#{txt}', "]
|
|
673
|
+
else ['','']
|
|
674
|
+
end
|
|
675
|
+
end
|
|
676
|
+
self
|
|
677
|
+
end
|
|
678
|
+
def language_original_char
|
|
679
|
+
def name
|
|
680
|
+
'language_original_char'
|
|
681
|
+
end
|
|
682
|
+
def create_column
|
|
683
|
+
"#{name} VARCHAR(#{Db[:col_language_char]}) NULL,"
|
|
684
|
+
end
|
|
685
|
+
def column_comment
|
|
686
|
+
%{COMMENT ON COLUMN metadata_and_text.#{name}
|
|
687
|
+
IS 'metadata document language';}
|
|
688
|
+
end
|
|
689
|
+
def tuple
|
|
690
|
+
if defined? @md.language.original_char \
|
|
691
|
+
and @md.language.original_char=~/\S+/
|
|
692
|
+
txt=@md.language.original_char
|
|
693
|
+
txt=special_character_escape(txt)
|
|
694
|
+
["#{name}, ","'#{txt}', "]
|
|
695
|
+
else ['','']
|
|
696
|
+
end
|
|
697
|
+
end
|
|
698
|
+
self
|
|
699
|
+
end
|
|
700
|
+
=begin
|
|
701
|
+
#% date
|
|
702
|
+
@date:
|
|
703
|
+
:added_to_site:
|
|
704
|
+
:available:
|
|
705
|
+
:created:
|
|
706
|
+
:issued:
|
|
707
|
+
:modified:
|
|
708
|
+
:published:
|
|
709
|
+
:valid:
|
|
710
|
+
:translated:
|
|
711
|
+
:original_publication:
|
|
712
|
+
=end
|
|
713
|
+
def date_added_to_site
|
|
714
|
+
def name
|
|
715
|
+
'date_added_to_site'
|
|
716
|
+
end
|
|
717
|
+
def create_column
|
|
718
|
+
"#{name} VARCHAR(#{Db[:col_date_text]}) NULL,"
|
|
719
|
+
#"#{name} DATE,"
|
|
720
|
+
end
|
|
721
|
+
def column_comment
|
|
722
|
+
%{COMMENT ON COLUMN metadata_and_text.#{name}
|
|
723
|
+
IS 'metadata date added to site';}
|
|
724
|
+
end
|
|
725
|
+
def tuple
|
|
726
|
+
if defined? @md.date.added_to_site \
|
|
727
|
+
and @md.date.added_to_site=~/\S+/
|
|
728
|
+
txt=@md.date.added_to_site
|
|
729
|
+
txt=special_character_escape(txt)
|
|
730
|
+
["#{name}, ","'#{txt}', "]
|
|
731
|
+
else ['','']
|
|
732
|
+
end
|
|
733
|
+
end
|
|
734
|
+
self
|
|
735
|
+
end
|
|
736
|
+
def date_available
|
|
737
|
+
def name
|
|
738
|
+
'date_available'
|
|
739
|
+
end
|
|
740
|
+
def create_column
|
|
741
|
+
"#{name} VARCHAR(#{Db[:col_date_text]}) NULL,"
|
|
742
|
+
end
|
|
743
|
+
def column_comment
|
|
744
|
+
%{COMMENT ON COLUMN metadata_and_text.#{name}
|
|
745
|
+
IS 'metadata date added to site [DC]';}
|
|
746
|
+
end
|
|
747
|
+
def tuple
|
|
748
|
+
if defined? @md.date.available \
|
|
749
|
+
and @md.date.available=~/\S+/
|
|
750
|
+
txt=@md.date.available
|
|
751
|
+
txt=special_character_escape(txt)
|
|
752
|
+
["#{name}, ","'#{txt}', "]
|
|
753
|
+
else ['','']
|
|
754
|
+
end
|
|
755
|
+
end
|
|
756
|
+
self
|
|
757
|
+
end
|
|
758
|
+
def date_created
|
|
759
|
+
def name
|
|
760
|
+
'date_created'
|
|
761
|
+
end
|
|
762
|
+
def create_column
|
|
763
|
+
"#{name} VARCHAR(#{Db[:col_date_text]}) NULL,"
|
|
764
|
+
end
|
|
765
|
+
def column_comment
|
|
766
|
+
%{COMMENT ON COLUMN metadata_and_text.#{name}
|
|
767
|
+
IS 'metadata date created [DC]';}
|
|
768
|
+
end
|
|
769
|
+
def tuple
|
|
770
|
+
if defined? @md.date.created \
|
|
771
|
+
and @md.date.created=~/\S+/
|
|
772
|
+
txt=@md.date.created
|
|
773
|
+
txt=special_character_escape(txt)
|
|
774
|
+
["#{name}, ","'#{txt}', "]
|
|
775
|
+
else ['','']
|
|
776
|
+
end
|
|
777
|
+
end
|
|
778
|
+
self
|
|
779
|
+
end
|
|
780
|
+
def date_issued
|
|
781
|
+
def name
|
|
782
|
+
'date_issued'
|
|
783
|
+
end
|
|
784
|
+
def create_column
|
|
785
|
+
"#{name} VARCHAR(#{Db[:col_date_text]}) NULL,"
|
|
786
|
+
end
|
|
787
|
+
def column_comment
|
|
788
|
+
%{COMMENT ON COLUMN metadata_and_text.#{name}
|
|
789
|
+
IS 'metadata date issued [DC]';}
|
|
790
|
+
end
|
|
791
|
+
def tuple
|
|
792
|
+
if defined? @md.date.issued \
|
|
793
|
+
and @md.date.issued=~/\S+/
|
|
794
|
+
txt=@md.date.issued
|
|
795
|
+
txt=special_character_escape(txt)
|
|
796
|
+
["#{name}, ","'#{txt}', "]
|
|
797
|
+
else ['','']
|
|
798
|
+
end
|
|
799
|
+
end
|
|
800
|
+
self
|
|
801
|
+
end
|
|
802
|
+
def date_modified
|
|
803
|
+
def name
|
|
804
|
+
'date_modified'
|
|
805
|
+
end
|
|
806
|
+
def create_column
|
|
807
|
+
"#{name} VARCHAR(#{Db[:col_date_text]}) NULL,"
|
|
808
|
+
end
|
|
809
|
+
def column_comment
|
|
810
|
+
%{COMMENT ON COLUMN metadata_and_text.#{name}
|
|
811
|
+
IS 'metadata date modified [DC]';}
|
|
812
|
+
end
|
|
813
|
+
def tuple
|
|
814
|
+
if defined? @md.date.modified \
|
|
815
|
+
and @md.date.modified=~/\S+/
|
|
816
|
+
txt=@md.date.modified
|
|
817
|
+
txt=special_character_escape(txt)
|
|
818
|
+
["#{name}, ","'#{txt}', "]
|
|
819
|
+
else ['','']
|
|
820
|
+
end
|
|
821
|
+
end
|
|
822
|
+
self
|
|
823
|
+
end
|
|
824
|
+
def date_published
|
|
825
|
+
def name
|
|
826
|
+
'date_published'
|
|
827
|
+
end
|
|
828
|
+
def create_column
|
|
829
|
+
"#{name} VARCHAR(#{Db[:col_date_text]}) NULL,"
|
|
830
|
+
end
|
|
831
|
+
def column_comment
|
|
832
|
+
%{COMMENT ON COLUMN metadata_and_text.#{name}
|
|
833
|
+
IS 'metadata date published [DC7]';}
|
|
834
|
+
end
|
|
835
|
+
def tuple
|
|
836
|
+
if defined? @md.date.published \
|
|
837
|
+
and @md.date.published=~/\S+/
|
|
838
|
+
txt=@md.date.published
|
|
839
|
+
txt=special_character_escape(txt)
|
|
840
|
+
["#{name}, ","'#{txt}', "]
|
|
841
|
+
else ['','']
|
|
842
|
+
end
|
|
843
|
+
end
|
|
844
|
+
self
|
|
845
|
+
end
|
|
846
|
+
def date_valid
|
|
847
|
+
def name
|
|
848
|
+
'date_valid'
|
|
849
|
+
end
|
|
850
|
+
def create_column
|
|
851
|
+
"#{name} VARCHAR(#{Db[:col_date_text]}) NULL,"
|
|
852
|
+
end
|
|
853
|
+
def column_comment
|
|
854
|
+
%{COMMENT ON COLUMN metadata_and_text.#{name}
|
|
855
|
+
IS 'metadata date valid [DC]';}
|
|
856
|
+
end
|
|
857
|
+
def tuple
|
|
858
|
+
if defined? @md.date.valid \
|
|
859
|
+
and @md.date.valid=~/\S+/
|
|
860
|
+
txt=@md.date.valid
|
|
861
|
+
txt=special_character_escape(txt)
|
|
862
|
+
["#{name}, ","'#{txt}', "]
|
|
863
|
+
else ['','']
|
|
864
|
+
end
|
|
865
|
+
end
|
|
866
|
+
self
|
|
867
|
+
end
|
|
868
|
+
def date_translated
|
|
869
|
+
def name
|
|
870
|
+
'date_translated'
|
|
871
|
+
end
|
|
872
|
+
def create_column
|
|
873
|
+
"#{name} VARCHAR(#{Db[:col_date_text]}) NULL,"
|
|
874
|
+
end
|
|
875
|
+
def column_comment
|
|
876
|
+
%{COMMENT ON COLUMN metadata_and_text.#{name}
|
|
877
|
+
IS 'metadata date translated';}
|
|
878
|
+
end
|
|
879
|
+
def tuple
|
|
880
|
+
if defined? @md.date.translated \
|
|
881
|
+
and @md.date.translated=~/\S+/
|
|
882
|
+
txt=@md.date.translated
|
|
883
|
+
txt=special_character_escape(txt)
|
|
884
|
+
["#{name}, ","'#{txt}', "]
|
|
885
|
+
else ['','']
|
|
886
|
+
end
|
|
887
|
+
end
|
|
888
|
+
self
|
|
889
|
+
end
|
|
890
|
+
def date_original_publication
|
|
891
|
+
def name
|
|
892
|
+
'date_original_publication'
|
|
893
|
+
end
|
|
894
|
+
def create_column
|
|
895
|
+
"#{name} VARCHAR(#{Db[:col_date_text]}) NULL,"
|
|
896
|
+
end
|
|
897
|
+
def column_comment
|
|
898
|
+
%{COMMENT ON COLUMN metadata_and_text.#{name}
|
|
899
|
+
IS 'metadata date of original publication';}
|
|
900
|
+
end
|
|
901
|
+
def tuple
|
|
902
|
+
if defined? @md.date.original_publication \
|
|
903
|
+
and @md.date.original_publication=~/\S+/
|
|
904
|
+
txt=@md.date.original_publication
|
|
905
|
+
txt=special_character_escape(txt)
|
|
906
|
+
["#{name}, ","'#{txt}', "]
|
|
907
|
+
else ['','']
|
|
908
|
+
end
|
|
909
|
+
end
|
|
910
|
+
self
|
|
911
|
+
end
|
|
912
|
+
def date_generated
|
|
913
|
+
def name
|
|
914
|
+
'date_generated'
|
|
915
|
+
end
|
|
916
|
+
def create_column #choose other representation of time
|
|
917
|
+
"#{name} VARCHAR(30) NULL,"
|
|
918
|
+
#"#{name} VARCHAR(10) NULL,"
|
|
919
|
+
end
|
|
920
|
+
def column_comment
|
|
921
|
+
%{COMMENT ON COLUMN metadata_and_text.#{name}
|
|
922
|
+
IS 'metadata date of sisu generation of document, automatically populated';}
|
|
923
|
+
end
|
|
924
|
+
def tuple #choose other representation of time
|
|
925
|
+
if defined? @md.generated \
|
|
926
|
+
and @md.generated.to_s=~/\S+/
|
|
927
|
+
txt=@md.generated.to_s
|
|
928
|
+
txt=special_character_escape(txt)
|
|
929
|
+
["#{name}, ","'#{txt}', "]
|
|
930
|
+
else ['','']
|
|
931
|
+
end
|
|
932
|
+
end
|
|
933
|
+
self
|
|
934
|
+
end
|
|
935
|
+
=begin
|
|
936
|
+
#% publisher
|
|
937
|
+
@publisher:
|
|
938
|
+
=end
|
|
939
|
+
def publisher
|
|
940
|
+
def name
|
|
941
|
+
'publisher'
|
|
942
|
+
end
|
|
943
|
+
def create_column
|
|
944
|
+
"#{name} VARCHAR(#{Db[:col_name]}) NULL,"
|
|
945
|
+
end
|
|
946
|
+
def column_comment
|
|
947
|
+
%{COMMENT ON COLUMN metadata_and_text.#{name}
|
|
948
|
+
IS 'metadata document publisher [DC5]';}
|
|
949
|
+
end
|
|
950
|
+
def tuple
|
|
951
|
+
if defined? @md.publisher \
|
|
952
|
+
and @md.publisher=~/\S+/
|
|
953
|
+
txt=@md.publisher
|
|
954
|
+
txt=special_character_escape(txt)
|
|
955
|
+
["#{name}, ","'#{txt}', "]
|
|
956
|
+
else ['','']
|
|
957
|
+
end
|
|
958
|
+
end
|
|
959
|
+
self
|
|
960
|
+
end
|
|
961
|
+
##% current
|
|
962
|
+
# def current_publisher
|
|
963
|
+
# def name
|
|
964
|
+
# 'current_publisher'
|
|
965
|
+
# end
|
|
966
|
+
# def size
|
|
967
|
+
# 10
|
|
968
|
+
# end
|
|
969
|
+
# def create_column
|
|
970
|
+
# "#{name} VARCHAR(#{current_publisher.size}) NULL,"
|
|
971
|
+
# end
|
|
972
|
+
# def tuple
|
|
973
|
+
# t=if defined? @md.current.publisher \
|
|
974
|
+
# and @md.current.publisher=~/\S+/
|
|
975
|
+
# txt=@md.current.publisher
|
|
976
|
+
# txt=special_character_escape(txt)
|
|
977
|
+
# "'#{txt}', "
|
|
978
|
+
# end
|
|
979
|
+
# end
|
|
980
|
+
# self
|
|
981
|
+
# end
|
|
982
|
+
=begin
|
|
983
|
+
#% original
|
|
984
|
+
@original:
|
|
985
|
+
:publisher:
|
|
986
|
+
#:date: #repeated under date
|
|
987
|
+
:language:
|
|
988
|
+
:institution:
|
|
989
|
+
:nationality:
|
|
990
|
+
:source:
|
|
991
|
+
=end
|
|
992
|
+
def original_publisher
|
|
993
|
+
def name
|
|
994
|
+
'original_publisher'
|
|
995
|
+
end
|
|
996
|
+
def create_column
|
|
997
|
+
"#{name} VARCHAR(#{Db[:col_name]}) NULL,"
|
|
998
|
+
end
|
|
999
|
+
def column_comment
|
|
1000
|
+
%{COMMENT ON COLUMN metadata_and_text.#{name}
|
|
1001
|
+
IS 'metadata document original publisher [DC5]';}
|
|
1002
|
+
end
|
|
1003
|
+
def tuple
|
|
1004
|
+
if defined? @md.original.publisher \
|
|
1005
|
+
and @md.original.publisher=~/\S+/
|
|
1006
|
+
txt=@md.original.publisher
|
|
1007
|
+
txt=special_character_escape(txt)
|
|
1008
|
+
["#{name}, ","'#{txt}', "]
|
|
1009
|
+
else ['','']
|
|
1010
|
+
end
|
|
1011
|
+
end
|
|
1012
|
+
self
|
|
1013
|
+
end
|
|
1014
|
+
def original_language
|
|
1015
|
+
def name
|
|
1016
|
+
'original_language'
|
|
1017
|
+
end
|
|
1018
|
+
def create_column
|
|
1019
|
+
"#{name} VARCHAR(#{Db[:col_language]}) NULL,"
|
|
1020
|
+
end
|
|
1021
|
+
def column_comment
|
|
1022
|
+
%{COMMENT ON COLUMN metadata_and_text.#{name}
|
|
1023
|
+
IS 'metadata document original language';}
|
|
1024
|
+
end
|
|
1025
|
+
def tuple
|
|
1026
|
+
if defined? @md.original.language \
|
|
1027
|
+
and @md.original.language=~/\S+/
|
|
1028
|
+
txt=@md.original.language
|
|
1029
|
+
txt=special_character_escape(txt)
|
|
1030
|
+
["#{name}, ","'#{txt}', "]
|
|
1031
|
+
else ['','']
|
|
1032
|
+
end
|
|
1033
|
+
end
|
|
1034
|
+
self
|
|
1035
|
+
end
|
|
1036
|
+
def original_language_char # consider
|
|
1037
|
+
def name
|
|
1038
|
+
'original_language_char'
|
|
1039
|
+
end
|
|
1040
|
+
def create_column
|
|
1041
|
+
"#{name} VARCHAR(#{Db[:col_language_char]}) NULL,"
|
|
1042
|
+
end
|
|
1043
|
+
def column_comment
|
|
1044
|
+
%{COMMENT ON COLUMN metadata_and_text.#{name}
|
|
1045
|
+
IS 'metadata document original language iso character';}
|
|
1046
|
+
end
|
|
1047
|
+
def tuple
|
|
1048
|
+
if defined? @md.original.language_char \
|
|
1049
|
+
and @md.original.language_char=~/\S+/
|
|
1050
|
+
txt=@md.original.language_char
|
|
1051
|
+
txt=special_character_escape(txt)
|
|
1052
|
+
["#{name}, ","'#{txt}', "]
|
|
1053
|
+
else ['','']
|
|
1054
|
+
end
|
|
1055
|
+
end
|
|
1056
|
+
self
|
|
1057
|
+
end
|
|
1058
|
+
def original_source
|
|
1059
|
+
def name
|
|
1060
|
+
'original_source'
|
|
1061
|
+
end
|
|
1062
|
+
def create_column
|
|
1063
|
+
"#{name} VARCHAR(#{Db[:col_name]}) NULL,"
|
|
1064
|
+
end
|
|
1065
|
+
def column_comment
|
|
1066
|
+
%{COMMENT ON COLUMN metadata_and_text.#{name}
|
|
1067
|
+
IS 'metadata document original source [DC11]';}
|
|
1068
|
+
end
|
|
1069
|
+
def tuple
|
|
1070
|
+
if defined? @md.original.source \
|
|
1071
|
+
and @md.original.source=~/\S+/
|
|
1072
|
+
txt=@md.original.source
|
|
1073
|
+
txt=special_character_escape(txt)
|
|
1074
|
+
["#{name}, ","'#{txt}', "]
|
|
1075
|
+
else ['','']
|
|
1076
|
+
end
|
|
1077
|
+
end
|
|
1078
|
+
self
|
|
1079
|
+
end
|
|
1080
|
+
def original_institution
|
|
1081
|
+
def name
|
|
1082
|
+
'original_institution'
|
|
1083
|
+
end
|
|
1084
|
+
def create_column
|
|
1085
|
+
"#{name} VARCHAR(#{Db[:col_name]}) NULL,"
|
|
1086
|
+
end
|
|
1087
|
+
def column_comment
|
|
1088
|
+
%{COMMENT ON COLUMN metadata_and_text.#{name}
|
|
1089
|
+
IS 'metadata document original institution';}
|
|
1090
|
+
end
|
|
1091
|
+
def tuple
|
|
1092
|
+
if defined? @md.original.institution \
|
|
1093
|
+
and @md.original.institution=~/\S+/
|
|
1094
|
+
txt=@md.original.institution
|
|
1095
|
+
txt=special_character_escape(txt)
|
|
1096
|
+
["#{name}, ","'#{txt}', "]
|
|
1097
|
+
else ['','']
|
|
1098
|
+
end
|
|
1099
|
+
end
|
|
1100
|
+
self
|
|
1101
|
+
end
|
|
1102
|
+
def original_nationality
|
|
1103
|
+
def name
|
|
1104
|
+
'original_nationality'
|
|
1105
|
+
end
|
|
1106
|
+
def create_column
|
|
1107
|
+
"#{name} VARCHAR(#{Db[:col_language]}) NULL,"
|
|
1108
|
+
end
|
|
1109
|
+
def column_comment
|
|
1110
|
+
%{COMMENT ON COLUMN metadata_and_text.#{name}
|
|
1111
|
+
IS 'metadata document original nationality';}
|
|
1112
|
+
end
|
|
1113
|
+
def tuple
|
|
1114
|
+
if defined? @md.original.nationality \
|
|
1115
|
+
and @md.original.nationality=~/\S+/
|
|
1116
|
+
txt=@md.original.nationality
|
|
1117
|
+
txt=special_character_escape(txt)
|
|
1118
|
+
["#{name}, ","'#{txt}', "]
|
|
1119
|
+
else ['','']
|
|
1120
|
+
end
|
|
1121
|
+
end
|
|
1122
|
+
self
|
|
1123
|
+
end
|
|
1124
|
+
=begin
|
|
1125
|
+
#% rights
|
|
1126
|
+
@rights:
|
|
1127
|
+
#:copyright: #mapped to :text: used where no other copyrights and included in :all:
|
|
1128
|
+
:text:
|
|
1129
|
+
:translation:
|
|
1130
|
+
:illustrations:
|
|
1131
|
+
:photographs:
|
|
1132
|
+
:preparation:
|
|
1133
|
+
:digitization:
|
|
1134
|
+
:audio:
|
|
1135
|
+
:video:
|
|
1136
|
+
:license:
|
|
1137
|
+
:all:
|
|
1138
|
+
=end
|
|
1139
|
+
def rights_all
|
|
1140
|
+
def name
|
|
1141
|
+
'rights'
|
|
1142
|
+
end
|
|
1143
|
+
def create_column
|
|
1144
|
+
"#{name} VARCHAR(#{Db[:col_info_note]}) NULL,"
|
|
1145
|
+
end
|
|
1146
|
+
def column_comment
|
|
1147
|
+
%{COMMENT ON COLUMN metadata_and_text.#{name}
|
|
1148
|
+
IS 'metadata rights associated with document (composite) [DC15]';}
|
|
1149
|
+
end
|
|
1150
|
+
def tuple
|
|
1151
|
+
if defined? @md.rights.all \
|
|
1152
|
+
and @md.rights.all=~/\S+/
|
|
1153
|
+
txt=@md.rights.all
|
|
1154
|
+
txt=special_character_escape(txt)
|
|
1155
|
+
["#{name}, ","'#{txt}', "]
|
|
1156
|
+
else ['','']
|
|
1157
|
+
end
|
|
1158
|
+
end
|
|
1159
|
+
self
|
|
1160
|
+
end
|
|
1161
|
+
def rights_copyright_text
|
|
1162
|
+
def name
|
|
1163
|
+
'rights_copyright_text'
|
|
1164
|
+
end
|
|
1165
|
+
def create_column
|
|
1166
|
+
"#{name} VARCHAR(#{Db[:col_info_note]}) NULL,"
|
|
1167
|
+
end
|
|
1168
|
+
def column_comment
|
|
1169
|
+
%{COMMENT ON COLUMN metadata_and_text.#{name}
|
|
1170
|
+
IS 'metadata copyright associated for document text';}
|
|
1171
|
+
end
|
|
1172
|
+
def tuple
|
|
1173
|
+
if defined? @md.rights.copyright_text \
|
|
1174
|
+
and @md.rights.copyright_text=~/\S+/
|
|
1175
|
+
txt=@md.rights.copyright_text
|
|
1176
|
+
txt=special_character_escape(txt)
|
|
1177
|
+
["#{name}, ","'#{txt}', "]
|
|
1178
|
+
else ['','']
|
|
1179
|
+
end
|
|
1180
|
+
end
|
|
1181
|
+
self
|
|
1182
|
+
end
|
|
1183
|
+
def rights_copyright_translation
|
|
1184
|
+
def name
|
|
1185
|
+
'rights_copyright_translation'
|
|
1186
|
+
end
|
|
1187
|
+
def create_column
|
|
1188
|
+
"#{name} VARCHAR(#{Db[:col_info_note]}) NULL,"
|
|
1189
|
+
end
|
|
1190
|
+
def column_comment
|
|
1191
|
+
%{COMMENT ON COLUMN metadata_and_text.#{name}
|
|
1192
|
+
IS 'metadata copyright associated for document text translation (if any)';}
|
|
1193
|
+
end
|
|
1194
|
+
def tuple
|
|
1195
|
+
if defined? @md.rights.copyright_translation \
|
|
1196
|
+
and @md.rights.copyright_translation=~/\S+/
|
|
1197
|
+
txt=@md.rights.copyright_translation
|
|
1198
|
+
txt=special_character_escape(txt)
|
|
1199
|
+
["#{name}, ","'#{txt}', "]
|
|
1200
|
+
else ['','']
|
|
1201
|
+
end
|
|
1202
|
+
end
|
|
1203
|
+
self
|
|
1204
|
+
end
|
|
1205
|
+
def rights_copyright_illustrations
|
|
1206
|
+
def name
|
|
1207
|
+
'rights_copyright_illustrations'
|
|
1208
|
+
end
|
|
1209
|
+
def create_column
|
|
1210
|
+
"#{name} VARCHAR(#{Db[:col_info_note]}) NULL,"
|
|
1211
|
+
end
|
|
1212
|
+
def column_comment
|
|
1213
|
+
%{COMMENT ON COLUMN metadata_and_text.#{name}
|
|
1214
|
+
IS 'metadata copyright associated for document text illustrations (if any)';}
|
|
1215
|
+
end
|
|
1216
|
+
def tuple
|
|
1217
|
+
if defined? @md.rights.copyright_illustrations \
|
|
1218
|
+
and @md.rights.copyright_illustrations=~/\S+/
|
|
1219
|
+
txt=@md.rights.copyright_illustrations
|
|
1220
|
+
txt=special_character_escape(txt)
|
|
1221
|
+
["#{name}, ","'#{txt}', "]
|
|
1222
|
+
else ['','']
|
|
1223
|
+
end
|
|
1224
|
+
end
|
|
1225
|
+
self
|
|
1226
|
+
end
|
|
1227
|
+
def rights_copyright_photographs
|
|
1228
|
+
def name
|
|
1229
|
+
'rights_copyright_photographs'
|
|
1230
|
+
end
|
|
1231
|
+
def create_column
|
|
1232
|
+
"#{name} VARCHAR(#{Db[:col_info_note]}) NULL,"
|
|
1233
|
+
end
|
|
1234
|
+
def column_comment
|
|
1235
|
+
%{COMMENT ON COLUMN metadata_and_text.#{name}
|
|
1236
|
+
IS 'metadata copyright associated for document text photographs (if any)';}
|
|
1237
|
+
end
|
|
1238
|
+
def tuple
|
|
1239
|
+
if defined? @md.rights.copyright_photographs \
|
|
1240
|
+
and @md.rights.copyright_photographs=~/\S+/
|
|
1241
|
+
txt=@md.rights.copyright_photographs
|
|
1242
|
+
txt=special_character_escape(txt)
|
|
1243
|
+
["#{name}, ","'#{txt}', "]
|
|
1244
|
+
else ['','']
|
|
1245
|
+
end
|
|
1246
|
+
end
|
|
1247
|
+
self
|
|
1248
|
+
end
|
|
1249
|
+
def rights_copyright_preparation
|
|
1250
|
+
def name
|
|
1251
|
+
'rights_copyright_preparation'
|
|
1252
|
+
end
|
|
1253
|
+
def create_column
|
|
1254
|
+
"#{name} VARCHAR(#{Db[:col_info_note]}) NULL,"
|
|
1255
|
+
end
|
|
1256
|
+
def column_comment
|
|
1257
|
+
%{COMMENT ON COLUMN metadata_and_text.#{name}
|
|
1258
|
+
IS 'metadata copyright associated for document text preparation (if any)';}
|
|
1259
|
+
end
|
|
1260
|
+
def tuple
|
|
1261
|
+
if defined? @md.rights.copyright_preparation \
|
|
1262
|
+
and @md.rights.copyright_preparation=~/\S+/
|
|
1263
|
+
txt=@md.rights.copyright_preparation
|
|
1264
|
+
txt=special_character_escape(txt)
|
|
1265
|
+
["#{name}, ","'#{txt}', "]
|
|
1266
|
+
else ['','']
|
|
1267
|
+
end
|
|
1268
|
+
end
|
|
1269
|
+
self
|
|
1270
|
+
end
|
|
1271
|
+
def rights_copyright_digitization
|
|
1272
|
+
def name
|
|
1273
|
+
'rights_copyright_digitization'
|
|
1274
|
+
end
|
|
1275
|
+
def create_column
|
|
1276
|
+
"#{name} VARCHAR(#{Db[:col_info_note]}) NULL,"
|
|
1277
|
+
end
|
|
1278
|
+
def column_comment
|
|
1279
|
+
%{COMMENT ON COLUMN metadata_and_text.#{name}
|
|
1280
|
+
IS 'metadata copyright associated for document text digitization (if any)';}
|
|
1281
|
+
end
|
|
1282
|
+
def tuple
|
|
1283
|
+
if defined? @md.rights.copyright_digitization \
|
|
1284
|
+
and @md.rights.copyright_digitization=~/\S+/
|
|
1285
|
+
txt=@md.rights.copyright_digitization
|
|
1286
|
+
txt=special_character_escape(txt)
|
|
1287
|
+
["#{name}, ","'#{txt}', "]
|
|
1288
|
+
else ['','']
|
|
1289
|
+
end
|
|
1290
|
+
end
|
|
1291
|
+
self
|
|
1292
|
+
end
|
|
1293
|
+
def rights_copyright_audio
|
|
1294
|
+
def name
|
|
1295
|
+
'rights_copyright_audio'
|
|
1296
|
+
end
|
|
1297
|
+
def create_column
|
|
1298
|
+
"#{name} VARCHAR(#{Db[:col_info_note]}) NULL,"
|
|
1299
|
+
end
|
|
1300
|
+
def column_comment
|
|
1301
|
+
%{COMMENT ON COLUMN metadata_and_text.#{name}
|
|
1302
|
+
IS 'metadata copyright associated for document text audio (if any)';}
|
|
1303
|
+
end
|
|
1304
|
+
def tuple
|
|
1305
|
+
if defined? @md.rights.copyright_audio \
|
|
1306
|
+
and @md.rights.copyright_audio=~/\S+/
|
|
1307
|
+
txt=@md.rights.copyright_audio
|
|
1308
|
+
txt=special_character_escape(txt)
|
|
1309
|
+
["#{name}, ","'#{txt}', "]
|
|
1310
|
+
else ['','']
|
|
1311
|
+
end
|
|
1312
|
+
end
|
|
1313
|
+
self
|
|
1314
|
+
end
|
|
1315
|
+
def rights_copyright_video
|
|
1316
|
+
def name
|
|
1317
|
+
'rights_copyright_video'
|
|
1318
|
+
end
|
|
1319
|
+
def create_column
|
|
1320
|
+
"#{name} VARCHAR(#{Db[:col_info_note]}) NULL,"
|
|
1321
|
+
end
|
|
1322
|
+
def column_comment
|
|
1323
|
+
%{COMMENT ON COLUMN metadata_and_text.#{name}
|
|
1324
|
+
IS 'metadata copyright associated for document text video (if any)';}
|
|
1325
|
+
end
|
|
1326
|
+
def tuple
|
|
1327
|
+
if defined? @md.rights.copyright_video \
|
|
1328
|
+
and @md.rights.copyright_video=~/\S+/
|
|
1329
|
+
txt=@md.rights.copyright_video
|
|
1330
|
+
txt=special_character_escape(txt)
|
|
1331
|
+
["#{name}, ","'#{txt}', "]
|
|
1332
|
+
else ['','']
|
|
1333
|
+
end
|
|
1334
|
+
end
|
|
1335
|
+
self
|
|
1336
|
+
end
|
|
1337
|
+
def rights_license
|
|
1338
|
+
def name
|
|
1339
|
+
'rights_license'
|
|
1340
|
+
end
|
|
1341
|
+
def create_column
|
|
1342
|
+
"#{name} VARCHAR(#{Db[:col_info_note]}) NULL,"
|
|
1343
|
+
end
|
|
1344
|
+
def column_comment
|
|
1345
|
+
%{COMMENT ON COLUMN metadata_and_text.#{name}
|
|
1346
|
+
IS 'metadata license granted for use of document if any)';}
|
|
1347
|
+
end
|
|
1348
|
+
def tuple
|
|
1349
|
+
if defined? @md.rights.license \
|
|
1350
|
+
and @md.rights.license=~/\S+/
|
|
1351
|
+
txt=@md.rights.license
|
|
1352
|
+
txt=special_character_escape(txt)
|
|
1353
|
+
["#{name}, ","'#{txt}', "]
|
|
1354
|
+
else ['','']
|
|
1355
|
+
end
|
|
1356
|
+
end
|
|
1357
|
+
self
|
|
1358
|
+
end
|
|
1359
|
+
=begin
|
|
1360
|
+
#% identifier
|
|
1361
|
+
@identifier:
|
|
1362
|
+
:oclc:
|
|
1363
|
+
:isbn:
|
|
1364
|
+
=end
|
|
1365
|
+
def identifier_oclc
|
|
1366
|
+
def name
|
|
1367
|
+
'identifier_oclc'
|
|
1368
|
+
end
|
|
1369
|
+
def create_column
|
|
1370
|
+
"#{name} VARCHAR(#{Db[:col_library]}) NULL,"
|
|
1371
|
+
end
|
|
1372
|
+
def column_comment
|
|
1373
|
+
%{COMMENT ON COLUMN metadata_and_text.#{name}
|
|
1374
|
+
IS 'metadata identifier document Online Computer Library Center number';}
|
|
1375
|
+
end
|
|
1376
|
+
def tuple
|
|
1377
|
+
if defined? @md.identifier.oclc \
|
|
1378
|
+
and @md.identifier.oclc=~/\S+/
|
|
1379
|
+
txt=@md.identifier.oclc
|
|
1380
|
+
txt=special_character_escape(txt)
|
|
1381
|
+
["#{name}, ","'#{txt}', "]
|
|
1382
|
+
else ['','']
|
|
1383
|
+
end
|
|
1384
|
+
end
|
|
1385
|
+
self
|
|
1386
|
+
end
|
|
1387
|
+
def identifier_isbn
|
|
1388
|
+
def name
|
|
1389
|
+
'identifier_isbn'
|
|
1390
|
+
end
|
|
1391
|
+
def create_column
|
|
1392
|
+
"#{name} VARCHAR(#{Db[:col_small]}) NULL,"
|
|
1393
|
+
end
|
|
1394
|
+
def column_comment
|
|
1395
|
+
%{COMMENT ON COLUMN metadata_and_text.#{name}
|
|
1396
|
+
IS 'metadata identifier document isbn (if any)';}
|
|
1397
|
+
end
|
|
1398
|
+
def tuple
|
|
1399
|
+
if defined? @md.identifier.isbn \
|
|
1400
|
+
and @md.identifier.isbn=~/\S+/
|
|
1401
|
+
txt=@md.identifier.isbn
|
|
1402
|
+
txt=special_character_escape(txt)
|
|
1403
|
+
["#{name}, ","'#{txt}', "]
|
|
1404
|
+
else ['','']
|
|
1405
|
+
end
|
|
1406
|
+
end
|
|
1407
|
+
self
|
|
1408
|
+
end
|
|
1409
|
+
=begin
|
|
1410
|
+
#% classify
|
|
1411
|
+
@classify:
|
|
1412
|
+
:topic_register:
|
|
1413
|
+
:subject:
|
|
1414
|
+
:keywords:
|
|
1415
|
+
:type:
|
|
1416
|
+
:loc:
|
|
1417
|
+
:dewey:
|
|
1418
|
+
=end
|
|
1419
|
+
def classify_topic_register
|
|
1420
|
+
def name
|
|
1421
|
+
'classify_topic_register'
|
|
1422
|
+
end
|
|
1423
|
+
def create_column
|
|
1424
|
+
"#{name} VARCHAR(#{Db[:col_info_note]}) NULL,"
|
|
1425
|
+
end
|
|
1426
|
+
def column_comment
|
|
1427
|
+
%{COMMENT ON COLUMN metadata_and_text.#{name}
|
|
1428
|
+
IS 'metadata classify document topic register (semi-structured document subject information)';}
|
|
1429
|
+
end
|
|
1430
|
+
def tuple
|
|
1431
|
+
if defined? @md.classify.topic_register \
|
|
1432
|
+
and @md.classify.topic_register=~/\S+/
|
|
1433
|
+
txt=@md.classify.topic_register
|
|
1434
|
+
txt=special_character_escape(txt)
|
|
1435
|
+
["#{name}, ","'#{txt}', "]
|
|
1436
|
+
else ['','']
|
|
1437
|
+
end
|
|
1438
|
+
end
|
|
1439
|
+
self
|
|
1440
|
+
end
|
|
1441
|
+
def classify_subject
|
|
1442
|
+
def name
|
|
1443
|
+
'classify_subject'
|
|
1444
|
+
end
|
|
1445
|
+
def create_column
|
|
1446
|
+
"#{name} VARCHAR(#{Db[:col_txt_long]}) NULL,"
|
|
1447
|
+
end
|
|
1448
|
+
def column_comment
|
|
1449
|
+
%{COMMENT ON COLUMN metadata_and_text.#{name}
|
|
1450
|
+
IS 'metadata classify document subject matter [DC3]';}
|
|
1451
|
+
end
|
|
1452
|
+
def tuple
|
|
1453
|
+
if defined? @md.classify.subject \
|
|
1454
|
+
and @md.classify.subject=~/\S+/
|
|
1455
|
+
txt=@md.classify.subject
|
|
1456
|
+
txt=special_character_escape(txt)
|
|
1457
|
+
["#{name}, ","'#{txt}', "]
|
|
1458
|
+
else ['','']
|
|
1459
|
+
end
|
|
1460
|
+
end
|
|
1461
|
+
self
|
|
1462
|
+
end
|
|
1463
|
+
def classify_loc
|
|
1464
|
+
def name
|
|
1465
|
+
'classify_loc'
|
|
1466
|
+
end
|
|
1467
|
+
def create_column
|
|
1468
|
+
"#{name} VARCHAR(#{Db[:col_library]}) NULL,"
|
|
1469
|
+
end
|
|
1470
|
+
def column_comment
|
|
1471
|
+
%{COMMENT ON COLUMN metadata_and_text.#{name}
|
|
1472
|
+
IS 'metadata classify document Library of Congress';}
|
|
1473
|
+
end
|
|
1474
|
+
def tuple
|
|
1475
|
+
if defined? @md.classify.loc \
|
|
1476
|
+
and @md.classify.loc=~/\S+/
|
|
1477
|
+
txt=@md.classify.loc
|
|
1478
|
+
txt=special_character_escape(txt)
|
|
1479
|
+
["#{name}, ","'#{txt}', "]
|
|
1480
|
+
else ['','']
|
|
1481
|
+
end
|
|
1482
|
+
end
|
|
1483
|
+
self
|
|
1484
|
+
end
|
|
1485
|
+
def classify_dewey
|
|
1486
|
+
def name
|
|
1487
|
+
'classify_dewey'
|
|
1488
|
+
end
|
|
1489
|
+
def create_column
|
|
1490
|
+
"#{name} VARCHAR(#{Db[:col_library]}) NULL,"
|
|
1491
|
+
end
|
|
1492
|
+
def column_comment
|
|
1493
|
+
%{COMMENT ON COLUMN metadata_and_text.#{name}
|
|
1494
|
+
IS 'metadata classify document Dewey';}
|
|
1495
|
+
end
|
|
1496
|
+
def tuple
|
|
1497
|
+
if defined? @md.classify.dewey \
|
|
1498
|
+
and @md.classify.dewey=~/\S+/
|
|
1499
|
+
txt=@md.classify.dewey
|
|
1500
|
+
txt=special_character_escape(txt)
|
|
1501
|
+
["#{name}, ","'#{txt}', "]
|
|
1502
|
+
else ['','']
|
|
1503
|
+
end
|
|
1504
|
+
end
|
|
1505
|
+
self
|
|
1506
|
+
end
|
|
1507
|
+
def classify_keywords
|
|
1508
|
+
def name
|
|
1509
|
+
'classify_keywords'
|
|
1510
|
+
end
|
|
1511
|
+
def create_column
|
|
1512
|
+
"#{name} VARCHAR(#{Db[:col_txt_long]}) NULL,"
|
|
1513
|
+
end
|
|
1514
|
+
def column_comment
|
|
1515
|
+
%{COMMENT ON COLUMN metadata_and_text.#{name}
|
|
1516
|
+
IS 'metadata classify document keywords';}
|
|
1517
|
+
end
|
|
1518
|
+
def tuple
|
|
1519
|
+
if defined? @md.classify.keywords \
|
|
1520
|
+
and @md.classify.keywords=~/\S+/
|
|
1521
|
+
txt=@md.classify.keywords
|
|
1522
|
+
txt=special_character_escape(txt)
|
|
1523
|
+
["#{name}, ","'#{txt}', "]
|
|
1524
|
+
else ['','']
|
|
1525
|
+
end
|
|
1526
|
+
end
|
|
1527
|
+
self
|
|
1528
|
+
end
|
|
1529
|
+
=begin
|
|
1530
|
+
#% notes
|
|
1531
|
+
@notes:
|
|
1532
|
+
:abstract:
|
|
1533
|
+
:description:
|
|
1534
|
+
:comment:
|
|
1535
|
+
:coverage:
|
|
1536
|
+
:relation:
|
|
1537
|
+
:format:
|
|
1538
|
+
:history:
|
|
1539
|
+
:prefix:
|
|
1540
|
+
:prefix_a:
|
|
1541
|
+
:prefix_b:
|
|
1542
|
+
:suffix:
|
|
1543
|
+
=end
|
|
1544
|
+
def notes_abstract
|
|
1545
|
+
def name
|
|
1546
|
+
'notes_abstract'
|
|
1547
|
+
end
|
|
1548
|
+
def create_column
|
|
1549
|
+
"#{name} TEXT NULL,"
|
|
1550
|
+
end
|
|
1551
|
+
def column_comment
|
|
1552
|
+
%{COMMENT ON COLUMN metadata_and_text.#{name}
|
|
1553
|
+
IS 'metadata document notes abstract';}
|
|
1554
|
+
end
|
|
1555
|
+
def tuple
|
|
1556
|
+
if defined? @md.notes.abstract \
|
|
1557
|
+
and @md.notes.abstract=~/\S+/
|
|
1558
|
+
txt=@md.notes.abstract
|
|
1559
|
+
txt=special_character_escape(txt)
|
|
1560
|
+
["#{name}, ","'#{txt}', "]
|
|
1561
|
+
else ['','']
|
|
1562
|
+
end
|
|
1563
|
+
end
|
|
1564
|
+
self
|
|
1565
|
+
end
|
|
1566
|
+
def notes_description
|
|
1567
|
+
def name
|
|
1568
|
+
'notes_description'
|
|
1569
|
+
end
|
|
1570
|
+
def create_column
|
|
1571
|
+
"#{name} TEXT NULL,"
|
|
1572
|
+
end
|
|
1573
|
+
def column_comment
|
|
1574
|
+
%{COMMENT ON COLUMN metadata_and_text.#{name}
|
|
1575
|
+
IS 'metadata document notes description [DC4]';}
|
|
1576
|
+
end
|
|
1577
|
+
def tuple
|
|
1578
|
+
if defined? @md.notes.description \
|
|
1579
|
+
and @md.notes.description=~/\S+/
|
|
1580
|
+
txt=@md.notes.description
|
|
1581
|
+
txt=special_character_escape(txt)
|
|
1582
|
+
["#{name}, ","'#{txt}', "]
|
|
1583
|
+
else ['','']
|
|
1584
|
+
end
|
|
1585
|
+
end
|
|
1586
|
+
self
|
|
1587
|
+
end
|
|
1588
|
+
def notes_comment
|
|
1589
|
+
def name
|
|
1590
|
+
'notes_comment'
|
|
1591
|
+
end
|
|
1592
|
+
def create_column
|
|
1593
|
+
"#{name} TEXT NULL,"
|
|
1594
|
+
end
|
|
1595
|
+
def column_comment
|
|
1596
|
+
%{COMMENT ON COLUMN metadata_and_text.#{name}
|
|
1597
|
+
IS 'metadata document notes comment';}
|
|
1598
|
+
end
|
|
1599
|
+
def tuple
|
|
1600
|
+
if defined? @md.notes.comment \
|
|
1601
|
+
and @md.notes.comment=~/\S+/
|
|
1602
|
+
txt=@md.notes.comment
|
|
1603
|
+
txt=special_character_escape(txt)
|
|
1604
|
+
["#{name}, ","'#{txt}', "]
|
|
1605
|
+
else ['','']
|
|
1606
|
+
end
|
|
1607
|
+
end
|
|
1608
|
+
self
|
|
1609
|
+
end
|
|
1610
|
+
def notes_coverage
|
|
1611
|
+
def name
|
|
1612
|
+
'notes_coverage'
|
|
1613
|
+
end
|
|
1614
|
+
def create_column
|
|
1615
|
+
"#{name} VARCHAR(#{Db[:col_txt_short]}) NULL,"
|
|
1616
|
+
end
|
|
1617
|
+
def column_comment
|
|
1618
|
+
%{COMMENT ON COLUMN metadata_and_text.#{name}
|
|
1619
|
+
IS 'metadata classify document coverage [DC14]';}
|
|
1620
|
+
end
|
|
1621
|
+
def tuple
|
|
1622
|
+
if defined? @md.classify.coverage \
|
|
1623
|
+
and @md.classify.coverage=~/\S+/
|
|
1624
|
+
txt=@md.classify.coverage
|
|
1625
|
+
txt=special_character_escape(txt)
|
|
1626
|
+
["#{name}, ","'#{txt}', "]
|
|
1627
|
+
else ['','']
|
|
1628
|
+
end
|
|
1629
|
+
end
|
|
1630
|
+
self
|
|
1631
|
+
end
|
|
1632
|
+
def notes_relation
|
|
1633
|
+
def name
|
|
1634
|
+
'notes_relation'
|
|
1635
|
+
end
|
|
1636
|
+
def create_column
|
|
1637
|
+
"#{name} VARCHAR(#{Db[:col_txt_short]}) NULL,"
|
|
1638
|
+
end
|
|
1639
|
+
def column_comment
|
|
1640
|
+
%{COMMENT ON COLUMN metadata_and_text.#{name}
|
|
1641
|
+
IS 'metadata classify document relation [DC13]';}
|
|
1642
|
+
end
|
|
1643
|
+
def tuple
|
|
1644
|
+
if defined? @md.classify.relation \
|
|
1645
|
+
and @md.classify.relation=~/\S+/
|
|
1646
|
+
txt=@md.classify.relation
|
|
1647
|
+
txt=special_character_escape(txt)
|
|
1648
|
+
["#{name}, ","'#{txt}', "]
|
|
1649
|
+
else ['','']
|
|
1650
|
+
end
|
|
1651
|
+
end
|
|
1652
|
+
self
|
|
1653
|
+
end
|
|
1654
|
+
def notes_history #check, consider removal
|
|
1655
|
+
def name
|
|
1656
|
+
'notes_history'
|
|
1657
|
+
end
|
|
1658
|
+
def create_column
|
|
1659
|
+
"#{name} VARCHAR(#{Db[:col_txt_long]}) NULL,"
|
|
1660
|
+
end
|
|
1661
|
+
def column_comment
|
|
1662
|
+
%{COMMENT ON COLUMN metadata_and_text.#{name}
|
|
1663
|
+
IS 'metadata document notes history';}
|
|
1664
|
+
end
|
|
1665
|
+
def tuple
|
|
1666
|
+
if defined? @md.notes.history \
|
|
1667
|
+
and @md.notes.history=~/\S+/
|
|
1668
|
+
txt=@md.notes.history
|
|
1669
|
+
txt=special_character_escape(txt)
|
|
1670
|
+
["#{name}, ","'#{txt}', "]
|
|
1671
|
+
else ['','']
|
|
1672
|
+
end
|
|
1673
|
+
end
|
|
1674
|
+
self
|
|
1675
|
+
end
|
|
1676
|
+
def notes_type #check
|
|
1677
|
+
def name
|
|
1678
|
+
'notes_type'
|
|
1679
|
+
end
|
|
1680
|
+
def create_column
|
|
1681
|
+
"#{name} VARCHAR(#{Db[:col_txt_long]}) NULL,"
|
|
1682
|
+
end
|
|
1683
|
+
def column_comment
|
|
1684
|
+
%{COMMENT ON COLUMN metadata_and_text.#{name}
|
|
1685
|
+
IS 'metadata notes document type [DC8]';}
|
|
1686
|
+
end
|
|
1687
|
+
def tuple
|
|
1688
|
+
if defined? @md.notes.type \
|
|
1689
|
+
and @md.notes.type=~/\S+/
|
|
1690
|
+
txt=@md.notes.type
|
|
1691
|
+
txt=special_character_escape(txt)
|
|
1692
|
+
["#{name}, ","'#{txt}', "]
|
|
1693
|
+
else ['','']
|
|
1694
|
+
end
|
|
1695
|
+
end
|
|
1696
|
+
self
|
|
1697
|
+
end
|
|
1698
|
+
def notes_format
|
|
1699
|
+
def name
|
|
1700
|
+
'notes_format'
|
|
1701
|
+
end
|
|
1702
|
+
def create_column
|
|
1703
|
+
"#{name} VARCHAR(#{Db[:col_txt_long]}) NULL,"
|
|
1704
|
+
end
|
|
1705
|
+
def column_comment
|
|
1706
|
+
%{COMMENT ON COLUMN metadata_and_text.#{name}
|
|
1707
|
+
IS 'metadata classify document format [DC9]';}
|
|
1708
|
+
end
|
|
1709
|
+
def tuple
|
|
1710
|
+
if defined? @md.classify.format \
|
|
1711
|
+
and @md.classify.format=~/\S+/
|
|
1712
|
+
txt=@md.classify.format
|
|
1713
|
+
txt=special_character_escape(txt)
|
|
1714
|
+
["#{name}, ","'#{txt}', "]
|
|
1715
|
+
else ['','']
|
|
1716
|
+
end
|
|
1717
|
+
end
|
|
1718
|
+
self
|
|
1719
|
+
end
|
|
1720
|
+
def notes_prefix
|
|
1721
|
+
def name
|
|
1722
|
+
'notes_prefix'
|
|
1723
|
+
end
|
|
1724
|
+
def create_column
|
|
1725
|
+
"#{name} TEXT NULL,"
|
|
1726
|
+
end
|
|
1727
|
+
def column_comment
|
|
1728
|
+
%{COMMENT ON COLUMN metadata_and_text.#{name}
|
|
1729
|
+
IS 'metadata document notes prefix';}
|
|
1730
|
+
end
|
|
1731
|
+
def tuple
|
|
1732
|
+
if defined? @md.notes.prefix \
|
|
1733
|
+
and @md.notes.prefix=~/\S+/
|
|
1734
|
+
txt=@md.notes.prefix
|
|
1735
|
+
txt=special_character_escape(txt)
|
|
1736
|
+
["#{name}, ","'#{txt}', "]
|
|
1737
|
+
else ['','']
|
|
1738
|
+
end
|
|
1739
|
+
end
|
|
1740
|
+
self
|
|
1741
|
+
end
|
|
1742
|
+
def notes_prefix_a
|
|
1743
|
+
def name
|
|
1744
|
+
'notes_prefix_a'
|
|
1745
|
+
end
|
|
1746
|
+
def create_column
|
|
1747
|
+
"#{name} TEXT NULL,"
|
|
1748
|
+
end
|
|
1749
|
+
def column_comment
|
|
1750
|
+
%{COMMENT ON COLUMN metadata_and_text.#{name}
|
|
1751
|
+
IS 'metadata document notes prefix_a';}
|
|
1752
|
+
end
|
|
1753
|
+
def tuple
|
|
1754
|
+
if defined? @md.notes.prefix_a \
|
|
1755
|
+
and @md.notes.prefix_a=~/\S+/
|
|
1756
|
+
txt=@md.notes.prefix_a
|
|
1757
|
+
txt=special_character_escape(txt)
|
|
1758
|
+
["#{name}, ","'#{txt}', "]
|
|
1759
|
+
else ['','']
|
|
1760
|
+
end
|
|
1761
|
+
end
|
|
1762
|
+
self
|
|
1763
|
+
end
|
|
1764
|
+
def notes_prefix_b
|
|
1765
|
+
def name
|
|
1766
|
+
'notes_prefix_b'
|
|
1767
|
+
end
|
|
1768
|
+
def create_column
|
|
1769
|
+
"#{name} TEXT NULL,"
|
|
1770
|
+
end
|
|
1771
|
+
def column_comment
|
|
1772
|
+
%{COMMENT ON COLUMN metadata_and_text.#{name}
|
|
1773
|
+
IS 'metadata document notes prefix_b';}
|
|
1774
|
+
end
|
|
1775
|
+
def tuple
|
|
1776
|
+
if defined? @md.notes.prefix_b \
|
|
1777
|
+
and @md.notes.prefix_b=~/\S+/
|
|
1778
|
+
txt=@md.notes.prefix_b
|
|
1779
|
+
txt=special_character_escape(txt)
|
|
1780
|
+
["#{name}, ","'#{txt}', "]
|
|
1781
|
+
else ['','']
|
|
1782
|
+
end
|
|
1783
|
+
end
|
|
1784
|
+
self
|
|
1785
|
+
end
|
|
1786
|
+
def notes_suffix
|
|
1787
|
+
def name
|
|
1788
|
+
'notes_suffix'
|
|
1789
|
+
end
|
|
1790
|
+
def create_column # keep text
|
|
1791
|
+
"#{name} TEXT NULL,"
|
|
1792
|
+
end
|
|
1793
|
+
def column_comment
|
|
1794
|
+
%{COMMENT ON COLUMN metadata_and_text.#{name}
|
|
1795
|
+
IS 'metadata document notes suffix';}
|
|
1796
|
+
end
|
|
1797
|
+
def tuple
|
|
1798
|
+
if defined? @md.notes.suffix \
|
|
1799
|
+
and @md.notes.suffix=~/\S+/
|
|
1800
|
+
txt=@md.notes.suffix
|
|
1801
|
+
txt=special_character_escape(txt)
|
|
1802
|
+
["#{name}, ","'#{txt}', "]
|
|
1803
|
+
else ['','']
|
|
1804
|
+
end
|
|
1805
|
+
end
|
|
1806
|
+
self
|
|
1807
|
+
end
|
|
1808
|
+
=begin
|
|
1809
|
+
#% src
|
|
1810
|
+
=end
|
|
1811
|
+
def src_filename
|
|
1812
|
+
def name
|
|
1813
|
+
'src_filename'
|
|
1814
|
+
end
|
|
1815
|
+
def create_column
|
|
1816
|
+
"#{name} VARCHAR(#{Db[:col_filename]}) NOT NULL,"
|
|
1817
|
+
end
|
|
1818
|
+
def column_comment
|
|
1819
|
+
%{COMMENT ON COLUMN metadata_and_text.#{name}
|
|
1820
|
+
IS 'sisu markup source text filename';}
|
|
1821
|
+
end
|
|
1822
|
+
def tuple
|
|
1823
|
+
if defined? @md.fns \
|
|
1824
|
+
and @md.fns=~/\S+/
|
|
1825
|
+
txt=@md.fns
|
|
1826
|
+
txt=special_character_escape(txt)
|
|
1827
|
+
["#{name}, ","'#{txt}', "]
|
|
1828
|
+
else ['','']
|
|
1829
|
+
end
|
|
1830
|
+
end
|
|
1831
|
+
self
|
|
1832
|
+
end
|
|
1833
|
+
def src_fingerprint
|
|
1834
|
+
def name
|
|
1835
|
+
'src_fingerprint' #hash/digest, sha512, sha256 or md5
|
|
1836
|
+
end
|
|
1837
|
+
def create_column
|
|
1838
|
+
"#{name} VARCHAR(#{Db[:col_digest]}) NULL,"
|
|
1839
|
+
#"#{name} TEXT NULL,"
|
|
1840
|
+
end
|
|
1841
|
+
def column_comment
|
|
1842
|
+
%{COMMENT ON COLUMN metadata_and_text.#{name}
|
|
1843
|
+
IS 'sisu markup source text fingerprint, hash digest sha512, sha256 or md5';}
|
|
1844
|
+
end
|
|
1845
|
+
def tuple
|
|
1846
|
+
if defined? @md.dgst \
|
|
1847
|
+
and @md.dgst.is_a?(Array) \
|
|
1848
|
+
and @md.dgst[1]=~/\S+/
|
|
1849
|
+
txt=@md.dgst[1]
|
|
1850
|
+
["#{name}, ","'#{txt}', "]
|
|
1851
|
+
else ['','']
|
|
1852
|
+
end
|
|
1853
|
+
end
|
|
1854
|
+
self
|
|
1855
|
+
end
|
|
1856
|
+
def src_filesize
|
|
1857
|
+
def name
|
|
1858
|
+
'src_filesize'
|
|
1859
|
+
end
|
|
1860
|
+
def create_column
|
|
1861
|
+
"#{name} VARCHAR(#{Db[:col_filesize]}) NULL,"
|
|
1862
|
+
end
|
|
1863
|
+
def column_comment
|
|
1864
|
+
%{COMMENT ON COLUMN metadata_and_text.#{name}
|
|
1865
|
+
IS 'sisu markup source text file size';}
|
|
1866
|
+
end
|
|
1867
|
+
def tuple
|
|
1868
|
+
if defined? @md.filesize \
|
|
1869
|
+
and @md.filesize=~/\S+/
|
|
1870
|
+
txt=@md.filesize
|
|
1871
|
+
txt=special_character_escape(txt)
|
|
1872
|
+
["#{name}, ","'#{txt}', "]
|
|
1873
|
+
else ['','']
|
|
1874
|
+
end
|
|
1875
|
+
end
|
|
1876
|
+
self
|
|
1877
|
+
end
|
|
1878
|
+
def src_word_count
|
|
1879
|
+
def name
|
|
1880
|
+
'src_word_count'
|
|
1881
|
+
end
|
|
1882
|
+
def create_column
|
|
1883
|
+
"#{name} TEXT NULL,"
|
|
1884
|
+
end
|
|
1885
|
+
def column_comment
|
|
1886
|
+
%{COMMENT ON COLUMN metadata_and_text.#{name}
|
|
1887
|
+
IS 'sisu markup source text word count';}
|
|
1888
|
+
end
|
|
1889
|
+
def tuple
|
|
1890
|
+
if defined? @md.wc_words \
|
|
1891
|
+
and @md.wc_words=~/\S+/
|
|
1892
|
+
txt=@md.wc_words
|
|
1893
|
+
txt=special_character_escape(txt)
|
|
1894
|
+
["#{name}, ","'#{txt}', "]
|
|
1895
|
+
else ['','']
|
|
1896
|
+
end
|
|
1897
|
+
end
|
|
1898
|
+
self
|
|
1899
|
+
end
|
|
1900
|
+
def src_txt # consider naming sisusrc
|
|
1901
|
+
def name
|
|
1902
|
+
'src_text'
|
|
1903
|
+
end
|
|
1904
|
+
def create_column
|
|
1905
|
+
"#{name} TEXT NULL,"
|
|
1906
|
+
end
|
|
1907
|
+
def column_comment
|
|
1908
|
+
%{COMMENT ON COLUMN metadata_and_text.#{name}
|
|
1909
|
+
IS 'sisu markup source text (if shared)';}
|
|
1910
|
+
end
|
|
1911
|
+
def tuple
|
|
1912
|
+
if ((@md.opt.act[:psql_import][:set]==:on \
|
|
1913
|
+
|| @md.opt.act[:psql_update][:set]==:on) \
|
|
1914
|
+
or (@md.opt.act[:sqlite_import][:set]==:on \
|
|
1915
|
+
|| @md.opt.act[:sqlite_update][:set]==:on)) \
|
|
1916
|
+
and FileTest.exist?(@md.fns)
|
|
1917
|
+
["#{name}, ","'#{@sisutxt}', "]
|
|
1918
|
+
else ['','']
|
|
1919
|
+
end
|
|
1920
|
+
end
|
|
1921
|
+
self
|
|
1922
|
+
end
|
|
1923
|
+
=begin
|
|
1924
|
+
#% misc
|
|
1925
|
+
@links:
|
|
1926
|
+
=end
|
|
1927
|
+
def fulltext
|
|
1928
|
+
def name
|
|
1929
|
+
'fulltext'
|
|
1930
|
+
end
|
|
1931
|
+
def create_column
|
|
1932
|
+
"#{name} TEXT NULL,"
|
|
1933
|
+
end
|
|
1934
|
+
def column_comment
|
|
1935
|
+
%{COMMENT ON COLUMN metadata_and_text.#{name}
|
|
1936
|
+
IS 'document full text clean, searchable';}
|
|
1937
|
+
end
|
|
1938
|
+
def tuple
|
|
1939
|
+
if ((@md.opt.act[:psql_import][:set]==:on \
|
|
1940
|
+
|| @md.opt.act[:psql_update][:set]==:on) \
|
|
1941
|
+
or (@md.opt.act[:sqlite_import][:set]==:on \
|
|
1942
|
+
|| @md.opt.act[:sqlite_update][:set]==:on)) \
|
|
1943
|
+
and FileTest.exist?(@md.fns)
|
|
1944
|
+
["#{name}, ","'#{@fulltext}', "]
|
|
1945
|
+
else ['','']
|
|
1946
|
+
end
|
|
1947
|
+
end
|
|
1948
|
+
self
|
|
1949
|
+
end
|
|
1950
|
+
def links
|
|
1951
|
+
def name
|
|
1952
|
+
'links'
|
|
1953
|
+
end
|
|
1954
|
+
def create_column
|
|
1955
|
+
"#{name} TEXT NULL,"
|
|
1956
|
+
#"#{name} VARCHAR(#{links.size}) NULL,"
|
|
1957
|
+
end
|
|
1958
|
+
def column_comment
|
|
1959
|
+
%{COMMENT ON COLUMN metadata_and_text.#{name}
|
|
1960
|
+
IS 'metadata document links';}
|
|
1961
|
+
end
|
|
1962
|
+
def tuple
|
|
1963
|
+
if defined? @md.links \
|
|
1964
|
+
and @md.links=~/\S+/
|
|
1965
|
+
txt=@md.links
|
|
1966
|
+
txt=special_character_escape(txt)
|
|
1967
|
+
["#{name}, ","'#{txt}', "]
|
|
1968
|
+
else ['','']
|
|
1969
|
+
end
|
|
1970
|
+
end
|
|
1971
|
+
self
|
|
1972
|
+
end
|
|
1973
|
+
self
|
|
1974
|
+
end
|
|
1975
|
+
end
|
|
1976
|
+
class ColumnSize
|
|
1977
|
+
def document_clean # restriction not necessary
|
|
1978
|
+
60000
|
|
1979
|
+
end
|
|
1980
|
+
def document_body
|
|
1981
|
+
16000
|
|
1982
|
+
end
|
|
1983
|
+
def document_seg
|
|
1984
|
+
120
|
|
1985
|
+
end
|
|
1986
|
+
def document_seg_full
|
|
1987
|
+
120
|
|
1988
|
+
end
|
|
1989
|
+
def endnote_clean # restriction not necessary
|
|
1990
|
+
60000
|
|
1991
|
+
end
|
|
1992
|
+
def endnote_body
|
|
1993
|
+
16000
|
|
1994
|
+
end
|
|
1995
|
+
end
|
|
1996
|
+
end
|
|
1997
|
+
__END__
|