【发布时间】:2022-08-03 14:45:00
【问题描述】:
SGML 不再广泛使用,但对于处理 1990 年代和 2000 年代创建的遗留资源,有时仍然需要它。问题是是否有任何可用的 SGML 解析器仍在(2022 年)积极维护,无论是 Python3 还是 Java。
我将自己的解决方法(以及类似问题的链接)作为答案,但我希望能找到更好的解决方法,尤其是允许验证和/或避免信息丢失的解决方法。
SGML 不再广泛使用,但对于处理 1990 年代和 2000 年代创建的遗留资源,有时仍然需要它。问题是是否有任何可用的 SGML 解析器仍在(2022 年)积极维护,无论是 Python3 还是 Java。
我将自己的解决方法(以及类似问题的链接)作为答案,但我希望能找到更好的解决方法,尤其是允许验证和/或避免信息丢失的解决方法。
我目前的解决方法是:
(没有代码示例,因为这适用于任何非验证 HTML 解析器。该方法类似于this 2011 question和this 2017 question的第一个答案。)
这似乎适用于我的情况(SemCor corpus)。然而,这是一个 hack 而不是解决方案,虽然非 HTML 标签和属性通常应该被保留,但我担心信息丢失和缺乏验证。因此问题。
验证注意事项:即使 SGML 数据可以在语法上转换为 XML(以这种或另一种方式),我们也不能直接使用标准 XML 技术来验证生成的标记是否符合其 DTD,因为 SGML 是大写容忍的,而 XML 不是。为了验证,XML 转换的标记和 DTD 都需要小写。 (试过Resnik's 1996 Bible corpus。)
【讨论】:
我试试这个https://github.com/hamdikarray/simple-api-for-sgml-dist,它适用于我的 sgml 数据。 希望能帮助到你
【讨论】: