属性ビルダの定義

以下の属性データを生成することができます。

属性ビルダ 説明
Text テキストを出力します。
Number 数値を出力します。
DateTime 日時を出力します。
Date 日付を出力します。
Url URLを出力します。
GeoJson 位置情報(GeoJson)を出力します。
PostalAddress 住所情報を出力します。
ContactPoint 連絡先データを出力します。
Array 配列データを出力します。

Text

テキストを出力します。

パラメータ 説明
text(必須) 出力する値
サブパラメータ 説明
regexp(オプション) 正規表現

定義例1

  - name: text1
    type: Text
    params:
      - name: text
        values:
          - type: Const
            value: 梅の湯

出力例1

    "text1": {
      "type": "Text",
      "value": "梅の湯",
      "metadata": {}
    }

正規表現を使用して入力値から値を抽出することもできます。

入力例2

  - name: text2
    type: Text
    params:
      - name: text
        values:
          - type: Const
            value: abc123def
        subs:
          regexp: (\d+)

出力例2

    "text2": {
      "type": "Text",
      "value": "123",
      "metadata": {}
    }

Number

数値を出力します。

パラメータ 説明
number(必須) 数値

定義例3

  - name: number1
    type: Number
    params:
      - name: number
        values:
          - type: Const
            value: "123"

出力例3

    "number1": {
      "type": "Number",
      "value": 123,
      "metadata": {}
    }

入力例4

  - name: number2
    type: Number
    params:
      - name: number
        values:
          - type: Const
            value: "123.456"

出力例5

    "number2": {
      "type": "Number",
      "value": 123.456,
      "metadata": {}
    }

DateTime

日時を出力します。出力はISO8601形式で、デフォルトのタイムゾーンはJST(+0900)となります。

(例) 2018-06-06T12:34:56+09:00

パラメータ 説明
text(必須) 日時文字列。
日時の入力形式は、データ変換ツールが自動判定する。
(日時の自動判定に失敗する場合は下記のformatサブパラメータを使用する)
日時の年部分には元号を使用することができ、年の先頭が M,T,S,H,R のいずれかの場合に自動で西暦に変換を行う。
サブパラメータ 説明
format(オプション) 日時フォーマットを指定する。
表記はPythonの日時フォーマットと同様とする。
(例) %Y:年, %m:月, %d:日, %H:時, %M:分, %S:秒
timezone(オプション) 日時のタイムゾーンを指定する。デフォルト値は"Asia/Tokyo"となっている。

定義例6

  - name: datetime1
    type: DateTime
    params:
      - name: date
        values:
          - type: Const
            value: 2018-11-01 12:34:56

出力例6

    "datetime1": {
      "type": "DateTime",
      "value": "2018-11-01T12:34:56+09:00",
      "metadata": {}
    }

和暦を指定できます。

入力例7

  - name: datetime2
    type: DateTime
    params:
      - name: date
        values:
          - type: Const
            value: R1-08-01 12:34:56

出力例7

    "datetime2": {
      "type": "DateTime",
      "value": "2019-08-01T12:34:56+09:00",
      "metadata": {}
    }

タイムゾーンを指定できます。

定義例8

  - name: datetime3
    type: DateTime
    params:
      - name: date
        values:
          - type: Const
            value: 2018-11-01 12:34:56
        subs:
          timezone: UTC

出力例8

    "datetime3": {
      "type": "DateTime",
      "value": "2018-11-01T12:34:56+00:00",
      "metadata": {}
    }

日時フォーマットの自動判定に失敗する場合は、formatサブパラメータを指定します。

定義例9

  - name: datetime4
    type: DateTime
    params:
      - name: date
        values:
          - type: Const
            value: 2018年11月1日 12時34分56秒
        subs:
          format: "%Y年%m月%d日 %H時%M分%S秒"

出力例9

    "datetime4": {
      "type": "DateTime",
      "value": "2018-11-01T12:34:56+09:00",
      "metadata": {}
    }

Date

日付を出力します。yyyy-mm-dd形式となります。

(例) 2018-06-06

パラメータ 説明
text(必須) 日付文字列。
日付の入力形式は、データ変換ツールが自動判定する。
(日付の自動判定に失敗する場合は下記のformatサブパラメータを使用する)
日付の年部分には元号を使用することができ、年の先頭が M,T,S,H,R のいずれかの場合に自動で西暦に変換を行う。
サブパラメータ 説明
format(オプション) 日時フォーマットを指定する。
表記はPythonの日時フォーマットと同様とする。
(例) %Y:年, %m:月, %d:日, %H:時, %M:分, %S:秒

定義例10

  - name: date1
    type: Date
    params:
      - name: date
        values:
          - type: Const
            value: 2018-11-01 12:34:56

出力例10

    "date1": {
      "type": "Date",
      "value": "2018-11-01",
      "metadata": {}
    }

和暦を指定できます。

入力例11

  - name: date2
    type: Date
    params:
      - name: date
        values:
          - type: Const
            value: R1-08-01 12:34:56

出力例12

    "date2": {
      "type": "Date",
      "value": "2019-08-01",
      "metadata": {}
    }

日時フォーマットの自動判定に失敗する場合は、formatサブパラメータを指定します。

