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} 

            }   


供自己查閱的,還是 菜鳥一枚,等之後再修改提升

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章