Semantic Web
Główny problem aktualnej sieci — komputer nie „rozumie” znaczenia danych na WWW, nie rozpoznaje ich semantyki.
Stąd proste pytania okazują się zaskakująco trudne, np.:
Informacja zawarta w dokumencie jest przesłonięta przez:
Słowem — aktualne dokumenty na WWW są (zazwyczaj) łatwe dla zrozumienia przez człowieka, ale trudne do przetwarzania przez maszynę.
Chociaż i tutaj prowadzone są działania w celu zachowania w dokumentach (X)HTML informacji o semantyce. Głównie w kontekście dostępności WWW (np. dla niepełnosprawnych, niewidomych, którym pomagają maszyny). Również wyszukiwarki internetowe korzystają nie tylko z linków (minimalna semantyka — „to linkuje tamto”) ale i z konstrukcji strony i semantyki znaczników (X)HTML.
Do pełnego wykorzystania potencjału WWW konieczna jest odpowiednia reprezentacja wiedzy dostępnej w Sieci.
Zgodnie z koncepcją twórcy WWW:
The Web was designed as an information space, with the goal that it should be useful not only for human-human communication, but also that machines would be able to participate and help. [...] Leaving aside the artificial intelligence problem of training machines to behave like people, the Semantic Web approach instead develops languages for expressing information in a machine processable form.
„Semantic Web Road map”, Tim Berners-Lee, 1998
„Leaving aside the artificial intelligence problem ...” — zagadnienia wydobywania informacji użytecznej dla maszyny z dokumentów tworzonych przez i dla człowieka nie leżą w zakresie zainteresowania SW. W SW nie chodzi o analizowanie danych i wydobywanie wiedzy, tylko o jej reprezentację.
BTW: Tim Berners-Lee == dyrektor W3C.
Sposoby wykorzystania mechanizmów oferowanych przez Sieć Semantyczną są ograniczone jedynie ludzką wyobraźnią.
Często cytowany „wizjonerski” artykuł:
„The Semantic Web”, Tim Berners-Lee, James Hendler, Ora Lassila, Scientific American, maj 2001
A new form of Web content that is meaningful to computers will unleash a revolution of new possibilities
„Sieć semantyczna”, Świat Nauki, lipiec 2001
Nowy format dokumentów hipertekstowych, dzięki któremu komputery rozpoznają ich treść, stwarza nowe, bezprecedensowe możliwości
I to akurat jest fakt, ale nie czyni to rewolucji, jedynie ewolucję. Niełatwą zresztą..
SW nie zastępuje tylko rozszerza WWW.
Zmiana WWW do postaci SW ma znamiona ewolucji — stopniowe schodzenie na bardziej szczegółowy poziom informacji, na której operuje użytkownik Sieci:
Na najniższym poziomie Sieć zaczyna być dostępna do (automatycznego) przetwarzania również przez maszynę — użytkownikami stają się „agenci”, nie tylko ludzie.
Ważne, że „również przez maszynę” — człowiek pozostaje nadal jako użytkownik WWW w aktualnej postaci.
Tylko po zapewnieniu tych wszystkich elementów może istnieć i sprawnie funkcjonować „agent” — program efektywnie wykorzystujący Sieć Semantyczną.
Rekomendacje World Wide Web Consortium dotyczące Sieci Semantycznej:
_:nazwa
)_:nazwa
)„Relational/Reusable Data Format” spotykany w materiałach propagandowych raczej, nie w oficjalnych dokumentach, ale bardzo dobrze oddaje merytoryczny sens zapisu czegokolwiek w RDF.
Ważne: „identyfikowalnych” to nie koniecznie znaczy „możliwych do pobrania”.
excat:Maurycy rdf:type expet:Cat . excat:Maurycy expet:name "Maurycy" . excat:Maurycy expet:breed "EUR" . excat:Maurycy expet:age "1.5"^^xsd:decimal . excat:Maurycy expet:mailbox <mailto:maurycy.kot@gmail.com> . excat:Maurycy exvoc:coinhabitants _:x . _:x rdf:type rdf:Bag . _:x rdf:_1 excat:Kalma . _:x rdf:_2 exrat:Gomez .
<?xml version="1.0"?> <!DOCTYPE rdf:RDF [<!ENTITY xsd "http://www.w3.org/2001/XMLSchema#">]> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:expet="http://example.org/pets#" xmlns:exvoc="http://example.org/vocab#"> <expet:Cat rdf:about="http://example.org/cats/PL/OP#Maurycy"> <expet:name rdf:datatype="&xsd;string">Maurycy</expet:name> <expet:breed rdf:datatype="&xsd;string">EUR</expet:breed> <expet:age rdf:datatype="&xsd;decimal">1.5</expet:age> <expet:mailbox rdf:resource="mailto:maurycy.kot@gmail.com"/> <exvoc:coinhabitants> <rdf:Bag> <rdf:li rdf:resource="http://example.org/cats/PL/OP#Kalma" /> <rdf:li rdf:resource="http://example.org/rats/PL/OP/Gomez" /> </rdf:Bag> </exvoc:coinhabitants> </expet:Cat> </rdf:RDF>
Zapis trójek prawie zgodny z N-Triples. Skróty URI wg konwencji QName.
Typy danych z XSD (XML Schema datatypes) w RDF/XML skrócone za pomocą encji &xsd;
. Nie wszystkie typy opisane w XSD mogą być swobodnie używane w RDF (np. xsd:duration
, mimo że to „primitive datatype”) — listę zalecanych podaje rekomendacja „RDF Semantics”.
Dublin Core Metadata Element Set — opis dokumentów, szeroko stosowany jako metadane.
<?xml version="1.0"?> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:dc="http://purl.org/dc/elements/1.1/"> <rdf:Description rdf:about="http://mimas.ceti.pl/semweb/prezentacje/20050521.html"> <dc:title>Sieć Semantyczna jako przyszłość WWW</dc:title> <dc:description>Prezentacja wprowadzająca w zagadnienia Sieci Semantycznej (Semantic Web) - przedstawienie koncepcji i technologii aktualnie wspierających jej realizację.</dc:description> <dc:creator>Michał Świątkiewicz</dc:creator> <dc:date>2005-05-21</dc:date> <dc:subject> <rdf:Bag> <rdf:li>Semantic Web</rdf:li> <rdf:li>RDF</rdf:li> <rdf:li>OWL</rdf:li> </rdf:Bag> </dc:subject> <dc:language>pl</dc:language> <dc:format>application/xhtml+xml</dc:format> <dc:type>HTML Slidy</dc:type> </rdf:Description> </rdf:RDF>
dc
— jedna z powszechnie używanych przestrzeni nazw: xmlns:dc="http://purl.org/dc/elements/1.1/"
. BTW: DC powstał w marcu 1995 na Metadata Workshop w Dublinie, Ohio.
Inne przykłady:
„Ontologia” — termin zapożyczony z filozofii odnoszący się do opisywania istniejących w świecie rzeczy i relacji między nimi.
Logiczne konsekwencje w ontologii umożliwiają ustalenie faktów, które nie są zapisane wprost, ale wynikają z semantyki. Wnioskowanie to może być oparte na pojedynczym dokumencie OWL albo na wielu dokumentach rozproszonych w Sieci — założenie „open world”. W konsekwencji opis zasobów zawarty w ontologii może być rozszerzany przez inne ontologie, ale informacje są zawsze tylko dodawane, nigdy usuwane.
DARPA — Defense Advanced Research Projects Agency
DAML+OIL został zastąpiony przez OWL, jako wynik ewolucji, nie konkurencji. Analogicznie OWL-S zastępuje poprzednie DAML-S.
Przykład przedstawiony w OWL Web Ontology Language Guide.
... <owl:Class rdf:ID="ConsumableThing" /> <owl:Class rdf:ID="NonConsumableThing"> <owl:complementOf rdf:resource="#ConsumableThing" /> </owl:Class> <owl:Class rdf:ID="EdibleThing"> <rdfs:subClassOf rdf:resource="#ConsumableThing" /> </owl:Class> <owl:Class rdf:ID="PotableLiquid"> <rdfs:subClassOf rdf:resource="#ConsumableThing" /> <owl:disjointWith rdf:resource="#EdibleThing" /> </owl:Class> ...
... <owl:Ontology rdf:about=""> <rdfs:comment>An example OWL ontology</rdfs:comment> <owl:priorVersion> <owl:Ontology rdf:about="http://www.w3.org/TR/2003/CR-owl-guide-20030818/wine"/> </owl:priorVersion> <owl:imports rdf:resource="http://www.w3.org/TR/2003/PR-owl-guide-20031209/food"/> <rdfs:comment>Derived from the DAML Wine ontology at http://ontolingua.stanford.edu/doc/chimaera/ontologies/wines.daml Substantially changed, in particular the Region based relations. </rdfs:comment> <rdfs:label>Wine Ontology</rdfs:label> </owl:Ontology> ...
... <owl:Class rdf:ID="Wine"> <rdfs:subClassOf rdf:resource="&food;PotableLiquid" /> <rdfs:subClassOf> <owl:Restriction> <owl:onProperty rdf:resource="#madeFromGrape" /> <owl:minCardinality rdf:datatype="&xsd;nonNegativeInteger">1</owl:minCardinality> </owl:Restriction> </rdfs:subClassOf> <rdfs:subClassOf> <owl:Restriction> <owl:onProperty rdf:resource="#hasColor" /> <owl:cardinality rdf:datatype="&xsd;nonNegativeInteger">1</owl:cardinality> </owl:Restriction> </rdfs:subClassOf> ... <rdfs:label xml:lang="en">wine</rdfs:label> <rdfs:label xml:lang="fr">vin</rdfs:label> </owl:Class> ...
... <owl:Class rdf:ID="WineColor"> <rdfs:subClassOf rdf:resource="#WineDescriptor" /> <owl:oneOf rdf:parseType="Collection"> <owl:Thing rdf:about="#White" /> <owl:Thing rdf:about="#Rose" /> <owl:Thing rdf:about="#Red" /> </owl:oneOf> </owl:Class> ...
... <owl:Class rdf:ID="WhiteTableWine"> <owl:intersectionOf rdf:parseType="Collection"> <owl:Class rdf:about="#TableWine" /> <owl:Restriction> <owl:onProperty rdf:resource="#hasColor" /> <owl:hasValue rdf:resource="#White" /> </owl:Restriction> </owl:intersectionOf> </owl:Class> ...
Zbiory ontologii:
Narzędzia:
Problemy:
„Screen scraping” mocno wykorzystuje to, co w (X)HTML określamy jako „semantic markup”.
Problemy:
Sprzeczne ontologie teoretycznie mogą być przeszkodą, chociaż istnieją teorie, mówiące że ontologie dobre, pełne i poprawne same się obronią — sytuacja podobna jak z jakością informacji w Wikipedii.
Zaufanie agentów do informacji działa zupełnie analogicznie jak zaufanie człowieka...
WebSerwisy są sprawą podobną do SW, a jednak zupełnie niezależną. Fakt, że są to dwa odrębne pomysły wynika prawdopodobnie z różnego zakresu zainteresowania: WS - biznesowe, SW - akademickie.
Problemy:
Projekty takie jak Haystack mają znaczenie psychologiczne — ludzie muszą „dotknąć”, zobaczyć, że ”to działa” aby chcieli się zaangażować w tworzenie dalszych elementów SW. Zupełnie tak samo było z WWW.
CC/PP — rekomendacja W3C; struktura oparta na RDF.
Dziękuję za uwagę.
Ile trwa utworzenie ontologii, np. Wine Ontology? Jak to wygląda w porównaniu do bazy danych?
Nie są mi znane żadne oficjalne informacje na ten temat. Powstawanie Wine Ontology jest opisane w kolejnych krokach w OWL Web Ontology Language Guide, więc być może powstawała przez cały czas tworzenia tego dokumentu...?
Generalnie ilość pracy potrzebna do stworzenia ontologii bardzo mocno zależy od jej zawartości i szczegółowości, a najbardziej chyba od wykorzystania pojęć zdefiniowanych wcześniej w innych ontologiach. Prawdopodobnie jednak wymaga to więcej pracy niż zaprojektowanie (czy może nawet wypełnienie) bazy danych, ponieważ jest to zazwyczaj skomplikowana praca koncepcyjna.
Jak poradzić sobie ze sprzecznością informacji z różnych źródeł? Czy powstanie jedynie słuszne źródło ontologii?
Możliwość powstawania sprzeczności to faktycznie główny problem przy tworzeniu ontologii. Nie możemy jednak zakładać, że informacja będzie scentralizowana, choćby tylko w celu utrzymania jakości. Rozproszenie jest podstawową cechą WWW i siłą Internetu i wszelkie próby zmiany tego założenie są w ogóle pozbawione racji bytu ;-)
Natomiast zakładamy, dosyć optymistycznie, że ontologie „się obronią” analogicznie jak Wikipedia. Dodatkowo oczywiście pomocne (jeśli nie konieczne) będą serwisy zaufania do ontologii.
Czy udostępnienie informacji z WWW dla agentów koniecznie wymaga jakiegoś działania ze strony twórców aktualnych stron? Przykład: rozkłady jazdy pociągów i autobusów w różnych miejscach Polski.
Wymaga, ale to akurat jest bardzo dobra sytuacja — stanowi to kolejną motywację dla poprawy koszmarnej jakości dzisiejszych stron WWW. Bez działania ze strony autorów WWW pozostają do dyspozycji jedynie techniki typu „screen scraping” lub adnotacje semantyczne do stron tworzone przez użytkownika.
Problem z takimi „publikacjami” jak rozkłady jazdy pojawia się już dziś jeśli rozważymy dostępność takiej strony np. dla osób niewidomych. Użytkownikiem jest człowiek (niewidomy, ale przecież myślący lepiej niż dowolna maszyna) a i tak informacja jest niemal zupełnie niedostępna. W takiej sytuacji w ogóle trudno mówić o dostępności/czytelności dla maszyny...