2014/09/06

SwiftからSPARQL利用

SwiftからSPARQLを利用するには

SPARQLは、エンドポイントと呼ばれるURIにGETリクエストでSPARQLクエリを投げると、json、xmlなど(指定可能)がレスポンスで返ってきます。

例えば、CocoaPodsでAFNetworkingを利用する場合
execQueryにSPARQLクエリを入れてください。

以下、びわ湖大花火大会に関するオープンデータ
        let manager :AFHTTPRequestOperationManager = AFHTTPRequestOperationManager()
        let url :String = "http://dl.opendata.shiga.jp/sparql"
        let sparql :String = execQuery
        
        let parameters :Dictionary = [
            "default-graph-uri" : "http://lod.opendata.shiga.jp/hanabi2014",
            "query"             : sparql,
            "format"            : "json",
        ]
        
        manager.requestSerializer = AFJSONRequestSerializer()
        manager.requestSerializer.setValue("application/sparql-results+json", forHTTPHeaderField: "Accept")
        manager.responseSerializer = AFHTTPResponseSerializer()
        let requestSuccess = {
            (operation :AFHTTPRequestOperation!, responseObject :AnyObject!) -> Void in
            NSLog("requestSuccess \(operation.responseString)")            
        }
        let requestFailure = {
            (operation :AFHTTPRequestOperation!, error :NSError!) -> Void in
            NSLog("requestFailure: \(error)")
        }
        
        manager.GET(url, parameters: parameters, success: requestSuccess, failure: requestFailure)


CC BY Yuichi Matsuoka / @you_matz