11. ランディングページのコード化

ランディングページのWebリソースは、任意の形式(HTML、XMLなど)で記述できます。必須ではありませんが、理想的には、リソースは情報の構文的な解釈だけでなく、意味の理解を向上させる形でコード化される必要があります。すなわち、Webリソースとして提示された情報を機械的に読み取れるだけでなく、意味を解釈できることで、システム間の相互運用性と統合性を高めることができます。以下は、ランディングページのコード記述法の例です。

11.1. エンコーディングの例

11.1.1. JSON-LD

Table 5.1 とリンクされたデータの例のように、データ型レジストリ (Data Type Registry, DTR) で定義された型の値とPID との間には強い関係があります。まず、ある型値を持つ PID は、PID が主語、型定義が述語、型値が目的語の役割を果たすトリプルです。次に、型定義はそれ自体が、DTR で定義されたサブ型を参照できます。たとえば ePIC DTR で行われているように、他の型からサブ型が一貫して機械的に構築可能であれば、これらサブ型は可読性のある名前により参照することができます。この名前は型定義により曖昧さが無くなります。というのも、ある型の中で使用される各々サブ型は PID によって識別されるからで、このような サブ型に対して定義されたPID群は、主となるPIDの周りに広がるメタデータの懸け橋になります。つまり、型を持つ PID とは、リンクされたデータの具体的な標記の一つともいえます。

したがって、こうしたPIDと型を有するRDFあるいはJSON-LDといった、より一般的なリンクデータ表式が求められるのは自明です。このような(表式の)変換は、PIDからそのすべての型とサブ型の定義を探し回って、型のPIDによって使用される名前を識別し、この情報をLD表記のために収集する単純な逆トラッキング手法によって行うことができます。このようにして、グラフ全体が探索され、かつ同グラフがリンクデータ表式にマップされることになります。以下では、 Table 5.1 で示されたスキーマ例の、JSON-LDによる表現を Snippet 11.1 にて示しています。

