ブログ   うい・らぶ・だいびんぐ   Cube 別館   flag_uk 英語サイト   ポータル
twitter Twitter でログイン
ホーム   最新ニュース   フォーラム   ダウンロード   写真集   リンク集   お問い合わせ RSS

SmartSection > Tools > PHP > LOD > LOD 8: 今月に開催されるイベントの数を取得する

LOD 8: 今月に開催されるイベントの数を取得する

投稿者: Ken 掲載日: 2012-12-20 (1672 回閲覧)
LOD (Linked Open Data) のサンプルコード

デモとソースコードはこちら

概要

今月に開催されるイベントの数を取得する
結論から言うと、正確な数は取得できない
重複したデータを含んだ数になる
なお、COUNT関数は SPARQL 1.1 で規定されている
参考: SPARQL Query and distinct count

これはクライアント側の処理です
サーバー側(エンドポイント)には ヨコハマ・アート・LOD を使用しました

取得する情報

・今月に開催されるイベントの数

発行するSPARQL

クエリによって結果が大きく異なる

例1: 一番シンプルなクエリ


PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX cal: <http://www.w3.org/2002/12/cal/icaltzd#>
PREFIX event:  <http://fp.yafjp.org/terms/event#>
SELECT COUNT(?event) AS ?count
WHERE {
 ?event rdf:type event:Event ;
 cal:dtstart ?dtstart ;
 cal:dtend ?dtend .
 FILTER ((?dtstart > "2012-12-01T00:00:00+09:00"^^xsd:dateTime && ?dtstart < "2012-12-31T00:00:00+09:00"^^xsd:dateTime) ||
 (?dtend > "2012-12-01T00:00:00+09:00"^^xsd:dateTime && ?dtend < "2012-12-31T00:00:00+09:00"^^xsd:dateTime) ||
 (?dtstart < "2012-12-01T00:00:00+09:00"^^xsd:dateTime && ?dtend > "2012-12-31T00:00:00+09:00"^^xsd:dateTime))
}


検索結果: 422

例2: location を含むクエリ


PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX cal: <http://www.w3.org/2002/12/cal/icaltzd#>
PREFIX event:  <http://fp.yafjp.org/terms/event#>
SELECT COUNT(?event) AS ?count
WHERE {
 ?event rdf:type event:Event ;
 event:location ?location ;
 cal:dtstart ?dtstart ;
 cal:dtend ?dtend .
 FILTER ((?dtstart > "2012-12-01T00:00:00+09:00"^^xsd:dateTime && ?dtstart < "2012-12-31T00:00:00+09:00"^^xsd:dateTime) ||
 (?dtend > "2012-12-01T00:00:00+09:00"^^xsd:dateTime && ?dtend < "2012-12-31T00:00:00+09:00"^^xsd:dateTime) ||
 (?dtstart < "2012-12-01T00:00:00+09:00"^^xsd:dateTime && ?dtend > "2012-12-31T00:00:00+09:00"^^xsd:dateTime))
}


検索結果: 293
実際は 292 のようなので、これが一番近い

例3: 場所とイベントを同時に取得するクエリ


PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX cal: <http://www.w3.org/2002/12/cal/icaltzd#>
PREFIX event:  <http://fp.yafjp.org/terms/event#>
SELECT COUNT(?event) AS ?count
WHERE {
 ?place rdf:type place:Place .
 ?event event:location ?place ;
 cal:dtstart ?dtstart ;
 cal:dtend ?dtend .
 FILTER ((?dtstart > "2012-12-01T00:00:00+09:00"^^xsd:dateTime && ?dtstart < "2012-12-31T00:00:00+09:00"^^xsd:dateTime) ||
 (?dtend > "2012-12-01T00:00:00+09:00"^^xsd:dateTime && ?dtend < "2012-12-31T00:00:00+09:00"^^xsd:dateTime) ||
 (?dtstart < "2012-12-01T00:00:00+09:00"^^xsd:dateTime && ?dtend > "2012-12-31T00:00:00+09:00"^^xsd:dateTime))
}


検索結果: 103
このクエリが実際より小さくなる理由は分からない
location を含まないイベントがあるかと思ったが、そうではないようだ

関連

- LOD 一覧
- LOD 7: 今月のイベントの一覧を表示する
- LOD 8: 今月に開催されるイベントの数を取得する
- LOD 9: 重複のないイベントを取得する
- その他

参考
- ヨコハマ・アート・LOD
- RDF用クエリ言語SPARQL
- SPARQL 1.1 Query Language
- SPARQL Query and distinct count

ページ移動
良く読まれた記事 LOD 9: 重複のないイベントを取得する LOD 7: 今月のイベントの一覧を表示する 次の記事
投票者の合計: 0
平均: 0
投稿された内容の著作権はコメントの投稿者に帰属します。
スポンサー

寄付
配布しているソフトが気に入ったら、寄付をお願いします。
寄付

PageRank のページ毎の表示
http://linux.ohwada.jp/ modules/smartsection/item.php?
PageRank 0 PageRank

メインメニュー

マニュアル

ログイン