SPARQL笔记


1. 简介

SPARQL(SPARQL Protocol and RDF Query Language),是为RDF开发的一种查询语言和数据获取协议。

对于从数据库读取数据的查询,SPARQL语言为不同目的指定了四种不同的查询变体。

  • SELECT查询:用于从SPARQL端点提取原始值,结果以表格格式返回。

  • CONSTRUCT查询:用于从SPARQL端点提取信息并将结果转换为有效的RDF。

  • ASK查询:用于为SPARQL端点上的查询提供简单的True / False结果。

  • DESCRIBE查询:用于从SPARQL端点提取RDF图,其内容留给端点根据维护者认为有用的信息来决定。

这些查询表单中的每一个都使用WHERE块来限制查询,但是,在DESCRIBE查询的情况下,WHERE是可选的。

2. 语法

2.1 Simple example

SPARQL中:

  • 变量的前缀是?

  • 用类似N3的语法表达三元组

  • 查询返回一个变量的绑定结果集

_:a foaf:name “Johnny Lee Outlaw” .
_:a foaf:mbox <mailto:jlow@example.com> .
_:b foaf:name “Peter Goodguy” .
_:b foaf:mbox <mailto:peter@example.org> .
_:c foaf:mbox <mailto:carol@example.org> .

PREFIX foaf: <http://xmlns.com/foaf/0.1/>
SELECT ?name ?mbox
WHERE {
    ?x foaf:name ?name .
    ?x foaf:mbox ?mbox .
}
?name ?mbox
“Johnny Lee Outlaw” mailto:jlow@example.com
“Peter Goodguy” mailto:peter@example.org

2.2 约束条件

SPARQL中,限制条件可以应用于变量。

SELECT ?title
WHERE {
  ?x dc:title ?title .
  FILTER regex(?title, "^SPARQL")  
}

SELECT ?title ?price
WHERE {
  ?x ns:price ?price .
  FILTER (?price < 30.5)
  ?x dc:title ?title . 
}

2.3 Group Graph Patterns

Group Graph Patterns是用{ }括起来的一组模式,决定了FILTER操作符(和其他操作符)的作用范围。

2.3.1 Optional Graph Patterns

OPTIONAL允许我们说明,为了产生绑定,不需要匹配Group Graph Patterns。

_:a rdf:type foaf:Person .
_:a foaf:name “Alice” .
_:a foaf:mbox <mailto:alice@example.com> .
_:a foaf:mbox <mailto:alice@work.example.com> .
_:b rdf:type foaf:Person .
_:b foaf:name “Bob” .

SELECT ?name ?mbox
WHERE {
  ?x  foaf:name  ?name .
  OPTIONAL {
    ?x  foaf:mbox  ?mbox .
  }
}
?name ?mbox
“Alice” mailto:alice@example.com
“Alice” mailto:alice@work.example.com
“Bob”

2.3.2 Union Graph Patterns

UNION有效地给我们提供了一个二择一的查询:要么匹配这个,要么匹配那个。


                
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值