SPARQL中常见的关键字含义(PREFIX,FILTER,OPTIONAL等)

SPARQL 是一种查询语言,作用于RDF型的数据库,与 SQL 比较相似。RDF的英语全称为Resource Description Framework,中文名称为资源描述框架。RDF是一种描述数据文件储存的数据模型,该数据模型通常描述由三个部分组成的事实,被称为三元组(triples)。三元组由主语(subject)、谓语(predicate)和宾语(object)组成。

之前我对SPARQL也是零零星星了解一点,今天特地将其常见的关键字和使用方法进行了整理,以后再有记得不太清的地方,直接点开这篇文章就好啦!!

放一下官网链接,有需要的伙伴自取哦~

官网教程Apache Jena – SPARQL Tutorial – Data Formats

  1. 关键字介绍

(1) PREFIX

有一种速记机制用于使用前缀编写长 URI。所以,长URI可以看做是由前缀机制 – URI 这两个部分组成的。

SPARQL中常见的关键字含义(PREFIX,FILTER,OPTIONAL等)

如上图所示:

前缀其实就是给

(2) FILTER

filter 关键字主要是用来过滤掉不符合条件的数据。filter的使用主要有两种情况:

① 字符串匹配

FILTER regex(?x, “pattern” [, “flags”])

SPARQL中常见的关键字含义(PREFIX,FILTER,OPTIONAL等)

flags 参数是可选的。标志”i”表示不区分大小写的模式匹配已完成。

查询结果:

SPARQL中常见的关键字含义(PREFIX,FILTER,OPTIONAL等)

② 测试值

这一步主要是对变量的值进行筛选。

例:查找 24 岁以上人员的姓名 :

SPARQL中常见的关键字含义(PREFIX,FILTER,OPTIONAL等)

(3) OPTIONAL

optional可以将部分条件设置为可选的,其主要是用来扩展在查询解决方案中找到的信息。查询时,非可选的条件必须满足。

例: 获取一个人的姓名以及他们的年龄(如果该信息可用)。

SPARQL中常见的关键字含义(PREFIX,FILTER,OPTIONAL等)

查询结果:

SPARQL中常见的关键字含义(PREFIX,FILTER,OPTIONAL等)

(4) DISTINCT

SELECT 结果表单可以采用 DISTINCT 修饰符,该修饰符可确保返回的两个解不相同,相当于给答案进行去重。

(5) ORDER BY

SPARQL 解决方案按表达式(包括自定义函数)进行排序,默认是升序。其中,DESC 表示降序。

(6) LIMIT

限制一条查询能返回的答案的数量。 LIMIT 1 : 只返回一个符合约束条件的答案。

DINSTINCT,ORDER BY 和 LIMIT 关键字的使用如下所示:

PREFIX ns:
SELECT DISTINCT ?x
WHERE {
FILTER (?x != ns:m.0n2bh)
FILTER (!isLiteral(?x)OR lang(?x) = ” OR langMatches(lang(?x), ‘en’))
ns:m.0n2bh ns:tv.tv_program.regular_cast ?y .
?y ns:tv.regular_tv_appearance.seasons ?x .
?y ns:tv.regular_tv_appearance.actor ns:m.01gc7h .
?x ns:tv.tv_series_season.to ?sk0 .
}
ORDER BY DESC(xsd:datetime(?sk0))
LIMIT 1

注:

!isLiteral(?x) :变量x不是文本

lang(?x):x的语言是空字符串

langMatches(lang(?x), ‘en’):x的语言是英文(en)

(7) UNION

UNION表示”或”关系,要求条件1,2当中 至少满足其中一个条件。

(8) OFFSET

OFFSET可以使结果在指定的数字后开始。例,OFFSET 5 表示 掠过前四条,从第五条开始。

PREFIX ns:
SELECT DISTINCT ?x
WHERE {
FILTER (?x != ns:m.02__x)
FILTER (!isLiteral(?x) OR lang(?x) = ” OR langMatches(lang(?x), ‘en’))
ns:m.02__x ns:sports.sports_team.championships ?x .
?x ns:time.event.start_date ?sk0 .
}
ORDER BY xsd:datetime(?sk0)
LIMIT 1
OFFSET 5

2. 生成结果集的四种方式

SELECT:返回结果表。

CONSTRUCT:基于查询中的模板返回 RDF 图。

DESCRIBE:根据查询处理器配置为返回的内容返回 RDF 图。

ASK:询问布尔查询。

注:SELECT 窗体直接返回解决方案表作为结果集,而 DESCRIBE 和 CONSTRUCT 使用匹配结果来构建 RDF 图。

  1. Tips

查询中每个三元组都以 “.” 结尾(最后一个之后的点可以省略)。

SPARQL中常见的关键字含义(PREFIX,FILTER,OPTIONAL等)

通常我们可以用SPARQL在web端访问知识图谱,查询符合约束条件的三元组。其次,我们在学习知识图谱问答(KBQA)时,数据集中的每个问题一般都有对应的一个字段”Sparql”。此外,有些数据集,比如GrailQA,还会根据需要将SPARQL 转化为S-expression,所以看懂SPARQL 是很有必要的。最后,希望我们都能掌握SPARQL !!

Original: https://blog.csdn.net/lft_happiness/article/details/126324791
Author: Toady 元气满满
Title: SPARQL中常见的关键字含义(PREFIX,FILTER,OPTIONAL等)

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

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

(0)

大家都在看

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