Archiwa tagu: Linked Data

Różnica pomiędzy FROM i FROM NAMED w języku SPARQL oraz analogiczne zapytania w SeRQL

W projekcie SYNAT intensywnie stosujemy technologie semantic web (po polsku czasem semantyczny Internet). Wykorzystujemy repozytorium RDF (OWLIM) do składowania dużych ilości danych. Do odpytywania repozytorium stosujemy języki SPARQL i SeRQL. Pierwszy z nich jest uznanym standardem, drugi (stworzony przez firmę Aduda, producenta repozytorium Sesame) według części z nas jest o wiele wygodniejszy w użyciu.

W ubiegłym postanowiliśmy, że niezależnie od tego, jako często stosujemy SPARQL, należałoby w końcu zrozumieć różnicę pomiędzy klauzulami FROM i FROM NAMED. Okazało się, że dotarcie do wiarygodnego i zrozumiałego źródła wcale nie jest takie proste, dlatego zamieszczamy ten wpis (oparty o wpis na prywatnym blogu osoby z zespołu).

Wydaje się, że największy problem brzmi w samej nazwie. Zarówno FROM jak i FROM NAMED operuja na grafach nazwanych, co z pewnością ma związek z zamieszaniem wokół tych słów kluczowych. Poniżej znajduje się krótka sekcja pytań i odpowiedzi, która powinna wyjaśnić sytuację.

Jeśli zapytanie nie zawiera FROM ani FROM NAMED, co właściwie jest odpytywane?
Odpytywany jest graf aktywny. Wbrew niektórym sugestiom, nie musi on mieć nic wspólnego z grafem domyślnym (ang. default graph). Przykładowo w OWLIM graf aktywny obejmuje całą zawartość repozytorium.

Przykład (ze specyfikacji SPARQL):

PREFIX foaf: <http://xmlns.com/foaf/0.1/>
SELECT ?nameX ?nameY ?nickY
WHERE
  { ?x foaf:knows ?y ;
       foaf:name ?nameX .
    ?y foaf:name ?nameY .
    OPTIONAL { ?y foaf:nick ?nickY }
  }

Co to jest graf aktywny?
Jest to graf (lub zbiór grafów) odpytywany, gdy nie zostały podane klauzule FROM i FROM NAMED. Może to być graf domyślny, może to być cała zawartość repozytorium… albo coś zupełnie innego, w zależności od implementacji.

Co to jest graf domyślny?
Graf domyślny to graf bez nazwy, lub inaczej – bez kontekstu. Jest to graf zbudowany z trójek RDF, a nie z czwórek.

Jak efekt ma klauzula FROM?
Klauzule FROM ograniczają zbiór odpytywanych grafów. Szablon przedstawiony w zapytaniu zostanie dopasowany tylko do grafu (lub grafów) zdefiniowanego w klauzuli (klauzulach) FROM.

Przykład. Uwzględnione zostaną jedynie trójki z grafu <http://example.org/foaf/aliceFoaf>.

PREFIX foaf: &lt;http://xmlns.com/foaf/0.1/glt;
SELECT  ?name
FROM    &lt;http://example.org/foaf/aliceFoaf&gt;
WHERE   { ?x foaf:name ?name }

Jaki efekt ma klauzula FROM NAMED?
Sprawia ona, że do każdej zmiennej reprezentującej w zapytaniu graf nazwany dopasowane zostaną tylko grafy podane w klazulach FROM NAMED.

Przykład (łączący FROM i FROM NAMED). Zmienna ?g zostanie dopasowana albo do grafu <http://example.org/alice>, albo do <http://example.org/bob>, ale nie do żadnego innego grafu nazwanego.

PREFIX foaf: &lt;http://xmlns.com/foaf/0.1/&gt;
PREFIX dc: &lt;http://purl.org/dc/elements/1.1/&gt;

SELECT ?who ?g ?mbox
FROM &lt;http://example.org/dft.ttl&gt;
FROM NAMED &lt;http://example.org/alice&gt;
FROM NAMED &lt;http://example.org/bob&gt;
WHERE
{
   ?g dc:publisher ?who .
   GRAPH ?g { ?x foaf:mbox ?mbox }
}
<strong>Czy można łączyć FROM i FROM NAMED?</strong>
Tak, jak widać powyżej. W przykładzie trójka nazwana musi należeć do jednego z grafów wymienionych w klauzuli FROM NAMED, a <span style="font-style: italic;">luźna</span> trójka zostanie dopasowana do trójki z grafu podanego w klauzuli FROM.

<strong>A co, jeśli jest tylko jedna klauzula FROM NAMED?</strong>
Wówczas poniższe dwa zapytania zwrócą dokładnie ten sam wynik:
PREFIX foaf: &lt;http://xmlns.com/foaf/0.1/&gt;
PREFIX dc: &lt;http://purl.org/dc/elements/1.1/&gt;

