GraphDB

返回图数据库

Ontotext 开发的 RDF 三元组存储(Triplestore),支持 OWL 推理和 SPARQL 查询。在知识图谱、生物医学、出版等领域有实际工业应用,是 Protege 建模后的典型运行时存储。


核心概念

概念说明
三元组(Triple)主语 - 谓语 - 宾语,如 Alice - knows - Bob
具名图(Named Graph)带名称的三元组集合,用于数据分区和版本管理
Repository存储三元组的仓库,类似数据库实例
推理(Inference)根据 OWL/RDFS 规则自动推断隐含三元组
连接器(Connector)与 Elasticsearch、Lucene 集成全文检索

推理级别

级别说明
empty无推理,纯存储
rdfsRDFS 规则(subClassOf、subPropertyOf)
owl-horstOWL Horst 规则,平衡性能与表达力
owl-rlOWL RL,规则推理,适合大规模数据
owl2-rlOWL 2 RL,完整支持

SPARQL 查询

PREFIX ex: <http://example.org/>
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
 
-- 基础查询
SELECT ?s ?p ?o
WHERE { ?s ?p ?o }
LIMIT 10
 
-- 模式匹配
SELECT ?person ?name
WHERE {
  ?person rdf:type ex:Person .
  ?person ex:hasName ?name .
}
 
-- 推理查询(owl-horst 下自动推断子类实例)
SELECT ?student
WHERE {
  ?student rdf:type ex:Person .   -- 会自动包含 Student(子类)的实例
}
 
-- 具名图查询
SELECT ?s ?p ?o
FROM NAMED <http://example.org/graph1>
WHERE {
  GRAPH <http://example.org/graph1> { ?s ?p ?o }
}

数据导入导出

# REST API 导入 Turtle 文件
curl -X POST \
  -H "Content-Type: text/turtle" \
  --data-binary @data.ttl \
  "http://localhost:7200/repositories/myrepo/statements"
 
# 导出为 Turtle
curl "http://localhost:7200/repositories/myrepo/statements" \
  -H "Accept: text/turtle" > export.ttl

支持格式:Turtle、RDF/XML、N-Triples、N-Quads、JSON-LD


与 Neo4j 对比

维度GraphDBNeo4j
数据模型RDF 三元组属性图(节点+关系)
查询语言SPARQLCypher
OWL 推理原生支持不支持
标准互操作完整 W3C 标准私有格式
适用场景语义 Web、本体驱动关系密集业务图
学习曲线较陡(需了解 RDF/OWL)较平缓

与 Protege 的关系

Protege(建模)→ 导出 OWL/Turtle → GraphDB(存储+推理+查询)

Protege 负责本体设计,GraphDB 负责运行时存储和 SPARQL 端点服务。


相关文档