→a.原始代码参考

# 导入owl文件
from rdflib import Graph
g = Graph()
'''
format: 'rdf/xml' 'xml', 'n3', 'nt', 'trix', 'rdfa'
'''
g.parse("abc.owl", format="xml")# 打印图的大小
print(len(g)) # 遍历所有三元组
for stmt in g:forpprint.pprint(stmt)
1.代码来源

如何生成RDF数据?作者:石磊

→ b.改进:rdflib解析owl文件,并将三元组写入csv(带URI) Demo

from rdflib import Graph
import csvg = Graph()
g.parse("D:\\abc.owl", format="xml")with open("ONE.csv","w",newline='') as f1:writer=csv.writer(f1)header=['Subject','Predicate','Object']writer.writerow(header)for stmt in g:print(stmt)list_triple=[]for st in stmt:st = str(st)list_triple.append(st)writer.writerow(list_triple)

→c.改进:rdflib解析owl文件,并将三元组写入csv(不带URI) Demo

#rdflib解析owl文件,并将三元组写入csv(不带URI) Demo
#只是简单的取:  # 或者 / 后的字符串
from rdflib import Graph
import csv
g = Graph()
g.parse("D:\\abc.owl", format="xml")with open("ONE.csv","w",newline='') as f1:writer=csv.writer(f1)header=['Subject','Predicate','Object']writer.writerow(header)for stmt in g:print(stmt)list_triple=[]for st in stmt:list2=[]st=str(st)if '#' in st:list2=st.split('#')list_triple.append(list2[-1])else:list2=st.split('/')list_triple.append(list2[-1])writer.writerow(list_triple)
2.protege导出文件

推荐导出格式选择:rdf/xml (而不是 owl/xml)
在python代码中选择 format=“xml”

*(忘记来源的截图,,,) *

3.rdflib

官方文件:rdflib5.0.0

*(忘记来源的截图,,,) *

4.解析结果:

① 每次解析出来的顺序不一样?但应该是没问题的~
(在小的owl文件上测试,没问题)
②若出现乱码,可能是空结点 Bnode

5.对解析结果进行简单分析,感兴趣的童鞋可以看下~

关于rdflib解析三元组介绍

附赠一个creature.owl文件的百度网盘链接:https://pan.baidu.com/s/1XkG3GE4RwoMCWwo8qy1u1w
提取码:mgb2

ps:如果有误,请指出~ 谢谢~
如果有用,点个赞呀 o(* ≧▽≦ *)o
一起来讨论呀 * =v= *

rdflib解析protege的owl文件相关推荐

  1. neo4j导入protege的owl文件

    本文主要讨论,neo4j导入 rdf/xml文件 和 rdf文件 的区别 注:1. owl文件用的是protege导出的 2.参考某乎::如何将owl/RDF文件导入neo4j 3.本文主要对比两种导 ...

  2. 关于neo4j导入Protégé导出的owl文件遇到的问题

    一.Protégé与Neo4j Protégé软件是斯坦福大学医学院生物信息研究中心基于Java语言开发的本体编辑和知识获取软件,或者说是本体开发工具. Neo4j是一个高性能的图形数据库,也可以被看 ...

  3. 用neo4j导入protege创建的本体owl文件(以及前缀消除)

    用neo4j导入protege创建的本体owl文件(以及前缀消除) 前期工作 导入owl本体文件 前期工作 这是我用protege自己弄的一个简单的本体(展示一下) 1.下载扩展neosemantic ...

  4. java owl文件_java – 用Jena加载owl文件

    我用Jena作为OntModel加载了几个OWL文件(RDF / XML序列化). 对于某些文件,我在使用ontoModel.read()读取它们时会出错: 线程"main"中的异 ...

  5. python 读取文件读出来是什么格式-深入学习python解析并读取PDF文件内容的方法...

    这篇文章主要学习了python解析并读取PDF文件内容的方法,包括对学习库的应用,python2.7和python3.6中python解析PDF文件内容库的更新,包括对pdfminer库的详细解释和应 ...

  6. python中读取文件内容-深入学习python解析并读取PDF文件内容的方法

    这篇文章主要学习了python解析并读取PDF文件内容的方法,包括对学习库的应用,python2.7和python3.6中python解析PDF文件内容库的更新,包括对pdfminer库的详细解释和应 ...

  7. redis-rdb-tools来解析分析reids dump文件及内存使用量

    2019独角兽企业重金招聘Python工程师标准>>> redis-rdb-tools来解析分析reids dump文件及内存使用量 一. 前言 解析redis的dump.rdb文件 ...

  8. java jsoup解析_3使用Jsoup解析Java中HTML文件的示例

    java jsoup解析 HTML是Web的核心,无论您是通过JavaScript,JSP,PHP,ASP或任何其他Web技术动态生成的,您在Internet上看到的所有页面都是基于HTML的. 您的 ...

  9. 3使用Jsoup解析Java中HTML文件的示例

    HTML是Web的核心,无论您是通过JavaScript,JSP,PHP,ASP还是任何其他Web技术动态生成的,您在Internet上看到的所有页面都是基于HTML的. 您的浏览器实际上是解析HTM ...

最新文章

  1. java项目使用过滤器实例_Java web开发--过滤器篇(详细介绍)
  2. 4万字长文ClickHouse应用实战-物化视图在微信的实践
  3. VTK:直线用法实战
  4. C# 报警 控制蜂鸣器发声
  5. 【JavaScript】关于eval( )
  6. vue element-ui-tree样式总结
  7. FTP安装及用户及权限配置
  8. android dp sp px_规范|iOS与Android设计规范解析(一)
  9. 软件工程(2018)结对编程第一次作业
  10. Unity3D基础20:游戏打包发布
  11. easyswoole验证码的使用
  12. Unsupervised Deep Homography - Pytorch实现
  13. ORA-00932: 数据类型不一致: 应为 CHAR, 但却获得 NUMBER
  14. js数组倒序排列+字符串数组转为数字数组
  15. 全开源免费的客服系统来了
  16. STM32F4开发板硬件简介
  17. 在word表格中设置页码,封面不设置页码,目录页设置罗马数字,正文部分设置阿拉伯数字页码
  18. SpringBoot中注入RedisTemplate实例异常解决
  19. 学习了C语言的第一个语言
  20. AcWing 487. 金明的预算方案

热门文章

  1. 利于iText实现html或者freemark等模板生成PDF
  2. 甲子光年专访一览群智 增强智能是当前AI的最佳路径
  3. 03-iframe属性src的使用
  4. js连接websocket
  5. 蓝牙4.0(BLE)电子烟方案
  6. python中except用法_Python中except用法和作用
  7. 广域网加速技术,企业广域网优化加速后有什么成效?
  8. 使用C++中类和指针进行记账系统的设计
  9. .net 基础面试题
  10. supesite后台增加菜单和功能