Snippet 11.1 Table 5.1 の例の JSON-LD での表現
  {
    "@context" : {
      "ARK-Identifier" : "dti:21.T11148/7af6f46512fb4c190d01",
      "AlternateIdentifier" : "dti:21.T11148/d87a75c52c68b06e9a18",
      "AlternateIdentifierValue" : "dti:21.T11148/38330bcc6a40ca85e5b4",
      "AlternateIdentifiers" : "dti:21.T11148/eb3c713572f681e6c4c3",
      "Bibcode-Identifier" : "dti:21.T11148/6c2fc7682e48ac7160b5",
      "DOI-Identifier-General" : "dti:21.T11148/d93427e3c56173e9dc08",
      "Date" : "dti:21.T11148/eb9a4bc1c0c153e4e4b0",
      "Dates" : "dti:21.T11148/22c62082a4d2d9ae2602",
      "Description" : "dti:21.T11148/55f8ebc805e65b5b71dd",
      "Handle-Identifier-ASCII" : "dti:21.T11148/3626040cadcac1571685",
      "ISAN-Identifier" : "dti:21.T11148/48cfce4482166a103c50",
      "ISBN-Identifier" : "dti:21.T11148/2ff8ad6cdd4e46622944",
      "ISNI-Identifier" : "dti:21.T11148/cff32964e132c14fc56f",
      "ISRC-Identifier" : "dti:21.T11148/2719170925ff2bfb5157",
      "ISSN-Identifier" : "dti:21.T11148/7e689432354610f388c0",
      "ISTC-Identifier" : "dti:21.T11148/1f0df9ef66774b2e2aa1",
      "ISWC-Identifier" : "dti:21.T11148/698fba7e1c659fcfdcdd",
      "InstrumentType" : "dti:21.T11148/f76ad9d0324302fc47dd",
      "LandingPage" : "dti:21.T11148/9a15a4735d4bda329d80",
      "Manufacturer" : "dti:21.T11148/7adfcd13b3b01de0d875",
      "Manufacturers" : "dti:21.T11148/1f3e82ddf0697a497432",
      "MeasuredVariable" : "dti:21.T11148/1fcb0dad9aced457d67e",
      "MeasuredVariables" : "dti:21.T11148/72928b84e060d491ee41",
      "Name" : "dti:21.T11148/709a23220f2c3d64d1e1",
      "Owner" : "dti:21.T11148/89ff31225c5f042fff61",
      "Owners" : "dti:21.T11148/4eaec4bc0f1df68ab2a7",
      "PMCID-Identifier" : "dti:21.T11148/e94bec7d7f1c63dd00cd",
      "PMID-Identifier" : "dti:21.T11148/234c084bac48480bfe5d",
      "RelatedIdentifier" : "dti:21.T11148/ec9f00af0761a065dbd0",
      "RelatedIdentifierType" : "dti:21.T11148/015dc79a77940fb65aa4",
      "RelatedIdentifierValue" : "dti:21.T11148/38330bcc6a40ca85e5b4",
      "RelatedIdentifiers" : "dti:21.T11148/178fb558abc755ca7046",
      "URN-Identifier" : "dti:21.T11148/d22b6854df3503df7831",
      "VariableMeasured" : "dti:21.T11148/f1627ce85386d8d75078",
      "alternateIdentifierType" : "dti:21.T11148/015dc79a77940fb65aa4",
      "arXiv-Identifier" : "dti:21.T11148/d66f8368c3d305941a2e",
      "date" : "dti:21.T11148/be707495360a234ef049",
      "dateType" : "dti:21.T11148/2f0e608b621a5a97e0d9",
      "dti" : "http://hdl.handle.net/",
      "identifier-general-with-type" : "dti:21.T11148/8eb858ee0b12e8e463a5",
      "identifierType" : "dti:21.T11148/015dc79a77940fb65aa4",
      "identifierValue" : "dti:21.T11148/38330bcc6a40ca85e5b4",
      "manufacturerIdentifier" : "dti:21.T11148/5b240e16ea32ea25cf65",
      "manufacturerIdentifierType" : "dti:21.T11148/015dc79a77940fb65aa4",
      "manufacturerIdentifierValue" : "dti:21.T11148/38330bcc6a40ca85e5b4",
      "manufacturerName" : "dti:21.T11148/798588c5a1ec532f737b",
      "modelName" : "dti:21.T11148/798588c5a1ec532f737b",
      "other" : "dti:21.T11148/f40cb15558a7c1546c91",
      "ownerContact" : "dti:21.T11148/a88b7dcd1a9e3e17770b",
      "ownerIdentifier" : "dti:21.T11148/1e3c17ac2a3e7ebf466a",
      "ownerIdentifierType" : "dti:21.T11148/015dc79a77940fb65aa4",
      "ownerIdentifierValue" : "dti:21.T11148/38330bcc6a40ca85e5b4",
      "ownerName" : "dti:21.T11148/798588c5a1ec532f737b",
      "relationType" : "dti:21.T11148/292a53bd9ee27a242082"
    },
    "@id" : "dti:21.T11998/0000-001A-3905-F",
    "AlternateIdentifiers" : [
      {
        "AlternateIdentifier" : {
          "AlternateIdentifierValue" : "2490",
          "alternateIdentifierType" : "serialNumber"
        }
      }
    ],
    "Dates" : [
      {
        "date" : {
          "date" : "1999-11-01",
          "dateType" : "Commissioned"
        }
      }
    ],
    "Description" : "A high accuracy conductivity and temperature recorder with an optional pressure sensor designed for deployment on moorings. The IM model has an inductive modem for real-time data transmission plus internal flash memory data storage.",
    "InstrumentType" : "http://vocab.nerc.ac.uk/collection/L22/current/TOOL0022/",
    "LandingPage" : "https://linkedsystems.uk/system/instance/TOOL0022_2490/current/",
    "Manufacturers" : [
      {
        "Manufacturer" : {
          "manufacturerIdentifier" : {
            "manufacturerIdentifierType" : "URL",
            "manufacturerIdentifierValue" : "http://vocab.nerc.ac.uk/collection/L35/current/MAN0013/"
          },
          "manufacturerName" : "Sea-Bird Scientific",
          "modelName" : "SBE 37-IM"
        }
      }
    ],
    "MeasuredVariables" : [
      {
        "MeasuredVariable" : {
          "VariableMeasured" : "http://vocab.nerc.ac.uk/collection/P01/current/CNDCPR01/"
        }
      },
      {
        "MeasuredVariable" : {
          "VariableMeasured" : "http://vocab.nerc.ac.uk/collection/P01/current/PSALPR01/"
        }
      },
      {
        "MeasuredVariable" : {
          "VariableMeasured" : "http://vocab.nerc.ac.uk/collection/P01/current/TEMPPR01/"
        }
      },
      {
        "MeasuredVariable" : {
          "VariableMeasured" : "http://vocab.nerc.ac.uk/collection/P01/current/PREXMCAT/"
        }
      }
    ],
    "Name" : "Sea-Bird SBE 37-IM MicroCAT C-T Sensor",
    "Owners" : [
      {
        "Owner" : {
          "ownerContact" : "louise.darroch@bodc.ac.uk",
          "ownerIdentifier" : {
            "ownerIdentifierType" : "URL",
            "ownerIdentifierValue" : "http://vocab.nerc.ac.uk/collection/B75/current/ORG00009/"
          },
          "ownerName" : "National Oceanography Centre"
        }
      }
    ],
    "RelatedIdentifiers" : [
      {
        "RelatedIdentifier" : {
          "RelatedIdentifierType" : "URL",
          "RelatedIdentifierValue" : "https://www.bodc.ac.uk/data/documents/nodb/pdf/37imbrochurejul08.pdf",
          "relationType" : "IsDescribedBy "
        }
      }
    ],
    "identifier-general-with-type" : {
      "identiferType" : "MeasuringInstrument",
      "identifierValue" : "http://hdl.handle.net/21.T11998/0000-001A-3905-F"
    }
  }

