apohllo.pl
więcej niż strona domowa...
 

Język w SPARQL

Moja przygoda z SPARQL zacząłe się od DBpedia.org – sformalizowanej wersji Wikipedii. Chciałem zrobić coś naprawdę prostego – wydobyć wszystkie pojęcia, która miałyby określoną wartość atrybuty rdfs:label. Szybko jednak okazało się, że proste zapytanie, które powinno zwrócić obiekty o etykiecie ‘Berlin’:

SELECT * WHERE {
 ?x rdfs:label "Berlin" 
}

nie daje żadnych sensownych rezultatów. Domyślałem się, że problem leży w tym, że predykat rdfs:label może posiadać wiele wartości, dla wielu języków wykorzystywanych w Wikipedii. Niestety znalezienie odpowiedzi na pytanie, jak określić język dla atrybuty nie było całkowicie banalne. Chociaż informacja ta zawarta jest w opisie SPARQL, na stronach w3.org niestety uszła mojej uwadze w trakcie pobieżnego czytania.

Dopiero dalsze googlowanie przywiodło mnie do następującego rozwiązania:

SELECT * WHERE {
 ?x rdfs:label "Berlin"@en
}

Określenie języka poprzez dodanie za łańcuchem znaków małpy oraz jego skrótu, dało pożądany rezultat, tzn. zwróciło wszystkie obiekty, których etykieta w języku angielskim to “Berlin”. Ku mojemu zdziwieniu, rezultatów jest wiele, o czy można przekonać się samemu.

| Opublikowano 19:10 14-11-2008. Ostatnia modyfikacja 11:39 22-05-2010 |
comments powered by Disqus