配置Neo4j
1 安装 & 启动
添加 Neo4j 官方 APT 源:
# 添加 GPG 密钥(现代方式)
sudo mkdir -p /etc/apt/keyrings
wget -O - https://debian.neo4j.com/neotechnology.gpg.key | sudo gpg --dearmor -o /etc/apt/keyrings/neo4j.gpg
# 添加源
echo 'deb [signed-by=/etc/apt/keyrings/neo4j.gpg] https://debian.neo4j.com stable latest' | sudo tee /etc/apt/sources.list.d/neo4j.list
更新并安装:
sudo apt update
sudo apt install neo4j
启动:
# 启动 Neo4j 服务
sudo systemctl start neo4j
# 设置开机自启(可选)
sudo systemctl enable neo4j
# 查看服务状态
sudo systemctl status neo4j
2 访问配置
开放从其他机器访问Web的端口:sudo nano /etc/neo4j/neo4j.conf
# 允许所有 IP 访问 HTTP (Browser)
server.http.listen_address=0.0.0.0:7474
# 允许所有 IP 访问 HTTPS (可选)
server.https.listen_address=0.0.0.0:7473
# 允许所有 IP 访问 Bolt (驱动连接)
server.bolt.listen_address=0.0.0.0:7687
保存并重启服务:
sudo systemctl restart neo4j
3 安装插件
将neosemantics-5.26.0.jar拷贝到/var/lib/neo4j/plugins。之后:
cd /var/lib/neo4j/plugins
sudo chown neo4j:neo4j neosemantics-5.26.0.jar
sudo chmod 644 neosemantics-5.26.0.jar
修改配置文件:/etc/neo4j/neo4j.conf
dbms.security.procedures.unrestricted=n10s.*
重启 Neo4j 服务以使插件生效。
sudo systemctl restart neo4j
验证:
CALL n10s.graphconfig.init();
CREATE CONSTRAINT n10s_unique_uri FOR (r:Resource) REQUIRE r.uri IS UNIQUE;
移动文件:
sudo cp /home/user/Work/owls/* /var/lib/neo4j/import/
手动导入的方法:
CALL n10s.rdf.import.fetch("file:////var/lib/neo4j/import/constraints.owl", "RDF/XML");
CALL n10s.rdf.import.fetch("file:////var/lib/neo4j/import/entities.owl", "RDF/XML");
CALL n10s.rdf.import.fetch("file:////var/lib/neo4j/import/fault-events.owl", "RDF/XML");
CALL n10s.rdf.import.fetch("file:////var/lib/neo4j/import/mappings.owl", "RDF/XML");
CALL n10s.rdf.import.fetch("file:////var/lib/neo4j/import/turnout_fault_diagnosis.owl", "RDF/XML");
4 查询与验证
本节内容为AI生成。
1. 基础验证:检查数量
首先,我们需要确认数据是否真的“进”来了。最简单的方法是统计节点和关系的数量。
在 Neo4j Browser 的顶部命令栏中输入以下 Cypher 语句并回车:
- 统计节点总数:
MATCH (n) RETURN count(n) AS total_nodes;
如果返回的数字大于 0,说明节点导入成功。
- 统计关系总数:
MATCH ()-[r]->() RETURN count(r) AS total_relationships;
如果返回数字大于 0,说明关系也导入成功。
- 查看有哪些“标签”(类):
OWL 文件中的类在 Neo4j 中会变成标签(Label)。你可以查看图谱中有哪些类型的实体:
CALL db.labels();
2. 可视化展示:查看所有节点和关系
要一次性展示图谱中的所有内容,可以使用以下查询语句。
注意:如果你的图谱非常大(成千上万个节点),一次性全部渲染可能会导致浏览器卡顿。建议先限制数量查看,确认无误后再全量展示。
📊 方案 A:查看全图(适用于中小规模数据)
这是最直接的查询,它会匹配所有的节点 n、关系 r 和目标节点 m:
MATCH (n)-[r]->(m)
RETURN n, r, m
LIMIT 1000;
- 解释:
MATCH (n)-[r]->(m):查找所有有连接关系的节点对。RETURN n, r, m:返回起始节点、关系和结束节点,这样浏览器才能画出完整的图。LIMIT 1000:限制返回 1000 条关系。这是为了防止数据量过大导致浏览器崩溃。如果你确定数据量不大,可以去掉这个限制。
🔍 方案 B:查看孤立节点(可选)
有些 OWL 中的类可能没有实例,或者某些节点没有连接到主图中。如果你想把这些“落单”的节点也找出来:
MATCH (n)
WHERE NOT (n)--()
RETURN n;
3. 在 Neo4j Browser 中操作图形
当你执行完上述查询后,Neo4j Browser 下方的区域会显示图形结果。你可以通过以下方式进行交互:
- 展开节点:
- 点击某个节点,然后按回车键(或点击节点上的展开图标),可以展开该节点连接的所有邻居。
- 查看属性:
- 点击任意节点或关系,左侧(或底部)的面板会显示其详细属性(如 URI、标签、具体的数值等)。
- 调整布局:
- 你可以用鼠标拖拽节点来整理布局。
- 使用鼠标滚轮可以缩放视图。
- 切换视图模式:
- 在结果栏的左下角,你可以切换视图模式:
- Graph:图形视图(默认)。
- Table:表格视图(适合查看具体数据内容)。
- Text:文本视图(适合查看 Cypher 生成的原始数据)。
- 在结果栏的左下角,你可以切换视图模式:
4. 进阶:查看本体结构(Schema)
由于你导入的是 OWL 本体文件,你可能更关心类与类之间的层级关系(例如 rdfs:subClassOf)。你可以专门查询这些关系:
// 查找所有的类继承关系
MATCH (c1)-[:subClassOf]->(c2)
RETURN c1, c2
LIMIT 50;
(注意:具体的属性名如 subClassOf 取决于你的 OWL 文件定义,可能需要根据实际导入的标签调整)

浙公网安备 33010602011771号