この結果から、すべての可能なサブ型が解決され @context で参照されるという意味で、当該コンテキストが完全であることがわかりますが、ありうるすべてのサブ型がPID中の型によって実際に使用されるわけではありません。これらは、手順に追加の処理ステップを加えることで、必要かつ十分なサブ型に切り詰められた縮小版を作ることも可能です。こうした切り詰め処理は、LD変換[1] によっても自動的に行われます。以下の Snippet では、Turtle Terse RDF への変換によってシリアル化 (Snippet 11.2) が行われた結果、型の値のみが残って、型定義で使われた名前はその型のPIDサフィックスで置き換えられていることが分かります。

Snippet 11.2 Turtle Terse RDF による Table 5.1 のNERC例の表式、JSON-LD/RDF変換によって Snippet 11.1 中のJSON-LDが生成されたもの。
  @prefix ns0: <http://hdl.handle.net/21.T11148/> .
  @prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

  <http://hdl.handle.net/21.T11998/0000-001A-3905-F>
    ns0:178fb558abc755ca7046 [ ns0:ec9f00af0761a065dbd0 [
     ns0:015dc79a77940fb65aa4 "URL"^^xsd:string ;
     ns0:292a53bd9ee27a242082 "IsDescribedBy "^^xsd:string ;
     ns0:38330bcc6a40ca85e5b4 "https://www.bodc.ac.uk/data/documents/nodb/pdf/37imbrochurejul08.pdf"^^xsd:string
     ] ] ;
    ns0:1f3e82ddf0697a497432 [ ns0:7adfcd13b3b01de0d875 [
     ns0:5b240e16ea32ea25cf65 [
        ns0:015dc79a77940fb65aa4 "URL"^^xsd:string ;
        ns0:38330bcc6a40ca85e5b4 "http://vocab.nerc.ac.uk/collection/L35/current/MAN0013/"^^xsd:string
     ] ;
     ns0:798588c5a1ec532f737b "Sea-Bird Scientific"^^xsd:string, "SBE 37-IM"^^xsd:string
     ] ] ;
    ns0:22c62082a4d2d9ae2602 [ ns0:be707495360a234ef049 [
     ns0:2f0e608b621a5a97e0d9 "Commissioned"^^xsd:string ;
     ns0:be707495360a234ef049 "1999-11-01"^^xsd:string
     ] ] ;
    ns0:4eaec4bc0f1df68ab2a7 [ ns0:89ff31225c5f042fff61 [
     ns0:1e3c17ac2a3e7ebf466a [
        ns0:015dc79a77940fb65aa4 "URL"^^xsd:string ;
        ns0:38330bcc6a40ca85e5b4 "http://vocab.nerc.ac.uk/collection/B75/current/ORG00009/"^^xsd:string
     ] ;
     ns0:798588c5a1ec532f737b "National Oceanography Centre"^^xsd:string ;
     ns0:a88b7dcd1a9e3e17770b "louise.darroch@bodc.ac.uk"^^xsd:string
     ] ] ;
    ns0:55f8ebc805e65b5b71dd "A high accuracy conductivity and temperature recorder with an optional pressure sensor designed for deployment on moorings. The IM model has an inductive modem for real-time data transmission plus internal flash memory data storage."^^xsd:string ;
    ns0:709a23220f2c3d64d1e1 "Sea-Bird SBE 37-IM MicroCAT C-T Sensor"^^xsd:string ;
    ns0:72928b84e060d491ee41 [ ns0:1fcb0dad9aced457d67e [ ns0:f1627ce85386d8d75078 "http://vocab.nerc.ac.uk/collection/P01/current/CNDCPR01/"^^xsd:string ] ], [ ns0:1fcb0dad9aced457d67e [ ns0:f1627ce85386d8d75078 "http://vocab.nerc.ac.uk/collection/P01/current/PSALPR01/"^^xsd:string ] ], [ ns0:1fcb0dad9aced457d67e [ ns0:f1627ce85386d8d75078 "http://vocab.nerc.ac.uk/collection/P01/current/TEMPPR01/"^^xsd:string ] ], [ ns0:1fcb0dad9aced457d67e [ ns0:f1627ce85386d8d75078 "http://vocab.nerc.ac.uk/collection/P01/current/PREXMCAT/"^^xsd:string ] ] ;
    ns0:8eb858ee0b12e8e463a5 [ ns0:38330bcc6a40ca85e5b4 "http://hdl.handle.net/21.T11998/0000-001A-3905-F"^^xsd:string ] ;

