ホームAPI神戸市Linked Open Data使用方法

神戸市Linked Open Data使用方法

APIについて

神戸市ではオープンデータのAPIとしてLinked Open Data(LOD)を採用しています。

LOD:
ウェブを基盤としたデータ流通の技術で、国際標準化された要素技術を組み合わせることで実現されます。
あらゆる事物(施設やイベントなど)に関する情報を構造化データとして提供し、ウェブを経由して簡単に参照することができます。

ライセンス  

どなたでも、どんな目的でも自由にご利用いただけます。
神戸市のLODはオープンデータとして公開しています。
すべてのデータはクリエイティブ・コモンズ・ライセンス(CC BY 4.0 / 表示 4.0 国際)のもとご利用いただけます。
商用、非商用を問わずどなたでも自由に利用することができます。ただし、データを利用する際は原作者のクレジット(神戸市オープンデータ)を表示したうえで、可能であればデータへのリンクも含めるようにしてください。

CC-BY

提供データ

神戸市が提供しているLODについての詳細情報です。

接頭辞

本文中では以下のとおり、接頭辞を用いてIRIを省略して表記します。
また、以下のような既存の語彙についての用法や構造等の詳細についてはそれぞれのドキュメントを参照してください。

prefix name space
rdf http://www.w3.org/1999/02/22-rdf-syntax-ns#
rdfs http://www.w3.org/2000/01/rdf-schema#
xsd http://www.w3.org/2001/XMLSchema#
dct http://purl.org/dc/terms/
dsv http://datashelf.jp/ns/dsv#
schema http://schema.org/
ic http://imi.go.jp/ns/core/rdf#

イベント情報

対象 Class base IRI
イベント情報(データ入力基盤連携) ic:イベント型 http://data.city.kobe.lg.jp/rdf/resource/dataadmin/event/
属性
属性 定義
rdfs:label RDFリソースのラベル 文字列
ic:名称 施設の名称を表す ic:名称型
ic:表記 名称や住所等の表記 文字列
ic:種別 イベントや料金の種別を表す文字列 文字列
ic:説明 イベントに関する説明 文字列
ic:期間 イベントの開催期間 ic:イベントスケジュール型
ic:開始日 イベントの開始日 ic:日付型
ic:終了日 イベントの終了日 ic:日付型
ic:標準型日付 日付 xsd:date
ic:開始時間 イベントの開始時間 xsd:time
ic:終了時間 イベントの終了時間 xsd:time
ic:地理座標 地理空間座標 ic:座標型
ic:緯度 施設の地理空間上の緯度を示す値(WGS84) 文字列
ic:経度 施設の地理空間上の経度を示す値(WGS84) 文字列
ic:開催場所 イベントの開催場所 ic:施設型
ic:住所 所在地の住所 ic:住所型
ic:連絡先 連絡先について ic:連絡先型
ic:電話番号 電話番号 文字列
ic:FAX FAX番号 文字列
ic:料金 イベントの料金 dsv:料金型
ic:アクセス 施設へのアクセス方法 ic:アクセス型
ic:備考 開催場所やアクセス方法についての記載 文字列
schema:url WebサイトのURL 文字列
schema:image 施設やスポットの画像URL 文字列
dct:created データの作成日時 文字列
dct:modified データの変更日時 文字列
geo:lat イベントの地理空間上の緯度を示す値(WGS84) 文字列
geo:long イベントの地理空間上の経度を示す値(WGS84) 文字列
dsv:対象地域 イベントの対象地域 文字列
dsv:募集人数 イベントの募集人数 文字列
データ例
  :6hsggmrzUs3zsLeZ a ic:イベント型 ;
    rdfs:label "オリックス神戸開幕戦特別無料招待" ;
    ic:参加方法 "【応募方法】 往復はがきにて ※往復はがき以外でのお申し込みは無効となります。 〒654-0163 須磨区緑台 神戸総合運動公園管理センター2階 神戸市公園緑化協会 あてご応募ください。 【はがきの書き方】 往信用通信欄に 試合日(4月7日)と ①住所②申込人数③代表者の氏名(ふりがな)④年齢⑤性別⑥電話番号 ※申込人数の記載のない場合は、ご招待人数は「2人」とさせていただきます。 返信用あて先欄に ①郵便番号②住所③申込代表者の氏名をご記入ください。 ※ご注意 返信用通信欄には何も記載しないでください。 ※消せるボールペンは印刷の熱で消えますので使用しないでください。 ※個人売買・オークションサイト等での当選はがきの転売は禁止します。 【締切】 3月10日(金)消印有効" ;
    dsv:募集人数 "内野自由席(4人以内)1,500組" ;
    schema:inLanguage "日本語" ;
    schema:url "https://www.kobe-park.or.jp/" ;
    geo:lat "34.68088444710041" ;
    geo:long "135.073511041217" ;
    ic:名称 [
      ic:表記 "オリックス神戸開幕戦特別無料招待"
    ] ;
    ic:説明 "4月7日(金)18時より 開催される オリックス vs 日本ハム戦(2017神戸開幕戦・花火ナイト) に神戸市民の皆さま、1500家族をご招待します!! (抽選、往復はがき1枚につき4人までご招待)" ;
    ic:料金 [
      ic:種別 "無料"
      ic:表記 ""
    ] ;
    ic:種別 "スポーツ" ;
    ic:種別 "全般" ;
    ic:種別 "その他" ;
    ic:連絡先 [
      ic:種別 "イベント内容問い合わせ先" ;
      ic:電話番号 "078-795-5533" ;
      ic:FAX番号 "078-795-5544" ;
      ic:名称 [
        ic:表記 "(公財)神戸市公園緑化協会"
      ]
    ] ;
    ic:期間 [
      ic:開始日 [
        ic:標準型日付 "2017-04-07"
      ] ;
      ic:終了日 [
        ic:標準型日付 "2017-04-07"
      ] ;
      ic:開始時間 "18:00" ;
      ic:終了時間 "21:30"
    ] ;
    ic:開催場所 [
      ic:名称 [
        ic:表記 "ほっともっとフィールド神戸"
      ] ;
      ic:住所 [
        ic:表記 "神戸市須磨区緑台(神戸総合運動公園内)"
      ] ;
      ic:アクセス [
        ic:備考 "神戸市営地下鉄・総合運動公園駅 下車 徒歩1分"
      ]
      ic:地理座標 [
        ic:緯度 "34.68088444710041" ;
        ic:経度 "135.073511041217"
      ] ;
      ic:備考: ""
    ] ;
    dsv:対象地域 "須磨" ;
    ic:画像 "https://mb.api.cloud.nifty.com/2013-09-01/applications/08eBRsgoGmYUZHRN/publicFiles/q26moYqhdhPy6vjY_kf1482911714575_img_mascot01.gif" .

