SPARQL query的学习
本文章主要是记录SPARQL的学习过程与demo的运行结果,本实践项目基于apache-jena-fuseki,demo的数据库文件为kg-demo-for-movie
1. 查询所有与movieTitle=寒战有关的三元组
PREFIX : <http:
PREFIX rdf: <http:
PREFIX rdfs: <http:
SELECT * WHERE {
?x :movieTitle '寒战'.
?x ?p ?o.
}
查询结果
2. 对1中的结果进行格式化,只显示predicate谓词和object客体
PREFIX : <http:
PREFIX rdf: <http:
PREFIX rdfs: <http:
SELECT ?p ?o WHERE {
?x :movieTitle '寒战'.
?x ?p ?o.
}
查询结果
3. 使用CONCAT把所有电影名和上映时间格式化
PREFIX : <http:
PREFIX rdf: <http:
PREFIX rdfs: <http:
SELECT (CONCAT("movie name: ", ?name, " release: ", ?date)) WHERE {
?x :movieTitle ?name.
?x :movieReleaseDate ?date.
}
查询结果
4. 使用BIND关键字把3中查出来的结果复制给info变量
PREFIX : <http:
PREFIX rdf: <http:
PREFIX rdfs: <http:
SELECT ?info WHERE {
?x :movieTitle ?name.
?x :movieReleaseDate ?date.
BIND (CONCAT("movie name: ", ?name, " release: ", ?date) AS ?info)
}
查询结果
5. 使用CONSTRUCT关键字查询并构建RDF图后返回
PREFIX : <http:
PREFIX rdf: <http:
PREFIX rdfs: <http:
CONSTRUCT {?x :movieTitle ?name} WHERE {
?x :movieTitle ?name.
}
查询结果
6.使用FILTER字段对结果进行过滤
选出以”寒”为开头的电影名字
PREFIX : <http:
PREFIX rdf: <http:
PREFIX rdfs: <http:
SELECT ?name WHERE {
?x :movieTitle ?name.
FILTER regex(?name, "^寒")
}
查询结果
7. 使用OPTIONAL关键字构建多种查询模式
PREFIX : <http:
PREFIX rdf: <http:
PREFIX rdfs: <http:
SELECT ?name ?date WHERE {
?x :movieTitle ?name.
OPTIONAL {?x :movieReleaseDate ?date}
}
上面语句中,optional里面的条件是第二匹配
Original: https://blog.csdn.net/HELLOWORLD2424/article/details/121649518
Author: HELLOWORLD2424
Title: SPARQL一种RRDF查询语言 query的学习笔记
原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/556830/
转载文章受原作者版权保护。转载请注明原作者出处!