14.11. 2008
Twitter klient pro Mac OS X
Twitter je poměrně jednoduchá sociální služba, která má své kouzlo. Jednoduše maximálně 140 znaky odpovíte aktuálně na otázku „Co děláš?“ a tento „tweet“ se objeví v uživatelově profilu. Výhodou je, že je možné se přihlásit k sledování jiných profilů a tak vzniká i společný profil, kde jsou vidět i vzkazy ostatních a odpovědi; občas někdo přihodí zajímavý odkaz nebo tip, takže mě docela tahle služba chytla. Do Twitteru se dá psát přímo přes webové rohraní a nebo díky otevřenému API přes libovolného externího klienta. Právě pro Mac OS X napsali jednoduchého klienta kluci z JetMinds. Jetwit navíc odeslat zprávu naráz do Twitteru a nastavit do Skype jako status. Podle screenshotů snad výhledově i jako status do Facebooku. Doporučuju vyzkoušet, a okno pro psaní otevřete přes zkratku Alt + Cmd + P.
18.10. 2008
Pár odkazů na mikroformát RDFa
Dnes navážu na dřívější zmínku o RDFa syntaxi, která spojuje výhody mikroformátů a RDF, jako frameworku pro zápis metadat. Trochu víc jsem si o této syntaxi přečetl a také objevil pýr nových odkazů, a také byly napsány některé další dokumenty, které stojí za přečtení. Co tedy máme? RDFa in XHTML: Syntax a Processing jako doporučení W3C standardizuje tento mikroformát a definuje, jak kódovat RDF do XHTML stránek. A není to zbytečné, zobrazit (X)HTML umí každý prohlížeč a není problém, aby se pomocí RDFa přidala elementům i další sémantika. h1 je pro počítač pouze hlavní nadpis, ale když je navíc označen jako property="dc:title", tak každý prohlížeč ví, že toto je skutečně název dokumentu. Je–li tam naopak property="foaf:name", je zřejmé, že se jedná o jméno, třeba osoby. Pokud si to nedovedete představit, malý cheatsheet to názorně předvádí:
<address class="vcard" about="#tantek" instanceof="foaf:Person">
<a href="http://tantek.com/" rel="foaf:homepage" property="foaf:name">Tantek Çelik</a>
</address>
je potom RDFa parserem převedeno na následující RDF:
<#tantek>
a foaf:Person ;
foaf:name "Tantek Çelik" ;
foaf:homepage <http://tantek.com/> .
Na RDFa wiki stránce je i několik tutoriálů a dalších odkazů. Co mě však nejvíc zaujalo, byly tipy, jak správně psát tutoriál. Tučně napsané upozornění „Never Never Never mention a triple nor a Bnode!“ To hovoří za vše. O sémantickém Webu a RDF se musí mlčet, chcete–li ho někde prosadit. Po přečtení všech těchto odkazů mi začala vrtat hlavou otázka, jak zvalidovat XHTML stránku, když do ní člověk vloží odkaz na několikero RDF schémat pomoxí jmenných prostorů XML a pak využije všechny ne–XHTML atributy jako about, property či typeof? Pokud jste dávno zavrhli zastaralé DTD schémata pro stránky a vaše aplikace běhá jako application/xhtml+xml, je pro vás snadným řešením vhodná úprava XML validátoru podporujícího compound documents. Pro ty, co na stránce DOCTYPE chtějí mít, podle zmiňované wiki stránky s tutoriály stačí zaměnit standardní XHTML 1.1 DOCTYPE za následující a i W3C validátor by to měl uznat a správně zvalidovat:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML+RDFa 1.0//EN" "http://www.w3.org/MarkUp/DTD/xhtml-rdfa-1.dtd">
V říjnu navíc vyšel krátký úvod / primer přímo od W3C. Ten jednoduše ilustruje, jak RDFa používat, jaké RDF z té které anotace vznikne a taky nastiňuje motivaci pro používání takových RDF–mikroformátů.
12.10. 2008
Feedy, bookmarky a pořádek v tom všem
Začal jsem mít v poslední době nepořádek ve všem od plánování času až po takové maličkosti, kam ukládat bookmarky a čím číst RSS feedy. Stejně tak jsem přestal pořádně sledovat, kdo ze známých používá tu kterou sociálně síťovou službu, až se mi dokonce popletly Twine a Twitter – tu první zdárně používá Aristo, druhou naopak Filemon, Dagi a spol. A protože jsem dnes měl celý den čas, sednul jsem k obrazovce a šel si hrát. Feedy půjdou všechny hezky do Outlooku, i když některé stránky musím opět dohledat, páč jsem v tom měl chaos dokonalý a nějak se mi poztrácely odkazy. Na bookmarky používám svou hlavu :) a nebo del.icio.us. Vyjma toho občas něco hodím na katedrální sdílený seznam odkazů – tzv. KEGlinks.
A co se dalších sociálních služeb týká? Facebook mě nikdy moc nechytl, ale zas se tam postupně objevuje víc a víc starých i současných známých, takže až poztrácím všechna telefonní čísla a e–mailové adresy, vím, jak se s nimi spojit… Twine odolávám, ale protože Aristo je v přesvědčování hodně dobrý, myslím, že do června mě „dostane“. O Twitteru jsem neměl ani tušení, ale když už mě Fil pošťouchl, musel jsem to zkusit. Nakonec jsem si dohledal i widget do Opery a jsem spokojený. Uvidím, jestli to má nějaké reálné využití. Zatím mi widget běží. Kupodivu asi v současnosti pro mě nejsilnější komunita ale s IT nic moc společného nemá – na flickru jsme založili Czech Trainspotters crew a plníme naše flickrovské účty víc než dobře, jen ta komunikace je přece jen spíš off–linová záležitost. Ale co si neřekneme v reálu, to za nás připomenou vychytané fotografie. Sám mám, s Aristovou pomocí, na starosti komunitní stránku skupiny na katedře. KEGweb má databázi prošpikovanou RDFkem od základů, ale ani tak se mi doteď nepodařilo dotáhnout takový základ, jako veřejné FOAF profily do konce. Asi bych měl trochu pohnout na TODO–listu!
Co dál? Kromě toho, že si projdu zpětně vše, co jsem odložil na neurčito do del.icio.us, přemýšlím nad výsledky toplistu. Tenhle blog žije rok, aniž bych s ním něco udělal. Snad většina ze spotů má kolem tisíce přečtení, jak se divil Aristo. A to je myslím jasný signál, že bych měl pohledat všechny nápady, co jsem měl v hlavě a trochu to tu rozhýbal. No, měl… Takže asi startujeme. A, Aristo, začni si taky brousit tužku, ať rozjedeš rdf.cz, jak jsi sliboval! ;)
11.03. 2008
Pozvánka na seminář o Linked Data a SPARQL
Po několikaměsíční odmlce přináším jednu pozvánku pro zájemce o vývoj sémantických aplikací. Tento čtvrtek, 13.3. 2008 budeme já a Aristo na půdě naší alma mater VŠE Praha mít prezentaci na téma SPARQL and Linked Data – the essentials for Semantic Web application development. Naším cílem je shrnout některé „dobré praktiky“ a pak krátce ukázat možnosti dotazovacího jazyka SPARQL. Slidy z přednášky budou po skončení dostupné na zmíněném odkazu. Pokud by měl někdo zájem, ale na půdě VŠE se nevyznal, tak se ozvěte.
20.11. 2007
Týdenní návštěva Koblenze
Zatímco někteří strojvůdci německý drah stávků, ten v ICE 125, kterým se snažím dostat na vlak z Frankfurtu do Prahy, řídí jak má a tak se vlak 300vkou řítí po dráze :) byl jsem tento týden na univerzitě v Koblenzi „oficiálně“ navštívit Simona Schenka a pomoci mu s implementací některých výzkumných projektů. Byla to příjemná týdenní práce plná Javy, Continuous Integration a sémantického Webu. Proto si dovolím představit, s čím jsme pracovali a co tvořili.
14.10. 2007
Importy souborů v PHP5
Programuteje–li v PHP5 řádně objektově, potřebujete přehledně uspořádat zdrojové kódy. Dobrým zvykem je každou třídu umístit do shodně pojmenovaného souboru. Pak se ale uvrhnete do nutnost vyjmenovávat pro každý skript dlouhou sadu volání require_once() a to ve správném pořadí.
Ne! Nemusíte! Existuje možnost naprogramovat funkci __autoload() definující rutinu, jak načítat soubory takto uložených tříd. A volána je pouze pro třídy, které potřebujete a v pořadí, v jakém jsou třeba. Takto se pak načítají i třídy předků (definované klíčovým slovem extends), implementované rozhraní, … Jedinou nefunkčnost jsem objevil, objeví–li se název třídy ve volání $var instanceof ClassName, ale to musím ještě pořádně otestovat.
function __autoload($className) {
require_once('/WEB-INF/classes/'.$className.'.php');
}
12.10. 2007
Modularita ontologie FOAF a sémantický Europass
Ontologie FOAF mě překvapuje svou použitelností. Je ideálním schématem pro popis sémanticky bohatých vizitek lidí, jejich kontaktů a aktivit. Stala se také základním stavebním kamenem dalších užitečných schémat, např. DOAP pro popis projektů. Není dokonalá. Jistě vám budou nějaké vlastnosti a rysy chybět, ale objevuji stále více užitečných modulů / rozšíření, které takové trable řeší. Modularita ontologií / schémat je jednou z výhod sémantického Webu!
Dostal se mi do rukou článek z konference ESWC 2007 s názvem „Combining RDF Vocabularies for Expert Finding“. Skupina autorů se rozhodla tzv. „expert finding“, nebo–li prohledávání zdrojů na WWW a získávání informací, v nichž jsou schopní lépe najít odborníky na dané téma. V rámci tohoto úkolu zavrhli vytvoření nové ontologie popisující jejich problém. Naopak popisují de–facto standardy sémantického Webu jako FOAF, SIOC (nyní připravovaný W3C standard), SKOS a další používaná schémata, vzájemně je kombinují, mapují a rozšiřují, aby z existujících dat získali maximum informací. Článek je zdrojem inspirace, pokud navrhujete systém, jehož datový systém je založen na RDF.
Sémantický Europass: ve výše zmiňovaném článku jsem naše odkaz na další zajímavé rozšíření FOAFu. DOAC, nebo–li Description of a Career, poskytuje vlastni a koncepty pro zápis profesních schopností a dalších náležitostí, které se obvykle vyžadují v životopise. Předpokladem je, že by tyto informace šlo převést do životopisu ve formátu Europass! Jen pro úplnost přidávám přehled typů záznamů, které v takovém profilu mohou být: pracovní zkušenost, vzdělání a kurzy, dovednosti, jazykové znalosti, sociální dovednosti, organizační dovednosti, schopnosti ovládání počítače a řidičské oprávnění.
11.10. 2007
Sémantický Web v novém kabátu
Logo, které vidíte u minulého příspěvku a patří do sady bannerů Resource Description Frameworku, už není jediným oficiálním grafickým znakem, který se pojí se sémantickým Webem. W3C nově nabízí sadu grafických prvků pro všechny důležité standardy sémantického Webu, tj. RDF, OWL, SPARQL, GRRDL i Semweb samotný. Výběr je poměrně bohatý, tak si vyberte, čím označíte své RDF data!
07.10. 2007
Exporty DOAP metadat projektů, připomínky
KEGweb již poskytuje první RDF metadata pomocí exportů. Aktuálně lze získat popis softwarových projektů a také popis jednotlivých projektů, viz. stránky jednotlivých projektů. Exportovaná metadata používají schéma DOAP. Ukázkové RDF jsem uvedl v minulém příspěvku.
Neb export byl poměrně chudý (pouze titul, krátký popis a domovská stránka projektu), napsal jsem do mailing–listu doap-interest, které vlastnosti by bylo dobré přidat. Odpověď byla stručná, ale hodnotná. Opět jsem se ale podivil nad jednou věcí. Vlastnost rdfs:seeAlso je sice definována obecně, co se formátu cílového zdroje týká:
rdfs:seeAlsois an instance ofrdf:Propertythat is used to indicate a resource that might provide additional information about the subject resource.A triple of the form: S rdfs:seeAlso O
states that the resource O may provide additional information about S. It may be possible to retrieve representations of O from the Web, but this is not required. When such representations may be retrieved, no constraints are placed on the format of those representations.
The
rdfs:domainofrdfs:seeAlsoisrdfs:Resource. Therdfs:rangeofrdfs:seeAlsoisrdfs:Resource.
Tak proti této specifikaci většina vývojářů přijímá předpoklad, že cílovým formátem je vždy RDF. Proto jsem musel dle toho upravit hodnoty rdfs:seeAlso v databázi KEGwebu.
Zaujal mě i odkaz na stránky Apache Foundation, kde dokumentují jedno rošíření schématu DOAP o zápis implementovaných standardů. Tím můžete uvést, že „projekt X implementuje specifikaci Y“, kterou můžete celkem detailně popsat, třeba:
@prefix asfext: <http://projects.apache.org/ns/asfext#> .
<:rdfschema>
asfext:title "RDF Vocabulary Description Language 1.0: RDF Schema" ;
asfext:body "W3C" ;
asfext:id "RDF Schema" ;
asfext:url <http://www.w3.org/TR/rdf-schema/> ;
a asfext:Standard .
To by následně poskytlo možnost prohledávat projekty podle použitých technologií.
30.09. 2007
Linked Data pro projekty katedry
Již delší dobu pracuji na stránce a projektu KEGweb, která prezentuje osoby a aktivity, ve kterých jsou zapojení, z Katedry informačního a znalostního inženýrství VŠE Praha. Stránka skupiny KEG je zvláštní v tom, že v pozadí celé zdánlivě statické stránky je RDF úložiště a data jsou ukládány jako RDF tvrzení o jednotlivých zdrojích.
O tomto prodlouženém víkendu jsem zapracoval na podpoře tzv. Linked Data – znovupoužitelná RDF metadata využívající ustálené schémata / ontologie a zpřístupněná pro využití v dalších datech. Důležité bylo rozlišit informativní a neinformativní zdroje – např. osoba je neinformativní zdroj z pohledu RDF, stránka o této osobě je informativní zdroj. URIref neinformativních zdrojů jsou také „klikatelné“ – po přístupu přes HTTP je vrácena hlavička 303 See Other a také Location s adresou informativního zdroje.
Využil jsem schématu DOAP (prohlédněte si diagram tříd a vlastností), jmenovitě vlastností doap:name, doap:shortdesc a doap:homepage pro popis softwarových projektů katedry. Data jsou uložena v následující podobě (v syntaxi N3):
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix doap: <http://usefulinc.com/ns/doap#> .
<http://keg.vse.cz/resource/swproject/kegweb>
rdfs:seeAlso <http://keg.vse.cz/swproject/kegweb> ;
doap:name "KEGweb" ;
a doap:Project .
Vidíte, že http://keg.vse.cz/resource/swproject/kegweb je URIref identifikující projekt a http://keg.vse.cz/swproject/kegweb stránka s informacemi o něm. Brzy přibude RDF export, takže bude kdokoliv moci je využít a doplnit o svá tvrzení, agregovat, …