Ejercicio de información de conocimiento I Informe Asignación 201811528 (Grupo del miércoles)
- Este repositorio es ...
- Problemas creados en la tarea de "construcción de OPAC" en el ejercicio de información de conocimiento I.
- Otorgado como el gran premio en clase. (2019)
Introducción
Esta página es un informe sobre el tema de "Building OPAC" en el " Ejercicio de información de conocimiento I", que es la apertura del módulo AB Spring para información de conocimiento y ciencias de la biblioteca.
Contenido
- 1. La URL del OPAC que construyó
- 2. Lista de fuente del programa CGI y su descripción
- 3. Estructura de relación (tabla) y su explicación
- 4. Puntos ideales
- 5. Hallazgos
1. La URL del OPAC que construyó
La página de índice para el sistema OPAC " OPAC simple " que hemos construido es https://cgi.u.tsukuba.ac.jp/~s1811528/opac/index.html .
A continuación se muestra un diagrama que resume la estructura jerárquica debajo del directorio OPAC y las explicaciones de cada archivo .
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の雛型▲ Figura 1, estructura jerárquica del sistema OPAC
2. Lista de fuente del programa CGI y su descripción
Lista de fuente
A continuación se muestra una lista de las páginas y el código fuente para el programa CGI que creé.
Search.cgi
- Enlace de página
- Código fuente
precisión.cgi
- Enlace de página
- Código fuente
explicación
Search.cgi (cada función está escrita en def.rb)
- Makeword (CGI)
- Este es un método de procesamiento de datos recuperados de index.html para facilitar la separación de los términos de búsqueda.
- <field>: <valor> forma
- GSUB (/[ r n]/") elimina los descansos de línea en la palabra variable
- delete_if {| i | ...} Elimina y, y o elementos nulos.
- El valor de retorno se editó la declaración de búsqueda
- Makekeys (palabras)
- Dividiera la instrucción de búsqueda recibida de makeword () en cada palabra clave para tirarla a la consulta SQL e inserte en una matriz
- O, cuando viene, inserte como es
- Cuando el título: o ed: entra, es un hash de {"título" => "val"} o algo similar, inserte.
- Si no hay un campo especificado, inserte como es
- Las devoluciones son matrices que contienen hashs y cadenas
- all_any_search (clave, db)
- Hacer cualquier búsqueda (búsqueda de todos los campos) y recupere datos de la DB
- El valor de retorno es una matriz bidimensional que contiene el NBC (número bibliográfico nacional) de los datos HIT [[NBC1], [NBC2], ..., [NBCN]]
- field_search_s (clave, db)
- Realiza búsquedas individuales para campos especificados
- El valor de retorno es una matriz 2D que contiene NBC (número bibliográfico nacional) de datos HIT.
- Andor (Keys, DB)
- Itera los valores recibidos de MakeKeys () e inserte los resultados de búsqueda en la matriz pasada apropiadamente a all_any_search () y all_any_search () respectivamente.
- Si o se pasa, insértelo en la matriz tal como está
- Los valores de retorno son matrices bidimensionales que contienen NBC (número bibliográfico nacional) de datos HIT
- Strinterpret (claves)
- Interpreta el OR y el valor de retorno de Andor (Keys, DB) para crear el resultado final de la búsqueda
- Si [Datan] es seguido por [Datan+1], entonces se toma la unión ([Datan] | [Datan+1]).
- Cuando el siguiente o o viene después de [Dataan], tome el siguiente [Dataan+1] y el siguiente [Dataan+1], y el conjunto de acumulación ([Datan] y [Datan+1])
- Los valores de retorno son una matriz unidimensional
- retr_hitdata (hit, db)
- Obtenga datos completos de campo bibliográfico de NBC de datos bibliográficos HIT creados con Strinterpret (claves)
- Los retornos son los datos bibliográficos de éxito completo
- create_paging_link (golpes, par)
- Generación de enlaces de página para la funcionalidad de pagenation
- Si el valor de PS (PageSize) recibido de la página de índice o búsqueda. CGI está vacío, configúrelo en 20.
- P (página) es el valor del número de páginas actualmente disponibles
- Asigne el número requerido de páginas (= número de enlaces de página) a HMP, teniendo en cuenta el número de búsquedas y PS.
- Si p_size = 0, hmp = 0
- Insertar enlaces de página en pagelinks
- El valor de retorno es el HTML del enlace de página en la tabla
- create_table_html (datos, par)
- Resultados de búsqueda de moho en la tabla HTML
- Dé a cada título un enlace para enviar NBC a precisos.cgi
- Teniendo en cuenta P y PS, la instrucción requerida se extrae de los datos (= retr_hitdata (hit, db))
- El valor de retorno es HTML de la tabla
- Rep_hide (PER)
- Tomar el control/Guardar el valor Get para la recarga cambiando PS
- Incrustarlo en <input type = "Hidden">
- El valor de retorno es el HTML de <input type = "Hidden">, que incrusta obtener valores que no sean PS.
- main () (#main () y la parte escrita en Search.cgi)
- Parte de ejecución de cada función
- DB y CGI especifican OPAC.DB como el objeto de la base de datos del módulo SQLite, y tienen objetos CGI.
- CGI_VALUS debe tener todos los valores GET usando cgi.instance_variable_get (:@params)
- Comenzar
rescate El final evita los errores cuando no se llena nada en el formulario de búsqueda - hit_num asigna el número de golpes
- Tener una palabra de búsqueda en búsqueda_display
- Si HIT_NUM es 0, la tabla de pagenación y resultados no se mostrará en el encabezado.
- Cambiar la palabra de búsqueda entre el elemento de título y <h1 />
- Envíe Rep_hide cuando haga clic en "Recargar" (o ingrese usando el formulario de entrada PS).
Precisate.cgi (cada función está escrita en def.rb)
- ISBNTO13 (ISBN10)
- Convierta ISBN de 10 a 13 dígitos a libra opendb
- El valor de retorno es cadena (13 dígitos)
- field_search_a (clave, db)
- Reciba NBC de Search.cgi para recuperar todos los datos bibliográficos
- Los valores de retorno son matrices que contienen todos los datos bibliográficos de un libro
- Bibimage (ISBN13, PER)
- Adquiriendo una imagen de libro
- Acceso al punto final OpenDB y verifique si hay datos bibliográficos (= imagen)
- Si JSON es nulo, pase 404 Imagen Display HTML a Bibhash
- Si JSON no es nulo, pase la pantalla de copia HTML a Bibhash
- El valor de retorno es html de <img ... />
- main () (la parte escrita en #main () y el precisado.cgi)
- DB y CGI especifican OPAC.DB como el objeto de la base de datos del módulo SQLite, y tienen objetos CGI.
- Datos bibliográficos para todos los campos obtenidos del valor get (NBC) pasado de Search.cgi con Field_Search_A (Key, DB) [0] a fila
- fila [1] .scan (/[0-9]/). Unirse [0,10], solo el número en el campo ISBN se toma desde el comienzo de 10 dígitos, y se pasa a ISBNTO13 junto con la fila, y se pasa a ISBNTO13 junto con la fila, y se llama pantalla de imagen HTML.
- Cada elemento se muestra como una tabla.
3. Estructura de relación (tabla) y su explicación
estructura
A continuación se muestra el SQL (data/bib_sche.sql) al crear la tabla bibdata en 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 ); ▲ Figura 2, SQL para crear bibdata de tabla
explicación
Cada valor se explica.
- NBC
- Número bibliográfico nacional
- Ej) JP20564340
- ISBN
- Número ISBN (10 dígitos)
- Ej) 4-86004-040-6
- TÍTULO
- título
- ex) una historia de amistad entre un maestro y un alumno
- Auténtico
- autor
- ex) escrito por Omori Masao
- PUB
- Publicación y distribución
- ex) Tsuchiura tsukuba Shorin
- Pubdate
- Año de publicación
- ex) 2004.1
- Edición
- Phys
- SERIE
- serie
- Ej) Kobunshapaperbacks; 41
- NOTA
- Notas
- ex) Título de Colophon (error tipográfico) Una historia de amistad entre un maestro y un alumno
- Titular
- Leyendo el título
- ex) sensei vio maow
- Autor
- Lectura del autor
- Ex) Omori, Masao (Omori, Masao)
- Registro de holding
- Número de identificación de materiales individuales
- Ej) JP20564340-01
- Holdingphys
- Nombre de ubicación
- ex) Unión africana que se dirige hacia el siglo XXI
- Holdingloc
- Número de clasificación
- ex) F9-128
Los campos que podrían tener múltiples valores se insertaron combinando los valores a insertar.
No he hecho ninguna normalización, por lo que me gustaría reflexionar sobre ella.
Dado que NBC siempre es único (el título y HoldingLoc no son únicos), lo especifiqué como la clave principal.
4. Puntos ideales
Apoya y/o búsqueda
- Y/o búsquedas se pueden hacer utilizando el operador y/o el operador.
Seleccione/ingrese el número de elementos de paginación
- Ahora puede ingresar/seleccionar el número de páginas que se muestran usando <Stalist>. ## Búsqueda especificada por el campo en el cuadro de búsqueda
- Ahora hemos hecho posible buscar cada campo.
- Al principio, no pensé en buscar campos del formulario, así que pensé en agregar un operador para señalar un campo específico, como "Título: Tsukuba".
diseño
- En general, es fácil de leer, y la pantalla no se rompe cuando se ve en un teléfono inteligente.
- También hicimos un esquema/tamaño de color que es fácil de ver incluso para personas con discapacidad visual.
Creación de un mapa de sitio para una estructura jerárquica de un sitio
- Creé siteMap.xml.
- Estaba leyendo un libro de rastreadores y encontré que decía "Debería escribir sobre él", así que lo escribí.
Validación/estandarización de HTML y CSS
- Dado que los documentos HTML no reciben errores básicos, la estandarización se realizó utilizando el validador de W3C (HTML/CSS) para verificar si hay algún problema con el formato, las relaciones de herencia, la estructura jerárquica y si las etiquetas HTML contienen algún contenido que deba escribir en CSS.
5. Hallazgos
Construyendo un sistema del lado del servidor
ㅤ Por lo general, las páginas web que vemos son frontales y consisten en HTML/CSS/JS. No podemos ver los programas o sistemas en ese servidor. En este ejercicio, al crear páginas dinámicas, pudimos entender cómo funcionan creando los programas internos. También profundizamos nuestro conocimiento en las clases PHP + MySQL que estábamos tomando al mismo tiempo.
Diseñando el uso de hojas de estilo de página web
ㅤ Hasta ahora, cuando comencé a crear páginas web, no escribí mucho CSS usando Markdown o Bootstrap. Sin embargo, para centrarme en el diseño, escribí CSS desde el principio. Creo que obtuve conocimientos básicos del diseño de la página web usando hojas de estilo.
Creación de un documento estructurado
ㅤ Obtuve conocimiento sobre el marcado de documentos estructurados HTML y XML.
Construcción de DB usando SQLite
ㅤ He estado usando MySQL básicamente en Python y Ruby, pero esta es la primera vez que probé SQLite. Pude aprender las diferencias de notación, variables incorporadas y formatos de inserción.
Gestión de diferencia en el sitio web Github
Las diferencias se gestionaron como berenjenas/OPAC.