跳轉到內容

XQuery/南安普頓酒吧

來自華夏公益教科書,開放的書籍,為開放的世界

南安普頓的酒吧

[編輯 | 編輯原始碼]

關於南安普頓酒吧的資料是由兩位愛好者收集的。John Goodwin 建立了一個RDF 表示,以及一個介面,用於訪問這些資料。

轉換為 KML

[編輯 | 編輯原始碼]

RDF 很容易轉換為 KML。 RDF 使用許多名稱空間,在本摘錄中並非所有名稱空間都使用。

2009 年 3 月:發現此指令碼已損壞。基本 RDF 檔案已更改,為地址添加了一個新的名稱空間[1],以代替本地酒吧名稱空間。由於當然沒有對此類更改的通知,因此已釋出的 RDF 資料集的使用者與網路抓取器並沒有更好的位置,除非應用程式被編寫為首先檢查應用程式假設的詞彙是否仍在使用。但是,沒有機制可以表達 RDF 資料集中使用的詞彙片段的混合。如果有的話,至少可以透過對在此應用程式中實際使用的部分進行類似定義進行比較來檢查介面。

2008 年 3 月 5 日

遺憾的是,由於對其中一家酒吧評論的不良反應,John 被迫撤下此資料集。


declare namespace rdf= "http://www.w3.org/1999/02/22-rdf-syntax-ns#";
declare namespace rdfs= "http://www.w3.org/2000/01/rdf-schema#";
declare namespace pub= "http://www.johngoodwin.me.uk/pubs/";
declare namespace geo ="http://www.w3.org/2003/01/geo/wgs84_pos#";
declare namespace con ="http://www.w3.org/2000/10/swap/pim/contact#";

declare option exist:serialize "method=xhtml media-type=application/vnd.google-earth.kml+xml highlight-matches=none"; 

let $x := response:set-header('Content-disposition','Content-disposition: inline;filename=sotonpubs.kml;')
let $pubs := doc("http://www.johngoodwin.me.uk/pubs/models/pubs.rdf")/rdf:RDF
return
<Folder>
 {for $pub in $pubs/rdf:Description
  let $description :=
     <div>
             <div style="color:gray">{concat($pub/con:address//con:street," ", $pub/con:address//con:postalCode)}</div>
             <div style="color:blue">{string($pub/pub:description)}</div>
             <hr/>
             <div style="font-size:10pt">{$pub/pub:dateSurveyed}</div>
     </div>
  return 
    <Placemark>
       <name>{string($pub/rdfs:label) } </name>
       <description>{  util:serialize($description,"method=xhtml")}</description>
       <Point>
          <coordinates>{concat($pub/geo:long,",",$pub/geo:lat,",0")}</coordinates>
       </Point>
   </Placemark>
 }
</Folder>

在 Google 地圖上

華夏公益教科書