Apache Any23 2.7 介绍与选型指南
系统介绍 Apache Any23 2.7 的 RDF 抽取定位、模块与 CLI 工具族、官方 rover 快速上手示例,明确其 2023 年退役进入 Apache Attic 的项目状态,并给出 Tika/Jena/RDFLib 替代选型(查询日期 2026-10-18,联网查证)。
Apache Any23 2.7 介绍与选型指南
目标:讲清 Apache Any23 2.7 是什么——它如何把网页与文档抽取为 RDF 三元组、CLI/RDF 库/REST 服务三种使用形态如何工作,并给出与 Apache Tika、Apache Jena、RDFLib 等抽取/语义工具的选型对比;同时明确该项目的退役状态对选型的影响。本文为认知篇,全部内容基于官方文档、Apache Attic 公告与 Maven Central 联网查证(查询日期 2026-10-18),不做本地安装实测。
一、信息基准
- 查询日期:2026-10-18(Asia/Shanghai)。文中版本号、退役日期、下载形态均于该日期联网核实并随文标注来源。
- 版本依据:本文介绍的版本为 Apache Any23 2.7。官方下载页当前列出的发布物即为 2.7(
apache-any23-2.7-src.tar.gz、apache-any23-cli-2.7.tar.gz等,来源:https://any23.apache.org/download.html ,查询日期 2026-10-18);Maven Central 元数据确认<latest>2.7</latest>、<release>2.7</release>(来源:https://repo1.maven.org/maven2/org/apache/any23/apache-any23-core/maven-metadata.xml ,查询日期 2026-10-18)。GitHub 侧 any23-2.7 标签时间戳为 2022-02-21(来源:github.com/apache/any23,查询日期 2026-10-18)。 - 项目状态(对选型关键):Apache Any23 已于 2023 年 6 月经 ASF 董事会决议退役,2023 年 10 月完成向 Apache Attic 的迁移动作(来源:https://attic.apache.org/projects/any23.html 「became a Top Level Project in August 2012, retired in June 2023 and the move to the Attic was completed in October 2023」,查询日期 2026-10-18)。GitHub 上的仓库已于 2023-07-03 归档为只读(来源:github.com/apache/any23 仓库横幅,查询日期 2026-10-18)。
- 官方来源清单:
- 项目站点(存档保留):https://any23.apache.org/
- 下载页:https://any23.apache.org/download.html
- 入门文档:https://any23.apache.org/getting-started.html
- 提取器清单:https://any23.apache.org/extractors.html
- Apache Attic 项目页:https://attic.apache.org/projects/any23.html
- Maven Central 元数据:https://repo1.maven.org/maven2/org/apache/any23/apache-any23-core/maven-metadata.xml
二、软件概述
2.1 版本与定位
Apache Any23 2.7(Anything To Triples)是该项目的最后一个正式发布版:一个把各类 Web 文档中的结构化数据抽取为 RDF 格式的软件,同时以 Java 库、命令行工具和 Web 服务三种形态提供(来源:https://any23.apache.org/ 首页「Anything To Triples (any23) is a library, a web service and a command line tool that extracts structured data in RDF format from a variety of Web documents」,查询日期 2026-10-18)。
支持的输入格式(来源:官方首页列表,查询日期 2026-10-18):
- RDF 原生格式:RDF/XML、Turtle、Notation 3;
- HTML 内嵌数据:RDFa(含 RDFa 1.1 前缀机制)、Microformats1/2(hAdr、hCard、hCalendar、hEntry、hEvent、hGeo、hItem、hListing、hProduct、hResume、hReview、XFN 等)、HTML5 Microdata(如 Schema.org);
- 其他:JSON-LD、CSV(分隔符自动探测)、YAML;
- 词表:Dublin Core、FOAF、DOAP、GeoNames、iCAL、Open Graph Protocol、schema.org、vCard 等;
- 2.1 起还可经 Open Information Extraction(Open IE)系统从纯文本句子中抽取三元组。
一句话概括:Any23 是「网页结构化数据的 RDF 化网关」——爬虫/知识图谱管道把 HTML 页面喂给它,得到可入库的标准三元组。
2.2 许可与项目状态
- 许可证:Apache License 2.0(来源:https://any23.apache.org/download.html 「Apache Any23 is distributed under the Apache License, version 2.0」,查询日期 2026-10-18)。
- 项目状态:已退役(Attic)。2023-06 ASF 董事会决议退役、2023-10 完成 Attic 迁移(来源:attic.apache.org/projects/any23.html,查询日期 2026-10-18);官网与文档存档保留,但不再有缺陷修复与安全更新;GitHub 上的仓库只读。
- 维护记录:2.7 之后无任何新版本;Maven Central 元数据 lastUpdated 停在 2022-03-03(来源:repo1.maven.org 元数据,查询日期 2026-10-18)。
2.3 分发形态与模块
官方分发(来源:https://any23.apache.org/download.html ,查询日期 2026-10-18):
- 源码包:
apache-any23-2.7-src.tar.gz/.zip(附 ASCII 签名与 SHA512 校验); - CLI 二进制包:
apache-any23-cli-2.7.tar.gz/.zip; - Maven 依赖:
org.apache.any23:apache-any23-core:2.7(官方文档示例原样); - 插件与 WAR 服务自 2.4/2.2 起不再随官方发布分发(因 Open IE 模块使构件膨胀到约 1GB,官方建议按需自行从源码构建,来源同页说明)。
模块划分(来源:https://any23.apache.org/getting-started.html ,查询日期 2026-10-18):api/(基础 API 定义)、core/(核心抽取库)、cli/(命令行)、csvutils/、encoding/(字符集探测)、mime/(媒体类型探测)、service/(REST 服务)、plugins/(插件)、openie/(Open IE 抽取)。
三、核心概念与工作方式
本章概念引自官方首页与入门文档(查询日期 2026-10-18)。
3.1 抽取器(Extractor)体系
Any23 的核心是注册式抽取器:每类输入格式对应一组 ExtractorFactory,按 MIME 类型与权重(q 值)匹配。官方 extractor --list 输出展示其命名规律:html-mf-hcard(Microformats hCard)、html-microdata(HTML5 Microdata)、html-rdfa11(RDFa 1.1)、html-embedded-jsonld(内嵌 JSON-LD)、csv(CSV)等(来源:https://any23.apache.org/getting-started.html 示例输出,查询日期 2026-10-18;完整清单见 https://any23.apache.org/extractors.html )。
3.2 三种使用形态
- 库(Library):Java 应用引入
apache-any23-core,以 API 方式消费网页结构化数据; - CLI:
cli模块提供的any23脚本(位于cli/target/appassembler/bin/,Unix/Windows 双端),承载分析、文档、测试与调试工具(来源:getting-started.html,查询日期 2026-10-18); - REST 服务:
service模块提供 RESTful Web 服务形态(历史上还曾提供 any23.org 在线服务,来源:官方首页,查询日期 2026-10-18)。
3.3 CLI 工具族
官方文档列出的 any23 命令族(来源:https://any23.apache.org/getting-started.html ,查询日期 2026-10-18):
| 命令 | 用途 |
|---|---|
rover | 主抽取工具:从本地/远程资源抽取 RDF,可指定抽取器、输出格式、过滤琐碎语句、输出统计 |
extractor | 查询抽取器文档:--list 列出全部、-a 全量报告、-i 示例输入、-o 示例输出 |
microdata | 从文件/HTTP 源抽取 Microdata,输出符合 Microdata 规范的 JSON |
mimes | 对 HTTP/文件/内联输入做 MIME 类型探测 |
vocab | 输出 Any23 用到的 RDF Schema 词表(默认 N-Quads 格式) |
verify | 插件目录管理校验 |
四、功能特性
- 多格式统一抽取:RDFa、Microformats1/2、Microdata、JSON-LD、RDF/XML、Turtle、N3、CSV、YAML 一套管道输出 RDF(来源:官方首页格式清单,查询日期 2026-10-18)。
- 词表覆盖广:内置 FOAF、DOAP、Dublin Core、schema.org、Open Graph 等常用词表的抽取支持(来源同上)。
- Rover 主工具:支持
-f(默认 TURTLE,可选 quad 等格式)、-t过滤琐碎语句(CSS 链接等 head 信息)、-s输出统计、-e指定抽取器子集、-p修复常见 HTML 问题(来源:getting-started.html Rover 一节,查询日期 2026-10-18)。 - 嵌套三元组控制:
-n选项禁用嵌套三元组的产生(来源同上)。 - Open IE 文本抽取:2.1 起支持对纯文本做开放信息抽取生成三元组(来源:官方首页,查询日期 2026-10-18)。
- 可校验分发:发布物附 PGP 签名与 SHA512 校验(来源:download.html,查询日期 2026-10-18)。
- 注意:以上能力自 2.7(2022-02)后冻结——项目已退役,不再有功能演进与安全修复(来源:attic.apache.org/projects/any23.html,查询日期 2026-10-18)。
五、快速上手(引自官方文档)
以下命令与说明逐字引自官方入门文档(来源:https://any23.apache.org/getting-started.html ,查询日期 2026-10-18)。
获取 CLI(来源:https://any23.apache.org/download.html ,查询日期 2026-10-18):下载 apache-any23-cli-2.7.tar.gz 并解压,即可使用其中的 any23 脚本(官方入门文档指出脚本位于构建目录 cli/target/appassembler/bin/,Unix 与 Windows 均有对应脚本)。直接运行不带参数的 any23 会显示用法:
$ cli/target/appassembler/bin/any23
A command must be specified.
Usage: any23 [options] [command] [command options]
Rover 主抽取工具的官方示例:
# 从 HTML 页面抽取元数据:
cli$ any23 rover http://yourdomain/yourfile
# 从本地资源抽取:
cli$ any23 rover myfoaf.rdf
# 指定输出格式(默认 TURTLE),-f/--format:
cli$ any23 rover -f quad myfoaf.rdf
# 过滤琐碎语句(默认会抽取 HTML/head 的 meta 信息,如 CSS 链接、作者等;
# 只关心 body 结构化内容时用 -t):
core$ any23 rover -t -f quad myfoaf.rdf
查看可用抽取器(官方示例输出节选):
cli$ any23 extractor --list
csv [org.apache.any23.extractor.csv.CSVExtractorFactory] [text/csv;q=0.1]
html-embedded-jsonld [org.apache.any23.extractor.html.EmbeddedJSONLDExtractorFactory] [text/html;q=0.02, application/xhtml+xml;q=0.02]
html-mf-hcard [org.apache.any23.extractor.html.HCardExtractorFactory] [text/html;q=0.1, application/xhtml+xml;q=0.1]
html-microdata [org.apache.any23.extractor.microdata.MicrodataExtractorFactory] [text/html;q=0.1, application/xhtml+xml;q=0.1]
html-rdfa11 [org.apache.any23.extractor.rdf.RDFa11ExtractorFactory] [text/html;q=0.1, application/xhtml+xml;q=0.1]
Maven 依赖方式(官方文档原样片段,来源:download.html):
<dependency>
<groupId>org.apache.any23</groupId>
<artifactId>apache-any23-core</artifactId>
<version>2.7</version>
</dependency>
说明:本文为认知篇,以上为官方文档原文示例,未做本地复跑;本地安装步骤示例见本专栏《Ubuntu 22.04 安装 Apache Any23 指南》。
六、适用场景与限制
6.1 适用场景(历史与存量)
- 老语义网管道维护:以 Any23 作为网页 → RDF 的抽取环节的存量系统,可继续使用 2.7 及其 Maven 构件,但需自行承担安全风险。
- 离线批量转换:对存量 HTML/RDFa/Microdata 文档做一次性 RDF 化搬运。
- 教学与研究:作为「多格式结构化数据 → 三元组」的教学示例与对比基线。
6.2 限制与注意事项
- 项目已退役是最大限制:2023-06 退役、2023-10 完成 Attic 迁移(来源:attic.apache.org,查询日期 2026-10-18),无安全修复、无依赖升级;用于互联网内容解析时应评估其依赖树(HTML 解析等)的已知漏洞面。
- 新项目不建议选型:语义化抽取需求应转向活跃维护的替代品(见第七章)。
- WAR/插件不再随版分发:2.4 起插件、2.2 起 WAR 均需自行从源码构建(来源:download.html 说明,查询日期 2026-10-18)。
- 在线服务(any23.org)形态依赖外部部署,退役后官方不再运营。
七、同类选型对比
对比对象:Apache Tika(元数据与文本抽取)、Apache Jena(RDF 框架全家桶)、RDFLib(Python RDF 库)。数据来源:GitHub 仓库页与 Releases(github.com,查询日期 2026-10-18)、Apache 项目 DOAP(projects.apache.org,查询日期 2026-10-18)、Maven Central(repo1.maven.org,查询日期 2026-10-18)。
| 维度 | Apache Any23 2.7 | Apache Tika | Apache Jena | RDFLib |
|---|---|---|---|---|
| 许可证 | Apache-2.0 | Apache-2.0(ASF DOAP) | Apache-2.0(ASF DOAP) | BSD-3-Clause(仓库 LICENSE 实查) |
| 语言/形态 | Java:库 + CLI + REST | Java:库 + CLI + 服务 | Java:框架全家桶 | Python:库 |
| 核心能力 | 网页结构化数据 → RDF 三元组 | 全格式内容/元数据抽取(文本为主,非 RDF 本体化) | RDF 存储/SPARQL/推理/一致性校验 | RDF 图模型、解析/序列化、SPARQL |
| RDF 语义 | 核心卖点(RDFa/MF/MD 专精) | 弱(不做语义建模) | 强(标准 RDF 实现之一) | 强(Python 生态标准) |
| 项目状态 | 已退役(Attic,2023-10 完成,无新版本) | 活跃:4.1.0 与 3.3.3 并行发布(官网 download 页实查,2026-10-18) | 活跃(ASF DOAP 持续更新,2026-10-18) | 活跃:7.6.0(2026-02-13,GitHub Releases 实查) |
| 社区活跃度 | GitHub stars 98(仓库只读,2026-10-18) | GitHub stars 4099 | GitHub stars 1474 | GitHub stars 2532 |
| 版本节奏 | 冻结于 2.7(2022-02) | 双线常规发版 | 常规发版 | 年度大版本 + 补丁 |
| 兼容矩阵 | Java 8 时代依赖树 | Java 8/11+ 视版本 | Java 11+(视版本) | Python 3.8+(视版本) |
选型建议一句话:Any23 仅适合存量系统维护;新项目若要「抽取」能力选 Apache Tika(文本/元数据),若要「RDF 建模与查询」选 Apache Jena(JVM 栈)或 RDFLib(Python 栈),两者组合可覆盖 Any23 的大部分历史用途。
八、参考链接
- Apache Any23 项目站点(存档):https://any23.apache.org/
- 官方下载页(2.7 发布物与 Maven 坐标):https://any23.apache.org/download.html
- 入门文档(CLI 示例来源):https://any23.apache.org/getting-started.html
- 提取器清单:https://any23.apache.org/extractors.html
- Apache Attic 项目页(退役信息):https://attic.apache.org/projects/any23.html
- Maven Central 元数据:https://repo1.maven.org/maven2/org/apache/any23/apache-any23-core/maven-metadata.xml
- GitHub 上的仓库(只读归档):https://github.com/apache/any23