Instagram real-time API je polovičaté

Zejména kvůli poznání jsem začal používat Instagram. Ne, nejsem fanoušek přehnaného ničení fotek aplikací filtrů, ale od chvíle, co je umí i Twitter a snad i Flickr aplikace, není co řešit. Za Instagramem se skrývá zajímavá živá sociální síť.

Na iPhonu fungují velmi spolehlivě push notifikace o nových komentářích a “lajcích” vámi přidaných fotografií. Protože teď chci pro účely jednoho připravovaného projektu Some move získat z Instagramu některé statistiky, očekával jsem, že tyto notifikace přímo získáte pomocí API. Opak je pravdou. Instagram poskytuje real-time API, kdy se vaše aplikace přihlásí k odběru upozornění pro daný účet, tag, místo či geografickou lokaci a server ji upozorní, že se něco změnilo. Bohužel, v příchozí JSON zprávě nenajdete informaci, co. Nejblíže mému záměru je odběr událostí pro účet – server upozorní, že objekt “user” číslo 1234 přidal nové médium. Na vás ale zůstává zjistit, která fotografie to byla. Pro daného uživatele z API získáte pouze poslední vložené fotografie a data si musíte projít sami. Nevěřím, že iPhone dokola opakovaně stahuje všechny data z uživatelského účtu, aby následně zobrazil upozornění na jeden nový komentář. Buď to za iOS řeší Apple server generující notifikace, nebo existuje neveřejné API. Tak jako tak pro účely libovolného CMS/CRM/statistického nástroje jako třetí strany vůči Instagramu jste v nevýhodě.

Budu rád, pokud se pletu. Hledání čehokoliv o API se ztrácí v záplavě obecných slov, které znepřesní výsledek z Googlu a nadto jste vždy zavaleni spoustou oslavných zpráv o zpřístupnění API, které samy o sobě už nehodnotí, jak kompletní je.

Videocast Pozor vlak, aneb Výzva Ministerstvu dopravy

Jiří Dlabaja mě poprosil o příspěvek do videocastu Pozor vlak od AŽD Praha. Najdete ho v 6. díle (čas 15:50 až 17:45). Chtěl jsem především ukázat na některé příklady, kdy se z vlakové linky stává kvalitní služba a taky vzkázat Ministerstvu dopravy, že zbytečně rezignuje na vlastní plány.

Diskuse vítána.

Západ slunce v Half Moon Bay

Untitled

Tento týden jsme se nemohli s kolegou po dnech trávených v kancelářích Vendavo Inc. dočkat víkendu. Těšili jsme se na nějaké venkovní aktivity a výlety, aby si člověk pročistil hlavu. Počasí tady přes týden byla velká demotivace od práce – u nás by se dalo klasifikovat jako pozdní jaro – slunce a přes den teplo. Leč sobotní ráno za nic nestálo. Skončili jsme v návštěvnickém centru NASA AMES, které ale zavíralo už ve 4 odpoledne. Stále bylo dost času do západu slunce a my se pokusili risknout, jestli před západem dojedeme do Half Moon Bay. Stihli jsme to a už vím, proč mi bývalá americká kolegyně doporučovala právě sem k Pacifiku vyrazit.

Ostatní fotografie z Poplar State Beach, Half Moon Bay, CA.

San Francisco a spotting letadel

Sanfranciské zimní počasí si dnes říkalo o pár fotek u letiště. Při studiu možností, kam kolem KSFO (San Francisco International) vyrazit na pozorování a focení, moc lokací na výběr nemáte. Asi nejlepším místem je Bayfront Park na rohu Millbrae Ave a Bayshore Hwy. Hned u parku je malé neplacené parkoviště s 13 místy a vedle něj pobřežní stezka, ze které je dobře vidět na obě sady drah – 10L/R a 28L/R. Letadla na drahách 10 budete ale mít za nízkým plotem a většinu dne ze stinné strany, dráhy 28 jsou zase poměrně daleko od břehu, takže potřebujete dobrou viditelnost, dlouhé sklo a velké stroje. Nezapomeňte na teplé oblečení – v zálivu bývá větrno a větší zima jako v přilehlém Sillicon Valey.

B-16712, B777-35EER EVA Air, BR18 TPE - SFO, San Francisco International (SFO), 27. 1. 2013

B-2468, B747-4J6M Air China, CA986 SFO - PEK, San Francisco International (SFO), 27. 1. 2013

N73860, B757-33N United Airlines, UA195 SFO - KOA, San Francisco International (SFO), 27. 1. 2013

Resuscitace stránek

