最近在網路上與真實世界中,各地興起一種熱門現象 - 個人資訊出版(personal Web publishing),也就是所謂網誌(weblog)與部落格(blog)。這種被鬆散定義的規格,竟然創造出全球性的風潮,並重新形塑人際資訊的空間。其背後使用的技術是RSS - 一種約簡過後、描述網站內容項目後設資料(metadata)的XML文件。透過個人資訊出版與RSS的彙整、排列順序與搜尋,群眾找到了他們的個人終極書寫工具;這種分散式個人資訊出版以及RSS內容交換中心的出現,解決了資訊浦島太郎們的惡夢困境:在一個自己創造的空間中,人們不再被伺服器端的限制決定自己的樣貌。
個人資訊出版現象所反映的,只不過是我們每個人更為基本、早已存在的需求。有多少人在網路上作的第一件事情,就是寫自己的「首頁」(homepage)?如同小時候課堂上常見的景象:站上講台,對底下其實並不太熟悉的同學們自我介紹。
本文的主題(同時也是一項計畫):「我朋友的朋友」(Friend-of-a-Friend,FOAF)是以類似RSS的方式,更進一步探索了在網路世界裡的小世界網路現象(small world network),提供了我們認識世界的另一種視野。
網路上發生的有趣事情,背後都有著有趣的人在創造它。例如我想要瞭解某個XML計畫的最新進展,背後的動機可以解讀成:「我想要瞭解那個計畫最新的消息,以及推動計畫的那些人們,他們的想法」。對於每天處理資訊、大量使用google的現代人,應該可以深切體會上面那句解讀的操作型定義。第一句話意味著搜尋計畫首頁,尋找著「最新消息」這幾個字;第二句話相當於找到人名,做為關鍵詞再次地丟入google,去尋找他的個人網誌。但在RSS出現之後,「最新消息」這幾個字對我來說已經喪失魔力:如果你隨時都能夠簡單地追蹤到這個計畫網頁的更新訊息,你還需要那「不那麼新」的最新消息嗎?
第二句話的關鍵詞是「那些人們」。我不僅想知道這個網頁名義上的作者,我還想深入瞭解背後關心這個問題的虛擬社群,包括這一群人們及他們的想法、個別的想法是什麼?彼此對話的想法又是什麼?透過對他們對話脈絡的掌握,我於是能夠想像他們之間的關係網絡。從每個人的個別觀點出發,「那些人們」就是每個人的「我朋友的朋友」(Friend-of-a-Friend,FOAF)的集合。
什麼是FOAF?
FOAF是讓每個人得以描述自己的一組詞彙。最初的構想類似Geek Code技客碼,電腦技術高強的黑客(hacker)與技客們想出一套讓別人快速瞭解自己的縮寫密碼。而在1998年的時候,Dan Brickley這個熱愛RDF的狂熱份子,用RDF寫了類似的自我陳述,就是今日FOAF的前身。
FOAF「我朋友的朋友」提供一種方法在全球資訊網中建立機器可判讀的網頁。技術上來說,它是一份RDF/XML的語義網(Semantic Web)詞彙。FOAF的文件最常被用在以下的脈絡:用簡單而容易處理、合併與彙整的方式,呈現關於人際網路之間的相關資訊。
它提供了個人首頁常用到的表達方式,例如:「我的姓名」、「我對哪些主題有興趣」、「這些照片裡面的那個人就是我」、「我有一個部落格/網誌」,並且將這些表達方式用正確的RDF/XML方式撰寫,讓你可以用這些表達方式告訴前來搜尋找資料的軟體:這就是我。
也因為這些表達方式經過處理,讓笨笨的電腦能夠讀懂與推論,在這些資訊的基礎上,不需要經過複雜的資料庫程式設計,我們可以直接詢問電腦一些很平凡的問題:「喂....那台聰明的,請把住在我家附近、對無線網路也很感興趣的部落格作者的照片秀給我看看。」「請幫我叫出今天會議中有出席的朋友,他們的部落格最新的文章」「這個人吃素嗎?」而這個語義網計畫:FOAF,我朋友的朋友,就是一種讓網路變得更親切方便、容易瀏覽的一種嚐試。
FOAF的誕生
在1998年,Dan Brickley在他個人的頁面上第一次用RDF試著描述他自己:包括他的名字、email信箱、他的朋友,與所感興趣的事物和參與的專案。2004年的今天,透過最新的RDF與XML技術的發展,Dan Brickley與Libby Miller開始了rdfweb計畫,建立了一套與其他RDF詞彙能夠互通交流的FOAF的詞彙。由於搜尋引擎與各種Web-crawling技術的進展與普及,藉由這些詞彙所表達的個人資訊,得以被日趨完備的RDF工具處理、合併與彙整,吸引了許多人們的熱情回應。
今天你可以透過FOAF-a-matic,FOAF自動產生器(註1)來產生你的第一份FOAF檔案。就像是一般網站登錄時填寫個人資料的過程,把一些再平常不過的資訊,透過Leighs Dodds的Javascript程式彙整成一份FOAF檔案。但不同的是,你的檔案並沒有被收在哪一個主機上,反而可以讓你帶著走,擺在個人的網路首頁裡頭。
提供FOAF服務的角色地圖
根據常常在迷路的Leighs Dodds(他的部落格名字取作「迷路的男孩」)的看法,他認為目前大夥兒在圍繞著FOAF所作的種種實驗性的服務,至少有三種不同的類型:FOAF生產(FOAF Generating)、FOAF蒐集(FOAF Gathering/FOAF Harvester)與FOAF消費(FOAF Consuming)。
FOAF生產
FOAF生產的目的是促使更多人使用FOAF來描述自己。這類型的服務,例如Leighs Dodds自己撰寫的FOAF-a-matic(FOAF自動產生器),也有一些網站提供人們輸入個人資訊的服務,並轉成FOAF檔案輸出。
FOAF蒐集
FOAF蒐集服務例如註冊中心或類似FOAFExplorer,會根據每個人的FOAF檔案中的<<foaf:seeAlso>資訊,漫遊到下一個FOAF檔案;蒐集的成果會以視覺化或圖表的方式呈現出來,例如FOAFnaut就是一個以XML/SVG的方式呈現人際網絡資訊的計畫。
FOAF消費
架構在蒐集者之上,有所謂的FOAF消費者:依照這些蒐集得來的人際網路資訊,提供更便利的網路服務。例如最新的社群手機/線上交友網站-dodgeball.social,就是一個號稱Friendster.com太無聊,要用手機來玩「我朋友的朋友」遊戲的網路內容服務。假設在紐約市區內,你跟你朋友的朋友距離在30公尺內,你的彩色照相音樂手機就會翩翩響起動人的音樂,告訴你說那個名叫ilya的朋友(照片同時也快速閃出)就在前方不遠喲。
FOAFware朋友系統
我黏起了一個詞:FOAFware,朋友系統。它的意思是說,以交友作為主要互動內容的網路服務與相關的軟體。這不是什麼新奇的觀念,從很久很久以前、達康泡泡破掉之前的史前時代就已經有交友網站的存在。但是從FOAF的角度來看,這些不同面貌的網路服務,其實是當作每個人的FOAF檔案應用、寄生與交換的公共場所,也就是我這裡所謂的交友系統。
Orkut.com就是一個這樣的系統。一進入網站,你會看到一行字,描述著我現在連結到的小世界網路有多大的規模:
You are connected to 197495 people through 90 friends.
僅僅是透過每個人朋友的朋友,我便連結到在這個網站中這麼多的使用者。在網站的說明頁面中,這樣描述了它的目標:
- 「orkut.com是一個設計給朋友們使用的線上社群網站。我們主要服務的目的是讓你和你朋友們的社會生活更為活躍與刺激。orkut的社會網絡可以幫助你維繫既有的關係,同時接觸你從未見過的朋友、建立新的關係。你和誰互動全然看你自己。在更瞭解一個orkut成員之前,你可以看看他們如何透過朋友網絡連結到你的身旁。
- orkut讓尋找跟你擁有相同嗜好與興趣的人、尋找感情的浪漫連結跟新業務關係這些事情變得更為容易。你也可以建立與加入許多各式各樣的線上社群來討論熱門事件、失聯大學同學或交換餅乾的食譜。」
在這些描述背後的實際體驗,是從自己身邊的朋友出發,然後逛著「我朋友的朋友」的個人資料,還有他們所創立、參與的各式各樣古怪的社團活動;腦海中會跳出一些有趣的對話框:有誰會加入“出生於莫斯科、美國加州大學聖地牙哥校區視覺藝術系,藝術史與新媒體理論大師Lev Manovich”的粉絲俱樂部(Fanclub)?誰跟我一樣,是那位“前南斯拉夫貝爾格萊德大學數學博士,現在是紐約Location One藝術中心的共同主持人Drazen Pantic”的粉絲(fans)之一呢?你知道有一個世界性的草根組織,叫做「用電作怪事俱樂部」(dorkbot)嗎?如果平常Yahoo!奇摩交友網站的經驗算是一種平面經驗的話,這種彷彿在外太空逛街的交友經驗,應該算夠立體、超級立體吧。
其他類似的朋友系統還有很多,像Orkut.com的歷史相當新、去年年底才出現,就被網路上戲稱是google派來暗殺交友網站Friendster.com的頭號殺手。另外還有著名的Ryze.com,感覺比較像是資深CEO、CIO專業人士的交友俱樂部,跟google青春洋溢的程式設計師、軟體工程師人際網絡就有蠻大的差異。
FOAF的實驗
「我朋友的朋友」FOAF可應用的脈絡相當廣泛。你可以藉由它跟RDF的詞彙結合,成功地描述不同的脈絡情境。對於這個備受矚目,但是還只是0.1版本的Namespace文件來說,FOAF的愛好者藉著實驗的方式來嚐試將FOAF應用到日常生活中。底下我舉四個例子來說明FOAF的應用。因為裡面有些範例難度頗高,外國叔叔阿姨們都有練過,所以請勿自行模仿。使用前務必要準備居家常備藥google。最好用eMule或電驢子把參考書目抓一抓之後再作實驗。歡迎你寄email到 foafzdp-discuss@lists.openfoundry.org。
實驗一
首先是Amazon亞馬遜書店的Wishlist禮物清單服務。這應該不用我再解釋了吧,就是地球上最賺錢的書店推出的一項服務,把你想買的書(或其他的禮物)清單先寄放在櫃檯,然後三不五時拿起來看看;並且,還可以逢年過節、生日大喜聖誕新年前寄給別人說,「喂,該是你表現的時候了」。這個熱門的服務相當受歡迎,也有熱情的網路工作者把它放在自己的首頁。除了擺在首頁之外,感謝Dan Brickley把它加入字典中,你現在可以選擇在FOAF檔案中用<foaf:wishlist>將你的禮物清單讓別人自動抓取。這樣別人在閱讀你的FOAF檔案時,也會知道你的禮物清單在哪裡。除了靜態的禮物清單之外,別忘了亞馬遜書店可是推出了網路服務呢!Daniel John Ayers更進一步地實驗,讓別人在瀏覽你的FOAF資料時,亞馬遜書店就將準備好的禮物清單內容遞送出來。(註2)
實驗二
這個實驗跟部落格blog有關。已經擁有部落格的blogger,往往會使用一個很方便的免費服務:blogroll部落格逛大街(網誌/部落格串連)。所謂部落格逛大街,或者網誌串連,是指blogger擺在自己首頁上的友好網誌資訊;依照音謀筆記作者Jeph的說法(註3),是將自己常常拜訪的部落格列出來,「方便自己逛大街」。
大部分網友使用的是blogrolling.com的服務,會自動根據最新的狀態更新,把所有blogroll清單用javascript排序後呈現在網頁上。而透過<foaf:blogroll>這個語法,blogroll資訊可以夾帶於FOAF檔案中;在foaf.rdf檔案與blogroll的相關設定完成之後,你可以使用Technik.net所使用的「FOAF自動自發機制」(FOAF Autodiscovery)(註4):Autocreation Tool自動建立工具,地毯式查找並閱讀朋友們的最新FOAF資訊,再根據他們所撰寫的自動自發聯結,產生一份最新的FOAF檔案。(註5)
實驗三
第三個實驗是FOAF跟城市旅遊導覽的結合:OpenGuides開放城市導覽計畫(註6)。OpenGuides於今年度參加第二十五屆Prix Ars Electronica大獎:「數位社群」(Digital Communities)競賽,這套網路內容服務同時也是由社群以Perl共同開發的自由軟體,目前版本是0.3。服務本身是一個wiki的應用,就和著名的wikipedia一樣,針對城市的主題,讓所有人共同參與內容的創作、建立與修改所有資訊的共同寫作計畫。
以倫敦的開放城市導覽計畫為例,藉由規定共通的體例與軟體設計的輔助,當你瀏覽任何一筆倫敦的pub資訊時,便是有系統地取用一套混用四、五種以上RDF詞彙(包括FOAF在內)所描述的倫敦街頭。
例如當我搜尋在Tottenham Court Road與中國城附近的pub資訊時,我找到了一家「費茲羅酒肆」(Fitzroy Tavern):除了知道歷史悠久、從1883年的咖啡館到1887年改建的pub,一堆倫敦Perl黑客的推薦之外,我還根據<foaf:topic>的語法所混用的Chef Moz(摩斯拉大廚?)的餐廳詞彙(註7)、geo地理定位詞彙以及都柏林核心後設資料(DC: Dublin Core Metadata),知道了它的經緯度、地址電話以及寫作本頁的作者資訊。可惜的是,老闆或好心的路人甲先生沒有輸入餐廳的首頁跟到底開到多晚的資訊。這個實驗產出的結果,是每一個城市中有趣的資訊,最後都會以RDF的格式輸出,成為軟體可以處理的數位資訊;在合併彙整之後,提供使用者意想不到的便利與樂趣。
實驗四
基於前一個實驗的結果,加上無線網路訊號與空間移動軌跡描繪的「大地遊戲」產生了:NodeRunner - 「基地台發現大挑戰!」(註8)。這是由紐約市無線網路狂熱份子所發起的一種遊戲,在兩個地點之間尋找無線網路基地台、帶著數位相機拍照存證,找到最多基地台的人獲勝。在筆者個人的部落格當中曾介紹過的粉筆斥候(warchalking),也是這種遊戲早期的源頭之一 - 在你活動區域周圍找到無線網路訊號來源,然後拿粉筆在人行道上或站牌旁邊,畫上代表這個訊號來源相關的資訊 - 這些精心設計過的符號,分別顯示了這個地點的頻寬、有沒有鎖住網卡編號、屬於開放還是封閉的節點等等的資訊。另外一個切口與黑話則是wardriving,駕著汽車梭巡尋找無線網路的訊號。
回到前段所談的大地遊戲:NodeRunner。跟紐約市個人版「基地台發現大挑戰!」不同的是,倫敦的Perl黑客Jo Walsh小姐跟完全開放大學(UoFO, University Of Openness)製圖學院(Faculty of Cartography)合作進行的是一場開放組隊參加的團體競賽。三到四個人一組,裝備包括:一台筆記型電腦(安裝NetStumbler或Kismet無線訊號掃描軟體,全程紀錄log)、GPS定位系統(紀錄waypoint log)、數位相機(必備、拍照存證;如果參賽團隊還有數位攝影機也不錯)。比賽的目標是在兩個半小時內,參賽團隊從hackney/shoreditch/city borders三個地點之一到limehouse的路途中,偵測、拍照與登入越多的開放無線網路節點的團隊將獲得勝利。
計分方式包括:單一節點成功掃描完成一次,算一分;成功地登入開放節點,拍照並且上傳檔案成功,得五分。晚上九點之後才到達終點limehouse的隊伍,扣四分,而且大家會直接去pub喝酒,不理你們。每個節點都必須要拍攝並且上傳兩張照片:第一張照片是所有團隊成員站在訊號範圍內合影,第二張照片是必須拍攝該區域顯著的招牌或地標。
你可以想像這整個遊戲都是利用FOAF與RDF/XML的詞彙來描述嗎?包括照片裡面的拍攝者與被拍攝者的資訊、倫敦街頭的地標與地理位置,在城市中移動的軌跡,開放無線網路節點的登入紀錄,以及該區域無線網路訊號的強弱紀錄,通通透過FOAF與其他的RDF語義膠帶黏在一起,變成電腦與軟體可以自動自發地理解、推論、彙整,並且呈現出來的一種,鮮活精采的資訊。
結論
FOAF是一種可攜帶的資料。從設計之初,FOAF就是一種從使用者的角度來看待資料的RDF語言。在讓機器可判讀的語義網(Semantic Web)的目標之下,它使用一般人都能夠清楚了解意義的詞彙,個人能夠輕易的作維護與修改;更可以將最新的檔案輕易備份在用戶端,儲存或者再作進一步的交換,不受伺服器資料庫的限制。以往的個人資料都是在使用網站所提供的網路服務時,被網站保留在伺服器主機端;如今以分散的方式保留在使用者的手中,使用者甚至可以決定對誰來公佈資訊、以及如何運用這些資訊。
透過這種分散式的資料,與網路的Crawling機制,分散式的知識被合併、彙整成全新的立體樣貌。透過各種實驗與應用,FOAF提供了我們經驗世界、認識世界的多種角度。從其他的人眼中望出去,世界的面貌有時候蠻令人感到驚奇的。我一直不斷地在發現世界的新樣子。
備註:FOAF檔案範例URL:http://ilyagram.org/etc/foaf.rdf
註解:
1.FOAF-a-matic, http://www.ldodds.com/foaf/foaf-a-matic.html
2.DannyAyers: Raw: Wishful Thinking with FOAF and Amazon Web Services, http://dannyayers.com/archives/002159.html
3.jeph, 音謀筆記:blogroll 政治學, http://blog.twblog.net/jeph/archives/000576.html
4.FOAF自動自發機制有兩個意思。第一個意思是FOAF檔案本身透過<meta>的link標籤,讓軟體自動發現FOAF檔案,這樣的自動化過程。第二個意思是加入schema的描述,以foaf.maker的語法把foaf.rdf變成一份自動發現其他內容服務、所需要的規格資訊參照主檔的自動機制。詳見 http://rdfweb.org/topic/Autodiscovery 。
5.Technik.net, http://www.tecknik.net/autofoaf/ ,但是這個小實驗我還沒有成功。
6.Open Guides, http://www.openguides.org/。
7.Chef Moz dining guide RDF Element Set, ver 1.0. http://chefmoz.org/rdf/elements/1.0/ 關於摩斯拉大廚,詳情請參見http://chefmoz.org/ 與dmoz 開放目錄計畫。
8.NodeRunner, http://www.uncommonprojects.com/noderunner/。