3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Common Lisp (sbcl) を使って SPARQL 検索をする

Posted at

Debian に SBCL をインストール

こちらのブログ記事に従って,SBCL をインストールし,quicklisp もインストールしてください.

github から次のようにして,cl-fuseki を quicklisp のローカルプロジェクトとしてインストールします.

$ sudo apt-get install git
$ git clone https://github.com/madnificent/cl-fuseki.git
$ mv cl-fuseki quicklisp/local-projects/
$ sbcl
CL-USER(1): (asdf:initialize-source-registry)
CL-USER(2): (ql:quickload :cl-fuseki)

これで drakuma,cl-ppcre,jsown が自動的にロードされ,cl-fuseki もコンパイル&ロードされるはずです.

DBpedia Japanese にアクセスしてみる

上記のコードに引き続いて,次のようにしてみます.

CL-USER(5): (in-package :cl-fuseki-user)
FUSEKI-USER(6): (defparameter *repository*
  (make-instance 'fuseki::virtuoso-repository :name "DBpedia Japanese"
             :server (make-instance 'fuseki::virtuoso-server
                       :base-url "http://ja.dbpedia.org/sparql")))
FUSEKI-USER(7): (setq result
 (query *repository*
     "select distinct * where { <http://ja.dbpedia.org/resource/東京都> ?p ?o .  } LIMIT 100"))

するとJSON形式の答えが得られるはずです.ロードされたパッケージの中に jsown もあるので,その機能を使って得られた結果から望みの情報を取りだすコードを書きます.

今回は一番簡単に,SBCLとquicklispに依存して virtuoso の提供するエンドポイントにアクセスしてみましたが,allegro common lisp でも cl-fuseki を使って virtuoso エンドポイントにアクセスできることを報告しておきます.

3
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?