Zápisky.info jsem začal psát někdy začátkem roku 2002. V průběhu té doby jsem na blog měl více i méně času a poslední rok byly i téměř nedostupné na původním hostingu. Mezitím jsem pokoušel dát dohromady fotoblog, ale sám o sobě zůstal taky bez častějších aktualizací. Je čas, abych vše dal dohromady a doménu oživil. Úkol první: převést data z BLOG:CMS na WordPress.

Ontologie pro relace mezi lidmi aktualizována

V současnoti existují 3 různé ontologie pro popis osob, resp. kontaktů – FOAF, RDF/vCard a W3C kontakty. Všechny tři jsem stručně představil před pár dny, když byla aktualizována ontologie pro vCard. Nejvíce jsou používané právě první dvě jmenované, kdy někteří autoři jejich doménu – osoby vs. kontakty – volně zaměňují a jiní naoapak striktně odlišují. Pro spojení osoby/organizace s její vizitkou jsem navrhl přidat do FOAFu vlastnost foaf:businessCard, ale její design je zatím ve stádiu diskusí na projektové wiki a netuším, zdali a kdy se do specifikace dostane.

Dnes prodělala změnu ontologie, která dlouhou dobu rozšiřuje možnosti vyjádření vztahu mezi osobami. Zatímco FOAF nabízí pouze oboustranný vztah „někdo zná někoho“, ontologie Relationship nabízí nejen obdobnou obecnou vlastnost, která ale nabízí jednostranný vztah, ale i další přesnější typy vztahu. „Přítel někoho“, „zaměstnán někým“, ale třeba i „chtěl by ho poznat“, to vše se nachází v jejím pojmovém aparátu. Podle diskusí se ale ukázalo, že zatímco lidský popis vlastností byl správný, vlastní návrh ontologie obsahoval chyby.

Vlastnost rel:knowsOf byla původně vlastností odvozenou od foaf:know. Nyní je tomu naopak. Už jen proto, že foaf:knows implikoval oboustranný vztah. Dále některé vlastnosti definují vztah osob, kdy se fakticky znát nemusí, např. „chtěl by znát“, ale přitom tyto vlastnosti byly odvozené od vlastnosti, která vynucovala fakt, že se osoby již znají. Nyní je tedy design ontologie očištěn a můžeme jen doufat v její širší použití. Ian Davis udělal dobrou práci!

Alternativa ze světa mikroformátů

Kromě FOAF lze ale kombinovat nejen s ontologií Relationship, ale i s další, nazvanou XFN, která má svůj původ v mikroformátech. Na blogu jsem ji používal již před několika lety a dokonce jsem přeložil generátor takových metadat do češtiny. Nyní se dočkal i tento mikroformát své ontologie. Všechny z vlastností jsou odvozené od foaf:knows. Protože jsou však v XFN jako relace používány hypertextové odkazy mezi stránkami, slouží tyto stránky jako „proxy“ identifikující jednotlivé osoby. V tom je tato technologie trochu krkolomná a uvidíme, jestli najde nějaké širší uplatnění.

Sjednocení zápisu vCard v RDF

Formát vCard je asi většině známý. Slouží pro zápis osobních vizitek a výměnu kontaktů. Čte ho vše od Microsoft Outlook po AddressBook.app na Mac OS X. Chcete–li mít svou vizitku čitelnou pro aplikace sémantického webu, musíte mít k dispozici ontologii pro popis takových dat. Mapování vCard do RDF bylo definováno už před devíti roky. Poznánka W3C Representing vCard Objects in RDF/XML načrtla první koncept, jak by se daly tyto data transformovat do RDF trojic. Pět let na to, s využitím doporučení pro správnou tvorbu schémat a ontologií, byla navržena podmnožina z vCardu, která se snáze používá. Členský návrh W3C An Ontology for vCards shrnuje dostupné a doporučené elementy, stejně jako na ukázkách demonstruje, jak zapsat jednotlivé dílčí informace. Děvět let bez dvou dnů po zveřejnění prvně zmíněné poznámky vychází aktualizovaná verze, kdy Representing vCard Objects in RDF zohledňuje doporučení, které se vývoj a praxí se sémantickým vCard získaly. Součástí dokumentu je také ještě více příkladů a stručný souhrn obsahu ontologie.

vCard ale není jedinou ontologií pro popis osob, která existuje. Přímou alternativou pro popis kontaktů je také W3C ontologie pro kontakty vyvinutá v rámci projektu SWAP. Ta popisuje osoby také jako kontakty s e–maily, telefonními čísly, atd. Třetí a nejméně důležitou je ontologie FOAF. Ta je z těchto tří asi nejvíce populární na sémantickém Webu. Popisuje osoby, základní informace o nich a také vztahy mezi nimi. I když poskytuje pouze jediný vztah foaf:knows, stala se díky tomu populární, ba přímo must–have pro sociální aplikace na sémantickém Webu.

