2011-12-02 66 views
4

我想知道是否可以使用sparql查詢來獲取圖形中某些litteral上的語言標記。使用sparql請求獲取xml:lang屬性

例如,我可以有類似的事情:

<skos:prefLabel xml:lang="fr">Bonjour</skos:definition> 
<skos:prefLabel xml:lang="en">Hello</skos:definition> 

,我想有一個與每個標籤設置的結果,它的相應的語言。

回答

5

您可以使用「lang」內置函數,如SPARQL規範(SPARQL 1.1規範中的第17.4.2.6節:http://www.w3.org/TR/sparql11-query/)中所述。因此,您的查詢可能是這樣的:

PREFIX skos: <http://www.w3.org/2004/02/skos/core#> 
SELECT ?x ?label ?language 
    WHERE { ?x skos:prefLabel ?label ; 
      foaf:mbox ?mbox . 
     BIND (lang(?label) AS ?language } 

請注意,以這種方式使用BIND需要SPARQL 1.1

+1

有沒有辦法有此屬性使用SPARQL 1.0嗎? – mab

+0

終於找到了,它會在SPARQL 1.0工作,像 PREFIX SKOS: SELECT DISTINCT標籤(郎(? ?label)AS?lang)WHERE { ?data skos:prefLabel?label } – mab

+3

這實際上也是SPARQL 1.1,只是一種更常用的語法。 –