11.1.2. センサーWebイネーブルメント標準(SWE)

センサーやその観測データをウェブベースで発見、交換、処理できる世界標準が開発されています。多くの開発者は、オープン地理空間コンソーシアム(Open Geospatial Consortium, OGC) が策定した Sensor Web Enablement (SWE) などの標準を使用して、センサーとその技術情報の正式かつ機械可読な記述を、URL を用いて装置をローカルに識別することで 、ウェブのリソースとして公開しています。SWE仕様の一部であるSensorMLを用いて公開されたウェブベースのセンサー記述は、PIDプロバイダに登録された装置のランディングページへのURLとしても使用されます。SensorML のランディングページ例は、ePIC PIDプロバイダサービス (http://hdl.handle.net/21.T11998/0000-001A-3905-F) によって、英国海洋学データセンター(BODC)で公開されています。Handleレコードを直接見るには、 http://hdl.handle.net/21.T11998/0000-001A-3905-F?noredirect あるいはこのドキュメント中の Table 5.1 をご覧ください。

SensorML(バージョン 2.0)では、センサーは gml:identifier 要素内のユニークなID を用いて識別され、ユニーク性の保証のために機関等は装置PID を用いることを選択してもよいとされています。あるいは、SensorML記述内のメタデータとして、 sml:identifier プロパティ (Snippet 11.3) を用いて装置PIDを宣言することもできます。後者のほうがより実装が簡単ですが、SWE標準の一部で、センサー観測サービス(SOS)ウェブのアプリケーション・プログラミング・インターフェース(API)の中で、センサーおよび観測結果のグローバルな発見性を制限してしまう恐れもあります。このサービスを用いた、センサーに対するウェブベースの問い合わせ、要求、トランザクションは、通常、SensorML中の gml:identifier 要素( procedure と表記)に基づいて行われるため、センサーは、グローバルな装置PIDではなくローカルな識別子で直接識別されることになります。ローカル識別子と装置PID間のリンクは、SOSサーバーに対する GetCapabilitiesDescribeSensor の組み合わせ操作要求によって、間接的ながら見つけることができます。

Snippet 11.3 装置PID の表記の例。(http://hdl.handle.net/21.T11998/0000-001A-3905-F) SeaBird Scientific SBE 37 伝導性・温度・深度センサーの sml:identifier プロパティを用いた、SensorML 技術記述中の識別用メタデータとして機器PIDを使用。
  <sml:identifier>
    <sml:Term definition="http://www.example.com/definitions/pidinst/">
       <sml:label>Instrument persistent identifier</sml:label>
       <sml:value>http://hdl.handle.net/21.T11998/0000-001A-3905-F</sml:value>
    </sml:Term>
  </sml:identifier>

SensorMLでセンサを記述するために表記できるプロパティの一覧には、特段の制限はなく、機関の装置提供者は、ランディングページ内容に関する PIDINST のガイダンスに従うことが推奨されています (see ランディングページの内容). 最近では、 Marine SWE Profiles イニシアティブが、地球科学の海洋分野におけるSensorMLのセマンティックな相互運用性向上のため、センサー専用用語集を開発して、包括的なメタデータプロファイルを策定しています。

11.2. コンテンツ調整(コンテンツ・ネゴシエーション)

装置のランディングページが、簡単には人間が読むために使えない場合(XMLスキーマなど)、コンテンツ調整(コンテンツ・ネゴシエーション)を使用することを勧めます。PIDINSTは、機械可読の表式から人間が読めるコンテンツを生成する調整形式を規定していません。W3C Dataset Exchange Working Group (DXWG)などの他グループでは、現在、異なる情報モデルからのコンテンツ調整について、勧告の起草作業が行われています[2]