所以我们开始着手实现自动化。亚马逊有一个包含图书信息的API,所以我想,只要稍微修改一下数据,开发一个软件来帮我们做这项工作应该不难。从我们的MARC *元数据记录中提取元数据,发送到亚马逊,就搞定了!
我错了。这很难。
图书馆目录名称与书商名称不同
图书馆生成的元数据通常非常详细,这导致我们尝试将图书馆员提供的元数据与面向消费者的网站上使用的元数据进行匹配时出现问题。例如,MARC 记录中列出的作者可能显示为
Purucker, G. de (Gottfried), 1874-1942
但当你在亚马逊上搜索时,同一位作者会出现
G. 德普鲁克
如果我们在亚马逊的 MARC 数据库中搜索完整的作者信息(包括全名、出生和死亡日期),可能会错过潜在的匹配项。这只是一个简单的例子。我们必须使用一套规则来转换从 MARC 数据库中获取的每个作者字段,这些规则可 ws 数据库 能会随着我们遇到新的问题而不断扩展。以下是目前仅用于转换这一个字段的规则:
将 MARC 作者转换为 Amazon 作者的一般规则:
保持所有重音字符或非罗马字符不变
如果字符串中没有逗号、分号或括号,则按原样使用整个字符串
如果字符串中没有逗号,但有分号和/或括号,则使用分号或括号之前的任何内容作为整个作者字符串
如果字符串中有逗号:
第一个逗号之前的所有内容都应用作作者的姓氏
第一个逗号之后但在以下任何一个之前的所有内容都应用作作者的名字:

逗号 [ , ],
分号 [ ; ],
左括号 [ ( ]
任意数字 [0-9]
字符串结尾
剩余信息应被丢弃
句点 [ . ] 和撇号 [ ' ] 以及其他符号不应用于分隔任何名称,并且应在转换后的字符串中保持原样。
永无止境的标题传奇记述:正如三个布拉布拉布拉向作者讲述的那样……
有些老书的书名很长。MARC 记录当然会包含完整的书名!为什么不呢?!但像亚马逊这样的面向消费者的网站通常会缩短或修改这些书名。
例如,这是一本真正引人入胜的书的标题:
美国作家,1600 – 1900 年美国文学传记词典;共 1 卷,包含 1300 篇传记和 400 幅肖像
但在亚马逊上,这个标题是:
美国作家 1600-1900:美国文学传记词典(威尔逊作家)
可以想象,可靠地匹配书名较长的书籍要困难得多。人类看到这两本书名可能会想:“嗯,这可能是同一本书”,但软件就没那么好了。