知识图谱构建4—— SPARQL endpoint以及查询方式
2019-03-17 18:07
1281 查看
SPARQL endpoint以及查询方式
SPARQL endpoint
SPARQL endpoint是SPARQL协议的一部分,用于处理客户端的请求,通过endpoint,我们可以把数据发布在网上,供用户查询。
D2RQ把SPARQL查询,按照mapping文件,翻译成SQL语句完成最终的查询,然后把结果返回给用户。
下面是D2R Server的架构图:
- 创建好数据库,数据库中有数据,具体见前几个博文(含有文件和操作)
- 进入d2rq目录,使用下面的命令启动D2R Server:
d2r-server.bat kg_movie.ttl
在浏览器输入“http://localhost:2020/”,可以看到如下界面:
- 点击1中的一个actor类
- 选中第一个实例
- 点击2,进入SPARQL endpoint,如图
- 输入框默认的SPARQL查询是获取所有的RDF三元组,“LIMIT”关键词指定返回结果数量的上限。点击下图红框中的“Go!”,执行查询:
浏览器中进行查询
例如:“周星驰出演了哪些电影?”
SELECT ?n WHERE { ?s rdf:type :actor. ?s :actor_actor_chName '周星驰'. ?o :movie_movie_chName ?n } LIMIT 10
结果为:
编写python脚本进行查询操作
- 使用Python第三方库:SPARQLWrapper。这是一个Python下的包装器,可以让我们十分方便地和endpoint进行交互。下面是通过SPARQLWrapper,向D2RQ endpoint发送查询“周星驰出演了哪些电影?”。
- 安装SPARQLWrapper
pip install sparqlwrapper
https://github.com/RDFLib/sparqlwrapper
代码如下:
from SPARQLWrapper import SPARQLWrapper, JSON sparql = SPARQLWrapper("http://localhost:2020/sparql") sparql.setQuery(""" PREFIX : <http://www.kg_movie.com#> PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> SELECT ?n WHERE { ?s rdf:type :actor. ?s :actor_actor_chName '周星驰'. ?o :movie_movie_chName ?n } LIMIT 10""") sparql.setReturnFormat(JSON) results = sparql.query().convert() for result in results["results"]["bindings"]: print(result["n"]["value"])
注意:要开启D2R服务器,不然运行代码会出现错误的
结果如下:
参考:
[1] https://zhuanlan.zhihu.com/p/32880610
相关文章推荐
- 知识图谱构建5——Jena 和 Fuseki安装与SPARQL查询
- The science of interaction交互元素与知识构建过程的查询方式
- sparql和elasticsearch构建知识图谱搜索引擎
- ☆☆构建知识图谱,让自己更值钱
- 技术人,为什么需要构建知识图谱
- 技术人,为什么需要构建知识图谱
- Hibernate查询数据的几种方式以及HQL用法及参数的几种使用方法
- 程序员如何构建知识图谱,让自己更值钱?
- neo4j+python知识图谱构建(基于豆瓣TOP250电影)
- 知识图谱技术分享会----有关知识图谱构建的部分关键技术简介及思考
- 网页数据构建知识图谱-数据和方法
- 怎么利用知识图谱构建智能问答系统?
- 知识图谱构建技术综述
- 知识图谱数据构建的“硬骨头”,阿里工程师如何拿下?
- 项目实战:如何构建知识图谱
- 知识图谱构建摸索
- elasticsearch核心知识--42.多搜索条件组合查询,sort以及explain的用法
- KD-tree的原理以及构建与查询操作的python实现
- 007商城项目:商品列表查询-需求分析,以及Spinmvc的访问知识
- 知识图谱学习(四)之neo4j查询2