ケーススタディ#1 – 施設情報のcsvファイルを活用した多目的電子データ生成 (4/7)

土地情報と建物情報と施設情報の作成

 ここまでは想定FMシステムの出力を利用せず、Excelでデータを作成する例を示しました。この節ではいよいよ想定FMシステムが出力した電子データを利用します。

 本ケーススタディでは建物単位に施設管理を行う例を題材にしています。従って、土地と建物と施設は1対1で対応しており、全て施設一覧から作成します。

 まずは、施設一覧のcsvファイルと共通データ仕様のAttributeの対応関係の表を作成します。今までとの大きな違いは全ての項目の情報が揃っていない点です。以下、対応表を見てみましょう。

■土地情報 (Land)

csv項目名Attribute名補足
不動産IDid, identificationGroup.identification本来、id等に使いたい情報ですが、登記していない不動産のため値が入っていないと想定します。このため、idは不動産IDの代替として施設IDから生成します
施設IDid施設IDの前に”urn:ngsi-ld:Land:JP”と法人番号を付加してidを生成します。
所在地address.streetAddress自治体名より後ろの住所がcsvに格納されているとします。GIFの規定に則り、丁目や番号は半角(ASCIIの数字)であるとします
所管部門refOwner, refDepartment呉市の所管部門の名称が登録されています。その名称から既に生成した部門(Department)を使って部門と組織のidを求めます

■建物情報 (Building)

csv項目名Attribute名補足
不動産IDid, identificationGroup.identification本来、id等に使いたい情報ですが、登記していない不動産のため値が入っていないと想定します。このため、idは不動産IDの代替として施設IDから生成します
施設IDid, facilityID, refLand施設IDをfacilityIDに格納するだけでなく、idを作成するためにも利用します。尚、本ケーススタディでは不動産IDが無く、土地と建物は区別せずに「施設」として管理しているとしているため、この方法を採用しましたが、土地と建物を別の実体として管理するFMシステムの場合は、別の方法でLandのidを求める必要があります
所管部門refDepartment呉市の所管部門の名称が登録されています。その名称から既に生成した部門(Department)を使って部門と組織のidを求めます
タテモノヨミガナnameKana建物のカナヨミガナとしてそのまま利用します
建築年completionYearそのまま利用します
床面積totalFloorAreaそのまま利用します
取得価格acquisitionPriceそのまま利用します
所管部門refDepartment所管部門名からDepartmentを検索し、Departmentのidを取得します

■施設情報 (Facility)

csv項目名Attribute名補足
施設IDid,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"
            ]
          }
--以下略--