ETD 指南/技术问题/Harvest 在德国和法国的使用
HARVEST 系统通常用于在 ETD 档案中进行全文搜索。在德国,大多数大学图书馆都在使用这种特定的软件。
使用 Harvest 的前提条件
在安装之前,应检查以下技术前提条件是否已满足。
硬件:
快速处理器(例如 Sparc5...)
快速 I/O
足够的 RAM(> 64 MB) - 以及 1-2 GB 的可用磁盘空间(源文件 25 MB)
支持的操作系统
DEC OSF/1 ab 2.0
SunOS ab 4.1.x
SunSolaris ab 2.3
HPUX
AIX ab 3.x
Linux 所有内核版本,从 1999 年起在所有 Unix 平台上
WindowsNT
使用 Harvest 需要以下附加软件
Perl v4.0 及更高版本 (v5.0)
gzip
tar
HTTP 服务器(具有远程机器)
GNU gcc v2.5.8 及更高版本
flex v2.4.7
bison v1.22
Harvest 组件
Harvest 系统由两个主要组件组成
Harvest 收集器
Harvest 代理。
这允许建立一个分布式的检索和搜索模型。
安装步骤 (ftp://ftp.tardis.ed.ac.uk/pub/harvest/develop/snapshots/ )
收集器
这部分程序负责收集论文的全文和元数据。收集器定期访问多个站点,有时每天或每周,并建立一个增量索引区域数据库。收集的索引数据以一种称为 SOIF 格式(摘要对象交换格式)的特殊格式保存。收集器可以扩展,以便它可以解释不同的格式。
代理
这部分软件负责使用搜索接口提供索引信息。代理充当查询管理器并进行数据的实际索引。使用基于 Web 的接口,它可以同时访问多个收集器和代理,并执行多个搜索请求。
在德国,已经建立了一个基于 Harvest 软件的德国范围内的检索接口,称为 TheO(Theses Online Broker),可以通过以下网址访问:
http://www.iuk-initiative.org/iwi/TheO
在 NDLTD 中,已经建立了一个特殊的代理,用于将使用 Harvest 的德国站点添加到国际搜索中。
Harvest 能够在以下文档格式中进行搜索
C、C 头文件 | 提取过程名称、包含的文件名和注释 |
Dvi | 在提取的 ASCII 文本上调用文本摘要器 |
FAQ、全文、README | 提取文件中的所有单词 |
Framemaker | 向上转换到 SGML 并通过 SGML 摘要器 |
HTML | 向上转换到 SGML 并通过 SGML 摘要器 |
LaTex | 解析选定的 LaTex 字段(作者、标题等) |
Makefile | 提取注释和目标名称 |
手册页 | 提取概要、作者、标题等,基于 `-man'` |
新闻 | 提取某些标题字段 |
补丁 | 提取修补的文件名 |
Perl | 提取过程名称和注释 |
PostScript | 以特定于字处理器的格式提取文本,并通过文本摘要器。 |
RTF | 向上转换到 SGML 并通过 SGML 摘要器 |
SGML | 提取提取表中命名的字段 |
源代码分发 | 提取 README 文件的全文以及 Makefile 和源代码文件的注释,并总结任何手册页 |
Tex | 在提取的 ASCII 文本上调用文本摘要器 |
文本 | 提取前 100 行加上每个剩余段落的第一个句子 |
Troff | 提取作者、标题等,基于 `-man''`、`-ms''`、`-me''` 宏包,或提取章节标题和主题句 |
无法识别 | 提取文件名、所有者和创建时间 |
PDF 文件的配置
在 Harvest 收集器可以收集 PDF 文档并将其转换为 SOIF 格式之前,它必须进行配置。
仅使用标准配置会忽略格式。为了使收集器识别一种格式,必须构建一个用于 PDF 的摘要器
删除文件 /lib/gatherer/byname.cf 中的以下行:
Pdf ^.*\.(pdf|PDF)$
配置 PDF 摘要器。使用 Acrobat 将 PDF 文档转换为 PS 文档,这些文档由摘要器使用。一个更好的选择是 Derek B. Noonburg 提供的 xpdf 包 (http://www.foolabs.com/xpdf )。它包含一个 PDF 到文本转换器 (pdftotext),可以集成到 summerizer Pdf.sum 中
/usr/local/bin/pdftotext $1
/tmp/$$.txt Text.sum
/tmp/$$.txt rm /tmp/$$.txt
为 HTML 元数据配置收集器
Harvest 收集器默认配置为将每个 HTML 元标签映射到一个 SOIF 属性,例如 <META NAME="DC.Title" CONTENT="Test"> 映射到一个与元标签的 NAME 属性相等的 SOIF 属性。配置可以在以下位置找到:
<harvest home>/lib/gatherer/sgmls-lib/HTML/HTML.sum.tbl
摘要器表包含这样的条目
<META:CONTENT> $NAME 如果只在 HTML 元标签中进行检索,这意味着在某些 SOIF 属性中,这些属性必须放在搜索请求之前,并放在提供给用户的检索表单中,例如:
DC.Title: Test
搜索 HTML 中编码的元数据
由于在德国,ETD 存在全国范围内的统一元数据集,因此可以在德国范围内的 Harvest 网络中搜索这些元数据。
以下示例显示了这些 Dublin Core 元数据(仅显示一小部分)如何在 ETD 的 HTML 首页中编码:
<META NAME="DC.Type" CONTENT="Text.PhDThesis"> <META NAME="DC.Title" LANG="ger" CONTENT="Titelseite: Ergebnisse der CT- Angiographie bei der Diagnostik von Nierenarterienstenosen"> <META NAME="DC.Creator.PersonalName" CONTENT="Ludewig, Stefan"> <META NAME="DC.Contributor.Referee" CONTENT="Prof. Dr. med. K.- J. Wolf"> <META NAME="DC.Contributor.Referee" CONTENT="Prof. Dr. med. B. Hamm"> <META NAME="DC.Contributor.Referee" CONTENT="PD Dr. med. S. Mutze">
对于此统一的元数据集,已经制定了一项建议,说明如何生成和操作大学图书馆的元数据。以下模式显示了详细信息:博士生将他的 ETD 文档上传到图书馆。他这样做时,会填写一个 HTML 表单,该表单在内部以 Dublin Core 格式收集元数据。大学图书馆检查元数据的正确性以及 ETD 的可读性和样式表的使用情况。大学图书馆在元数据集中添加一些描述性元数据,并在其服务器上发布 ETD 的展示版本。在此过程中,会创建一个包含以 HTML 编码的 Dublin Core 元数据的 HTML 格式页面
最后,大学图书馆将元数据提交给国家图书馆,国家图书馆负责存档所有德语文献。
国家图书馆将 ETD 和元数据复制到自己的内部系统中。
搜索 SGML/XML 文档
Harvest 还允许在 SGML/XML DTD(文档类型定义)元素中进行搜索。
为了根据以下规则配置收集器组件,所有需要做的事情是
在 Harvest 软件的 home 目录(写为 <harvest-home>)中,在 /lib/gatherer/byname.cf 中添加一行:DIML ^.*\.did$。(DiML 是洪堡大学使用的 DTD,did 是根据 DIML-DTD 的 SGML 文档文件名)。这告诉 Harvest 收集器,如果找到以 .did 结尾的文档,应该使用哪个摘要器。
现在,摘要器必须构建并保存为 DIML.sum,位于 <harvest-home>/lib/gatherer 中的文件系统中:(摘要器包含以下行:#!/bin/sh exec SGML.sum ETD $*
在目录文件 <harvest-home>/lib/gatherer/sgmls-lib/catalog 中,必须进行以下条目:(它们指向 DIML 的公共标识符以及从 DIML 使用的 DTV)
DOCTYPE ETD DIML/diml2_0.dtd
PUBLIC "-//HUB//DTD Electronic Thesis and Dissertations Version DiML 2.0//EN" DIML/diml2_0.dtd
PUBLIC "-//HUB//DTD Cals-Table-Model//EN" DIML/cals_tbl.dtd
PUBLIC "-//HUBspec//ENTITIES Special Symbols//EN" DIML/dimlspec.ent
现在可以创建 <harvest-home>/lib/gatherer/lib/sgmls-lib/DIML(mkdir <path>),并将四个文件复制到路径中
diml2_0.dtd、cals_tbl.dtd、dimlspec.ent 和 diml2_0.sum.tbl(DTD、实体文件和摘要器表)。diml2_0.sum.tbl 文件包含要搜索的 DTD 标签以及相应的 SOIF 属性
现在可以启动收集器。
为了在某些 SOIF 标签中搜索,必须将 SOIF 属性的名称放在搜索词之前,例如,搜索“title: Hallo”意味着在 SOIF 属性“title”中搜索搜索词“Hallo”。
在柏林洪堡大学,已经安装了一个原型,它允许在文档结构中进行检索,因此用户可以在文档的以下部分中进行搜索,从而专门化搜索,以便仅检索所需的 信息和匹配项
- 全文(在全文中)
- 按作者(按作者)
- 在标题中(在标题中)
- 在摘要中(在摘要中)
- 在作者关键字中(在作者关键词中)
- 按机构/学科(按机构/学科)
- 按审批人(按审批人)
- 章节标题(标题)
- 图片标题(在图片标题中)
- 在表格中(在表格中)
- 在参考文献中(在参考文献中)
- 按参考文献中的作者名称(按参考文献中的作者)
Harvest 和 OAI
随着人们对开放档案倡议方法的热情日益高涨,其中一个特殊的 OAI 软件协议允许向文档档案发送请求并接收标准化的元数据集作为答案,人们开始思考如何将这种方法与德国已经建立的基于 Harvest 的基础设施联系起来。
使 Harvest 档案符合 OAI 标准意味着必须规范化收集器持有的信息(使用相同的元数据)并将索引临时保存到数据库中。德国奥尔登堡大学物理系科学网络研究所开发了以下软件。该软件用 php4 编写,使用 SQL 数据库来执行 OAI 协议请求。SQL 数据库保存来自 Harvest 收集器的规范化数据。
其他大学的文档服务器,例如洪堡大学的服务器,通常将 Dublin Core 元数据保存在 SQL 数据库(Sybase)中。一个运行在 cgi 接口的 php4 脚本会读取通过 HTTP 协议传输的 OAI 协议请求,并将它们转换为 SQL 语句,然后用作对 SQL 数据库的请求。数据库的响应也以 SQL 语法给出,然后使用 XML 和 Dublin Core 转换为 OAI 协议语法。(参见 http://edoc.hu-berlin.de/oai)
下一节:NDLTD 联合目录