Latihan Informasi Pengetahuan Saya melaporkan penugasan 201811528 (Grup Rabu)
- Repositori ini adalah ...
- Masalah yang dibuat dalam tugas "Membangun OPAC" dalam Latihan Informasi Pengetahuan I.
- Dianugerahi sebagai hadiah utama di kelas. (2019)
Perkenalan
Halaman ini adalah laporan tentang masalah "Membangun OPAC" dalam " Latihan Informasi Pengetahuan I, " yang merupakan pembukaan modul Spring AB untuk informasi pengetahuan dan ilmu perpustakaan.
Isi
- 1. URL OPAC yang Anda bangun
- 2. Daftar Sumber Program CGI dan deskripsinya
- 3. Struktur Hubungan (Tabel) dan Penjelasannya
- 4. Poin Ideal
- 5. Temuan
1. URL OPAC yang Anda bangun
Halaman indeks untuk sistem OPAC " OPAC sederhana " yang telah kami bangun adalah https://cgi.u.tsukuba.ac.jp/~s1811528/opac/index.html .
Di bawah ini adalah diagram yang merangkum struktur hierarkis di bawah direktori OPAC dan penjelasan dari setiap file .
W:wwwscgi-binopac > tree /F
フォルダー パスの一覧: ボリューム vol_home01
ボリューム シリアル番号は 000000FB 8082:1532 です
W:.
│ .htaccess...ユーザのサーバ設定ファイル
│ report.html...レポートページ
│ index.html...トップページ
│ sitemap.xml...サイトの構造文書
│ yet_list.html...未実装/実装したい機能のメモ
│
├─.git
│
│(省略)
│
├─data
│ bib_sche.sql...opac.dbスキーマ
│ kakou.rb...jbisc.txtをcsvに成形するプログラム
│ isbn.txt...isbn(10桁)を抽出したもの
│ jbisc.txt...書誌情報の元データ
│ kd.csv...DBにimportできる形式にしたもの
│ opac.db...書誌データベース
│
├─css
│ index.css...index.htmlのCSS
│ search.css...search.cgi
│ accurate.css...accurate.cgi
│ yet_list.css...yet_list.html
│ report.css...report.html
│
├─img
│ icon.png...ページicon
│ notfound.png...書誌画像がnullの時表示される画像
│ requirement.png...要件のスクリーンショット
│
├─cgi
│ accurate.cgi...書誌の詳細表示ページ
│ search.cgi...検索結果一覧ページ
│ def.rb...上記2つのcgi内で用いる関数を集めたもの
│
└─md
yet_list.md...yet_list.htmlの雛型
report.md...report.htmlの雛型▲ Gambar 1, Struktur hierarkis dari sistem OPAC
2. Daftar Sumber Program CGI dan deskripsinya
Daftar Sumber
Di bawah ini adalah daftar halaman dan kode sumber untuk program CGI yang saya buat.
search.cgi
- Tautan halaman
- Kode Sumber
akurasi.cgi
- Tautan halaman
- Kode Sumber
penjelasan
search.cgi (setiap fungsi ditulis dalam def.rb)
- Makword (CGI)
- Ini adalah metode pemrosesan data yang diambil dari index.html untuk membuatnya lebih mudah untuk memisahkan istilah pencarian.
- <field>: <value> bentuk
- gsub (/[ r n]/") Menghapus garis istirahat dalam kata variabel
- delete_if {| i | ...} menghapus dan, dan atau item nol.
- Nilai pengembalian adalah pernyataan pencarian yang diedit
- Makekeys (kata -kata)
- Pisahkan pernyataan pencarian yang diterima dari makeWord () ke dalam setiap kata kunci untuk melemparkannya ke dalam kueri SQL dan memasukkannya ke dalam array
- Atau, kapan atau datang, masukkan apa adanya
- Ketika judul: atau ed: masuk, itu adalah hash {"title" => "val"} atau sesuatu yang serupa, masukkan.
- Jika tidak ada bidang yang ditentukan, masukkan apa adanya
- Pengembalian adalah array yang mengandung hash dan string
- all_any_search (kunci, db)
- Lakukan pencarian apa pun (cari dari semua bidang) dan ambil data dari db
- Nilai pengembalian adalah array dua dimensi yang berisi NBC (nomor bibliografi nasional) dari data HIT [[NBC1], [NBC2], ..., [NBCN]]
- field_search_s (kunci, db)
- Melakukan pencarian individu untuk bidang tertentu
- Nilai pengembalian adalah array 2D yang berisi NBC (nomor bibliografi nasional) dari data HIT.
- Andor (Keys, DB)
- Iterasi nilai -nilai yang diterima dari makey () dan masukkan hasil pencarian ke dalam array yang diteruskan dengan tepat ke all_any_search () dan all_any_search () masing -masing.
- Jika atau, atau dilewatkan, masukkan ke dalam array apa adanya
- Nilai pengembalian adalah array dua dimensi yang mengandung NBC (National Bibliographic Number) dari Hit Data
- strinterpret (kunci)
- Menafsirkan atau dan dan dari nilai pengembalian Andor (tombol, db) untuk membuat hasil pencarian akhir
- Jika [datan] diikuti oleh [datan+1], maka Union ([datan] | [datan+1]) diambil.
- Ketika berikutnya atau atau atau datang setelah [datan], ambil [datan+1] berikutnya dan [datan+1] berikutnya, dan set akumulasi ([datan] & [datan+1])))
- Nilai pengembalian adalah array satu dimensi
- retr_hitdata (hit, db)
- Dapatkan Data Lapangan Bibliografi Lengkap dari NBC Data Bibliografi Hit Dibuat dengan Strinterpret (Keys)
- Pengembalian adalah seluruh data bibliografi hit
- create_paging_link (hits, par)
- Menghasilkan Tautan Halaman untuk Fungsionalitas Pagenasi
- Jika nilai PS (halaman) yang diterima dari halaman indeks atau pencarian. CGI kosong, setel ke 20.
- p (halaman) adalah nilai dari jumlah halaman yang tersedia saat ini
- Tetapkan jumlah halaman yang diperlukan (= jumlah tautan halaman) ke HMP, dengan mempertimbangkan jumlah pencarian dan PS.
- Jika p_size = 0, hmp = 0
- Masukkan tautan halaman di pagelinks
- Nilai pengembalian adalah html tautan halaman di tabel
- create_table_html (data, par)
- Hasil pencarian cetakan ke dalam tabel html
- Berikan setiap judul tautan untuk mengirim NBC ke akurat.cgi
- Mempertimbangkan P dan PS, pernyataan yang diperlukan diekstraksi dari data (= retr_hitdata (hit, db))
- Nilai pengembalian adalah HTML tabel
- rep_hide (per)
- Mengambil alih/simpan nilai dapatkan untuk memuat ulang dengan mengubah PS
- Sematkannya di <input type = "tersembunyi">
- Nilai pengembalian adalah HTML dari <input type = "tersembunyi">, yang embed mendapatkan nilai selain PS.
- main () (#main () dan bagian yang ditulis dalam search.cgi)
- Bagian eksekusi dari setiap fungsi
- DB dan CGI Menentukan OPAC.DB sebagai objek basis data dari modul SQLite, dan memiliki objek CGI.
- CGI_Values harus memiliki semua nilai mendapatkan menggunakan cgi.instance_variable_get (:@params)
- Mulai
menyelamatkan Akhir menghindari kesalahan saat tidak ada yang terisi dalam formulir pencarian - Hit_num memberikan jumlah hit
- Memiliki kata pencarian di search_display
- Jika Hit_num adalah 0, tabel pagenasi dan hasil tidak akan ditampilkan di heading.
- Ubah kata pencarian antara elemen judul dan <h1 />
- Kirim rep_hide saat Anda mengklik "Reload" (atau masukkan menggunakan formulir input PS).
Akurat.cgi (setiap fungsi ditulis dalam def.rb)
- ISBNTO13 (ISBN10)
- Konversi ISBN dari 10 menjadi 13 digit menjadi Pound OpendB
- Nilai pengembalian adalah string (13 digit)
- field_search_a (kunci, db)
- Menerima NBC dari Search.cgi untuk mengambil seluruh data bibliografi
- Nilai pengembalian adalah array yang berisi semua data bibliografi dari satu buku
- Bibimage (ISBN13, per)
- Memperoleh gambar buku
- Akses OpenDB Endpoint dan periksa apakah ada data bibliografi (= gambar)
- Jika json nil, lulus 404 gambar tampilan html ke bibhash
- Jika JSON bukan nil, berikan tampilan salinan html ke Bibhash
- Nilai pengembalian adalah html dari <img ... />
- main () (bagian yang ditulis dalam #main () dan akurat.cgi)
- DB dan CGI Menentukan OPAC.DB sebagai objek basis data dari modul SQLite, dan memiliki objek CGI.
- Data bibliografi untuk semua bidang yang diperoleh dari nilai GET (NBC) yang diteruskan dari Search.cgi dengan field_search_a (kunci, db) [0] ke baris
- baris [1] .scan (/[0-9]/). Bergabung [0,10], hanya angka di bidang ISBN yang diambil dari awal 10 digit, dan diteruskan ke ISBNTO13 bersama dengan baris, dan diteruskan ke ISBNTO13 bersama dengan baris, dan itu disebut tampilan gambar html.
- Setiap item ditampilkan sebagai tabel.
3. Struktur Hubungan (Tabel) dan Penjelasannya
struktur
Di bawah ini adalah SQL (data/bib_sche.sql) saat membuat tabel Bibdata di OPAC.DB.
CREATE TABLE bibdata (
NBC TEXT primary key ,
ISBN TEXT ,
TITLE TEXT ,
AUTH TEXT ,
PUB TEXT ,
PUBDATE TEXT ,
ED TEXT ,
PHYS TEXT ,
SERIES TEXT ,
NOTE TEXT ,
TITLEHEADING TEXT ,
AUTHORHEADING TEXT ,
HOLDINGSRECORD TEXT ,
HOLDINGPHYS TEXT ,
HOLDINGLOC TEXT ); ▲ Gambar 2, SQL Untuk membuat tabel Bibdata
penjelasan
Setiap nilai dijelaskan.
- NBC
- Nomor Bibliografi Nasional
- Ex) JP20564340
- ISBN
- Nomor ISBN (10 digit)
- Ex) 4-86004-040-6
- JUDUL
- judul
- Ex) Kisah persahabatan antara seorang guru dan seorang siswa
- Auth
- pengarang
- Ex) Ditulis oleh Omori Masao
- Pub
- Penerbitan dan Distribusi
- Ex) Tsuchiura Tsukuba Shorin
- Pubdate
- Ed
- Phys
- SERI
- seri
- Ex) Kobunshapaperbacks; 41
- CATATAN
- Catatan
- Ex) Judul Colophon (Kesalahan Tipografi) Kisah Persahabatan antara Guru dan Siswa
- Judul kepala
- Membaca judulnya
- Ex) Sensei melihat Meow
- Authorheading
- Bacaan Penulis
- Ex) Omori, Masao (Omori, Masao)
- Holdingsrecord
- Jumlah identifikasi bahan individu
- Ex) JP20564340-01
- Holdingphys
- Nama Lokasi
- Ex) Uni Afrika menuju abad ke -21
- Holdingloc
- Nomor Klasifikasi
- Ex) F9-128
Bidang yang dapat memiliki beberapa nilai dimasukkan dengan menggabungkan nilai yang akan dimasukkan.
Saya tidak melakukan normalisasi, jadi saya ingin merenungkannya.
Karena NBC selalu unik (Judul dan HoldingLoc tidak unik), saya menentukannya sebagai kunci utama.
4. Poin Ideal
Mendukung dan/atau pencarian
- Dan/atau pencarian dapat dilakukan menggunakan dan/atau operator.
Pilih/masukkan jumlah item paging
- Anda sekarang dapat memasukkan/memilih jumlah halaman yang ditampilkan menggunakan <Datalist>. ## Pencarian yang Ditentukan Bidang di Kotak Pencarian
- Kami sekarang memungkinkan untuk mencari setiap bidang.
- Pada awalnya, saya tidak berpikir tentang mencari bidang dari formulir, jadi saya berpikir untuk menambahkan operator untuk menunjuk ke bidang tertentu, seperti "Judul: Tsukuba."
desain
- Secara keseluruhan, mudah dibaca, dan layar tidak rusak bahkan ketika dilihat di smartphone.
- Kami juga membuat skema/ukuran warna yang mudah dilihat bahkan untuk orang yang tunanetra.
Membuat peta situs untuk struktur hierarkis dari suatu situs
- Saya membuat sitemap.xml.
- Saya sedang membaca buku crawler dan menemukannya mengatakan "Saya harus menulis tentang itu," jadi saya menulisnya.
Validasi/Standardisasi HTML dan CSS
- Karena dokumen HTML tidak mendapatkan kesalahan dasar, standardisasi dilakukan dengan menggunakan validator W3C (HTML/CSS) untuk memeriksa apakah ada masalah dengan format, hubungan warisan, struktur hierarkis, dan apakah tag HTML berisi konten yang harus ditulis dalam CSS.
5. Temuan
Membangun sistem sisi server
ㅤ Biasanya, halaman web yang kita lihat adalah front-end dan terdiri dari HTML/CSS/JS. Kami tidak dapat melihat program atau sistem di server itu. Dalam latihan ini, saat membuat halaman dinamis, kami dapat memahami cara kerja mereka dengan membuat program internal. Kami juga memperdalam pengetahuan kami di kelas PHP + MySQL yang kami ambil pada saat yang sama.
Merancang menggunakan lembar gaya halaman web
ㅤ Sampai sekarang, ketika saya mulai membuat halaman web, saya tidak menulis banyak CSS menggunakan Markdown atau Bootstrap. Namun, untuk fokus pada desain, saya menulis CSS sejak awal. Saya pikir saya mendapatkan pengetahuan dasar tentang desain halaman web menggunakan style sheet.
Membuat dokumen terstruktur
ㅤ Saya memperoleh pengetahuan tentang markup dokumen terstruktur HTML dan XML.
Konstruksi DB Menggunakan Sqlite
ㅤ Saya pada dasarnya menggunakan MySQL di Python dan Ruby, tapi ini adalah pertama kalinya saya mencoba SQLite. Saya dapat mempelajari perbedaan dalam notasi, variabel bawaan, dan format penyisipan.
Manajemen perbedaan di situs web github
Perbedaan dikelola sebagai terong/OPAC.