Информация о знаниях.
- Этот репозиторий ...
- Проблемы, созданные в задаче «Построение opac» в информационной информации. Упражнение I.
- Награжден главным призом в классе. (2019)
Введение
Эта страница представляет собой отчет по вопросу «Построение OPAC» в « Упражнении по информации о знаниях I», которое является открытием модуля Spring AB для информации о знаниях и библиотечной науки.
Содержимое
- 1. URL -адрес построенного вами OPAC
- 2. Список источников программ CGI и их описание
- 3. Структура отношения (таблица) и ее объяснение
- 4. Идеальные моменты
- 5. Выводы
1. URL -адрес построенного вами OPAC
Страница индекса для системы OPAC " Simple Opac ", которую мы создали, - это https://cgi.u.tsukuba.ac.jp/~s1811528/opac/index.html .
Ниже приведена диаграмма, которая суммирует иерархическую структуру ниже каталога OPAC и объяснения каждого файла .
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の雛型▲ Рисунок 1, Иерархическая структура системы OPAC
2. Список источников программ CGI и их описание
Список источников
Ниже приведен список страниц и исходного кода для программы CGI, которую я создал.
search.cgi
- Ссылка страницы
- Исходный код
Точность.cgi
- Ссылка страницы
- Исходный код
объяснение
search.cgi (каждая функция записана в def.rb)
- Makeword (CGI)
- Это метод обработки данных, полученных из index.html, чтобы упростить разделение поисковых терминов.
- <field>: <значение> форма
- GSUB (/[ r n]/") Удаляет разрывы строки в словом переменной
- delete_if {| i | ...} удаляет и или или нулевые элементы.
- Возвращаемое значение отредактировано
- Makekeys (слова)
- Разделите заявление о поиске, полученное от MakeWord () на каждое ключевое слово, чтобы добавить его в запрос SQL и вставить в массив
- Или, когда или приходит, вставьте его как есть
- Когда заголовок: или ed: входит, это хэш {"title" => "val"} или что -то подобное, вставьте его.
- Если не указано поле, вставьте его как есть
- Возврат - это массивы, содержащие хеш и струны
- all_any_search (Key, DB)
- Сделайте любой поиск (поиск по всем полям) и получить данные из БД
- Возвратное значение представляет собой двухмерный массив, содержащий NBC (национальное библиографическое число) данных HIT [[NBC1], [NBC2], ..., [NBCN]]]
- field_search_s (Key, DB)
- Выполняет отдельные поиски для указанных полей
- Возвратное значение представляет собой 2D -массив, содержащий NBC (национальное библиографическое число) HIT.
- Андор (Ключи, Д.Б.)
- Обратите внимание на значения, полученные от makekeys () и вставьте результаты поиска в массив, соответствующим образом переданы All_any_search () и All_any_search () соответственно.
- Если или или пройден, вставьте его в массив, как есть
- Возвратные значения-это двумерные массивы, содержащие NBC (национальное библиографическое число) HIT
- Strinterpret (ключи)
- Интерпретирует OR и и и о возвратном значении Andor (Keys, DB) для создания окончательного результата поиска
- Если [datan] сопровождается [Datan+1], тогда принимается Union ([datan] | [datan+1]).
- Когда следующее или или или появится после [datan], возьмите следующее [Datan+1] и следующее [Datan+1] и набор накопления ([Datan] и [Datan+1])
- Возвратные значения-одномерное массив
- retr_hitdata (хит, дБ)
- Получите полные библиографические данные полевых данных от NBC из библиографических данных, созданных с помощью Strinterpret (Keys)
- Возврат - это целые библиографические данные
- create_paging_link (Hits, Par)
- Генерирование ссылок страниц для функциональности Pagenation
- Если значение PS (PageSize), полученное со страницы индекса или search.cgi, является пустым, установите его на 20.
- P (страница) является значением количества доступных в настоящее время страниц
- Назначьте требуемое количество страниц (= количество ссылок на страницы) HMP с учетом количества поисков и PS.
- Если p_size = 0, hmp = 0
- Вставьте ссылки на страницы в Pagelinks
- Возвращение значения - это HTML ссылки страницы в таблице
- create_table_html (data, par)
- Результаты поиска плесени в таблице HTML
- Дайте каждому заголовку ссылку для отправки NBC на точный.cgi
- Учитывая P и PS, необходимый оператор извлекается из данных (= retr_hitdata (Hit, DB))
- Возвратное значение - HTML таблицы
- rep_hide (per)
- Возьмите/сохранить значение GET для перезагрузки, изменив PS
- Введите его в <input type = "hidden">
- Возвращаемое значение - это HTML <input type = "hidden">, который внедряет значения, отличные от PS.
- main () (#main () и часть, написанная на search.cgi)
- Выполнение части каждой функции
- DB и CGI указывают OPAC.DB как объект базы данных модуля SQLITE и имеют объекты CGI.
- cgi_values должен иметь все значения с использованием cgi.instance_variable_get (:@params)
- Начинать
спасать Конец избегает ошибок, когда в форме поиска ничего не заполнено - HIT_NUM назначает количество попаданий
- Есть поисковое слово в search_display
- Если hit_num равен 0, таблица пагенации и результатов не будет отображаться в заголовке.
- Измените слово поиска между элементом заголовка и <H1 />
- Отправьте rep_hide, когда вы нажимаете «Перезагрузить» (или введите, используя входную форму PS).
Точная. CGI (каждая функция записана в DEF.RB)
- ISBNTO13 (ISBN10)
- Преобразовать ISBN с 10 до 13 цифр в Pound OpenDB
- Возвратное значение - строка (13 цифр)
- field_search_a (ключ, дБ)
- Получить NBC от search.cgi, чтобы получить все библиографические данные
- Возвратные значения - это массивы, содержащие все библиографические данные одной книги
- Bibimage (ISBN13, per)
- Приобретение изображения книги
- Доступ к конечной точке OpenDB и проверьте, есть ли библиографические данные (= изображение)
- Если json - ноль, пропустите 404 отображение изображения HTML в Bibhash
- Если JSON не ноль, передайте дисплей копирования HTML в Bibhash
- Возвратное значение - HTML <img ... />
- main () (часть, записанная в #main () и точный.cgi)
- DB и CGI указывают OPAC.DB как объект базы данных модуля SQLITE и имеют объекты CGI.
- Библиографические данные для всех полей, полученных из значения GET (NBC), передаваемых из search.cgi с Field_search_a (Key, DB) [0] в строку
- row [1] .scan (/[0-9]/). Присоединение [0,10], только число в поле ISBN взято с начала 10 цифр и передается в ISBNTO13 вместе с ROW и передается в ISBNTO13 вместе с ROW и называется изображением HTML.
- Каждый элемент отображается как таблица.
3. Структура отношения (таблица) и ее объяснение
структура
Ниже приведен SQL (data/bib_sche.sql) при создании таблицы Bibdata в 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 ); ▲ Рисунок 2, SQL для создания таблицы Bibdata
объяснение
Каждое значение объясняется.
- NBC
- Национальное библиографическое число
- Пример) JP20564340
- ISBN
- Номер ISBN (10 цифр)
- Пример) 4-86004-040-6
- ЗАГОЛОВОК
- заголовок
- Пример) история дружбы между учителем и учеником
- Аут
- автор
- Пример) написано Омори Масао
- ПАБ
- Публикация и распространение
- Пример) Цучиура Цукуба Шорин
- Pubdate
- Год публикации
- Пример) 2004.1
- Редакция
- Версия
- Пример) 1 -й пересмотр
- Физический
- форма
- Пример) 248p; 19 см
- РЯД
- ряд
- Пример) Kobunshapaperbacks; 41
- ПРИМЕЧАНИЕ
- Примечания
- Ex) Название колофона (типографская ошибка) история дружбы между учителем и учеником
- Заголовок
- Чтение названия
- Пример) Сэнсэй увидел мяу
- Автора
- Чтение автора
- Пример) Омори, Масао (Омори, Масао)
- HoldingsRecord
- Идентификационное количество отдельных материалов
- Пример) JP20564340-01
- Держатель
- Название местоположения
- Пример) Африканский союз, направляющийся к 21 -м веку
- Держащий
- Классификационный номер
- Пример) F9-128
Поля, которые могли иметь несколько значений, были вставлены путем объединения значений, которые должны быть вставлены.
Я не сделал никакой нормализации, поэтому я хотел бы подумать об этом.
Поскольку NBC всегда уникален (заголовок и Holdloc не являются уникальными), я указал его как первичный ключ.
4. Идеальные моменты
Поддерживает и/или поиск
- И/или поиск может быть выполнен с использованием оператора и/или оператора.
Выберите/введите количество элементов пейджинга
- Теперь вы можете ввести/выбрать количество страниц, отображаемых с использованием <Datalist>. ## Опомянутый полем поиск в поле поиска
- Теперь мы позволили искать каждое поле.
- Сначала я не думал о поиске полей из формы, поэтому я подумал о том, чтобы добавить оператора, чтобы указать на определенное поле, например, «Название: Цукуба».
дизайн
- В целом, его легко читать, и дисплей не сломается, даже если просмотреть на смартфоне.
- Мы также сделали цветовую схему/размер, которую легко увидеть даже для людей с нарушениями зрения.
Создание карты сайта для иерархической структуры сайта
- Я создал sitemap.xml.
- Я читал книгу хлистого и нашел ее, чтобы сказать: «Я должен написать об этом», поэтому я написал ее.
Проверка/стандартизация HTML и CSS
- Поскольку HTML -документы не получают основных ошибок, стандартизация была выполнена с использованием валидатора W3C (HTML/CSS), чтобы проверить, есть ли какие -либо проблемы с форматом, отношениями наследования, иерархической структурой и содержит ли теги HTML какое -либо содержание, которое должно быть написано в CSS.
5. Выводы
Создание системы на стороне сервера
ㅤ Обычно веб-страницы, которые мы видим, представляют собой фронтальные и состоящие из HTML/CSS/JS. Мы не можем просматривать программы или системы на этом сервере. В этом упражнении при создании динамических страниц мы смогли понять, как они работают, создавая внутренние программы. Мы также углубили наши знания в классах PHP + MySQL, которые мы принимали одновременно.
Проектирование с использованием листов в стиле веб -страниц
ㅤ До сих пор, когда я начал создавать веб -страницы, я не писал много CSS, используя Markdown или Bootstrap. Однако, чтобы сосредоточиться на дизайне, я написал CSS с самого начала. Я думаю, что я получил базовые знания дизайна веб -страницы с использованием листов стилей.
Создание структурированного документа
ㅤ Я получил знания о разметке HTML и XML -структурированных документов.
Строительство ДБ с использованием sqlite
ㅤ Я использовал MySQL в основном в Python и Ruby, но это первый раз, когда я попробовал SQLite. Я смог узнать различия в обозначениях, встроенных переменных и форматах вставки.
Управление различием на веб -сайте GitHub
Различия управлялись как баклажаны/OPAC.