配置Neo4j

Neo4j 入门 - 开始使用 - 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 下方的区域会显示图形结果。你可以通过以下方式进行交互:

  1. 展开节点
    • 点击某个节点,然后按回车键(或点击节点上的展开图标),可以展开该节点连接的所有邻居。
  2. 查看属性
    • 点击任意节点或关系,左侧(或底部)的面板会显示其详细属性(如 URI、标签、具体的数值等)。
  3. 调整布局
    • 你可以用鼠标拖拽节点来整理布局。
    • 使用鼠标滚轮可以缩放视图。
  4. 切换视图模式
    • 在结果栏的左下角,你可以切换视图模式:
      • Graph:图形视图(默认)。
      • Table:表格视图(适合查看具体数据内容)。
      • Text:文本视图(适合查看 Cypher 生成的原始数据)。

4. 进阶:查看本体结构(Schema)

由于你导入的是 OWL 本体文件,你可能更关心类与类之间的层级关系(例如 rdfs:subClassOf)。你可以专门查询这些关系:

// 查找所有的类继承关系
MATCH (c1)-[:subClassOf]->(c2) 
RETURN c1, c2 
LIMIT 50;

(注意:具体的属性名如 subClassOf 取决于你的 OWL 文件定义,可能需要根据实际导入的标签调整)

posted @ 2026-03-30 12:58  Digitzh  阅读(13)  评论(0)    收藏  举报