2015-05-26 135 views
1

假設我們有一個包含以下3個RDF三元組的數據集。我想使用sparql查詢檢索所有這三個三元組。使用SPARQL查詢查詢RDFs

http://test.com/11/META_C1-INST predicate1  http://test.com/NO_CONTEXT/META_C0059714-INST 
http://test.com/23/META_C1-INST predicate1  http://test.com/NO_CONTEXT/META_C0059714-INST 
http://test.com/43/META_C1-INST predicate1  http://test.com/NO_CONTEXT/META_C0142817-INST 

這裏是我寫的查詢,但我知道這是不對的:

prefix pred:<http://test.com/> 
      select distinct * 
      where {pred:META_C1-INST ?p ?o}; 

怎麼說呢:「尋找與http://test.com/??/的主題,其中??可以像任何東西三元11,23,S23

回答

3

可以轉換成URI一個字符串,然後基於它與開始篩選您需要使用的關鍵詞是STRSTARTS:?

select distinct * 
where{ 
?s ?p ?o 
filter(STRSTARTS(str(?s), "http://test.com/")) 
} 

,或者您可以使用正則表達式的^標誌:

select distinct * 
where{ 
?s ?p ?o 
FILTER regex(str(?s), "^http://test.com/") . 
}