土地情報と建物情報と施設情報の作成
ここまでは想定FMシステムの出力を利用せず、Excelでデータを作成する例を示しました。この節ではいよいよ想定FMシステムが出力した電子データを利用します。
本ケーススタディでは建物単位に施設管理を行う例を題材にしています。従って、土地と建物と施設は1対1で対応しており、全て施設一覧から作成します。
まずは、施設一覧のcsvファイルと共通データ仕様のAttributeの対応関係の表を作成します。今までとの大きな違いは全ての項目の情報が揃っていない点です。以下、対応表を見てみましょう。
■土地情報 (Land)
Attribute名 | 補足 | |
---|---|---|
不動産ID | id, identificationGroup.identification | 本来、id等に使いたい情報ですが、登記していない不動産のため値が入っていないと想定します。このため、idは不動産IDの代替として施設IDから生成します |
施設ID | id | 施設IDの前に”urn:ngsi-ld:Land:JP”と法人番号を付加してidを生成します。 |
所在地 | address.streetAddress | 自治体名より後ろの住所がcsvに格納されているとします。GIFの規定に則り、丁目や番号は半角(ASCIIの数字)であるとします |
所管部門 | refOwner, refDepartment | 呉市の所管部門の名称が登録されています。その名称から既に生成した部門(Department)を使って部門と組織のidを求めます |
■建物情報 (Building)
Attribute名 | 補足 | |
---|---|---|
不動産ID | id, identificationGroup.identification | 本来、id等に使いたい情報ですが、登記していない不動産のため値が入っていないと想定します。このため、idは不動産IDの代替として施設IDから生成します |
施設ID | id, facilityID, refLand | 施設IDをfacilityIDに格納するだけでなく、idを作成するためにも利用します。尚、本ケーススタディでは不動産IDが無く、土地と建物は区別せずに「施設」として管理しているとしているため、この方法を採用しましたが、土地と建物を別の実体として管理するFMシステムの場合は、別の方法でLandのidを求める必要があります |
所管部門 | refDepartment | 呉市の所管部門の名称が登録されています。その名称から既に生成した部門(Department)を使って部門と組織のidを求めます |
タテモノヨミガナ | nameKana | 建物のカナヨミガナとしてそのまま利用します |
建築年 | completionYear | そのまま利用します |
床面積 | totalFloorArea | そのまま利用します |
取得価格 | acquisitionPrice | そのまま利用します |
所管部門 | refDepartment | 所管部門名からDepartmentを検索し、Departmentのidを取得します |
■施設情報 (Facility)
Attribute名 | 補足 | |
---|---|---|
施設ID | id,refBuilding | 施設IDからidを作成します。また、施設IDからBuildingを検索し、Buildingのidを求め、refBuildingに格納します |
施設名 | name | 施設名の値をそのまま利用します |
タテモノヨミガナ | nameKana | 施設のカナヨミガナとしてそのまま利用します |
用途 | originalCategory | 用途の定義には多様なものがありますが、想定FMシステムが出力する用途は自治体特有の用途の区分だと考え、originalCategoryに変換します。 |
電話番号 | contactPoint.telephone | 連絡先として電話番号を登録します |
想定FMシステムが出力するcsvファイルの内容は以下の通りとしました。幅が広いので、途中で折り返して表示しています。
このデータをcsvファイルとして書き込みます。その際、”ctoj”の指定通り、utf-8で書き込みます。
次に、このcsvファイルをJSON形式に変換しますが、拡張JSON Schemaは例えば以下となります。上から順に、土地 (Land) 、建物 (Building) 、施設 (Facility) です。長いので、途中で切ってあります。詳細はツールのwebサイトをご覧ください。
{
"$schema": "http://json-schema.org/draft-07/schema#",
"$id": "https://ppp-database.org/spec/datamodel/Land/",
"type": "object",
"properties": {
"id": {
"type": "string",
"dataSource": {
"csvAttr": "不動産ID",
"prefix": "urn:ngsi-ld:Land:",
"alternate": [
{
"dataSource": {"csvAttr": "自治体名"},
"entityType" : "Organization",
"searchAttr" : "name",
"valueAttr" : "identificationGroup.identification",
"identificationType": "法人番号",
"prefix": "urn:ngsi-ld:Land:JP"
},
{
"csvAttr": "施設ID",
"prefix": "-"
}
]
}
},
"type": {
"type": "string",
"const": "Land"
},
--以下略--
{
"$schema": "http://json-schema.org/draft-07/schema#",
"$id": "https://ppp-database.org/spec/datamodel/Building/",
"type": "object",
"properties": {
"id": {
"type": "string",
"dataSource": {
"csvAttr": "不動産ID",
"prefix": "urn:ngsi-ld:Building:",
"alternate": [
{
"dataSource": {"csvAttr": "自治体名"},
"entityType" : "Organization",
"searchAttr" : "name",
"valueAttr" : "identificationGroup.identification",
"identificationType": "法人番号",
"prefix": "urn:ngsi-ld:Building:JP"
},
{
"csvAttr": "施設ID",
"prefix": "-"
}
]
}
},
"type": {"const": "Building"},
"category": {
"type": "object",
"properties": {
--以下略--
{
"$schema": "http://json-schema.org/draft-07/schema#",
"$id": "https://ppp-database.org/spec/datamodel/Facility/",
"type": "object",
"properties": {
"id": {
"type": "string",
"dataSource": [
{
"dataSource": {"csvAttr": "自治体名"},
"entityType" : "Organization",
"searchAttr" : "name",
"valueAttr" : "identificationGroup.identification",
"identificationType": "法人番号",
"prefix": "urn:ngsi-ld:Facility:JP"
},
{
"csvAttr": "施設ID",
"prefix": "-"
}
]
},
"type": {"const": "Facility"},
"name": {
"type": "object",
"properties": {
"type": {"const": "Text"},
"value": {
"type": "string",
"dataSource": {"csvAttr": "施設名"}
--以下略--
これをctojツールに入力すると、以下の様にFMシステムの出力を共通データ仕様に形式変換した結果が得られます。
[
{
"id": "urn:ngsi-ld:Building:JP9000020342025-01234567",
"type": "Building",
"name": {
"type": "Text",
"value": "呉市吉浦市民センター"
},
"nameKana": {
"type": "Text",
"value": "クレシヨシウラシミンセンター"
},
"facilityID": {
"type": "Text",
"value": "01234567"
},
"refLand": {
"type": "Relationship",
"value": [
"urn:ngsi-ld:Land:JP9000020342025-01234567"
]
},
"totalFloorArea": {
"type": "Number",
"value": 2152
},
"completionYear": {
"type": "Text",
"value": "1996"
},
--以下略--
[
{
"id": "urn:ngsi-ld:Land:JP9000020342025-01234567",
"type": "Land",
"address": {
"type": "PostalAddress",
"value": {
"addressRegion": "広島県",
"addressLocality": "呉市",
"streetAddress": "吉浦東本町1-7-23"
}
},
"refOwner": {
"type": "Relationship",
"value": "urn:ngsi-ld:Organization:JP9000020342025"
},
"refDepartment": {
"type": "Relationship",
"value": "urn:ngsi-ld:Department:JP9000020342025-0402004"
}
},
{
"id": "urn:ngsi-ld:Land:JP9000020342025-03000012",
"type": "Land",
"address": {
"type": "PostalAddress",
"value": {
"addressRegion": "広島県",
"addressLocality": "呉市",
"streetAddress": "吉浦中町2-6-5"
--以下略--
[
{
"id": "urn:ngsi-ld:Facility:JP9000020342025-01234567",
"type": "Facility",
"name": {
"type": "Text",
"value": "呉市吉浦市民センター"
},
"nameKana": {
"type": "Text",
"value": "クレシヨシウラシミンセンター"
},
"originalCategory": {
"type": "Array",
"value": [
"市民文科系施設"
]
},
"refBuilding": {
"type": "Relationship",
"value": "urn:ngsi-ld:Building:JP9000020342025-01234567"
},
"contactPoint": {
"type": "ContactPoint",
"value": [
{
"telephone": [
"0823-01-2345"
]
}
--以下略--