一.前言 webProtégé软件是斯坦福大学医学院生物信息研究中心基于Java语言开发的本体编辑和知识获取软件,或者说是本体开发工具 Neo4j是一个高性能的图形数据库,也可以被看作是一个高性能的图引擎 webprotege里的本体也能以图的形式表现,希望将webprotege的本体在neo4j里展示 二. webprotege导出owl文件 参考的某乎相关教程,neo4j的导入命令中的owl文件格式为 ‘RDF/XML’,此处姑且直接导出该类型文件(其他类型文件未测试) 下载后解压后放在一个固定的目录里面 {将owl文件通过jar包转换成rdf文件,再导入 ①转换: 1>owl文件还是上述creature.owl文件(protege导出的) 2>jar包:rdf2rdf-1.0.1-2.3.1.jar下载 3>将jar包与owl文件放在同一目录下 4> 进入owl文件所在目录,进入cmd,输入并执行命令
java -jar rdf2rdf-1.0.1-2.3.1.jar 目标文件.owl 要转成的文件.rdf
} 三. neo4j导入owl文件 3.1 下载相关jar包,用于neo4j使用owl文件 1.下载扩展neosemantics jar包,将jar复制到neo4j/plugins目录下 注:**
neosemantics jar包必须与Neo4J版本相匹配!
** github链接-选择版本 2.修改配置文件: 在neo4j/neo4j.conf文件中添加以下内容: dbms.unmanaged_extension_classes=n10s.endpoint=/rdf
3.重新启动 neo4j 4.访问web端neo4j并登录,查看列表中是否包含可扩展的rdf、owl 在查询语句输入栏输入语句:call dbms.procedures() 检查插件安装成功。 5.另外还需要用到apoc,我是用的是apoc-4.4.0.3-all版本,放在neo4j的plugins目录下。
四.数据导入 将插件n10s-4.x.x.x.jar包复制到neo4j的plugins目录下(版本必须对应) create constraint n10s_unique_uri on (r:Resource) assert r.uri is unique 执行 call n10s.graphconfig.init() 在neo4j的cypher语句窗口执行: call n10s.rdf.import.fetch(‘file:///D:/rdfs/upb.owl’, ‘RDF/XML’)
五.更新补充neo4j
MATCH (n)
OPTIONAL MATCH (n)-[r]-()
DELETE n,r
call n10s.graphconfig.init()
call n10s.rdf.import.fetch('file:///D:/rdfs/urn_webprotege.owl', 'RDF/XML',{handleVocabUris: "IGNORE"})
OWL/RDF导入neo4j前缀消除 网上的两个参数选择,以3的版本为例,选择这个插入语句(只用handleVocabUris: "IGNORE"就可以了)
typesToLabels: false,//生成实例与类相连,无类别
handleVocabUris: "IGNORE",生成实例与类别不相连,有类别标签
清除生成的节点前缀 直接在neo4j上用cypher语句修改 http://www.xxx.com#为你的前缀名,substring(n.uri,22)是一个子字符串函数,数下你的前缀多长,修改长度,http://www.xxx.com#是22
match(n) where n.uri=~"http://www.kgtest.com#.*" set n.uri=substring(n.uri,22) return n
|