Apache Any23 2.7 介绍与选型指南

系统介绍 Apache Any23 2.7 的 RDF 抽取定位、模块与 CLI 工具族、官方 rover 快速上手示例,明确其 2023 年退役进入 Apache Attic 的项目状态,并给出 Tika/Jena/RDFLib 替代选型(查询日期 2026-10-18,联网查证)。

Apache Any23Any23Java知识图谱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),不做本地安装实测。

一、信息基准

二、软件概述

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.7Apache TikaApache JenaRDFLib
许可证Apache-2.0Apache-2.0(ASF DOAP)Apache-2.0(ASF DOAP)BSD-3-Clause(仓库 LICENSE 实查)
语言/形态Java:库 + CLI + RESTJava:库 + 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 4099GitHub stars 1474GitHub 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 的大部分历史用途。

八、参考链接

  1. Apache Any23 项目站点(存档):https://any23.apache.org/
  2. 官方下载页(2.7 发布物与 Maven 坐标):https://any23.apache.org/download.html
  3. 入门文档(CLI 示例来源):https://any23.apache.org/getting-started.html
  4. 提取器清单:https://any23.apache.org/extractors.html
  5. Apache Attic 项目页(退役信息):https://attic.apache.org/projects/any23.html
  6. Maven Central 元数据:https://repo1.maven.org/maven2/org/apache/any23/apache-any23-core/maven-metadata.xml
  7. GitHub 上的仓库(只读归档):https://github.com/apache/any23