SELECT ?who ?mbox
FROM &lt;http://example.org/dft.ttl&gt;
FROM NAMED &lt;http://example.org/alice&gt;
WHERE
{
   ?g dc:publisher ?who .
   GRAPH ?g { ?x foaf:mbox ?mbox }
}

jest równoważne z:

PREFIX foaf: &lt;http://xmlns.com/foaf/0.1/&gt;
PREFIX dc: &lt;http://purl.org/dc/elements/1.1/&gt;

SELECT ?who ?mbox
FROM &lt;http://example.org/dft.ttl&gt;
WHERE
{
   ?g dc:publisher ?who .
   GRAPH &lt;http://example.org/alice&gt; { ?x foaf:mbox ?mbox }
}

Czy w SeRQL jest łatwiej?
Tak. Funkcjonalność odpowiadająca FROM i FROM NAMED jest realizowana przez klauzulę FROM CONTEXT. Przykład (ze specyfikacji SeRQL ):

SELECT name, mbox
FROM CONTEXT <http://example.org/context/graph2>
     {x} foaf:name {name};
         foaf:mbox {mbox}
USING NAMESPACE
foaf = <http://xmlns.com/foaf/0.1/>

Dublin Core i jego małe tajemnice

Polecamy lekturę serii wpisów na blogu „The Reinvigorated Programmer” dotyczące sposobów wyrażania tych samych danych bibliograficznych w różnych standardach. Autor bloga, programista pracujący przy bibliotecznej metawyszukiwarce, wychodząc od tradycyjnych kart katalogowych, rozważa w jaki sposób można opisać artykuł z czasopisma naukowego. Przymierzając się w bardzo praktyczny sposób do kolejnych uznanych standardów, bloger bezlitośnie odkrywa ich słabe strony, związane zazwyczaj z różnymi poziomami interoperacyjności. Cała przygoda opisana jest w trzech odcinkach:

W kontekście polskich bibliotek cyfrowych szczególnie interesująca jest część druga cyklu, skupiająca się na standardach Dublin Core i Dublin Core Terms i w dowcipny sposób pokazująca ich niedociągnięcia.

Przy tej okazji autor zwraca uwagę na „Dumb-down Principle” – powiązaną z Dublin Core Terms zasadę, wg której kwalifikatory mają służyć wyłącznie do zawężania semantycznego zakresu nadrzędnego elementu schematu, a nie powodować jego rozszerzanie. Dodając własne kwalifikatory do schematu Dublin Core powinniśmy zatem robić to w taki sposób, by po ich usunięciu i przeniesieniu skojarzonych z nimi wartości do elementów nadrzędnych, interpretacja metadanych nadal była możliwa, a powstały w ten sposób zubożony opis obiektu nadawał się do dalszego wykorzystania. Z zasadą tą niezgodne jest na przykład, często praktykowane w polskich bibliotekach cyfrowych, dodawanie do elementu „Wydawca” kwalifikatora „Miejsce wydania”.

Poza lekturą powyższych wpisów, polecamy również dwa ciekawe dokumenty związane z wykorzystaniem koncepcji połączonych danych (Linked Data) w bibliotekach (tradycyjnych i cyfrowych):

Pierwszy z tych artykułów zawiera sporo przydatnych odnośników do narzędzi, systemów i standardów powiązanych z Linked Data i bibliotekami.

Zatwierdzenie nowego modelu danych Europeany

Nowy model danych Europeany (Europeana Data Model – EDM) został zatwierdzony przez ekspertów bibliotek, muzeów, archiwów oraz zbiorów audio-wizualnych. Standard ten to duży krok w kierunku reprezentacji danych agregowanych w Europeanie przy pomocy mechanizmów sieci semantycznej. W przyszłości da on użytkownikom Europeany nowe możliwośći odkrywania oraz przeglądania zasobów europejskich instytucji pamięci. Więcej informacji dostępnych jest na blogu Europeana Group.

Uwolnij swoje dane – teraz!

O idei otwartych, połączonych danych (ang. Open Linked Data) wspominaliśmy już wcześniej. Niedawno biblioteka ośrodka badawczego CERN, chcąc realizować tę ideę w praktyce, udostępniła całą swoją bazę katalogową jako pojednyczy plik w formacie MARC-XML. Ponadto trwają prace nad udostępnieniem tych danych w formacie RDF.

Dane z CERN zostaną wykorzystane m.in. przez Open Library Project oraz biblios.net, który udostępni te dane poprzez protokoły Z39.50, SRU oraz OAI-PMH. Plik z danymi dostępny na licencji Creative Commons CC0 („Brak praw autorskich”) można pobrać ze stron biblioteki CERN.

