跳转到内容

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 地图上

华夏公益教科书