This repository has been archived by the owner on Sep 6, 2021. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 0
/
report.html
executable file
·405 lines (405 loc) · 23 KB
/
report.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>report</title>
<link rel="stylesheet" type="text/css" href="css/report.css">
</head>
<body class="markdown-preview-plus-view">
<h1>知識情報演習I レポート課題 201811528 春名航亨(水曜組)</h1>
<h1>はじめに</h1>
<p>このページは,知識情報・図書館学類春ABモジュール開設「<a href="http://klis.tsukuba.ac.jp/klib/index.php?KIRL-I"><strong>知識情報演習Ⅰ</strong></a>」の課題「OPACの構築」についてのレポートです.</p>
<h1>内容</h1>
<ul>
<li><a href="#1">1. 構築したOPACのURL</a></li>
<li><a href="#2">2. CGIプログラムのソースリストとその説明</a></li>
<li><a href="#3">3. リレーション(テーブル)の構造とその説明</a></li>
<li><a href="#4">4. 工夫した点</a></li>
<li><a href="#5">5. 得られた知見</a></li>
<li><a href="#6">6. 感想</a></li>
</ul>
<h1>1. <a name="1">構築したOPACのURL</a></h1>
<p>構築したOPACシステム「<strong>Simple OPAC</strong>」のindexページは,<br>
<a href="https://cgi.u.tsukuba.ac.jp/~s1811528/opac/index.html"><strong>https://cgi.u.tsukuba.ac.jp/~s1811528/opac/index.html</strong></a>です.</p>
<p>以下は,<strong>opacディレクトリ以下の階層構造</strong>と,<strong>各ファイルの説明</strong>をまとめた図です.</p>
<pre class="editor-colors lang-cmd"><span class="syntax--text syntax--plain syntax--null-grammar"><span></span></span>
<span class="syntax--text syntax--plain syntax--null-grammar"><span>W:\wwws\cgi-bin\opac>tree /F</span></span>
<span class="syntax--text syntax--plain syntax--null-grammar"><span>フォルダー パスの一覧: ボリューム vol_home01</span></span>
<span class="syntax--text syntax--plain syntax--null-grammar"><span>ボリューム シリアル番号は 000000FB 8082:1532 です</span></span>
<span class="syntax--text syntax--plain syntax--null-grammar"><span>W:.</span></span>
<span class="syntax--text syntax--plain syntax--null-grammar"><span>│ .htaccess...ユーザのサーバ設定ファイル</span></span>
<span class="syntax--text syntax--plain syntax--null-grammar"><span>│ report.html...レポートページ</span></span>
<span class="syntax--text syntax--plain syntax--null-grammar"><span>│ index.html...トップページ</span></span>
<span class="syntax--text syntax--plain syntax--null-grammar"><span>│ sitemap.xml...サイトの構造文書</span></span>
<span class="syntax--text syntax--plain syntax--null-grammar"><span>│ yet_list.html...未実装/実装したい機能のメモ</span></span>
<span class="syntax--text syntax--plain syntax--null-grammar"><span>│</span></span>
<span class="syntax--text syntax--plain syntax--null-grammar"><span>├─.git</span></span>
<span class="syntax--text syntax--plain syntax--null-grammar"><span>│</span></span>
<span class="syntax--text syntax--plain syntax--null-grammar"><span>│(省略)</span></span>
<span class="syntax--text syntax--plain syntax--null-grammar"><span>│</span></span>
<span class="syntax--text syntax--plain syntax--null-grammar"><span>├─data</span></span>
<span class="syntax--text syntax--plain syntax--null-grammar"><span>│ bib_sche.sql...opac.dbスキーマ</span></span>
<span class="syntax--text syntax--plain syntax--null-grammar"><span>│ kakou.rb...jbisc.txtをcsvに成形するプログラム</span></span>
<span class="syntax--text syntax--plain syntax--null-grammar"><span>│ isbn.txt...isbn(10桁)を抽出したもの</span></span>
<span class="syntax--text syntax--plain syntax--null-grammar"><span>│ jbisc.txt...書誌情報の元データ</span></span>
<span class="syntax--text syntax--plain syntax--null-grammar"><span>│ kd.csv...DBにimportできる形式にしたもの</span></span>
<span class="syntax--text syntax--plain syntax--null-grammar"><span>│ opac.db...書誌データベース</span></span>
<span class="syntax--text syntax--plain syntax--null-grammar"><span>│</span></span>
<span class="syntax--text syntax--plain syntax--null-grammar"><span>├─css</span></span>
<span class="syntax--text syntax--plain syntax--null-grammar"><span>│ index.css...index.htmlのCSS</span></span>
<span class="syntax--text syntax--plain syntax--null-grammar"><span>│ search.css...search.cgi</span></span>
<span class="syntax--text syntax--plain syntax--null-grammar"><span>│ accurate.css...accurate.cgi</span></span>
<span class="syntax--text syntax--plain syntax--null-grammar"><span>│ yet_list.css...yet_list.html</span></span>
<span class="syntax--text syntax--plain syntax--null-grammar"><span>│ report.css...report.html</span></span>
<span class="syntax--text syntax--plain syntax--null-grammar"><span>│</span></span>
<span class="syntax--text syntax--plain syntax--null-grammar"><span>├─img</span></span>
<span class="syntax--text syntax--plain syntax--null-grammar"><span>│ amazon.png...Amazonバナー</span></span>
<span class="syntax--text syntax--plain syntax--null-grammar"><span>│ cinii.png...CiNiiバナー</span></span>
<span class="syntax--text syntax--plain syntax--null-grammar"><span>│ google.png...Google Booksバナー</span></span>
<span class="syntax--text syntax--plain syntax--null-grammar"><span>│ icon.png...ページicon</span></span>
<span class="syntax--text syntax--plain syntax--null-grammar"><span>│ ndl.png...NDL Searchバナー</span></span>
<span class="syntax--text syntax--plain syntax--null-grammar"><span>│ notfound.png...書誌画像がnullの時表示される画像</span></span>
<span class="syntax--text syntax--plain syntax--null-grammar"><span>│ rakuten.png...Rakuten Booksバナー</span></span>
<span class="syntax--text syntax--plain syntax--null-grammar"><span>│ requirement.png...要件のスクリーンショット</span></span>
<span class="syntax--text syntax--plain syntax--null-grammar"><span>│ sei.png...ページicon</span></span>
<span class="syntax--text syntax--plain syntax--null-grammar"><span>│ tulips.png...Tulips Searchバナー</span></span>
<span class="syntax--text syntax--plain syntax--null-grammar"><span>│</span></span>
<span class="syntax--text syntax--plain syntax--null-grammar"><span>├─cgi</span></span>
<span class="syntax--text syntax--plain syntax--null-grammar"><span>│ accurate.cgi...書誌の詳細表示ページ</span></span>
<span class="syntax--text syntax--plain syntax--null-grammar"><span>│ search.cgi...検索結果一覧ページ</span></span>
<span class="syntax--text syntax--plain syntax--null-grammar"><span>│ def.rb...上記2つのcgi内で用いる関数を集めたもの</span></span>
<span class="syntax--text syntax--plain syntax--null-grammar"><span>│</span></span>
<span class="syntax--text syntax--plain syntax--null-grammar"><span>└─md</span></span>
<span class="syntax--text syntax--plain syntax--null-grammar"><span> yet_list.md...yet_list.htmlの雛型</span></span>
<span class="syntax--text syntax--plain syntax--null-grammar"><span> report.md...report.htmlの雛型</span></span>
</pre>
<div style="text-align:center;">▲図1, OPACシステムの階層構造</div>
<h1>2. <a name="2">CGIプログラムのソースリストとその説明</a></h1>
<h2>ソースリスト</h2>
<p>以下は,作成したcgiプログラムの<strong>ページ</strong>と<strong>ソースコード</strong>のリストです.</p>
<ul>
<li>
<p><strong>search.cgi</strong></p>
<ul>
<li>ページリンク
<ul>
<li><a href="https://cgi.u.tsukuba.ac.jp/~s1811528/opac/cgi/search.cgi">opac/cgi/search.cgi</a></li>
</ul>
</li>
<li>ソースコード
<ul>
<li><a href="https://github.com/eggplants/simple_opac/blob/master/cgi/search.cgi">github</a></li>
</ul>
</li>
</ul>
</li>
<li>
<p><strong>accurate.cgi</strong></p>
<ul>
<li>ページリンク
<ul>
<li><a href="https://cgi.u.tsukuba.ac.jp/~s1811528/opac/cgi/accurate.cgi">opac/cgi/accurate.cgi</a></li>
</ul>
</li>
<li>ソースコード
<ul>
<li><a href="https://github.com/eggplants/simple_opac/blob/master/cgi/accurate.cgi">github</a></li>
</ul>
</li>
</ul>
</li>
</ul>
<h2>説明</h2>
<h3>search.cgi(各関数はdef.rbに記述)</h3>
<ul>
<li>makeword(cgi)
<ul>
<li>index.htmlからGETしたデータを検索語の分別がしやすいように加工するもの</li>
<li><field>:<value>の形</li>
<li>gsub(/[\r\n]/,"")で,変数word内の改行を削除している</li>
<li>delete_if{|i|…}はAND,andやnullの項目を削除している</li>
<li>返り値は加工した検索文</li>
</ul>
</li>
<li>makekeys(words)
<ul>
<li>makeword()から受け取った検索文を,SQLクエリに投げるための各キーワードに分割し,配列に挿入する</li>
<li>or,ORが来たらそのまま挿入</li>
<li>TITLE:<val>やED:<val>が来たら{“TITLE”=>“val”}などのハッシュにして挿入</val></val></li>
<li>フィールドの指定がないものが来たらそのまま挿入</li>
<li>返り値はハッシュや文字列が格納された配列</li>
</ul>
</li>
<li>all_any_search(key,db)
<ul>
<li>ANY検索(全てのフィールドから検索)を行い,DBからデータを取得する</li>
<li>返り値はヒットしたデータのNBC(全国書誌番号)が格納された2次元配列[[NBC1],[NBC2],…,[NBCn]]</li>
</ul>
</li>
<li>field_search_s(key,db)
<ul>
<li>指定したフィールドの個別検索を行う</li>
<li>返り値はヒットしたデータのNBC(全国書誌番号)が格納された2次元配列</li>
</ul>
</li>
<li>andor(keys,db)
<ul>
<li>makekeys()から受け取った値をイテレートして,all_any_search(),all_any_search()にそれぞれ適切に渡し検索結果を配列に挿入</li>
<li>or,ORが渡されたらそのまま配列に挿入</li>
<li>返り値は返り値はヒットしたデータのNBC(全国書誌番号)が格納された2次元配列</li>
</ul>
</li>
<li>strinterpret(keys)
<ul>
<li>andor(keys,db)の返り値のORやANDを解釈して最終的な検索結果を作る</li>
<li>[DATAn]の次に[DATAn+1]が来たら和集合([DATAn]|[DATAn+1])をとる</li>
<li>[DATAn]の次にor,ORが来たらその次の[DATAn+1]と積集合([DATAn]&[DATAn+1])をとる</li>
<li>返り値は一次元配列</li>
</ul>
</li>
<li>retr_hitdata(hit,db)
<ul>
<li>strinterpret(keys)で作成した,ヒットした書誌データのNBCから完全な書誌フィールドのデータを取得</li>
<li>返り値はヒットした書誌データの全体</li>
</ul>
</li>
<li>create_paging_link(hits,par)
<ul>
<li>ページネイション機能のためのページリンクの生成</li>
<li>indexページやsearch.cgiから受け取ったps(pagesize)の値が空なら20に設定する</li>
<li>p(page)は今いるページ数の値</li>
<li>hmpに,検索件数とpsを考慮して必要なページ数(=ページリンクの数)を代入</li>
<li>p_size=0ならhmp=0</li>
<li>pagelinksにページリンクを挿入</li>
<li>返り値はtableにしたページリンクのhtml</li>
</ul>
</li>
<li>create_table_html(data,par)
<ul>
<li>検索結果をhtmlのtableに成型</li>
<li>accurate.cgiにNBCを送信するために各TITLEにはリンクを付与する</li>
<li>pとpsを考慮して必要な文をdata(=retr_hitdata(hit,db))から切り出す</li>
<li>返り値はtableのhtml</li>
</ul>
</li>
<li>rep_hide(per)
<ul>
<li>GETの値を,psを変更して再読み込みした時のために引継/保存しておく</li>
<li><input type=“hidden”>に埋め込んでおく</li>
<li>返り値はps以外のGET値を埋め込んだ<input type=“hidden”>のhtml</li>
</ul>
</li>
<li>main()(#main()とsearch.cgi内に書いている部分)
<ul>
<li>各関数の実行部分</li>
<li>db,cgiでそれぞれSQLiteモジュールのDatabaseオブジェクトとしてopac.dbを指定したものと,CGIオブジェクトを持っておく</li>
<li>cgi_valuesにはcgi.instance_variable_get(:@params)で全てのGET値を持っておく</li>
<li>begin~rescue~endでは,検索フォームになにも記入されていないときのエラーを回避している</li>
<li>hit_numは,ヒット件数を代入</li>
<li>search_displayには検索ワードを持っておく</li>
<li>hit_numが0の時は,pagenationと結果tableのheading表示をしない</li>
<li>title要素と<h1 />のなかで検索ワードを変えて表示</li>
<li>rep_hideを「再読み込みする」をクリックした時(か,psの入力フォームでEnterした時)に送信する</li>
</ul>
</li>
</ul>
<h3>accurate.cgi(各関数はdef.rbに記述)</h3>
<ul>
<li>isbnto13(isbn10)
<ul>
<li><a href="https://openbd.jp/">openDB</a>をたたくためにISBNを10桁から13桁に変換する</li>
<li>返り値はString(13桁の数字)</li>
</ul>
</li>
<li>field_search_a(key,db)
<ul>
<li>search.cgiからNBCを受け取って書誌データ全体を取得</li>
<li>返り値は1冊の全体の書誌データが入った配列</li>
</ul>
</li>
<li>bibimage(isbn13,per)
<ul>
<li>書影画像の取得</li>
<li>openDBの<a href="http://api.openbd.jp/v1/">エンドポイント</a>にアクセスして,書誌データがあるか(=画像があるか)確認</li>
<li>JSONがnilならbibhashに404画像表示htmlを渡す</li>
<li>JSONがnilでなければbibhashに書影表示htmlを渡す</li>
<li>返り値は<img … />のhtml</li>
</ul>
</li>
<li>main()(#main()とaccurate.cgi内に書いている部分)
<ul>
<li>db,cgiでそれぞれSQLiteモジュールのDatabaseオブジェクトとしてopac.dbを指定したものと,CGIオブジェクトを持っておく</li>
<li>rowにfield_search_a(key,db)[0]でsearch.cgiから渡されたGET値(NBC)から取得した全てのフィールドの書誌データ</li>
<li>row[1].scan(/[0-9]/).join[0,10]で,ISBNフィールドの数字のみを先頭から10桁とって,rowと一緒にisbnto13に渡しrowと一緒にisbnto13に渡して画像表示htmlを呼んでいる</li>
<li>各項目をtableにして表示している</li>
</ul>
</li>
</ul>
<h1>3. <a name="3">リレーション(テーブル)の構造とその説明</a></h1>
<h2>構造</h2>
<p>以下に,opac.dbにテーブルbibdataを作成した際のSQL(data/bib_sche.sql)を示します.</p>
<pre class="editor-colors lang-sql"><span class="syntax--source syntax--sql"><span class="syntax--meta syntax--create syntax--sql"><span class="syntax--keyword syntax--other syntax--create syntax--sql"><span>CREATE</span></span><span> </span><span class="syntax--keyword syntax--other syntax--sql"><span>TABLE</span></span><span> </span><span class="syntax--entity syntax--name syntax--function syntax--sql"><span>bibdata</span></span></span><span>(</span></span>
<span class="syntax--source syntax--sql"><span> NBC </span><span class="syntax--storage syntax--type syntax--sql"><span>TEXT</span></span><span> </span><span class="syntax--storage syntax--modifier syntax--sql"><span>primary key</span></span><span>,</span></span>
<span class="syntax--source syntax--sql"><span> ISBN </span><span class="syntax--storage syntax--type syntax--sql"><span>TEXT</span></span><span>,</span></span>
<span class="syntax--source syntax--sql"><span> TITLE </span><span class="syntax--storage syntax--type syntax--sql"><span>TEXT</span></span><span>,</span></span>
<span class="syntax--source syntax--sql"><span> AUTH </span><span class="syntax--storage syntax--type syntax--sql"><span>TEXT</span></span><span>,</span></span>
<span class="syntax--source syntax--sql"><span> PUB </span><span class="syntax--storage syntax--type syntax--sql"><span>TEXT</span></span><span>,</span></span>
<span class="syntax--source syntax--sql"><span> PUBDATE </span><span class="syntax--storage syntax--type syntax--sql"><span>TEXT</span></span><span>,</span></span>
<span class="syntax--source syntax--sql"><span> ED </span><span class="syntax--storage syntax--type syntax--sql"><span>TEXT</span></span><span>,</span></span>
<span class="syntax--source syntax--sql"><span> PHYS </span><span class="syntax--storage syntax--type syntax--sql"><span>TEXT</span></span><span>,</span></span>
<span class="syntax--source syntax--sql"><span> SERIES </span><span class="syntax--storage syntax--type syntax--sql"><span>TEXT</span></span><span>,</span></span>
<span class="syntax--source syntax--sql"><span> NOTE </span><span class="syntax--storage syntax--type syntax--sql"><span>TEXT</span></span><span>,</span></span>
<span class="syntax--source syntax--sql"><span> TITLEHEADING </span><span class="syntax--storage syntax--type syntax--sql"><span>TEXT</span></span><span>,</span></span>
<span class="syntax--source syntax--sql"><span> AUTHORHEADING </span><span class="syntax--storage syntax--type syntax--sql"><span>TEXT</span></span><span>,</span></span>
<span class="syntax--source syntax--sql"><span> HOLDINGSRECORD </span><span class="syntax--storage syntax--type syntax--sql"><span>TEXT</span></span><span>,</span></span>
<span class="syntax--source syntax--sql"><span> HOLDINGPHYS </span><span class="syntax--storage syntax--type syntax--sql"><span>TEXT</span></span><span>,</span></span>
<span class="syntax--source syntax--sql"><span> HOLDINGLOC </span><span class="syntax--storage syntax--type syntax--sql"><span>TEXT</span></span><span>);</span></span>
</pre>
<div style="text-align:center;">▲図2, テーブルbibdataを作成するSQL</div>
<h2>説明</h2>
<p>各値について説明します.</p>
<ul>
<li>NBC
<ul>
<li>全国書誌番号</li>
<li>ex)JP20564340</li>
</ul>
</li>
<li>ISBN
<ul>
<li>ISBN番号(10桁)</li>
<li>ex)4-86004-040-6</li>
</ul>
</li>
<li>TITLE
<ul>
<li>タイトル</li>
<li>ex)先生と生徒の交友物語</li>
</ul>
</li>
<li>AUTH
<ul>
<li>著者</li>
<li>ex)大森正男著</li>
</ul>
</li>
<li>PUB
<ul>
<li>出版・頒布</li>
<li>ex)土浦筑波書林</li>
</ul>
</li>
<li>PUBDATE
<ul>
<li>出版年</li>
<li>ex)2004.1</li>
</ul>
</li>
<li>ED
<ul>
<li>版</li>
<li>ex)第1次改訂</li>
</ul>
</li>
<li>PHYS
<ul>
<li>形態</li>
<li>ex)248p;19cm</li>
</ul>
</li>
<li>SERIES
<ul>
<li>シリーズ</li>
<li>ex)Kobunshapaperbacks;41</li>
</ul>
</li>
<li>NOTE
<ul>
<li>注記</li>
<li>ex)奥付のタイトル(誤植)教師と生徒の交友物語</li>
</ul>
</li>
<li>TITLEHEADING
<ul>
<li>タイトルの読み</li>
<li>ex)センセイトセイトノコウユウモノガタリ</li>
</ul>
</li>
<li>AUTHORHEADING
<ul>
<li>著者の読み</li>
<li>ex)オオモリ,マサオ(大森,正男)</li>
</ul>
</li>
<li>HOLDINGSRECORD
<ul>
<li>個別資料の識別番号</li>
<li>ex)JP20564340-01</li>
</ul>
</li>
<li>HOLDINGPHYS
<ul>
<li>所在棚名</li>
<li>ex)21世紀に向うアフリカ連合</li>
</ul>
</li>
<li>HOLDINGLOC
<ul>
<li>分類番号</li>
<li>ex)F9-128</li>
</ul>
</li>
</ul>
<p><em>複数値を持つ可能性があるフィールドは,挿入する値を結合して挿入しました.</em></p>
<p><em>正規化も何も行っていないので反省したいです.</em></p>
<p><em>常に一意な値になるのはNBCのみ(TITLEやHOLDINGLOCは一意でない)なのでprimary keyに指定しました.</em></p>
<p><em>元データjbisc.txtのDBにimport可能な形CSVに整形・加工する際用いたプログラムは<a href="data/kakou.rb">data/kakou.rb</a>です.</em></p>
<h1>4. <a name="4">工夫した点</a></h1>
<h2>AND/OR検索に対応</h2>
<ul>
<li>AND/OR演算子でAND/OR検索できるようにしました.</li>
</ul>
<h2>ページングの件数を選択/入力で指定</h2>
<ul>
<li><datalist>を用いてページの表示件数の任意入力/選択を可能にしました.</li>
</ul>
<h2>検索窓でフィールド指定検索</h2>
<ul>
<li>フィールドごとに検索できるようにしました.</li>
<li>最初はフォームからフィールドごとに検索することを考えていなかったので,「TITLE:筑波」のように特定のフィールドを指す演算子をつけることを考えました.</li>
</ul>
<h2>デザイン</h2>
<ul>
<li>全体的に見やすく,スマホで見ても表示が崩れないようにしました.</li>
<li>また視覚障害の方でも見やすい配色/サイズにしました.</li>
</ul>
<h2>サイトの階層構造のサイトマップ作成</h2>
<ul>
<li><a href="https://cgi.u.tsukuba.ac.jp/~s1811528/opac/sitemap.xml">sitemap.xml</a>を作成しました.</li>
<li>クローラの本を読んでいて「書くべき」と書いてあったので書きました.</li>
</ul>
<h2>HTMLとCSSのバリデーション/標準化</h2>
<ul>
<li>HTML文書は基本エラーが出ないので,形式や継承関係,階層構造に問題がないか,HTMLタグ内にCSSに書くべき内容を含んでいないかを確認するため,W3CのValidator(<a href="http://validator.w3.org/">HTML</a>/<a href="https://jigsaw.w3.org/css-validator/">CSS</a>)を用いて標準化を行いました.</li>
</ul>
<h2>各書誌DBの検索</h2>
<ul>
<li>検索した本を実際に「入手」するための機能として、詳細画面(accurate.cgi)主要な書誌DB検索システムに値(タイトルとISBN-13)を渡し、検索できるようにしました。(Amazon,Rakuten,CiNii Books,NDL Search,Tulips Search,google Books)</li>
</ul>
<h1>5. <a name="5">得られた知見</a></h1>
<h2>サーバーサイドシステムの構築</h2>
<p>ㅤ普段,私たちが目にするWebページはフロントエンドであって,HTML/CSS/JSで構成されています.そのサーバーでのプログラムやシステムを見ることはできません.今回の演習で動的なページを作成するにあたって,その内部のプログラムの作成によって,その仕組みをしることができました.また,同時に履修していたPHP+MySQLの授業での知識もより深めることができました.</p>
<h2>Webページのスタイルシートを用いたデザイン</h2>
<p>ㅤこれまで私がWebページを作る,となった時にはMarkDownやBootstrapを用いてあまりCSSを書くことはありませんでした.しかし今回デザインをこだわるにあたってCSSを1から書き起こしました.スタイルシートを用いたWebページデザインの基礎知識を得られたと思います.</p>
<h2>構造化文書の作成</h2>
<p>ㅤHTMLやXMLの構造化文書のマークアップについての知識を得られました.</p>
<h2>SQLiteを用いたDB構築</h2>
<p>ㅤこれまでPythonやRubyではMySQLを基本的に用いてきましたが,SQLiteには初めて触りました.記法,組み込み変数,挿入形式の違いを知ることができました.</p>
<h2>Webサイトのgithubでの差分管理</h2>
<p>ㅤ<a href="https://github.com/eggplants/opac">eggplants/opac</a> として差分管理を行いました.</p>
<h1>6. <a name="6">感想</a></h1>
<p>ㅤ今回の課題を作成するに当たって、後半3回目の授業あたりから、HTMLやCSS,使用していないがJavaScriptやRubyでの
CGI(Perlではちょっとやっていた)作成を初めて行いました。<br>
驚いたのが、RubyでのCGIに関するWeb上の資料の少なさです。ページネーション処理の作成の際に、参考に出来るページがなかなか出てこず、一般的なページネーションの仕組みから考え実装しました。</p>
</body>
</html>