Webアプリを創る

市区町村コード情報がLODで公開されたので使ってみた

2014年1月25日

次世代統計利用システムで、都道府県・市区町村コード情報が LOD(Linked Open Data)で提供されるようになったので使ってみた。使い方を少しメモしておく。

まず、SPARQLエンドポイントが用意されているので、そのページに行くと下の図のように画面でも検索できるようになっているので、この画面でSPARQLを試してみた。

image

?s ?p ?o というのは、?s(Subject 主語)、?p(Property 述語)、?o(Object 目的語)で、tuple ステートメントというようです。そのままで、Show results inline: にチェックをして、「Send Query」ボタンをクリックすると以下のように情報が表示される。

image

次に市区町村コードから市町村名等が表示されるか試してみた。?s を埼玉県川越市の市区町村コード11201に以下のように置き換えてクエリーしてみた。なお、sac:C11201は、<http://statdb.nstac.go.jp/lod/sac/C11201>の省略形であり、Prefex が登録されているので簡単に記述可能である。sac:C11201 の代わりに、<http://statdb.nstac.go.jp/lod/sac/C11201>と入力しても同じ結果になる。

SELECT * WHERE { 
  GRAPH ?g { sac:C11201 ?p ?o . }
}

クエリーの結果は、プロパティとしては、rdf:type と owl:sameAs のみを持つていて、owl:sameAs プロパティの結果として期間付き標準地域コード sac:C11201-20030401 が返されるだけで、市町村名等は取得できない。ここで取得した期間付き標準地域コードのプロパティを取得する必要がある。そこでクエリーを次のように変更して実行してみた。

SELECT * WHERE { 
  GRAPH ?g { sac:C11201 ?p ?o . ?o ?a ?b. }
}

こうするとマニュアルにある期限付き標準地域コード・クラスのプリパティの一覧が表示され、その中に川越市という名前も表示される。プロパティのうち、dcterms:valid は廃止年月日のプロパティなので、現時点では値がない。その場合には、RDBのようにNULLとかが表示されるのではなく、プロパティには何も表示されない。それでは市町村名だけを表示するのはどうしたらいいかというとプロパティを以下のように市町村の日本語表記である rdfs:label@js 等に指定すればよい。

SELECT ?b WHERE { 
  GRAPH ?g { sac:C11201 owl:sameAs ?o . ?o rdfs:label ?b. } FILTER( lang(?b) = "ja")
}

なお、マニュアルでは、日本語表記のプロパティは、rdfs:label@ja となっているが、そのままでは動作せずFILTER を使う必要があるようだ。

次に、埼玉県川越市の市区町村コードを取得してみる。一番簡単なクエリーは以下になる。

SELECT * WHERE { 
  GRAPH ?g { ?s ?p "川越市" . }
}

これで、?s に川越市の期間付き標準地域コードの一覧が表示されるので、一応 11201 ということがわかる。もう少し厳密に現在の川越市の市区町村コードをクエリーで得る例は以下のとおり。

SELECT * WHERE { 
  GRAPH ?g { ?s ?p ?o . ?s rdf:type sacs:CurrentStandardAreaCode. ?o rdfs:label "川越市". }
}

次に埼玉県の現在の市町村の一覧を取得してみる。そのコード例は以下のとおり。

SELECT ?s ?name WHERE { 
  GRAPH ?g { ?s ?p ?o . ?s rdf:type sacs:CurrentStandardAreaCode. {{
?o dcterms:isPartOf sac:C11000-19700401.
}UNION{
?o dcterms:isPartOf ?district.
?district dcterms:isPartOf sac:C11000-19700401.
}} ?o sacs:administrativeClass ?ad.
?o rdfs:label ?name. } FILTER( lang(?name) = "ja")
FILTER( ?ad = sacs:DesignatedCity || ?ad = sacs:CoreCity || ?ad = sacs:SpecialCity || ?ad = sacs:City || ?ad = sacs:Town || ?ad = sacs:Village )
}

埼玉県の1970年4月1日以降のどの日の市町村一覧とか市町村がどのように合併をしてきたか等をSPARQLを使えば取得可能である。そういう点では、LODは非常に便利である。自分の場合は、市町村の合併等を考慮して統計数字を比較したいと思っているので、都道府県・市区町村コード情報の LODを使いたいと思っている。

しかし、普通の人がSPARQLを使うのは、はっきりいって難しすぎるし、少し複雑なことをしようと思えばSPARQLがどんどん複雑になってしまう。今のSPARQLだとオープンデータの専門家のおもちゃにすぎないと思う。オープンデータでLODの評価が非常に高くなっているが、それは一部の専門家の評価であって、普通の人が使えるようなソフトウェアを作らなければLODの評価は過大評価だと思う。

 

独立の前に会社での下積みは本当に必要なのか

2014年1月23日

家入一真氏の都知事選への出馬表明をみていて思ったことは、それは家入氏が引きこもりから起業したということである。日本では、「会社をすぐにやめて独立しようとすることは、いかがなものか?」という意見が多いようだ。独立する前に会社に数年間在籍して、社会のいろんなルールや仕事の基本的なやり方を知ることが必要だという意見だ。家入氏を見ていると、分野にもよると思うけど、そろそろそういう考え方を改めた方がいい時期になっているように思う。

