【知识图谱】05数据查询(使用SPARQL)

目录

启动SPARQL服务器

数据查询

1、查询页面

2、查询电影的类型:

3、查询演员演过哪些电影

4、查询电影有哪些演员参演

5、单一条件查询


SPARQL学习教程请参考这篇文章:

https://blog.csdn.net/u013007703/article/details/94666512

-------------------------

启动SPARQL服务器

在d2rq文件夹下,使用如下命令启动服务器:

C:\Program Files\d2rq-0.8.1>d2r-server.bat kg_movie_map.ttl

可以看到,服务器启动的web端口是本地的2020端口:

在浏览器输入localhost:2020即可。

数据查询

1、查询页面

主页面点击红框部分进入查询页面。

2、查询电影的类型:

问号表示变量,问号后的字符串表示变量名称,这里的?s , ?kind, ?out都是变量名称.

第一个行表示,主语?s为新变量,关系 为 :movie_chName(movie_chName是movie的数据属性,moive_chName我们设计时,其主语类是movie类,值域是string) ,因此我们给出具体值为 '审死官'的字符串

第二行表示,主语是 审死官,这里用?s表示的,等同第一行的?s值, (:hasGenre是movie -> genre的映射,是对象属性,这个就对应了我们在protege中的设计和d2rq转化数据库修改ttl文件的对象属性了),将查询的值,放到 宾语变量 ?kind中

第三行解释,由于我们设计的hasGenre映射类型是genre,因此?kind是genre类型数据,:genre_name 表示查询这个字段的数据,值放到宾语 ?out 中,由于:genre_name是中文,所以点击go输出了结果.

3、查询演员演过哪些电影

不用过多解释了,效果图如下:

4、查询电影有哪些演员参演

不仅仅可以通过主语来通过关系搜索赋值宾语,也可以指定宾语通过关系反查赋值主语,很好理解,毕竟数据是现成的,存在的,不会让机器凭空想象,以下举了个例子,通过第一行赋值的?movie作为第二行的宾语,通过:hasActedIn关系反查赋值主语?actor,然后再输出其中文名,效果如下图:

5、单一条件查询

如下图,也可以仅仅查询有哪些类型,并输出值

3、(可选)集成到代码

安装python库:

pip install sparqlwrapper

这里先不做详细解释,感兴趣可以直接看github案例:

github地址:

https://github.com/RDFLib/sparqlwrapper

完成。

  • 5
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值