定義例13

  - name: date3
    type: Date
    params:
      - name: date
        values:
          - type: Const
            value: 2018年11月1日 12時34分56秒
        subs:
          format: "%Y年%m月%d日 %H時%M分%S秒"

出力例13

    "date3": {
      "type": "Date",
      "value": "2018-11-01",
      "metadata": {}
    }

Url

URLを出力します。

パラメータ 説明
url(必須) URL文字列

定義例14

  - name: url1
    type: Url
    params:
      - name: url
        values:
          - type: Const
            value: https://example.com/dataset

出力例14

    "url1": {
      "type": "Url",
      "value": "https://example.com/dataset",
      "metadata": {}
    }

GeoJson

位置情報(GeoJson)を出力します。
パラメータは"lat,lng"の組み合わせか"address"かいずれかを指定します。
両方設定した場合は addressを設定されたものとします。

パラメータ 説明
address(※) 住所から位置情報を取得する
lat(※) 経度
lng(※) 緯度

※パラメータの組み合わせに注意してください。

定義例15

  - name: geojson1
    type: GeoJson
    params:
      - name: lat
        values:
          - type: Const
            value: "33.5678"
      - name: lng
        values:
          - type: Const
            value: "130.1234"

出力例15

    "geojson1": {
      "type": "geo:json",
      "value": {
        "type": "Point",
        "coordinates": [
          130.1234,
          33.5678
        ]
      },
      "metadata": {}
    }

定義例16

  - name: geojson2
    type: GeoJson
    params:
      - name: address
        values:
          - type: Const
            value: 福岡市早良区百道浜2-4-1

出力例17

    "geojson2": {
      "type": "geo:json",
      "value": {
        "type": "Point",
        "coordinates": [
          130.354919,
          33.59396
        ]
      },
      "metadata": {}

PostalAddress

住所情報を出力します。

住所が見つからない場合は、出力データのstreetAddressに指定された住所をそのまま出力します。

パラメータ 説明
address(必須) 住所を指定する

入力例18

  - name: postaladdress1
    type: PostalAddress
    params:
      - name: address
        values:
          - type: Const
            value: 福岡市早良区百道浜2-4-1

出力例18

    "postaladdress1": {
      "type": "PostalAddress",
      "value": {
        "addressLocality": "福岡市",
        "addressCountry": "JP",
        "addressRegion": "福岡県",
        "streetAddress": "早良区百道浜2-4-1"
      },
      "metadata": {}
    }

入力例19

  - name: postaladdress2
    type: PostalAddress
    params:
      - name: address
        values:
          - type: Const
            value: 住所不明

出力例19

    "postaladdress2": {
      "type": "PostalAddress",
      "value": {
        "addressLocality": "",
        "addressCountry": "JP",
        "addressRegion": "",
        "streetAddress": "住所不明"
      },
      "metadata": {}
    }

ContactPoint

連絡先データを出力します。

パラメータ 説明
email(任意) emailが指定されている場合は、メールアドレスを出力します。
telephone(任意) telephoneが指定されている場合は、電話番号を出力します。
faxNumber(任意) faxNumberが指定されている場合は、FAX番号を出力します。
url(任意) urlが指定されている場合は、URLを出力します。

定義例20

  - name: contactpoint1
    type: ContactPoint
    params:
      - name: email
        values:
          - type: Const
            value: m@example.org
      - name: faxNumber
        values:
          - type: Const
            value: 010-1234-5678
      - name: telephone
        values:
          - type: Const
            value: 090-9876-5432
      - name: url
        values:
          - type: Const
            value: https://example.org

出力例20

    "contactpoint1": {
      "type": "ContactPoint",
      "value": {
        "email": "m@example.org",
        "faxNumber": "010-1234-5678",
        "telephone": "090-9876-5432",
        "url": "https://example.org"
      },
      "metadata": {}
    }

Array

配列データを出力します。

パラメータ 説明
任意のパラメータ名 与えられたすべてのパラメータを連結して配列化する。

定義例21

  - name: array1
    type: Array
    params:
      - name: array
        values:
          - type: Const
            value: aaa
          - type: Const
            value: bbb
          - type: Const
            value: ccc

出力例21

    "array1": {
      "type": "StructuredValue",
      "value": [
        "aaa",
        "bbb",
        "ccc"
      ],
      "metadata": {}
    },

メタデータについて

NGSIデータでは、属性の付加データとして、メタデータを定義できます。

例えば、属性"length"をNumber型で表した場合に、単位などの付加情報を与えることができます。 下記の例では、長さ"1.23"に、単位"m"という意味をもたせたデータです。

    "length": {
      "type": "Number",
      "value": 1.23,
      "metadata": {
        "unit": {
          "type": "Text",
          "value": "m"
        }
      }
    }

下記のように定義にメタデータを持たせることができます。

  - name: length
    type: Number
    params:
      - name: number
        values:
          - type: Const
            value: "1.23"
    metadata:
      - name: unit
        type: Text
        params:
          - name: text
            values:
              - type: Const
                value: m

属性定義の"metadata"内に、入れ子で属性を定義することができます。

記述方法も通常の属性と同様です。 ただし、メタデータ内にメタデータを含めることはできません。(メタデータの階層構造は不可)


© NEC Corporation 2019-2021