四种查询格式

SELECT
使用该格式结果直接返回所定义变量和它们绑定的数据,和SQL一样,SELECT *用于选取所有的变量

CONSTRUCT
返回由图形模板中一个指定单一的RDF图,通过在解决方案序列中获取每个查询解决方案,替换图形模板的变量,然后合成RDF图(见基础学习(一)中末尾的例子)

ASK
ASK返回的是yes或者no,如果对应的查询有结果的话,结果输出yes
如果对应的查询没有结果则返回no

DESCRIBE
该模式返回包含有关资源的RDF数据的单个结果RDF图
该DESCRIBE表单获取解决方案中标识的每个资源以及IRI直接命名的任何资源,并通过任何可以用的信息的“描述”来组装单个RDF图,同理,DESCRIBE *是查询所有变量的缩写

数据类型

类型文字值((typed literals)

xsd:integer
xsd:decimal
xsd:float
xsd:double
xsd:string
xsd:boolean
xsd:dateTime

Filter函数中的逻辑关系与运算符

Filter作为一个过滤器函数也有 ||&&两种运算符
其中有三种对应的值,T(true),F(false)和E(error)
对应关系如下(来自官方文档)


A	B	A || B	A && B
T	T	   T	  T
T	F	   T	  F
F	T	   T	  F
F	F	   F	  F
T	E	   T	  E
E	T	   T	  E
F	E	   E	  F
E	F	   E	  F
E	E	   E	  E  

bound函数

如果函数中的变量绑定到值(???)
个人理解:意思应该是如果匹配中含有该类型变量,则视为绑定成功
返回true,否则返回false,若匹配带有NaN或者INF类型的的被视为绑定成功
example:

data:

@prefix foaf:        <http://xmlns.com/foaf/0.1/> .
@prefix dc:          <http://purl.org/dc/elements/1.1/> .
@prefix xsd:          <http://www.w3.org/2001/XMLSchema#> .

_:a  foaf:givenName  "Alice".

_:b  foaf:givenName  "Bob" .
_:b  dc:date         "2005-04-04T04:04:04Z"^^xsd:dateTime  
  

查询语句:

PREFIX foaf: <http://xmlns.com/foaf/0.1/>
PREFIX dc:   <http://purl.org/dc/elements/1.1/>
PREFIX xsd:   <http://www.w3.org/2001/XMLSchema#>
SELECT ?name
 WHERE { ?x foaf:givenName  ?givenName .
         OPTIONAL { ?x dc:date ?date } .
         FILTER ( bound(?date) ) }  

结果:

givenName
"Bob"  

可以看出,结果仅返回了带有date值得的Bob,另外一个例子中使用的是!bound,与改例子相反,匹配的是不含date类型的匹配,因此结果为"Alice"

isIRI 函数

若果该函数中参数为一个合法IRI,那么返回true即匹配,否则不匹配
(用在Filter函数中作为过滤条件)

isBlank函数

如果函数参数是一个空白节点,返回true,否则返回false
同样用在Filter中作为过滤条件

isLiteral

若函数参数是一个字符串,返回true,否则返回false
example:

_:a  foaf:name       "Alice".
_:a  foaf:mbox       <mailto:alice@work.example> .

_:b  foaf:name       "Bob" .
_:b  foaf:mbox       "bob@work.example" .

Alice所含有的mbox是一个IRI,Bob所含有的mbox是一个字符串

str函数

个人理解:就是将相应的IRI转化为字符串进行处理
example:
在对IRI进行筛选时这个函数相当有用
regex(str(?mbox), "@work.example")
作用是筛选出带有"@work.example"的IRI,所以要将IRI转换为字符串处理

SPARQL官方文档:https://www.w3.org/TR/rdf-sparql-query/

Q.E.D.

知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议