SPARQL一种RRDF查询语言 query的学习笔记

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.

}

查询结果

SPARQL一种RRDF查询语言 query的学习笔记

2. 对1中的结果进行格式化,只显示predicate谓词和object客体

PREFIX : <http:
PREFIX rdf: <http:
PREFIX rdfs: <http:

SELECT ?p ?o WHERE {
?x :movieTitle '寒战'.

?x ?p ?o.

}

查询结果

SPARQL一种RRDF查询语言 query的学习笔记

3. 使用CONCAT把所有电影名和上映时间格式化

PREFIX : <http:
PREFIX rdf: <http:
PREFIX rdfs: <http:

SELECT (CONCAT("movie name: ", ?name, " release: ", ?date)) WHERE {
?x :movieTitle ?name.

?x :movieReleaseDate ?date.

}

查询结果

SPARQL一种RRDF查询语言 query的学习笔记

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)
}

查询结果

SPARQL一种RRDF查询语言 query的学习笔记

5. 使用CONSTRUCT关键字查询并构建RDF图后返回

PREFIX : <http:
PREFIX rdf: <http:
PREFIX rdfs: <http:

CONSTRUCT {?x :movieTitle ?name}  WHERE {
?x :movieTitle ?name.

}

查询结果

SPARQL一种RRDF查询语言 query的学习笔记

6.使用FILTER字段对结果进行过滤

选出以”寒”为开头的电影名字

PREFIX : <http:
PREFIX rdf: <http:
PREFIX rdfs: <http:

SELECT ?name WHERE {
?x :movieTitle ?name.

  FILTER regex(?name, "^寒")
}

查询结果

SPARQL一种RRDF查询语言 query的学习笔记

7. 使用OPTIONAL关键字构建多种查询模式

PREFIX : <http:
PREFIX rdf: <http:
PREFIX rdfs: <http:

SELECT  ?name  ?date WHERE {
?x :movieTitle ?name.

OPTIONAL {?x :movieReleaseDate ?date}
}

上面语句中,optional里面的条件是第二匹配

SPARQL一种RRDF查询语言 query的学习笔记

Original: https://blog.csdn.net/HELLOWORLD2424/article/details/121649518
Author: HELLOWORLD2424
Title: SPARQL一种RRDF查询语言 query的学习笔记

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/556830/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球