1概览
本 notebook 提供 Semantica 导出模块的全面指南,该模块支持将知识图谱、实体、关系和数据导出为多种格式。该模块支持 8 种导出格式(RDF、JSON、CSV、Graph、YAML、OWL、Vector、LPG)以及报告生成能力。
文档:API 参考
导出模块架构
导出模块由以下部分组成:
核心导出器类(9 个类)
RDFExporter- RDF 格式导出(Turtle、RDF/XML、JSON-LD、N-Triples、N3)JSONExporter- JSON 和 JSON-LD 格式导出CSVExporter- 面向表格数据的 CSV 格式导出GraphExporter- 图格式导出(GraphML、GEXF、DOT)SemanticNetworkYAMLExporter- 语义网络 YAML 导出YAMLSchemaExporter- 模式 YAML 导出OWLExporter- 面向本体的 OWL 格式导出VectorExporter- 面向向量存储的向量嵌入导出LPGExporter- 面向 Neo4j、Memgraph 及类似数据库的 LPG 格式导出
辅助类(4 个类)
RDFSerializer- 用于格式转换的 RDF 序列化引擎RDFValidator- 用于语法检查的 RDF 校验引擎NamespaceManager- RDF 命名空间管理与冲突消解ReportGenerator- 报告生成(HTML、Markdown、JSON、Text)
注册表与配置(2 个类 + 2 个实例)
MethodRegistry- 自定义导出方法的注册表method_registry- 全局注册表实例ExportConfig- 导出模块的配置管理器export_config- 全局配置实例
学习目标
学完本 notebook 后,你将能够: - 将知识图谱导出为所有受支持的格式(RDF、JSON、CSV、Graph、YAML、OWL、Vector、LPG) - 直接使用导出器类进行细粒度控制 - 生成多种格式的专业报告 - 注册并使用自定义导出方法 - 通过环境变量或配置文件配置导出设置 - 使用 RDF 序列化、校验和命名空间管理
2安装
从 PyPI 安装 Semantica:
pip install semantica
# 或安装所有可选依赖:
pip install semantica[all]
3步骤 1:JSON 导出
使用 JSONExporter 类将知识图谱导出为 JSON 格式。
JSONExporter 方法:
- export() - 将任意数据导出为 JSON
- export_knowledge_graph() - 将知识图谱导出为 JSON/JSON-LD
- export_entities() - 将实体导出为 JSON
- export_relationships() - 将关系导出为 JSON
# 安装 semantica 包
!pip install semantica
from semantica.export import JSONExporter
from semantica.kg import GraphBuilder
# 创建导出器和构建器
json_exporter = JSONExporter()
builder = GraphBuilder()
# 创建示例知识图谱
entities = [{"id": "e1", "type": "Organization", "name": "Apple Inc.", "properties": {}}]
relationships = []
kg = builder.build(entities + relationships)
# 导出为 JSON
json_exporter.export_knowledge_graph(kg, "output.json")
4步骤 2:CSV 导出
使用 CSVExporter 类将实体和关系导出为 CSV 格式。
CSVExporter 方法:
- export() - 将知识图谱导出为 CSV
- export_entities() - 将实体导出为 CSV 文件
- export_relationships() - 将关系导出为 CSV 文件
- export_knowledge_graph() - 将完整知识图谱导出为 CSV
from semantica.export import CSVExporter
# 创建 CSV 导出器
csv_exporter = CSVExporter()
# 将实体导出为 CSV
csv_exporter.export_entities(entities, "entities.csv")
5步骤 3:RDF 导出
使用 RDFExporter 类将知识图谱导出为 RDF 格式。
RDFExporter 方法:
- export() - 导出为 RDF(支持多种格式)
- export_knowledge_graph() - 将知识图谱导出为 RDF
- export_entities() - 将实体导出为 RDF
- export_relationships() - 将关系导出为 RDF
受支持的 RDF 格式:
- turtle - Turtle 格式(人类可读)
- rdfxml - RDF/XML 格式
- jsonld - JSON-LD 格式
- ntriples - N-Triples 格式
- n3 - N3 格式
其他 RDF 类:
- RDFSerializer - 在不同格式之间序列化 RDF 数据
- RDFValidator - 校验 RDF 语法和一致性
- NamespaceManager - 管理 RDF 命名空间
from semantica.export import RDFExporter
# 创建 RDF 导出器
rdf_exporter = RDFExporter()
# 导出为 RDF 格式(默认为 Turtle)
rdf_exporter.export(kg, "output.ttl", format="turtle")
# TTL 别名:format="ttl" 等价于 format="turtle"
rdf_data = {
"entities": [
{"id": "e1", "text": "Apple Inc.", "type": "ORG", "confidence": 0.95},
{"id": "e2", "text": "Steve Jobs", "type": "PERSON", "confidence": 0.97},
],
"relationships": [
{"source_id": "e2", "target_id": "e1", "type": "founded_by", "confidence": 0.91},
],
}
rdf_exporter.export(rdf_data, "output.ttl", format="ttl")
result = rdf_exporter.validate_rdf(rdf_data)
print(f"Valid: {result['overall_valid']}")
6步骤 4:图导出
使用 GraphExporter 类导出为面向可视化工具的图格式。
GraphExporter 方法:
- export() - 导出为图格式
- export_knowledge_graph() - 将知识图谱导出为图格式
受支持的图格式:
- graphml - GraphML 格式(用于 Cytoscape、yEd 等)
- gexf - GEXF 格式(用于 Gephi)
- dot - Graphviz DOT 格式
from semantica.export import GraphExporter
# 创建图导出器
graph_exporter = GraphExporter()
# 导出为 GraphML 格式
graph_exporter.export_knowledge_graph(kg, "output.graphml", format="graphml")
7步骤 5:OWL 导出
使用 OWLExporter 类将本体导出为 OWL 格式。
OWLExporter 方法:
- export() - 将本体导出为 OWL
- export_ontology() - 导出完整本体
- export_classes() - 仅导出类定义
- export_properties() - 仅导出属性定义
受支持的 OWL 格式:
- owl-xml - OWL/XML 格式(默认)
- turtle - Turtle 格式的 OWL
注意: OWLExporter 期望的是本体结构(包含类、属性),而不是知识图谱。请先使用 OntologyGenerator 将知识图谱转换为本体。
from semantica.export import OWLExporter
from semantica.ontology import OntologyGenerator
# 创建 OWL 导出器和本体生成器
owl_exporter = OWLExporter()
generator = OntologyGenerator()
# 从实体和关系生成本体
# 注意:将数据作为字典传给 generate_ontology
ontology = generator.generate_ontology({
"entities": entities,
"relationships": relationships
})
# 将本体导出为 OWL
owl_exporter.export(ontology, "output.owl")
8步骤 6:其他导出格式
YAML 导出
使用 YAML 导出器导出为 YAML 格式:
YAML 导出器类:
- SemanticNetworkYAMLExporter - 将语义网络导出为 YAML
- YAMLSchemaExporter - 将本体模式导出为 YAML
向量导出
使用 VectorExporter 导出向量嵌入:
VectorExporter 方法:
- export() - 将向量导出为各种格式
受支持的向量格式:
- json - JSON 格式
- numpy - NumPy 格式
- binary - 二进制格式
- faiss - FAISS 格式
LPG 导出
使用 LPGExporter 导出为标签属性图格式:
LPGExporter 方法:
- export() - 导出为 LPG 格式
- export_knowledge_graph() - 将知识图谱导出为 LPG
受支持的 LPG 格式:
- cypher - Cypher 查询格式(用于 Neo4j、Memgraph)
- lpg - 标签属性图格式
报告生成
使用 ReportGenerator 生成专业报告:
ReportGenerator 方法:
- generate_report() - 生成各种格式的报告
受支持的报告格式:
- html - HTML 报告
- markdown - Markdown 报告
- json - JSON 报告
- text - 纯文本报告
9小结
你已经学习了如何使用 Semantica 的导出模块导出数据:
核心导出器类:
- JSONExporter:导出为 JSON/JSON-LD 格式
- CSVExporter:导出为 CSV 格式
- RDFExporter:导出为 RDF 格式(Turtle、RDF/XML、JSON-LD、N-Triples、N3)
- GraphExporter:导出为图格式(GraphML、GEXF、DOT)
- OWLExporter:将本体导出为 OWL
- VectorExporter:将向量导出为多种格式
- LPGExporter:导出为标签属性图格式
- SemanticNetworkYAMLExporter:将语义网络导出为 YAML
- YAMLSchemaExporter:将模式导出为 YAML
辅助类:
- RDFSerializer:RDF 格式转换
- RDFValidator:RDF 校验
- NamespaceManager:RDF 命名空间管理
- ReportGenerator:生成专业报告
注册表与配置:
MethodRegistry:注册自定义导出方法ExportConfig:配置导出设置method_registry:用于访问已注册方法的全局注册表实例export_config:用于导出设置的全局配置实例
下一步: - 在多格式导出 notebook中学习高级导出技巧 - 在可视化 notebook 中学习如何可视化数据