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 エンドポイントにアクセスできることを報告しておきます.