ケーススタディ#2 – CSVから共通データ仕様の形式への変換 (10/14) — 機種(DeviceModel)

「機種(DeviceModel)」の項目への変換ルール

 ケーススタディ#1の設備一覧表の例で「機種(DeviceModel)」から選択した項目は以下の通りです。「機種」以外から選択した項目は無視します。各項目の変換の仕方も表内記入しました。

元となるCSV表の項目名共通データ仕様上の項目名表形式への変換の説明
メーカー名、型番id「法人(Organization)」をメーカー名で検索してメーカーの法人番号を求め、型番と組み合わせてidの文字列を作成します。
(なし)typeデータモデルのtypeを登録します。ここでは”DeviceModel”を登録します
ブランド名brandName機器のブランド名です。例えば”しろくまくん”。
設備種別category設備の用語を登録してあります。”分電盤”、”排水設備”など。。
color機器の色を設定する。例えば”白”
メーカー名manufacturerNameメーカ名。例えば”日立製作所”
型番modelName機器の型番。例えば”RAS-DM28KE8″
耐用年数serviceLife耐用年数です。

CSV表の準備

 ケーススタディ#1の設備一覧表の例を使いますが、同じ機種が複数設置されているので、一行ずつに間引きます。各モデル名について一行ずつ残るようにします。どの行が残っても構いません。

■入力となる表

設備種別設備名称ブランド名型番メーカー名建物名管理通番場所大分類場所中分類場所小分類設置日製造日製造番号機種通称耐用年数URL説明
照明器具照明-1F-支所-001ペアルックPL-101Xパナ製作所呉市吉浦市民センター01234567建物内部1F吉浦支所2018-04-252018-01-12PL-101X-123 20  
空調機空調-1F-支所-002ひぐまくんHG-232Wパナ製作所呉市吉浦市民センター01234567建物内部1F吉浦支所2020-05-152020-03-25HG-232W-234 10  
流し台流し-1F-支所-005KAKA -100KAKA -100 KAKA呉市吉浦市民センター01234567建物内部1F男子トイレ2019-02-052018-02-13KAKA-100A2356 20  
鏡-1F-支所-006KAKA -200KAKA -200 KAKA呉市吉浦市民センター01234567建物内部1F男子トイレ2018-05-252018-01-25KAKA-200A2765 10  
洋式便器便器-1F-支所-007KAKA -300KAKA -300 KAKA呉市吉浦市民センター01234567建物内部1F男子トイレ2020-06-242020-01-09KAKA-300A5987 7  
防火扉防火-2F-吉小-004防火ダウンパネルDP10-200X 西洋シャッター呉市立吉浦小学校03000012校舎2F西階段室2012-05-192012-02-02DP10-200XGH5 20  
舞台照明舞照-2F-吉小-006LX-100LX-100 吉浦電機製作所呉市立吉浦小学校03000012体育館舞台 2018-04-252018-01-12LX-100-PL109 10  
舞台音響舞音-2F-吉小-007HIF-10000HIF-10000 吉浦サウンドシステム呉市立吉浦小学校03000012体育館舞台 2020-05-152020-03-25HIF-10000-PO8KJ 7  
呼出設備呼出-3F-吉中-004IX-1000SL-321V2 ガラホン呉市立吉浦中学校04000008屋外正門2018-05-252018-01-25IX-1000-876D 7  
遊具遊具-3F-吉中-005鉄棒-100IX-1000 吉浦遊具呉市立吉浦中学校04000008屋外グランド2020-06-242020-01-09HB-100X-G2LOI 20  
プール泳場-3F-吉中-006P25-10HB-100X-G2 吉浦プール呉市立吉浦中学校04000008屋外グランド2021-07-152021-02-23P25-10-2019 20  

■CSVファイルの内容