Nocie prasowej opisującej to wydarzenie towarzyszy krótki film reklamowy – zachęcamy do obejrzenia:

Europeana publikuje raport White Paper #1

1 czerwca 2010 Europeana poinformowała o wydaniu raportu „White Paper 1 Knowledge = Information in Context: on the Importance of Semantic Contextualisation in Europeana”. Pierwszy raport Europeany zwraca uwagę na kluczową rolę powiązanych danych (ang. linked data). Będą one znacząco wpływać na rozwój Europeany jak również będą wspomagać obywateli Europy w tworzeniu powiązań pomiędzy istniejącą wiedzą w celu osiągnięcia postępu kulturalnego i naukowego.

Powiązane dane dają maszynom możliwość tworzenia relacji i umieszczania terminów wyszukiwawczych w kontekście. Bez tego Europeana byłaby widziana jako prosta kolekcja obiektów cyfrowych. Z powiązanymi danymi potencjał jest dużo większy, wyjaśnia autor raportu, profesor Stefan Gradmann.

Profesor Gradmann na przykładzie słowa „Paris” pokazał jak wyniki wyszukiwania mogą prowadzić do przedmiotów paryskiego Luwru, gdzie można również obejrzeć obrazy z portretem Parysa, greckiego księcia który uprowadził Helenę Trojańską. Stamtąd linki prowadzą do kolejnych tematów powiązanych z mitologicznym Jabłkiem Niezgody a to z kolei do zakazanego jabłka zjedzonego przez Adama i Ewę.

Przedstawiony przykład pokazuje jak powiązane dane pozwolą Europeanie proponować połączenia pomiędzy milionami obiektów. Te połączenia mogą być później wykorzystane do tworzenia nowych pomysłów i wiedzy na skalę jaka do tej pory nie była możliwa.

Pełny tekst raportu można znaleźć na stronach Europeany.

TED, TEDx i otwarte, połączone dane

TED (akronim Technology, Entertainment, Design) to cykliczne spotkania, w ramach których zaproszone osoby mają 18 minut na przedstawienie swojej idei związanej ze zmienianiem świata na lepsze i uznanej przez organizatorów za wartą jak najszerszego propagowania. Spotkania TED odbywają się raz do roku w stanie California w USA, a nagrania wystąpień dostępne są na stronach TED. Ze spotkaniami TED związana jest też inicjatywa TEDx, w ramach której analogiczne imprezy organizowane są na całym świecie. W tym roku po raz pierwszy w Polsce zorganizowane zostało spotkanie TEDxWarsaw. Miało ono miejsce 5 marca, a od wczoraj dostępne są nagrania wideo z warszawskiej edycji TEDx. Na 28 maja br. zaplanowano spotkanie TEDxPoznań.

W lutym br. w ramach TEDUniversity miał miejsce 5 minutowy „wykład” Time Bernersa-Lee na temat „otwartych danych” (ang. open data). Wykład ten w bardzo ciekawy sposób ilustruje przykładami jak istotne jest publikowanie w Internecie danych źródłowych, a nie tylko przygotowanych na ich podstawie opracowań czy publikacji naukowych. Wykład jest uzupełnieniem wystąpienia, które Tim Berners-Lee miał na konferencji TED2009 i w ramach którego wzywał właśnie do jak najszerszego udostępniania danych źródłowych w sposób pozwalający na ich zautomatyzowane ponowne użycie (standard Linked Data). Zachęcamy do obejrzenia obydwóch wykładów:

Tego typu podejście jest również niezwykle ważnym kierunkiem rozwoju bibliotek cyfrowych. Obecnie w projektach takich jak Europeana na dużą skalę realizowane jest zautomatyzowane ponowne wykorzystanie metadanych opisujących obiekty cyfrowe rozproszone w wielu bibliotekach cyfrowych. Następnym krokiem w rozwoju będzie zapewne silniejsza semantyczna integracja tych metadanych, tak jak to ma np. miejsce w „Laboratorium Myśli”. Jest to prototypowy serwis, pozwalający na zaawansowane przeszukiwanie i eksplorację pewnego wycinka informacji dostępnych w Europeanie, którego podstawą działania jest właśnie zautomatyzowana semantyczna integracja metadanych. Z kolei w ramach projektu DRIVER II mają miejsce prace nad tzw. „rozszerzonymi publikacjami” (ang. enhanced publications), czyli złożonymi obiektami cyfrowymi łączącymi publikacje naukowe z danymi źródłowymi wykorzystywanymi w tych publikacjach. Przykłady prototypowych rozszerzonych publikacji można znaleźć na stronach tego projektu.