0
点赞
收藏
分享

微信扫一扫

python使用rdflib创建rdf,在jena fuseki上执行SPARQL查询



  1. 建立并启动jena fuseki服务
  2. 使用rdflib创建rdf文件

import rdflib

def create_rdf():
g = rdflib.Graph()
# 实体
pinganfu = rdflib.URIRef('http://www.example.org/pinganfu')
yiwaixian = rdflib.URIRef('http://www.example.org/yiwaixian')
# 关系
price = rdflib.URIRef('http://www.example.org/price')
product_from = rdflib.URIRef('http://www.example.org/from')
# 属性
price_100 = rdflib.URIRef('http://www.example.org/100')
price_200 = rdflib.URIRef('http://www.example.org/200')
from_paic = rdflib.URIRef('http://www.example.org/paic')
from_pajiankang = rdflib.URIRef('http://www.example.org/pingan jiankangxian')
g.add((pinganfu, price, price_100))
g.add((yiwaixian, price, price_200))
g.add((pinganfu, product_from, from_paic))
g.add((yiwaixian, product_from, from_pajiankang))

g.serialize("graph.rdf")

if __name__ == "__main__":
create_rdf()


jena fuseki导入生成的rdf文件,需要utf-8格式
python使用rdflib创建rdf,在jena fuseki上执行SPARQL查询_数据格式



执行查询



PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>

select *
where {
?product <http://www.example.org/price> ?price .
}

where里的三个值分别表示主谓宾

其中?product ?price表示需要展示的字段,​​​​http://www.example.org/price​​​​相当于sql中的where条件,查询谓语等于​​​​http://www.example.org/price​​​​的所有结果

查询结果

python使用rdflib创建rdf,在jena fuseki上执行SPARQL查询_字段_02

jena数据格式

python使用rdflib创建rdf,在jena fuseki上执行SPARQL查询_知识图谱_03

参考:​​

​​

​​​​

时间会记录下一切。


举报

相关推荐

0 条评论