笔记 OPENHPI语义网技术 Week3

公开课请见:https://openhpi.de/

3-1 如何查询RDF(S)? SPARQL part 1

SPARQL是SPARQL Protocol and RDF Query Language的递归缩写
是一个
  1. 以遍历的方式来检索RDF图的检索语言
    SPARQL Query Language Specification
  2. 通过http来使用SPARQL的协议层
    SPARQL Protocol for RDF Specification
  3. SPARQL检索结果的XML输出格式标准
    SPARQL Query XML Results Format

SPARQL的变量是与RDF 术语绑定的:

SPARQL基于的是
  • RDF Turtle序列化
  • basic graph pattern matching基础的图式匹配
每一个图式Graph Pattern或者Triple Pattern都是一个RDF三元组,其主谓宾中,任何一个或多个都可以是任意的。
示例:
1查找国家、国家的首都以及人口
2给定一个FOAF URI,查找这个人的名字,以及她的朋友
SPARQL基础检索格式:
返回结果:
检索格式:
  • WHERE 定义了特定的匹配图式
  • PREFIX 定义了一个或多个命名空间
  • FROM   定义了一个或多个来源RDF图
  • BASE    定义 了一个URI base

一些对结果的限定:

ORDER BY DESC (?manager) 结果排序
LIMIT 10 限定结果
OFFSET 10 从第几个开始
BNodes的检索
前缀查询网站:prefix.cc

3-2 SPARQL part 2

用FILTER实现对结果的限定
运算符 类型 和结果类型
!A xsd:boolean xsd:boolean
+A numeric numeric
-a numeric numeric
BOUND(A) variable xsd:boolean
isURI(A) RDF term xsd:boolean
isBLANK(A) RDF term xsd:boolean
isLITERAL(A) RDF term xsd:boolean
STR(A) literal/URI simple literal
LANG(A) literal simple literal
DATATYPE(A) literal URI
 
更多运算符
&& || for xsd:boolean
=, !=, <, >, <=, >= for xsd:dateTime, xsd:string xsd:boolean和数字型
=, != for其他类型
算数运算符 + - × /
REGEX(String, Pattern)或REGEX(String, Pattern, Flags)
sameTERM(A,B)
langMATCHES(A,B)
逻辑运算结果
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
 
A !A
T F
F T
E E
 
利用OPTIONAL 选择额外的元素
利用UNION 连接逻辑上不连续的检索
检索有名称的图
图定义Default Graph

检索 

3-3 SPARQL part 3

检索结果格式的定义

在每个binding元素内,都有一个head元素中的变量与结果绑定

 
除了SELECT检索以外SPARQL允许这几种检索:
  • ASK 查找是否有一个结果
    返回真或假
    以XML或JSON方式返回
  • CONSTRUCT 依照模板创建一个RDF图
    模板依据检索模式中的变量创建
    结果为RDF/XML或JSON
  • DESCRIBE返回一个有关资源的数据构成的RDF图
    以RDF/XML或Turtle格式返回
SPARQL Protocol 是通过http协议进行SPARQL查询和响应查询的方式
一个SPARQL URI包括三个部分:
  1. 一个SPARQL终端的URL
  2. 需要检索的图
  3. 检索字符串
示例:
一些数据终端

3-4 SPARQL1.1的新内容

Assignment 赋值
Aggregate Function 聚合功能
以及SUM AVG MIN MAX SAMPLE GROUP_CONCAT
 
Subqueries检索嵌套,子检索
Negation协商

property path:

  • alternatives
    dc:title|rdfs:label
  • sequence
    foaf:knows/foaf:knows/foaf:name
  • inverse property paths
    <mailto:alice@example>^foaf:mbox ?x
  • inverse path sequences
    ?x foaf:knows/^foaf:knows ?y
  • arbitrary length match
    ?x foaf:knows+/foaf:name ?name
  • negated property paths
    ?x !(rdf:type|^rdf:type) ?y 

3-5 如何存储RDF三元组 

Giant Triple Storage
giant triple storage
Property Tables
property table
Vertically Partitioned Tables
vertically partitioned tableHexastorehexastore
一些Triple Store
....W3C有一个列表http://www.w3.org/wiki/LargeTripleStores

3-6 RDF(S)的不足

子类关系不能表达disjunctive的类、子类关系
 
无法包含特殊的属性限制:
  • Transitivity 
  • Uniqueness
  • Inversiveness

Leave a Reply

Your email address will not be published. Required fields are marked *