目录
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
完成。