Chtete–li propojit vCard a FOAF, řešení existuje. Na projektu OpenVocab byla vytvořena vlastnost ov:businessCard, která dovoluje připojit k objektu vizitku – ať už k osobě, skupině nebo organizaci. Její definice je ale označná jako nestabilní. Nabízí se tedy možnost, aby se taková vlastnost zařadila přímo do FOAFu. Téma mixování vCardu a FOAFu jsem také trochu (nechtěně) nakousl na mailing–listu foaf-dev, kde se nakonec konsensus nenašel. Podle všeho ale foaf:Person (osoba) a vc:VCard (vizitka) nemůžou být to samé.

V současné době také vzniká přehled, co mají ontologie vCard, PIM a FOAF společného a jak je mapovat na sebe.

Skriptování webových aplikací s RDF a SPARQL

Znalosti 2010 — 9. ročník série česko–slovenské konference o získávání, zpracování, zpřístupňování a správy znalostí se letos koná v Jindřichově Hradci. Zatímco v roce 2008 v Bratislavě jsem prezentoval tehdejší práci na distribuovaném dotazování více databází pomocí Sesame 2, letos nabízím téma bližší programování dynamických webových stránek. Základem je velmi stručně představit, že lze programovat webové stránky pomocí RDF frameworku a dotazovacího jazyka SPARQL, který dotazuje informace v databázi. Pro prezentaci informací pak volím XHTML+RDFa. Přesně tak programuju KEGweb — komunitní stránky výzkumné skupiny na Katedře informačního a znalostního inženýrství VŠE Praha. Jádrem všeho je databáze a knihovna ARC2, se kterou se pracuje velmi dobře. Myslím, že bude stát za to představit, jak se s RDF/SPARQL dá programovat a jak s tímto „stackem“ psát webovou aplikaci. Prozatím přikládám mnou publikované materiály — konferenční poster Case Study on Linked Data and SPARQL Usage for Web Application Development ve spoluautorství s Aristem a Vojtou Svátkem ze skupiny KEG.

Ke stažení: text článku (PDF), plakát (PDF)

Vzkazy z konference najdete na Twitteru pod tagem #znalosti2010.

FOAF a jeho aktualizace 0.96 – první zásadní změny

Schéma FOAF a jeho specifikace byla po dva roky téměř beze změny. Téměř jedinou úpravnou bylo přidání vlastnosti foaf:openid pro přiřazení OpenID identifikátoru k agentovi (zejména osobě). 15. 12. 2009 byla zveřejněna aktualizace 0.96 Amsterdam Edition, která vyjma editorských úprav obsahuje také zásadnějí revize některých pojmů ve schématu. Některé z vlastností, které jsou málo používané nebo špatně specifikované, jsou označeny za archaické. U třech bylo z důvodu nedodržení jmenné konvence navrženo nové znění a současné taktéž označeno za zavržené. Navíc, jak uvedla Libby Miller v oznámení, další větší aktualizace bude brzy následovat.

Nahrazené vlastnosti

FOAF původně vznikal živelně a vzhledem k neexistenci jasný jmenných konvencí pro tvorbu ontologií vznikly některé vlastnosti, které těm současným odporují. Navrženy byly nové vlastnosti pojmenované dle konvencí a staré zavrženy.

Stará vlastnost Nová vlastnost Popis vlasnosti
foaf:family_name foaf:familyName rodné jméno, přijmení
foaf:givenname foaf:givenName křestní jméno
foaf:holdsAccount foaf:account* účet; spojení osoby a uživatelského účtu

*) Vlastnost foaf:account je nyní inverzní vlastností sioc:account_of.

Zejména u foaf:holdsAccount dochází k poměrně radikálnímu zásahu do existujících dat. Dokud nepřestanou existovat FOAF soubory/grafy používající staré znění vlastnosti, bude nutné v každém SPARQL dotazu na tuto relaci vkládat UNION, který sloučí výsledky pro staré a nové znění. Zde se ukazuje, že přejmenování vlastností v schématech/ontologiích není zatím zcela vyřešeno.

Zastaralé vlastnosti

Následující dvě vlastnosti jsou velmi řídce používané a proto byly označeny za archaické. V schématu se nachází stále, ale specifikace je již nenabízí ve výčtu aktuálních vlastností a tříd. Neměly by být používány.

Název vlasnosti Popis vlasnosti
foaf:fundedBy Jméno organizace sponzorující osobu
foaf:theme Jméno tématu