Úvod do Sémantického Webu

Idea Sémantického Webu je stará už dost přes deset let, avšak je stále málo rozšířena, i když to vypadá, že se situace poslední dobou mění. Co tedy Sémantický Web je, z čeho se skládá a k čemu by mohl být užitečný? Co znamenají přesně výrazy jako RDF či SPARQL a jak spolu souvisí? Odpovědi naleznete v článku.
Nálepky:
Ve světě, kde jsou informace na internetu publikovány technologiemi Sémantického Webu, nemusíte např. hledat pomocí různých vyhledávačů webové stránky svého zubaře, abyste zjistili otvírací dobu, ale váš inteligentní kalendář zjistí, u kterého zubaře jste registrováni, porovná otvírací dobu jeho ordinace s vaším rozvrhem času, zajistí ideální dopravní spojení, a předloží vám možné varianty. Tohle je samozřejmě velmi idealistická vize, avšak možná.
V dalším textu se úmyslně vyhýbám obecně užívanému výrazu „sémantický web“ a používám raději „Sémantický Web“ coby termín, který označuje využití RDF jako hlavního modelu reprezentace informací. – pozn.aut.
Sémantický Web je označení pro skupinu technologií, které umožňují informace na internetu formulovat tak, aby byly srozumitelné nejen pro lidí, ale i pro stroje, tedy hlavně software na nich běžící. U zrodu nestál nikdo jiný než Tim Berners-Lee a konsorcium W3C, které je dodnes hlavním tahounem vývoje v této oblasti. Sémantický Web není konkurencí současného webu, nýbrž jeho doplňkem, zlepšujícím využití potenciálu, který sítě typu internetu mají. HTML popisuje dokumenty a vztahy mezi nimi, účelem technologií Sémantického Webu je popis jakýchkoliv věcí (lidé, věci, služby, události, role…) a vztahů mezi nimi. Takováhle síť se nazývá Sémantický Web, Web of Data, Giant Global Graph, nebo i Web 3.0.
Základní technologie Sémantického Webu jsou: RDF, RDFS, OWL a SPARQL.
RDF, RDFS, SPARQL a další
RDF (Turtle verze) definuje model vyjadřování informací, které jsou formulovány trojicí „podmět přísudek objekt“, kde přísudek určuje vztah mezi podmětem a objektem. Identifikátory, neboli „slova“ tvořící tyto „věty“, jsou URI. Množina trojic tvoří RDF graf. RDF samotné je pouze model, který pro textovou reprezentaci má mnoho serializací – jako nejstarší RDF/XML, potom máme RDFa pro integraci RDF v HTML, dobře čitelnou Turtle, primitivní N-Triples, a další…
Abychom RDF mohli smysluplně využít, tak potřebujeme nějak přiřadit našim „slovům“ význam. Právě k tomu jsou ontologie, RDF slovníky, neboli RDF schémata, např. FOAF (specifikace), SIOC (specifikace), GoodRelations (specifikace)… Ty jsou definovány pomocí RDFS a složitější OWL, které samotné jsou ontologiemi.
SPARQL je jazyk, vycházející z SQL, určený k manipulaci (primárně dotazování) s RDF databázemi (tzv triplestore).
Mikroformáty jsou příbuzné technologiím Sémantického Webu a dají se z nich lehce extrahovat data do RDF pomocí GRDDL, avšak nejsou natolik flexibilní jako RDFa.
Linked data je název pro několika principů, které se snaží zajistit určitou úroveň užitečnosti informací (tvoří podmnožinu Sémantického Webu). Komunitní projekt Linking Open Data publikuje otevřené databáze jako Linked Data, jako nejlepší příklad je DBpedia obsahující data, extrahovaná z Wikipedie.
Ekosystém Linked Data – obrázek pochází z http://www4.wiwiss.fu-berlin.de/…9-03-05.html
Mezi některými oblastmi průmyslu jako například medicína a těžařství jsou tyto technologie rozšířené kvůli potřebě sdílení informací jasné definovanými termíny a automatické dedukce dalších informací.
Implicitní decentralizovanost technologií Sémantického Webu se používá k bourání zdi mezi sociálními sítěmi jako Facebook, Myspace etc., pomoci RDF dat používajících ontologii FOAF, kdy může každý server fungovat jako hosting FOAF profilů, tvořící jednu velkou, otevřenou, decentralizovanou sociální síť.
Protože ne všechny informace jsou určené pro širokou veřejnost, vznikl systém WebAccessControl, který využívá autentizační protokol FOAF+SSL. Tento protokol je rychlejší a jednodušší než OpenID, a ve většině případů i uživatelsky přívětivější (nepotřebujete si pamatovat jméno/id ani heslo, stačí jen mít svůj certifikát).
Jak to vypadá v praxi?
Yahoo a Google využívají RDF data ke zlepšení výsledků vyhledávání. (Viz Yahoo embraces the semantic web, Google introducing rich snippets)
Existují projekty sémantického desktopu na linuxu ze stáje KDE (Nepomuk Social Semantic Desktop) i Gnome (Semantic Desktop).
Drupal 7 bude v RDF publikovat svá interní data.
Sémantický Web mezi lidmi nikdy širokého povědomí nedosáhne. Ani by neměl, protože se jedná o vnitřní reprezentaci informací. RDF vzniklo jako odpověď na poptávku po jednotném modelu pro výměnu informací v decentralizované heterogenní sítí systémů. Pokud vyvíjíte aplikaci a chcete umožnit, aby informace byly sdíleny a využívány jinými aplikacemi, publikujte tyto informace v RDF.
Historie a budoucnost
Vývoj Sémantického Webu má tři hlavní odvětví:
- Vývoj technologií
- Publikování informací pomocí těchto technologií
- Vývoj aplikaci a automatických agentů pracující s těmito informacemi
První fáze, kdy se vývoj soustředil především na první odvětví, pominula, teď je třeba rozvíjet druhé odvětví, protože bez něj je nemyslitelný rozkvět odvětví třetího, a přitom právě ono je naším cílem, protože přináší zjednodušení našeho každodenního života.
Pokud máte zájem o další články z této oblasti, například práci s RDF a FOAF prakticky, vyjádřete se v diskusi.
Nejsem si jist, nakolik již první fáze pominula. Například co se týče dotazovacích jazyků, tak mám dojem, že situace ještě není zcela ideální. Například zmiňovaný SPARQL snad patří mezi ty nejhloupější dotazovací jazyky, které lze na Sémantickém Webu použít.
Mezi jeho nevýhody jistě patří:
* Není uzavřený (výstup jednoho dotazu nelze použít jako vstup dalšího).
* Pracuje vnitřně v podstatě s tabulkami, místo s RDF daty.
* Je velmi slabý, není schopen z dat vytáhnout ani kolekci (a to je její struktura definována už při RDFS).
* Jeho schopnost nové trojce vytvářet je také velmi špatná (hlavně co se týče blank nodes).
Prosím prosím, prozraďte aspoň jména nějakých lepších jazyků. Nejlépe již v něčem implementovaných, aby se s tím dalo hrát.
Vzhledem k tomu kolik a jakých dat dnes v RDF je mi pořád přijde praktičtější mít data v nějakém pěkném XML formátu pro to, co potřebujete, a dotazy psát v XQuery nebo XSLT 2.0.
Ale časem se třeba ujme něco lepšího, třeba XSPARQL http://xsparql.deri.org/…e-cases.html
Už jsem to nějaký ten pátek neviděl, ale:
Sesame používá jazyk SeRQL, opět ideově vychází z SQL (což je dle mého špatně), ale obsahuje už například vnořování dotazů (byť bych si ho netroufl označit za uzavřený).
Jena používá SPARQL, ale mají i nějaká rozšíření. Třeba si hráli s Property Paths, což vám v podstatě umožní popsat cestu grafem pomocí regulárního výrazu. Pak už není problém vytáhnout z dat třeba tu kolekci.
Pěkný je jazyk TRIPLE, jenž je založený na Hornově logice a moc pěkně se v něm popisuje třeba vyvozování.
Těm, kterým se líbí Lisp, by se mohl líbit jazyk Versa. Mně osobně přišel hodně ulítlý.
Celkem těžkotonážní je jazyk Xcerpt, který ale není určen přímo na RDF.
Já sám jsem si kdysi hrál s jazykem Tequila, který používal pojmenované vzory, což umožnilo relativně snadno popsat data s rekurzivní strukturou (což je třeba ta již zmiňovaná kolekce). Ale k němu se asi jen tak nedostanete.
Pokud by vás zajímalo trochu té archeologie za účelem porozumění dnešku, tak je tu třeba dotazovací jazyk v RDF-Core
RDF-Core dodnes používá jedna platforma co pracuje s mobilními telefony (UAProf je v RDF) a pokud si dobře pamatuji z mailového listu, tak s tím někdo dělal něco v NASA… taky je to zahrnuto v „Practical RDF“ od O’Reillyho.
První fáze nepominula, ani nepomine, probíhají paralelně.
Máte pravdu, situace ohledně dotazovacích jazyků není ideální, ale SPARQL je zatím nejlepší co je – tzn. vyhovuje nejvíce lidem. Na cestě je verze 1.1, která mimo jiné přidává UPDATE funkcionalitu – možnost měnit RDF grafy, což dříve bylo jen možné pomocí nestandardních rozšíření.
Osobně budoucnost vidím spíše v GUI než v různých syntaxích, ale to je na delší diskuzi do které nechci zabíhat.
Kdo probůh tvrdí, že SPARQL je zatím to nejlepší, co je? Kterým lidem vyhovuje dotazovací jazyk, kterým se ani nemůžou zaptat na tak jednoduchou strukturu, jako je ta již zmíněná kolekce, což je přeci pouhý seznam.
Mam dojem, ze na to koukate moc akademicky. Jedna vec je, koukat na to z pohledu matematika a druha vec z pohledu praktickeho uziti. SPARQL, ac neni idealni, je v soucasnosti uzivan k vseobecne spokojenosti. Neni zkratka pravda, ze to, co je nejmocnejsi, nejuplnejsi, nejortogalneni navrzene je vzdy nejlepsi pro normalni uziti.
Každý z nás si asi představuje praktické užití jinak. Prostě jazyk, který mi neumožňuje najít všechny instance dané třídy (podle RDFS), zjistit si všechny vlastnosti dané třídy, zacházet se seznamy, rozumně vytvářet nové RDF grafy, mi nepříjde kdoví jak praktický a vhodný pro normální použití.
Nevim, jestli mi rozumite. Ja omezeni SPARQLu chapu. Moje otazka zni: u kolika praktickych aplikaci (rekneme napr. webu s navstevnosti aspon 1000 UIP) vam tato omezeni vadila?
Jen aby to nebyl důsledek nějakého začarovaného kruhu. Neboť je jazyk SPARQL velmi omezený, používají se jen jednoduché aplikace. A protože na tyto jednoduché aplikace SPARQL stačí, není důvod vymýšlet nic silnějšího.
Ale abych se přiznal, já to nikdy moc prakticky nepoužíval.
Muzete prosim rozvest tyto body, idealne doplnit konkretni priklad, ktery sparql nezvladne? Pripadne bych byl vdecny za nejaky clanek s kritikou sparql. Me vadi nejvic ze neumi tranzitivni uzaver. Zlatej Lorel.
„* Pracuje vnitřně v podstatě s tabulkami, místo s RDF daty
* Je velmi slabý, není schopen z dat vytáhnout ani kolekci (a to je její struktura definována už při RDFS).
* Jeho schopnost nové trojce vytvářet je také velmi špatná (hlavně co se týče blank nodes).“
btw jak tady nekdo psal o utapeni penez, tak to docela sedi, NEPOMUK platila EU a stal 11.5 milionu euro
Původně jsem myslel, že se rozepíšu, ale nakonec jsem se rozhodl hodit tu jen link: http://siret.ms.mff.cuni.cz/…s/thesis.pdf
Diky, diplomka by mela stacit ;)
OT: nemate na matfyzu prochazeni diplomek jako je na cvut (https://dip.felk.cvut.cz/)? clovek by tam urcite nasel cas od casu neco zajimavyho
Diplomky jdou najít přes katalog knihovny (http://ckis.cuni.cz), ale s jejich elektronickou podobou to bude horší.
Asi jsem po ránu nějaký pomalejší. Co je to sémantický ani Sémantický web jsem netušil před přečtením článku a netuším ani po přečtení.
<přísně-tajné>
Sémantický web je způsob, jak pomocí grantů platit obrovské masy akademických výzkumníků a zabránit tak válce a sociálním nepokojům. Aneb, kdo dělá sémantický web, ten nezlobí ;-)
</přísně-tajné>
Jeste jsem to nikdy neslysel rict takhle na plnou hubu :)
ja jsem asi taky pomalejsi i v poledne. Stejny dojem. Sucha teorie neceho, dalsi uzasny jazyk, dalsi tuna „standartu“…
Proc proboha nestaci XML, XSL, XPATH pro takoveto srandy?
Pro některá data se prostě více hodí popis pomocí (obecně nesouvislého) orientovaného grafu s pojmenovanými hranami (tj. RDF), než pomocí stromu (tedy souvislého graf bez cyklu) bez pojmenovaných hran (tj. XML).
XML samo o sobě je sice strom, ale můžete do něj serializovat jakoukoliv datovou strukturu, konec konců primární serializace RDF je také XML.
Rozdíl je nekdě jinde. Jediná výhoda sémantického webu je v tom, že teoreticky lze spojovat data z různých zdrojů a najít tak zajímavé souvislosti a odvodit nová data. Aby tohle fungovalo je potřeba používat pro jednotlivé objekty stejné identifikátory, jinak spojení dat z různých zdrojů nebude fungovat. Myšlenka semwebu je pěkná, ale naráží na relativní nedostatek dosud publikovaných dat a problém s vytvořením jednotných identifikátorů.
Pak má RDF a semweb spoustu technických problémů, dneska by se to navrhlo asi jinak, ale už není síla to předělat. Ale ty technické problémy lze vždy nějak obejít.
Ovšem, že je možné RDF serializovat do XML. Stejně jako není žádný problém uložit RDF do relační databáze.
Jediné, co jsem svým předchozím příspěvkem chtěl říci, bylo to, že jiná reprezentace prostě přináší své výhody (asi bylo chybou, že jsem je explicitně nezmínil). Třeba ono spojování dat z různých zdrojů a vyjádření dat jako obecně nesouvislý graf spolu jistě hodně souvisí.
Jinak proč nestačí holé XML se dočtete na straně 5 a dál následujícího PDFka http://www.europen.cz/…3/HLAVNI.pdf
Děkuji za link. Díky tomu jsem pochopil, o čem ten článek vlastně je.
XML je diametrálně odlišné od RDF. XML je pro vyjadřování dat (ne informací) ve stromové struktuře. RDF je pro vyjadřování informací (data + jejich význam) ve struktuře orientovaného grafu.
Vemte si XML kód:
<351 name="Jan" birthday="11-18" />
Z tohoto program sám nepozná, co to znamená. Každou reprezentaci dat musí programátor aplikaci „vysvětlovat“, i když třeba se používá na vyjádření úplně stejné věci, kterou už své aplikaci „vysvětlil“, ale v jiném formátu.
Na druhou stranu v RDF:
<http://example.com/UserDB/351> <http://xmlns.com/foaf/0.1/name> "Jan"
<http://example.com/UserDB/351> <http://xmlns.com/foaf/0.1/birthday> "11-18"
Tady využíváme termíny definované ontologií FOAF, takže známe význam těchto dat. Programátor tak potřebuje jen aby jeho aplikace rozuměla FOAF. Pokud se někdo rozhodne nepoužívat FOAF, k vyjádření takových to jeho informací, měl by používat ontologii která je namapovaná na FOAF, aby program mohl dedukovat, že se bavíme o stejné věci, ale stejně by měl počítat s tím, že podstatná část aplikací jeho datům nebude rozumět, zvlášť dnes, kdy takováto dedukce není ještě moc rozšířená. Je to něco podobného jako že byste měl očekávat, že pokud místo slova „jméno“ začnete používat třeba „degfout“, tak vám mnoho lidí rozumět nebude – je třeba mít dobrý důvod k vytváření nových „slov“.
Mimo to, RDF není jazyk, ale model, který má mnoho serializací (jazyků), přičemž jeden byl vybrán jako výchozí na výměnu informací mezi systémy, což je RDF/XML (ne moc dobrá volba, hlavně protože je to blbě čitelné).
Hned první věta z RDF Primer říká: „The Resource Description Framework (RDF) is a language for representing information about resources in the World Wide Web.“ Takže RDF mimochodem jazyk je ;-)
Cituji anglickou Wikipedii „A language is a system for encoding and decoding information.“. V tomto případě bych souhlasil, a mohl říkat, že RDF je jazyk, jazyk s mnoha syntaxemi, ale to by bylo zavádějící. ;-)
Není to ani jazyk, ani systém, ale framework ;P
Koukněte se do té specifikace, když už jsem ji tu citoval …
Oceňuji snahu trochu popularizovat sémantický web, ale navrhoval bych začít trochu méně zhurta. Praktickému čtenáři v tom článku asi chybí zejména:
* k čemu je to vůbec dobré, co to prakticky přináší oproti existujícím (a zavedenějším) technologiím
* má to v názvu web – jak to souvisí s existujícím webem
* co je to vůbec ta ontologie, o které se tam pořád píše a k čemu je dobrá
Tím by mohla vzniknout rozumná protiváha ke skeptickým reakcím pod článkem a pak by byli čtenáři snad ochotnější prokousávat se všemi těmi zkratkami.
Suhlasim.
Clanok na mna posobi len ako zoznam odkazov. Ked som si precitala nadpis, tesila som sa na zaujimavy clanok, ale obsah ma sklamal.
Rozhodne by som brala aj nejaky mierne obsirnejsi serial o Semantickom Webe.
Dlouho jsem uvažoval jestli článek udělat jako malou prohlídku světem Sémantického Webu, ukázat jen malou část, ale přívětivě takovým stylem jak by se mělo učit na základní škole, ale nakonec jsem se rozhodl spíše vyjádřit základní myšlenku, ze které se přemýšlivý člověk dobere potenciálních pozitiv sám, nezabíhat do detailů RDF a ontologií, a zbytek prostoru věnovat obecnému přehledu. Je tedy pravda, že tohle je spíš přehled/rozcestník, než úvod.
Obšírnější popis můžete si přečíst třeba tady pokud vládnete angličtinou: http://network.nature.com/…ly-all-about
V případě zájmu bych něco více vysvětlujícího a přívětivého dokázal napsat…
Osobně se přimlouvám za další články na toto téma, teoreticky by možná šlo vše implementovat do existujících CMS – link, který jste uvedl z google vypadá zajímavě.
Určitě bych byl také pro nějaké podrobnější rozebrání tématu. Takže prosím o další užitečné články o Sémantickém Webu :)
k čemu je to vůbec dobré a velmi velmi lehký úvod: http://www.ted.com/…ext_web.html
Podle mě sémantický web smysl i budoucnost má, o sémantickém webu (který byl pochopitelně zmíněn jenom okrajově) nemluvě. Nedávno jsem plánoval napsat něco malého na svůj blog na Rootu, ale vzhledem k tomu, že vyšel tento článek (a například na konferenci WebExpo byla hezká přednáška od Josefa Holého (http://webexpo.cz/…anticky-web/), už to nemá moc smysl. Sémantický web podle mě krásně vyplňuje mezeru mezi (dnes poněkud zastaralým a těžkopádným) systémem katalogů typu http://dmoz.org a nepříliš spolehlivým přístupem přes vyhledávače (podobně jako některé kvalitní účty na Twitteru a podobné záležitosti).
Používám například systém Google Alerts a jeho výsledky nejsou moc okozlující. Pokud se člověk zajímá o programovací jazyky (Haskell, Scala apod.), alerty přinášejí pár novinek k věci a spoustu balastu, protože člověk musí vytvořit buďto husté síto specifických alertů nebo pár obecných, které ale nedokáží poznat, co si pod daným slovem člověk představuje (homonyma). Alerty typu „haskell language“ ani „haskell programming“ prostě nefungují, jak by měly.
Tragédii představují textové reklamní systémy a „moderní design“, který kolem článku k věci nasekají tři lišty, které odkazují na informace z jiných článků, takže pokud se zajímá někdo například o řešení určitého problému v Linuxu, najde často článek o řešení ve Windows a vpravo na liště je odkaz na článek o nové distribuci Linuxu.
Pokud by se sémantický web ujal, byla by to veliká pomoc. J. Kosek na WebExpu zmínil problém relevance a spamu v sémantickém webu. To by ale vcelku snadno vyřešil nějaký komunitní certifikační program.
Pokračování bych uvítal (FOAF, RDFa, projekty typu Linked Data Cloud), stejně jako nějaký kvalitní článek o sémantickém desktopu (třeba na Rootu). Tolik k autorově výzvě.
V prvním odstavci mělo být „o sémantickém desktopu…nemluvě“.
Semantic Web se česky píše, když už, Sémantický web, nebo ponechat anglický název jako u Linked Data, které se anglicky v češtině naopak nepíše Linked data, jde-li o technologii. Pěkný článeček.
ktere je v soucastnosti zneuzivano bandama lamplu, kteri zdimaji narodni a nadnarodni grantove agentury s tim, ze budou vytvaret ,,inteligentni web“, ale vsechno je to jen humbug. Nikdo z nich nedela nic rozumneho ani nic, co by melo nejakou pridanou hodnotu. Pouze aplikuji veci zname z 80. let a skutek utek.
Heh, zrovna sem běžím že napíšu to samé, pan Trm uvažuje podobně jako já.
Sémantický web je módní bulšit vhodný akorát pro ždímání grantů a výrobu publikací v „plzeňské“ kvalitě pod pláštíkem slibů o uspořádání všech dat na světě.
Chlapi, vy co v tom sémantickým webu děláte, přiznejte se: fakt tomu sémantickýmu webu věříte, anebo dobře víte k čemu to je a akorát přes to jedete granty a publikace?
Líbí se mi že banda kolem sémantickýho webu definuje pořád nový a nový popisy pro něco co je jenom graf. Když popis vymyslej tak pro to vymejšlej přiblblý dotazovací jazyky s XML syntaxí který ten graf nějak procházej.
(Obojí jsou to tisíckrát vyřešený problémy, ale v XML RDF blablabla je to holt super novej objev).
Ani se nedivím, za evropský milióny bych vymejšlel novou syntaxi každej den. Pak bych to vydal jako normu která se nedá implementovat (teď narážím na další k-hounu-dobrej-módní-shit jménem XQuery) a podal další grant na vylepšení původního návrhu.
Skoro to vypadá, jako byste věřil, že vše dobré, co mohlo být v oblasti uspořádávání dat vymyšleno, už vymyšleno bylo ;-)
To si nemyslím.
Nové postupy a algoritmy pro uspořádání dat ale přinese jedině výzkum základních principů a algoritmů. Vymýšlení nových třípísmených zkratek a XML diarrhea k tomu asi moc nepřispěje.
Řekl bych, že nemálo lidí kolem sémantického webu se věnuje výzkumu základních principů. Jenže od nich je do praxe vždy trochu delší cesta, tak se to tak nemusí zdát.
Jinak mně přišlo RDF jako celkem nový přístup. Dále bych rád řekl, že RDF rozhodně nestojí na XML.
Já bych brala konkrétní příklady sémantizování, to by bylo fajn. Takto je to moc abstraktní.