イケダハヤト氏もイケハヤ書店の「ホリエモンが指摘する「下積み原理主義」に大変共感する件」というブログで、下積原理主義を批判している。昨日のブログで書いたようにモバイルからのアクセスを1年で2.5倍にできる時代に、下積みを3年もしていればチャンスを逃すのは間違いないと思う。

日本ではマラソンよりも駅伝に人気がある。でも、その駅伝がマラソンをダメにしているという意見がある。現在日本のマラソン選手で有名なのは市民ランナーの川内選手である。待遇では川内選手よりはるかに恵まれているはずの実業団の選手が川内選手に勝てないのは、実業団が駅伝優先になっている点も大きいと思う。

IT関係も同じことがいえる。銀行のシステムを作りたいのであれば大規模なシステムだから組織力が重要になってくるから会社での下積みも必要になってくる。一方で、FaceBook や Twitter のようなシステムを作りたいのであれば、家入氏のように引きこもりであってもいくつもの事業やプロジェクトを立ち上げることができる人が明らかに有利だ。

IT関係で会社でいることのメリットってどんどん少なくなっていると思う。会社でいるメリットの一つは資産や組織があって高い技術力の製品を作れることだと思う。でも、Google や Apple や日本でも一部の先端を走っている企業を別にすれば、ソフトウェアの開発にはそれほどの資産が必要ないし、技術力だって OSS の方が会社の技術力よりも上だという場合が多い。それに組織でいると組織としての制約があって新しい技術が使えない場合も多い。

そろそろ日本でもこういう問題は一般論で話をするのではなく、現実や人の個性をみて考えていかないといけない時代だと思う。

2014年をどういう年にするか

2014年1月22日

Google Analytics で自分の関係するWebサイトの状況を分析していると、昨年はスマートフォンからの流入が急増しているのがわかった。4月と直近30日間のデバイス別の訪問数の数字を下に示すが、モバイルからのアクセスは9ヶ月で実に2.5倍に急増している。

デバイス直近30日4月増加率 (%)
PC 249,379 187,999 33
モバイル 234,164 93,898 149
タブレット 23,416 11,665 101

このことから考えると、今年一番にしようと思うのが、スマートフォン対応の強化だろう。2014年は、スマートフォンからのアクセスがPCからのアクセスを超えると思う。

次にしたいと思うことは、データをビジュアルに表現すること。言うことは簡単だけど実際にするのは結構難しいが、スマートにビジュアル化されたサイトは魅力的だと思うから、そういうWebサイトにしていきたい。

今年もいろいろ問題はあると思うけど、スマートフォンが急成長している時期に関係する仕事に関わることができるのは好運だと思う。やはり、急成長している分野というのはいろいろとできることが多いものだ。最後になるが、本当に大事なのはいかに楽しくプログラミングができる環境を作るかだと思う。いかに効率よくコラボレーションをやっていくかが大きな課題だと思っている。

 

2013年を振り返って

2013年12月31日

今年の4月にフリーになって、9ヶ月が経過しました。現在はWebアプリの Google Adsense からの収入で何とか生活ができています。Google Adsense からの収入は、受託と違って、作業に束縛されることがないので、新しいことにチャレンジすることができます。そういう点では運がよかった1年だったと思います。

今年になって始めた統計メモ帳については失敗でした。アクセスを増やすためには、もう少し時間を取って文章でデータの説明をする必要があるように思います。でも、今のところは時間的に無理なので仕方がないかなと思っています。

一人では多くのことはできません。これからはコラボレーションが大切になってくると思っています。でも、コラボレーションすること自体が簡単なことではないです。自分のビジネスモデルは、Webアプリを一人で作って効率をあげるという方法です。Webアプリを作る場合には、日本では数人で分業して制作をするのが普通だと思います。でも、新しいWebアプリを作るのに分業して作業すると、コミュニケーションのコストが非常に高くなります。だから、一人で全部やってしまえば非常に効率が上がります。これからも多くの人で分業で制作をするという形は取らないつもりです。

自分のWebサイトへのアクセスは、今月はモバイルからがついに45%になりました。それで、現在重点的に作業をしているのはモバイル対応です。PhoneGapによるiPhoneアプリ、Androidアプリの作成の作業もしています。

PISAで「数学における自己概念」は世界で最下位という悲惨な結果

2013年12月4日

2012年に実施された経済協力開発機構(OECD)の国際学習到達度調査(PISA)の結果が公表された。報道では日本の15歳の学力が充実したという肯定的な評価がなされている。

数学的リテラシーの習熟度レベルについては、確かに日本のレベルは高くなっている。しかし、内容を詳しく見ると実に悲惨な状態にある。文部科学省のOECD生徒の学習到達度調査(PISA)のページPISA2012年調査分析資料集をみると、「数学における自己概念」は下の図のように何と世界で最下位なのである。また、「数学における道具的動機付け」は、ルーマニアに次いで下から2番目(P39)、「数学における自己効力感」は、ブラジル、コロンビアについて下から3番目である(P42)。

日本の場合は、テストのためだけに数学をしているようなところがあると思う。そこが、自信を持って何かを創造することができないということに繋がっているような気がする。先進国に追いつくまでは、日本のやり方は非常に効率的だったと思う。でも、追いつくまでは物真似でいいがその後は自ら創造することができないと経済も発展しない。日本の「失われた20年」の原因は案外こういうところにあるのかもしれない。

image