県名市名イニシャル表記で最も匿名性が高いのはS県K市 に触発されて、ひさびさに SPARQL を書いてみました。
方法
統計局の 統計LOD では 都道府県市区町村のコード情報を SPARQL Endpoint を通じて提供しています。コード情報だけでなく、英語名なんかも提供されているので、SPARQL をきちんと書ききることができれば、S県K市 のようなリストと件数を取得できそうです。
https://data.e-stat.go.jp/lod/sparql/ を表示すると以下のような SPARQL 実行フォームが表示されるので、ここに作成した SPARQL クエリーをペースト>検索実行することで結果を取得できます。
SPARQL
以下の SPARQL でうまくいきました。
initial.rq
PREFIX sacs: <http://data.e-stat.go.jp/lod/terms/sacs#>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX owl: <http://www.w3.org/2002/07/owl#>
PREFIX dcterms: <http://purl.org/dc/terms/>
SELECT ?result (count(?result) as ?count) WHERE {
?a owl:sameAs ?b .
?b sacs:administrativeClass ?clazz ; rdfs:label ?name_en ; rdfs:label ?name_ja .
?c sacs:administrativeClass sacs:Prefecture ; rdfs:label ?pref_en ; rdfs:label ?pref_ja ;dcterms:hasPart ?b .
FILTER (
?clazz in (sacs:City, sacs:DesignatedCity, sacs:CoreCity, sacs:SpecialCity) &&
lang(?pref_en) = "en" && lang(?pref_ja) = "ja" &&
lang(?name_en) = "en" && lang(?name_ja) = "ja"
)
BIND ( CONCAT(SUBSTR(?pref_en,1,1),SUBSTR(?pref_ja,STRLEN(?pref_ja)),SUBSTR(?name_en,1,1),SUBSTR(?name_ja,STRLEN(?name_ja))) AS ?result)
} GROUP BY ?result ORDER BY DESC(count(?result))
結果
こんなかんじで出力されます。S県K市は元記事のようにちゃんと 18 件あるようですね。
全件の結果を こちら においておきます。
20170622-sparql-result.json
{
"head": {
"vars": [ "result" , "count" ]
} ,
"results": {
"bindings": [
{
"result": { "type": "literal" , "value": "S県K市" } ,
"count": { "datatype": "http://www.w3.org/2001/XMLSchema#decimal" , "type": "typed-literal" , "value": "18" }
} ,
{
"result": { "type": "literal" , "value": "K県K市" } ,
"count": { "datatype": "http://www.w3.org/2001/XMLSchema#decimal" , "type": "typed-literal" , "value": "13" }
} ,
{
"result": { "type": "literal" , "value": "I県K市" } ,
"count": { "datatype": "http://www.w3.org/2001/XMLSchema#decimal" , "type": "typed-literal" , "value": "13" }
} ,
{
"result": { "type": "literal" , "value": "S県S市" } ,
"count": { "datatype": "http://www.w3.org/2001/XMLSchema#decimal" , "type": "typed-literal" , "value": "12" }
} ,
{
"result": { "type": "literal" , "value": "N県S市" } ,
"count": { "datatype": "http://www.w3.org/2001/XMLSchema#decimal" , "type": "typed-literal" , "value": "11" }
} ,
{
"result": { "type": "literal" , "value": "A県T市" } ,
"count": { "datatype": "http://www.w3.org/2001/XMLSchema#decimal" , "type": "typed-literal" , "value": "11" }
} ,
{
"result": { "type": "literal" , "value": "A県K市" } ,
"count": { "datatype": "http://www.w3.org/2001/XMLSchema#decimal" , "type": "typed-literal" , "value": "10" }
} ...
]
}
}
まとめ
とりあえず望む結果が得られたのですが、クエリー結果が返ってくるまで数十秒かかります。あと SPARQL 久々に書くと脳がしびれますね。