簡體   English   中英

如何在SPARQL中分割字符串

[英]How to split a string in SPARQL

我正在嘗試獲取三元組的名稱,以將PREFIX與值分開,並在兩個不同的列中顯示這些拆分的字符串。

例如使用foaf:Person

?prefix | ?name
foaf:   | Person

我看到SUBSTR有一些解決方案,但是我不知道如何在我的情況下使用它。

任何想法 ?

預先感謝您:-)

RDF中沒有前綴URI,這只是表示的概念,而不是數據的一部分。 通過簡單的SPARQL查詢得到的將是具有完整URI的資源,即對於您的示例http://xmlns.com/foaf/0.1/Person 您已經發現,通過字符串函數可以執行的操作是按名稱空間和本地名稱進行拆分。

如果您確實希望有一個前綴URI,則首先需要一個前綴映射,例如foaf -> http://xmlns.com/foaf/0.1/ 然后,您可以執行以下操作:

PREFIX foaf: <http://xmlns.com/foaf/0.1/>
SELECT ?prefixedName 
       (strbefore(?prefixedName,":") as ?prefix) 
       (strafter(?prefixedName,":") as ?name) {

 # dummy value
 VALUES ?uri {<http://xmlns.com/foaf/0.1/Person> }

 # get a prefixed name of the URI as string literal
 BIND(replace(str(?uri), str(foaf:), "foaf:") as ?prefixedName)
}

輸出:

+--------------+--------+--------+
| prefixedName | prefix |  name  |
+--------------+--------+--------+
| foaf:Person  | foaf   | Person |
+--------------+--------+--------+

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM