sparql 查询例子

先说一下sparql可以做什么?

1.可以从半结构化和结构化的数据中提取

2.通过查询未知的关系可以挖掘数据

3.使用单一简单的查询在分散的数据库中执行

4.将RDF数据转化成其他词语


# prefix declarations 前缀声明 
example:
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX owl: <http://www.w3.org/2002/07/owl#>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>
...
# dataset definition 定义数据集可以减少查询范围
FROM ...
# result clause
SELECT  ?p 或者*
# query pattern
WHERE {
    ...
}
# query modifiers
ORDER BY ...
 
1. rdf:type是谓词时可以用a代替
SELECT *  WHERE {  [] a  ?o}    a==rdfs:type   ?o==$o
  select *  where {?s rdfs:subClassOf ?p}
2. SELECT *  WHERE {  [] a ?o 
 filter regex(str(?o) , "Disorder","i")}
  用filter进行过滤 ,regex表示正则表达式,,i表示不区分大小写。网上没有用str,但是我查询不出来,用上str就有结果了
3.可选值
  select ?x
 where {?x rdfs:subClassOf ?y
      Optional{  ?x rdfs:domain ?o}}  option 也可以省略
 
4.SELECT  ?title ?price
  WHERE   { 
        ?x rdfs:subClassOf ?y
      Optional{  ?x rdfs:domain ?o filter(?o<3) }}

      }
 
5.去掉重复部分,像sql一样 加distinct
  SELECT DISTINCT ?name WHERE { ?x rdfs:domain ?name }
6.order by 查询

  SELECT DISTINCT ?name WHERE { ?x rdfs:domain ?name } order by ?name

7.union 两者选一

  select ?x
  where {

             {?x rdfs:subClassOf ?y} 

      union
              {?x rdfs:domain ?o} 

            }   


供自己查阅的,还是 菜鸟一枚,等之后再修改提升

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值