Wpisy otagowane ‘triple’

Wielki Zderzacz Wiedzy – Large Knowledge Collider

piątek, 12 Luty 2010

Niedawno miałem okazję odwiedzić teren największego obecnie eksperymentu naukowego na świecie czyli CERN. Miejsce osławione ostatnio z powodu uruchomienia Wielkiego Zderzacza Hadronów (LHC – Large Hadron Collider).

Tymczasem w obszarze Semantic Web działa Wielki Zderzacz Wiedzy zwany LarKC (czyt. lark co po angielsku znaczy ’skowronek’ lub ‘żart’, ‘zabawa’) od słów Large Knowledge Collider.

W porównaniu ze swoim ‘atomowym’ kuzynem, który dotychczas kosztował ok. 9 miliardów Euro, LarKC to projekt uruchomiony z budżetem ok 10 mln Euro. Ważna jest lista partnerów, którzy wspierają ten projekt. Wśród nich liczne ośrodki naukowe głównie z Europy, Siemens i Światowa Organizacja Zdrowia (WHO). Więcej info o ludziach i organizacjach stojących za projektem  tutaj.

W skrócie cele przedsięwzięcia można określić następująco: zaprojektowanie i uruchomienie framework’a wnioskującego wykorzystującego nie tylko  reguły logiczne i używającego nie tylko  precyzyjnych i kompletnych danych, ale również  danych niekompletnych  korzystając z metod wywodzących się z kognitywistyki, ekonomii itp (postulat “pluggability”). Ponadto, od strony infrastruktury, rozwiązanie ma być rozproszone na maszyny działające w klastrach (postulat “distributed”) w sposób podobny jakiego użyto w projekcie seti@home. Bardzo istotnym celem jest uzyskanie w ten sposób wydajnego i skalowalnego rozwiązania wnioskującego na potrzeby Semantic Web.

Jednym z ciekawych projektów powiązanych z LarKC jest Linked Life Data.  Jest to potężna baza wiedzy zawierająca obecnie około 4 miliardy trójek z dziedziny nauk biologicznych i medycznych. Posiada ona interfejs pełnotekstowy oraz SPARQLowy do przeszukiwania zasobów.

Semantyczna “Trójca” ;), czyli jak reprezentować wiedzę

niedziela, 11 Październik 2009

Każdy kto zetknął się lub zetknie się z koncepcją Semantic Web dość szybko musi zmierzyć się z pojęciem “trójki” (ang. triple) oraz “triplestore” czyli składu trójek. O co chodzi? To pojęcie jest nierozerwalnie związane z tematem, o którym pisałem w poprzednim poście, czyli z ontologiami. Ale po kolei.

Semantyczna trójka to zbiór trzech elementów czyli podmiotu (ang. subject), orzeczenia (ang. predicate) oraz dopełnienia (ang. object). To terminologia znana pewnie każdemu absolwentowi gimnazjum, a może nawet podstawówki. Znana z ćwiczeń wykonywanych głównie w ramach lekcji języka polskiego, a nazywanych “logicznym rozbiorem zdania”.  Co prawda części zdania jest więcej niż podane trzy (np. okolicznik), ale nas interesują te właśnie.

Weźmy proste zdanie “Ala ma kota”. Podmiotem jest ‘Ala’, orzeczeniem ‘ma’ (ktoś jeszcze pamięta, że podmiot podkreślało się jedną kreską, a orzeczenie dwiema? ;) ), a dopełnieniem ‘kot’. Tak zbudowana wypowiedź pokazuje relację (orzeczenie) pomiędzy jakąś Alą i jakimś kotem.  To właśnie trójka.

Wrócę do poprzedniego posta, w którym pisałem o tym skąd wiemy, że chleba trzeba szukać w sklepie spożywczym. Jak opisać tę wiedzę? I tu właśnie użyjemy ‘trójki’ lub kilku ‘trójek’.

Możemy to zrobić na przykład budując taką trójkę:

Przykład  1:

“Chleb jest sprzedawany w sklepie spożywczym.”

Hmmm.. gdzie tu trójka?? :) Już pokazuję:

(”Chleb”, ” jestSprzedawanyW”, “SklepSpożywczy”)

W praktyce trójki służące do reprezentowania wiedzy (ang. KR – knowledge representation) tworzą zbiory takich zdań, które nazywamy… ontologiami. A ontologie wypełnione (czy inaczej ’spopulowane’) konkretnymi obiektami tworzą bazy wiedzy. Klasyfikacja, czyli podział na klasy pomiędzy którymi występują określone relacje, zazwyczaj opiera się na jakiejś hierarchii nad-klas i pod-klas.

Więc ontologia, z której skorzysta jakaś aplikacja wnioskująca gdzie kupić chleb pewnie będzie miała przynajmniej takie poziomy klasyfikacji:

Przykład 2:

(”Chleb”, “jestProduktemTypu”, “Pieczywo”) – tu mówimy, że klasa “Pieczywo” jest superklasą (nad-klasą) klasy “Chleb”

(”Pieczywo”, “jestSprzedawanyW”, “SklepSpożywczy”) – tu mówimy, gdzie obiekty klasy “Pieczywo” i jej podklas są sprzedawane

Utworzymy taką konstrukcję choćby po to, żeby łatwo można było rozbudować ontologię o kolejną porcję wiedzy np.:

(”Bułka”, “jestProduktemTypu”, “Pieczywo”)

żeby wiedzieć gdzie kupić bułkę.

I tak oto przy użyciu kilku wypowiedzi w formie ‘podmiot-orzeczenie-dopełnienie’ zapisaliśmy pewną wiedzę. W oparciu o dwa zdania z przykładu 2 możemy wywnioskować, że chleb można kupić w sklepie spożywczym.

No a po co triplestore, czyli magazyn trójek? Po to, żeby zapisywać w nim właśnie takie trójkowe wypowiedzi.

O tym jak w Semantic Web wyglądają takie trójki, co to jest RDF, OWL, co je łączy z XML i jaką rolę odgrywa URI pewnie jeszcze napiszę. ;)