設備種別,設備名称,ブランド名,型番,色,メーカー名,建物名,管理通番,場所大分類,場所中分類,場所小分類,設置日,製造日,製造番号,機種通称,耐用年数,URL,説明
照明器具,照明-1F-支所-001,ペアルック,PL-101X,白,パナ製作所,呉市吉浦市民センター,01234567,建物内部,1F,吉浦支所,2018-04-25,2018-01-12,PL-101X-123,,20,,
空調機,空調-1F-支所-002,ひぐまくん,HG-232W,白,パナ製作所,呉市吉浦市民センター,01234568,建物内部,1F,吉浦支所,2020-05-15,2020-03-25,HG-232W-234,,10,,
流し台,流し-1F-支所-005,KAKA -100,KAKA -100,,KAKA,呉市吉浦市民センター,01234571,建物内部,1F,男子トイレ,2019-02-05,2018-02-13,KAKA-100A2356,,20,,
鏡,鏡-1F-支所-006,KAKA -200,KAKA -200,,KAKA,呉市吉浦市民センター,01234572,建物内部,1F,男子トイレ,2018-05-25,2018-01-25,KAKA-200A2765,,10,,
洋式便器,便器-1F-支所-007,KAKA -300,KAKA -300,,KAKA,呉市吉浦市民センター,01234573,建物内部,1F,男子トイレ,2020-06-24,2020-01-09,KAKA-300A5987,,7,,
防火扉,防火-2F-吉小-004,防火ダウンパネル,DP10-200X,,西洋シャッター,呉市立吉浦小学校,03000012,校舎,2F,西階段室,2012-05-19,2012-02-02,DP10-200XGH5,,20,,
舞台照明,舞照-2F-吉小-006,LX-100,LX-100,,吉浦電機製作所,呉市立吉浦小学校,03000012,体育館,舞台,,2018-04-25,2018-01-12,LX-100-PL109,,10,,
舞台音響,舞音-2F-吉小-007,HIF-10000,HIF-10000,,吉浦サウンドシステム,呉市立吉浦小学校,03000012,体育館,舞台,,2020-05-15,2020-03-25,HIF-10000-PO8KJ,,7,,
呼出設備,呼出-3F-吉中-004,IX-1000,SL-321V2,,ガラホン,呉市立吉浦中学校,04000008,屋外,正門,,2018-05-25,2018-01-25,IX-1000-876D,,7,,
遊具,遊具-3F-吉中-005,鉄棒-100,IX-1000,,吉浦遊具,呉市立吉浦中学校,04000008,屋外,グランド,,2020-06-24,2020-01-09,HB-100X-G2LOI,,20,,
プール,泳場-3F-吉中-006,P25-10,HB-100X-G2,,吉浦プール,呉市立吉浦中学校,04000008,屋外,グランド,,2021-07-15,2021-02-23,P25-10-2019,,20,,

機種情報の変換

 このケーススタディでは”ctoj”というツールを使いますので、csvファイルを作成する際にはutf-8で書き込んでおきます。

このケーススタディでは以下の様に拡張JSON Schemaを策定しました。拡張JSON Schemaとは、本協議会が公開しているJSON SchemaにcsvからJSONファイルに変換する際のルールを追記したものです。詳しくはツールのサイトを参照してください。「機種」の場合は例えば以下となります。

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "$id": "https://ppp-database.org/spec/datamodel/DeviceModel/",
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "dataSource": [
        {
          "dataSource": {"csvAttr": "メーカー名"},
          "entityType": "Organization",
          "searchAttr": "name",
          "valueAttr": "identificationGroup.identification",
          "identificationType": "法人番号",
          "prefix": "urn:ngsi-ld:DeviceModel:JP"
        },
        {
          "csvAttr": "型番",
          "prefix": "-"
        }
      ]
    },
    "type": {"const": "DeviceModel"},
    "alternateName": {
      "type": "object",
      "properties": {
        "type": {"const": "Text"},
        "value": {"type": "string"}
      },
      "required": ["type", "value"]
    },
--以下略--

 この拡張JSON Schemaを指定してctojツールを実行すると、以下の様に共通データ仕様の形式変換した結果が得られます。下図は変換後の先頭部分です。

  [
    {
      "id": "urn:ngsi-ld:DeviceModel:JP0990123456001-PL-101X",
      "type": "DeviceModel",
      "brandName": {
        "type": "Text",
        "value": "ペアルック"
      },
      "category": {
        "type": "Text",
        "value": "照明器具"
      },
      "color": {
        "type": "Text",
        "value": "白"
      },
      "manufacturerName": {
        "type": "Text",
        "value": "パナ製作所"
      },
      "modelName": {
        "type": "Text",
        "value": "PL-101X"
      },
      "serviceLife": {
        "type": "Number",
        "value": 20
      }
    },
    {
      "id": "urn:ngsi-ld:DeviceModel:JP0990123456001-HG-232W",
      "type": "DeviceModel",
      "brandName": {
        "type": "Text",
        "value": "ひぐまくん"
      },
      "category": {
        "type": "Text",
        "value": "空調機"
      },
      "color": {
        "type": "Text",
        "value": "白"
      },
      "manufacturerName": {
        "type": "Text",
        "value": "パナ製作所"
      },
      "modelName": {
        "type": "Text",
        "value": "HG-232W"
      },
      "serviceLife": {
        "type": "Number",
        "value": 10
      }
    },
--以下略--