SPARQLエンドポイント

SPARQL(RDF専用のクエリ言語)を用いて、欲しいデータを問い合わせて取得することができます。
Endpoint URIにGETリクエストするとレスポンスが得られます。(SPARQL 1.1)
許可している操作は、select, construct, ask, describeです。

Endpoint URI:https://data.city.kobe.lg.jp/sparql

Getでのデータ取得

クエリ例

select distinct * where {
  ?s ?p ?o .
} LIMIT 100

GETリクエスト例

$ curl -H 'Accept: application/sparql-results+json' https://data.city.kobe.lg.jp/sparql?query=select%20distinct%20%2a%20where%20%7b%0d%0a%3fs%20%3fp%20%3fo%20%2e%0d%0a%7d%20LIMIT%20100

ヘッダ内のAcceptでレスポンス"format"を指定することができます。
指定できる主なフォーマットには以下があります。 - application/sparql-results+json - application/rdf+xml - text/turtle

クエリ例

以下、基本的なクエリ例を示します。
SPARQLのドキュメント等を参考にぜひ、応用してみてください。

例)4月に開催されるイベント情報を取得

PREFIX ic: <http://imi.go.jp/ns/core/rdf#>

select distinct ?s ?name ?datef ?datet where {
?s a ic:イベント型.
?s ic:名称/ic:表記 ?name .
?s ic:期間 [ ic:開始日 ?datef; ic:終了日 ?datet ] .
FILTER (xsd:dateTime("2017-04-01T00:00:00") <= xsd:dateTime(?datet) && xsd:dateTime(?datet) < xsd:dateTime("2017-05-01T00:00:00"))
} LIMIT 100

 

例)4月に開催されるイベント情報を取得 (開始時間、終了時間、開催場所の名称を追加)

PREFIX ic: <http://imi.go.jp/ns/core/rdf#>

select distinct ?s ?name ?datef ?datet ?timef ?timet ?place where {
?s a ic:イベント型.
?s ic:名称/ic:表記 ?name .
?s ic:期間 [ ic:開始日 ?datef; ic:終了日 ?datet; ic:開始時間 ?timef; ic:終了時間 ?timet ] .
?s ic:開催場所/ic:名称/ic:表記 ?place .
FILTER (xsd:dateTime("2017-04-01T00:00:00") <= xsd:dateTime(?datet) && xsd:dateTime(?datet) < xsd:dateTime("2017-05-01T00:00:00"))
} LIMIT 100