ipa 独立行政法人 情報処理推進機構 · web...

Click here to load reader

Upload: others

Post on 09-Jul-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

別紙1-2

「情報連携用基本語彙データベースの構築」

語彙データベース技術仕様書

内容1.はじめに12.全体要件13.ポータル13.1.概要13.2.機能要件23.2.1.ポータルの各ページに共通の要件23.2.2.トップページ43.2.3.事例紹介ページ及び事例一覧ページ53.2.4.情報ページ53.2.5.ドキュメント64.DMDサービス64.1.概要64.2.機能要件64.2.2.DMDレポジトリ74.3.DMD API84.3.1.DMDの検索84.3.2.DMDの取得104.3.3.DMDの登録134.3.4.DMDの更新164.3.5.DMDの削除185.DMDツール205.1.概要205.2.機能要件206.語彙サービス226.1.概要226.2.機能要件226.2.1.語彙の名前空間226.2.2.コア語彙の名前空間236.2.3.古いコア語彙の提供246.2.4.ドメイン語彙の名前空間256.2.5.応用語彙の名前空間256.2.6.コード・IDの名前空間256.2.7.語彙レポジトリ266.2.8.コード・IDレポジトリ286.2.9.意味・根拠データベース286.2.10.オントロジーデータベース296.3.語彙API296.3.1.語彙及び用語の検索296.3.2.語彙の取得336.3.3.語彙の登録346.3.4.語彙の更新376.3.5.用語の意味の検索396.3.6.意味根拠の取得406.3.7.用語の関係の検索426.3.8.言葉に関係する言葉の取得446.4.コード・ID API466.4.1.コード及びコードリストの検索466.4.2.ID及びID体系の検索496.4.3.コードリストの取得526.4.4.コードの取得556.4.5.ID体系の取得576.4.6.IDの取得606.4.7.コードリストの登録616.4.8.ID体系の登録636.4.9.コードリストの更新666.4.10.ID体系の更新687.語彙ツール707.1.概要707.2.機能要件708.DMD・語彙統合検索718.1.概要718.2.機能要件719.ユーザー管理サービス729.1.概要729.2.機能要件739.2.1.ユーザー管理データベース7710.ユーザーダッシュボード7710.1.概要7710.2.機能要件7710.2.1.ユーザーダッシュボード7711.意見交換システム7811.1.概要7811.2.機能要件7812.システム管理機能7912.1.概要7912.2.機能要件7912.2.1.管理コンソール7912.2.2.ユーザー管理7912.2.3.システム管理8012.2.4.ポータルコンテンツ管理8012.2.5.システム管理者の管理8012.2.6.ログの管理8013.SPARQLエンドポイント8113.1.概要8113.2.機能要件81

2

はじめに

本仕様書は、「語彙データベース」で実装するソフトウェアの仕様を記述する。

全体要件

各コンポーネントは、任意のURL(例えば、http://example.com 、http://example.com/imi/)の配下に構成できるように設計する。この、任意のURLのことを「ベースURL」と呼ぶ。この仕様書においてURLを記載する際、≪ベースURL≫/DMD のように記載する。

ベースURLは、納品後の運用時において、コンポーネントごとに容易に変更できるようにする。

ポータル

概要

共通語彙基盤のポータルサイトであり、DMDや語彙の登録や検索といった直接語彙データベースの機能を利用するための操作だけでなく、共通語彙基盤に関するドキュメント、イベントなどのお知らせ、共通語彙基盤の活用事例など共通語彙基盤全般に関する情報を提供する。

 ポータルの論理的な構造のイメージは、図 1のようなものにする。実装上、Webアプリケーションはポータルの一部ではない。

図 1 ポータルの構成

機能要件

ポータルの各ページに共通の要件

日本語および英語の二ヶ国語に対応する。ポータルが提供する全てのユーザーインターフェースについては、日本語、英語の二ヶ国語を用意する。

ユーザーインターフェース及びコンテンツについては、ポータルが提供するいずれのページにおいても言語の切り替えができるようにする。言語切り替え後は、切り替え前のページに対応するページを表示するか、ポータルのトップページに移動する。また、URLにより各言語の各ページを言語指定パラメーターにより直接指定できるようにする。(例 https://imi.ipa.go.jp?lang=enなど)。

この仕様書で特に指定されていないURLを使用する場合は、≪ベースURL≫/xxxx/ のようにする。ここで、xxxx は4桁の任意の英数字とし、URLに特別な意味は持たせない。ただし、≪ベースURL≫/xxxx/ に続く部分については、特に定めない。たとえば、https://imi.ipa.go.jp/xxxx/doc/ のようにしてもよい。

ポータルサイトの上部は、全ページ共通のデザインとし、図 2 トップページの参考イメージのように、左上にIPAが指定するロゴ、右上に言語切り替え及びDMD・語彙検索ボックスを配置する。また、上記項目の下にメニューバーを配置する。ただし、図 2は配置のみを示すものであり、配色やデザインは、上記のロゴに合わせたものとする。

メニューの順序については、図 2の通りでなくてよい。また、メニューの構造については、ジャンルごとにまとめてプルダウン形式にするなど、ユーザーの利便性を向上するようにすることが求められる。メニュー構造の詳細についてはIPAと協議の上決定する。

各メニューをクリックした際の移動先は下記の表のとおり。

メニュー項目

移動先

トップ

ポータルトップページ

DMD

DMDツールトップページ

ドキュメント

ドキュメントページ

語彙

語彙ツールトップページ

事例

事例一覧ページ

各種情報

情報ページ

ユーザーダッシュボード

ユーザーダッシュボード

意見交換

意見交換システムトップページ

· ユーザーインターフェースについては、(1)に述べたように、英語も用意しなくてはならないことに留意。

ポータルの任意のページにおいてログインできるようにする。

ポータルの構築において、一般的に入手可能な既存のコンテンツマネージメントシステムを利用してもよい。その場合は、提供元の修正情報などの適用・更新を妨げるような独自の変更は原則行わない。

DMD・語彙検索ボックスに文字列を入力し、検索ボタンを押すと、入力文字列をパラメーターとしてDMD語彙統合検索サービスを呼び出す。

図 2 トップページの参考イメージ

トップページ

 トップページには、図 2 トップページの参考イメージ」のように、お知らせ、IMI活用事例、新着DMDを配置する。

お知らせそれぞれのお知らせについて、対象日、投稿日、表題、見出し文章を表示する。対象日は、イベントの開催日時などお知らせの内容が特定の日に実行される場合に表示する。これらのコンテンツは管理コンソールにより設定できるようにする。コンテンツには、Webリンクを挿入できるようにする。

トップページは≪ベースURL≫に配置する。

IMI活用事例IMIの活用事例1件の紹介記事を掲載する。コンテンツは、管理コンソールにより設定できるようにする。ここに掲載する内容は、事例紹介ページの内容と直接的にリンクしなくて良い。コンテンツには、Webリンク及び図を挿入できるようにする。「IMI活用事例」というタイトルも含めて、管理コンソールにて変更できるようにすること。

新着DMD公開されているDMDの内、登録が新しい方から3〜5件程度を表示する。実際に表示スペースに合わせて適切に表示できるようにする。各DMDについて、表題、概要を表示する。表題には、DMD個別サマリーページへのリンクを付加する。

事例紹介ページ及び事例一覧ページ

IMI活用事例は1件につき1つの事例紹介ページとなる。各事例紹介ページは固有のURLをもち、特定の事例紹介ページに直接リンクすることができるようにする。

事例紹介ページは、記述言語(日本語、英語)、表題、概要(副題)、本文から構成される。

事例紹介ページの本文では、レイアウト、図の挿入など、書式を指定するためのHTMLタグが使用できること。

事例紹介ページの本文で使用できるHTMLタグはセキュリティ等を考慮し適切に限定することが求められる。

事例紹介ページは、管理コンソールから追加・削除・変更ができるようにする。また、事例一覧ページへの表示の有無、表示順を任意に設定できるようにする。

事例一覧ページは、表題および概要を一覧表示する。表題には、該当する事例紹介ページへのリンクを付加する。

情報ページ

情報ページには、管理者が任意のコンテンツを掲載できるようにする。管理者は、管理コンソールにより、任意のページを追加・変更・削除ができる。ページ間のリンクは管理者の責任とし、ポータルは特別な機能を提供する必要はない。

管理者は別途作成したHTML及びそこから参照される図などをアップロードして追加することができる。

ドキュメント

ドキュメント対象者一覧ページ、そこからリンクされる対象者別ドキュメント一覧ページ及びドキュメントから成る。

ドキュメント対象者一覧ページには、対象者(語彙作成者、DMD作成者、データ作成者)のリストが並び、それぞれは、対応する対象者別ドキュメント一覧ページへリンクする。各項目について、当該対象者についての簡単な説明を記述すること。

各ドキュメントは、記述言語(日本語、英語)、対象者、表題、概要(副題)、本文から構成される。

対象者別ドキュメント一覧ページには、当該対象者に係るドキュメントの表題および概要を一覧表示する。表題には、該当するドキュメント本文へのリンクを付加する。ドキュメント本文がHTMLの場合は、そのまま表示する。ドキュメント本文が、PDF等のファイルとして提供されている場合は、そのダウンロードが行われる。この場合は、リンク表示部分にファイル形式、ファイルサイズを表示する。

各ドキュメントは、管理コンソールから追加・削除ができるようにする。また、対象者別ドキュメント一覧ページへの表示の有無、表示順を任意に設定できるようにする。

DMDサービス

概要

DMDサービスは、「別紙1-1仕様書 図6 共通語彙基盤におけるデータ定義の階層」のデータモデルの層に対応したサービスである。DMD作成者、DMD利用者(データ作成者やデータの利用者)に必要なサービスを提供する。DMDレポジトリ、及び、Web API(DMD API)により構成される。

機能要件

DMDサービスは、≪ベースURL≫の下に配置される。

DMDレポジトリ

DMDレポジトリは、語彙サービス(6章を参照)の一部として実装されるレポジトリやデータベースと内部的なデータベースシステムを共有してもよいが、DMDレポジトリのみを他の場所(他のサーバー)に移動する場合でも、ソフトウェアコードの変更なく移動できるようにする。

DMDのパッケージ(ZIPファイル)を格納、取得、検索、削除する機能を提供する。

バージョン管理の機能を有すること。

DMDには、本システム内においてユニークなIDを付与する。このIDのことを、「DMDのID」と呼ぶ。ただし、≪ベースURL≫/DMD/≪DMDのID≫ は有効なURLでなくてはならない。

DMDは、少なくとも下記の項目により検索ができるように設計する。

名称

説明

作成日

最終更新日

作成者

登録日

各DMDに対して、DMD本体に加えて、少なくともDMDのID及び登録日を格納する。

DMDレポジトリへは、以下に定めるインターフェースを通してのみアクセスできる。

登録されたDMD内に定義された項目一覧の各「項目」と「用語」との対応関係を参照し、オントロジーデータベースに反映するための機能をもつことが求められる。

各DMDは、「公開」「ドラフト」の公開状態をもつ。

DMD API

DMDの検索

API名:

DMD検索

概要:

与えられた文字列に対して、DMDの名称、説明文、作者名又は作者URIが一致するDMDを返す。複数の文字列によるAND検索をサポートする。

URL:

≪ベースURL≫/DMD/resource/

ユーザー認証:

任意

メソッド:

GET

パラメーター:

パラメーター名

概要

必須

Q

検索文字列

URLエンコードされた文字列

任意

Creator

作者名または作者のURI

URLエンコードされた文字列

任意

Limit

取得件数

整数

任意

Offset

取得開始件数

整数

任意

Orderby

ソート対象

regdate,moddate

任意

Order

ソート順

asc,desc

任意

includeDraft

ドラフトを含める

true, false

任意

※1 パラメーター無しの場合は全てを返却する。

レスポンス:

HTTPステータスコード200でDMDのメタ情報一覧をJSONで返却する。

{

"$schema": "http://json-schema.org/draft-04/schema#",

"title": "DMD検索",

"type": "array",

"items": {

"title": "DMDのメタ情報",

"type": "object",

"properties": {

"uri": {

"type": "string"

},

"name": {

"type": "string"

},

"creator": {

"type": "string"

},

“status”: {

“type”: “string”

}

},

"required": [ "uri", "name"]

}

}

サンプルレスポンス:

[

{

"uri":"https://imi.ipa.go.jp/DMD/resource/12345678",

"name":"犯罪情報DMD",

"creator":" https://imi.ipa.go.jp/user/0123456789",

“status”:”public”

},

{

"uri":"https://imi.ipa.go.jp/DMD/resource/12345679",

"name":"◯◯情報DMD",

"creator":"◯◯省",

“status”:”public”

}

]

エラー:

共通エラー仕様にもとづいて返却する。

機能要件:

与えられた文字列に下記(ア)から(エ)のいずれかが一致するDMDを返す。ここで「一致する」とは、検索文字列が対象文字列の全部又は一部に一致することをいう。

DMDの名称

DMDの説明分

DMDの作者名

DMDの作者URI

検索文字列に「&」(U+0026)が含まれている場合、検索文字列は複数の文字列に分割され、それらすべての文字列に一致するDMDを返す。少なくとも8個以上の文字列による検索をサポートする。

DMDの検索に関しては、オントロジーデータベースを考慮した検索など、ユーザーの意図・目的にあった検索結果を適確に返すことが求められる。

includeDraftパラメーターが指定され、値がtrueの場合は、検索結果に公開状態が「ドラフト」のDMDも含める。

エラーメッセージはユーザーが問題を確実に理解できるようなものとする。

DMDの取得

API名:

DMD取得

概要:

与えられたidがDMDのIDと一致するDMDを返す。

URL:

≪ベースURL≫/DMD/resource/:id

ユーザー認証:

任意

メソッド:

GET

パラメーター:

パラメーター名

概要

必須

id

DMDのID

DMDのID

必須

レスポンスフォーマット:

HTTPステータスコード200で DMDのメタ情報を返却する。レスポンスはDMDヘッダーの仕様に準ずる。

HTTPのAcceptヘッダーによってコンテントネゴシエーションを実装し、zipで返却する際はDMDの実体を、ttl, xml, jsonで返却する際はDMDのヘッダーファイルをレスポンスする。

Accept ヘッダー

レスポンス

application/xml

XML形式

text/turtle

Turtle形式

application/ld+json

JSON LD形式

application/json

JSON形式

application/zip

ZIP形式

サンプルレスポンス(JSON LD形式):

{

"@context": {

":": "http://example.org/DMD/00068574/",

"rdfs": "http://www.w3.org/2000/01/rdf-schema#",

"xsd": "http://www.w3.org/2001/XMLSchema#",

"dct": "http://purl.org/dc/terms/",

"adms": "http://www.w3.org/ns/adms#" ,

"dcat": "http://www.w3.org/ns/dcat#"

},

"@graph": [

{

"@id": "http://example.org/DMD/00068574/",

"@type": "adms:Asset",

"rdfs:label": { "@value": "犯罪発生情報 DMD", "@language": "ja" },

"dct:created": "2015-09-01",

"dct:modified": "2015-09-04" ,

"dct:description": { "@value": "犯罪発生情報を表現するための DMD", "@language": "ja" },

"dct:publisher": "http://example.org/user/0123456789",

"dct:title": { "@value": "犯罪発生情報 DMD", "@language": "ja" },

"adms:status": { "@id": "http://purl.org/adms/status/Completed" },

"dct:type": { "@id": "http://purl.org/adms/assettype/InformationExchangePackageDescription" },

"adms:previous": { "@id": "http://example.org/imins/00068573/" },

"adms:last": { "@id": "http://example.org/imins/00068575/" },

"dcat:distribution": ":IMI-犯罪発生情報.xsd",

"dcat:distribution": ":crime.ttl",

"dcat:distribution": ":crime-shacl.ttl",

"dcat:distribution": ":document.pdf",

"dcat:distribution": ":form.xlsx"

},

{

"@id": ":IMI-犯罪発生情報.xsd",

"@type": "adms:AssetDistribution",

"dct:description": { "@value": "犯罪発生情報 DMD の XML スキーマ", "@language": "ja" },

"dct:license": { "@id": "http://creativecommons.org/licenses/by/3.0/" },

"dct:format": { "@id": "http://publications.europa.eu/resource/authority/file-type/SCHEMA_XML" }

},

{

"@id": ":crime.ttl",

"@type": "adms:AssetDistribution",

"dct:description": { "@value": "犯罪発生情報 DMD の RDF 向け Application Profile", "@language": "ja" },

"dct:license": { "@id": "http://creativecommons.org/licenses/by/3.0/" },

"dct:format": { "@id": "http://publications.europa.eu/resource/authority/file-type/RDF_TURTLE" }

},

{

"@id": ":crime-shacl.ttl",

"@type": "adms:AssetDistribution",

"dct:description": { "@value": "犯罪発生情報 DMD の RDF 向け Application Profile (W3C Data Shapes 対応)", "@language": "ja" },

"dct:license": { "@id": "http://creativecommons.org/licenses/by/3.0/" },

"dct:format": { "@id": "http://publications.europa.eu/resource/authority/file-type/RDF_TURTLE" }

},

{

"@id": ":document.pdf",

"@type": "adms:AssetDistribution",

"dct:description": { "@value": "犯罪発生情報 DMD のドキュメント", "@language": "ja" },

"dct:license": { "@id": "http://creativecommons.org/licenses/by/3.0/" },

"dct:format": { "@id": "http://publications.europa.eu/resource/authority/file-type/PDF" }

},

{

"@id": ":form.xlsx",

"@type": "adms:AssetDistribution",

"dct:description": { "@value": "犯罪発生情報 DMD の入力フォーム", "@language": "ja" },

"dct:license": { "@id": "http://creativecommons.org/licenses/by/3.0/" },

"dct:format": { "@id": "http://publications.europa.eu/resource/authority/file-type/XLSX" }

}

]

}

Acceptヘッダー:

application/json

エラー:

共通エラー仕様にもとづいて返却する。

機能要件:

idパラメーターで指定されたDMDを返す。

エラーメッセージはユーザーが問題を確実に理解でき、適切な対処をできるようなものにする。

DMDの登録

API名:

DMD登録

概要:

DMDを新規に登録する。

URL:

≪ベースURL≫/DMD/resource/

ユーザー認証:

必要

必須権限:

DMDの登録権限

メソッド:

POST

パラメーター:

パラメーター名

概要

必須

file

DMDの仕様を満たすファイル群を含むZIPファイル

ZIPファイル

必須

status

公開状態

public,draft

任意

token

認証トークン

認証トークン

必須

レスポンス:

HTTPステータスコード201でDMDのURIを返却する。

{

"$schema": "http://json-schema.org/draft-04/schema#",

"title": "DMD登録",

"type": "object",

"properties": {

"uri": {

"type": "string"

},

"message": {

"type": "string"

}

},

"required": [

"uri",

"message"

]

}

サンプルレスポンス:

{

"uri":"https://imi.ipa.go.jp/DMD/resource/12345678",

"message":"DMDを登録しました。"

}

Acceptヘッダー:

application/json

エラー:

共通エラー仕様にもとづいて返却する。

機能要件:

fileパラメーターにより指定されたファイルがDMDの仕様に準拠していること及びDMD内にユーザーに害を及ぼす可能性のある実行コードや信頼できないサイトへのリンクなどユーザーに害を及ぼす可能性のある内容が含まれていないことを厳密に検証する。

指定されたファイルがDMDの仕様に準拠している場合は、そのDMDをDMDレポジトリに登録する。

検証により問題を発見した場合は、登録せず、エラーを返す。

レスポンスとして、≪ベースURL≫/DMD/resource/ の後ろにDMDのIDを付加したものを返却する。

statusパラメーター が指定された場合、statusパラメーターの値が「public」であれば登録されたDMDの公開状態は「公開」になる。それ以外の場合は、DMDの公開状態は「ドラフト」になる。

指定されたDMDにドキュメントが含まれていない場合には警告返す。

同一のデータ構造をもつDMDの登録には警告を返すなど、同一構造のDMDが複数作成されないようにすることが求められる。

エラーメッセージはユーザーが問題を確実に理解でき、適切な対処をできるようなものにする。

DMDの更新

API名:

DMD更新

概要:

指定したidのDMDを更新する。

URL:

≪ベースURL≫/DMD/resource/:id

ユーザー認証:

必要

必須権限:

DMDの登録権限

対象DMDの変更権限

メソッド:

POST

ただし、X-HTTP-Method-OverrideヘッダーにPUTを送信すること。

パラメーター:

パラメーター名

概要

必須

id

DMDのID

DMDのID

必須

file

DMDの仕様を満たすファイル群を含むZIPファイル

ZIPファイル

任意

status

公開状態

public,draft

任意

token

認証トークン

認証トークン

必須

レスポンス:

HTTPステータスコード200でDMDのURIを返却する。

{

"$schema": "http://json-schema.org/draft-04/schema#",

"title": "DMD更新",

"type": "object",

"properties": {

"uri": {

"type": "string"

},

"message": {

"type": "string"

}

},

"required": [

"uri",

"message"

]

}

サンプルレスポンス:

{

"uri":"https://imi.ipa.go.jp/DMD/resource/12345678",

"message":"DMDを更新しました。"

}

Acceptヘッダー:

application/json

エラー:

共通エラー仕様にもとづいて返却する。

機能要件:

idパラメーターに指定された、DMDのIDをもつDMDがレポジトリに見つからない場合はエラーを返す。

fileパラメーターが指定された場合には、指定されたファイルがDMDの仕様に準拠していること及びDMD内にユーザーに害を及ぼす可能性のある実行コードや信頼できないサイトへのリンクなどユーザーに害を及ぼす可能性のある内容が含まれていないことを厳密に検証する。

検証により問題がない場合は、指定されたDMDをDMDレポジトリに更新する。

検証により問題が見つかった場合は、更新せず、エラーを返す。

statusパラメーター が指定された場合、statusパラメーターの値が「public」であれば登録されたDMDの公開状態は「公開」になる。それ以外の場合は、DMDの公開状態は「ドラフト」になる。

指定されたDMDにドキュメントが含まれていない場合には警告返す。

エラーメッセージはユーザーが問題を確実に理解でき、適切な対処をできるようなものにする。

DMDの削除

API名:

DMD削除

概要:

指定したidをもつDMDを削除する。

URL:

≪ベースURL≫/DMD/resource/:id

ユーザー認証:

必要

必須権限:

DMDの登録権限

対象DMDの変更権限

メソッド:

POST

ただし、X-HTTP-Method-OverrideヘッダーにDELETEを送信すること。

パラメーター:

パラメーター名

概要

必須

id

DMDのID

DMDのID

必須

token

認証トークン

認証トークン

必須

レスポンス:

HTTPステータスコード200で削除したDMDのURIを返却する。

{

"$schema": "http://json-schema.org/draft-04/schema#",

"title": "DMD削除",

"type": "object",

"properties": {

"uri": {

"type": "string"

},

"message": {

"type": "string"

}

},

"required": [

"uri",

"message"

]

}

サンプルレスポンス:

{

"uri":"https://imi.ipa.go.jp/DMD/resource/12345678",

"message":"DMDを削除しました。"

}

エラー:

共通エラー仕様にもとづいて返却する。

機能要件:

指定されたDMDをレポジトリから削除する。

公開状態が「公開」であるDMDが指定された場合は、削除せずエラーを返却する。

エラーメッセージはユーザーが問題を確実に理解でき、適切な対処をできるようなものにする。

DMDツール

概要

DMDツールは、DMDサービスのフロントエンドとして機能し、DMD作成者やDMD利用者(データ作成者及びデータ利用者)がDMDを検索及び登録するためのユーザーインターフェースを提供する。また、DMDを新規に作成するユーザーのための支援として、簡単な構造の表形式のデータを元にDMDのテンプレートを作成するための機能も提供する。

図 3 DMDツールトップページのイメージ

機能要件

DMDツールは、≪ベースURL≫の下におく。

Webアプリケーションとして構築する。

ユーザーインターフェース及びエラーメッセージなど、日本語、英語の2か国語に対応する。

同一のデータ構造をもつDMDの登録には警告を返すなど、同一構造のDMDが複数作成されないようにすることが求められる。

DMDツールトップページのURLは、≪ベースURL≫/dmdとする。DMDツールトップページは、図 3のように、検索機能と作成ツール(本ツールの一部)及び登録画面へのリンク、使用頻度の高いDMD、新着DMDなどを配置する。ユーザーがログインしていない場合、又は、ログインユーザーがDMDの登録権限をもたない場合は、DMDの登録などログインを必要とする機能へのリンクは無効(非アクティブ化)になり、代わりに「権限が必要」という旨のメッセージを表示するなど、存在に気づくことができ、かつ、使用できない理由が明確になるようにする。

DMDツールトップページのイメージは、一例であり、デザインや配置は図 3と同様である必要はない。

DMDの名前、概要、作成者による検索機能を提供する。

指定または選択したDMDの概要を表示する機能を提供する。

≪ベースURL≫/dmd/≪DMDのID≫に対するリクエストに対しては、DMD個別サマリーページを表示する。

DMD個別サマリーページには、以下の情報及び機能を提供する。

名称

説明

作成日

最終更新日

作成者

ライセンス

URL

トップレベルで使用しているクラス語彙

パッケージ(ZIPファイル)をダウンロードするためのリンク

公開状態

簡単な構造の表形式データをもとに、DMDのテンプレートを作成することができる。簡単な構造の表形式データとは、表形式データのすべての欄について、その欄の項目名が、IMIのプロパティ用語(のうち型が基本型であるものに限る)に直接対応づけられるようなデータとする。

ここでは、ユーザーが表形式のデータの各欄をプロパティ用語に対応付けすることを支援し、その対応付けの結果から、DMDを作成する。ユーザーは、作成したDMDを、ダウンロードするか又はDMDレポジトリに登録し公開することを選択できる。

対応付けの操作は、まず、1つまたは複数のクラス用語を選択し、選択されたクラス用語のプロパティを表形式データの各欄に対応付けることで行われる。対応付けの状態は常に示されているようにする。

クラス用語の選択、プロパティ用語の選択に際しては、オントロジーデータベースや過去の対応付けの記録などを用いて適切に支援することが求められる。

名称や概要などDMD内に記録することが必要な情報の登録を行う。

一度に多くの入力を要求せずに関連する情報の入力ごとに画面遷移するようにするなど、非技術者の使用を考慮したユーザーインターフェースとする。

外部で作成されたDMDをアップロードして登録する機能ももつ。

語彙サービス

概要

 語彙サービスは、「別紙1-1仕様書 図6 共通語彙基盤におけるデータ定義の階層」の概念的な語彙及びコード・ID、語彙及びコード・IDの実装の2つの層に対応したサービスである。語彙及びコード・IDの登録や利用のために必要な機能を提供するもので、語彙及びコード・IDのスキーマの配信(名前空間)、語彙レポジトリ、コード・IDレポジトリ、意味・根拠データベース、オントロジーデータベース、及び、それぞれのレポジトリ及びデータベースに格納されるデータの登録、参照、検索、取得のためのWeb API(語彙API、コード・ID API)により構成される。

機能要件

語彙サービスは≪ベースURL≫の下に配置される。

0. 語彙の名前空間

語彙の名前空間には、コア語彙の名前空間、ドメイン語彙の名前空間、コード・IDの名前空間がある。以下に、それぞれの名前空間について記載する。

コア語彙の名前空間

コア語彙の名前空間は、XML、RDFの各スキーマ及びHTMLによる語彙一覧表を提供する。XML、RDFの各スキーマの形式およびHTMLの形式については、http://imi.ipa.go.jp/を参照すること。

このシステムにより登録された語彙に対する語彙一覧表、各スキーマは、≪ベースURL≫/ns/core/archive/xx.xx (はバージョン番号)に配置され、下記表のURLから最新版にリダイレクトされる。

旧版には、直接URLを指定することでアクセスできるようにする。

コア語彙の名前空間は、HTTPリクエストのACCEPTヘッダーを参照し、下記の表のレスポンス欄に指定されたものをHTTPレスポンスとして返す。

XML名前空間  ≪ベースURL≫/ns/core/2

Accept ヘッダー

レスポンス

application/xml

XMLスキーマ

text/html

コア語彙一覧表(HTML)

*.*

コア語彙一覧表(HTML)

RDF名前空間  ≪ベースURL≫/ns/core/rdf#

Accept ヘッダー

レスポンス

application/rdf+xml

RDFスキーマ RDF/XML形式

text/turtle

RDFスキーマ Turtle形式

application/ld+json

RDFスキーマ JSON形式

text/html

コア語彙一覧表(HTML)

*.*

コア語彙一覧表(HTML)

この名前空間に配置されるファイルの生成については、6.3を記載する。

コア語彙一覧表(HTML)は、1つのHTMLファイルで構成し、クラス用語の一覧とプロパティ用語の一覧を提供する。(様式の詳細については、https://imi.ipa.go.jp/ns/core/Core23.htmlを参考にすること。)

コア語彙一覧表は日本語及び英語の2か国語に対応する。

クラス用語の一覧では、各クラス用語について、下記の内容を表示する。

項目名(見出しラベル)

ID

継承元

説明

プロパティ一覧(各プロパティ毎に下記の内容を表示)

項目名(見出しラベル)、対応するプロパティ用語へのリンクを付加する。

ID

データ型(値域)

回数(Cardinality)

説明

同義語及び類義語

他の語彙とのマッピング

意味・根拠へのリンク

プロパティ用語の一覧では、各プロパティ用語について、下記の内容を表示する。

項目名(見出しラベル)

ID

説明

同義語及び類義語

型(値域)、対応するクラス用語もしくは基本型へのリンクを付加する。

定義域、対応するクラス用語へのリンクを付加する。

意味・根拠へのリンク

古いコア語彙の提供

コア語彙2.0及びコア語彙2.1については、下記のようにコア語彙一覧表を配置する。

コア語彙2.00名前空間  ≪ベースURL≫/ns/200

Accept ヘッダー

レスポンス

Acceptヘッダーは参照しない

コア語彙2.00(検証版)一覧表(HTML)

コア語彙2.10名前空間  ≪ベースURL≫/ns/210

Accept ヘッダー

レスポンス

Acceptヘッダーは参照しない

コア語彙2.10(検証版)一覧表(HTML)

ドメイン語彙の名前空間

ドメイン語彙のXML名前空間、RDF名前空間はそれぞれ、≪ベースURL≫/ns/domain/xxxxx/2 、≪ベースURL≫/ns/domain/xxxxx/rdf#(xxxxxはドメイン名)とする。URLが異なる以外は、コア語彙と同様とする。

ドメイン名の仕様の詳細については、「別紙1-1 仕様書 2.4 ドメイン語彙の運用体制等検討」に示す検討の中で決定すること。

応用語彙の名前空間

応用語彙の名前空間は、XML、RDFに共通とし、名前空間はそれぞれ、≪ベースURL≫/ns/application/xxxxx(xxxxxはユーザー毎に割り当てられるID)とする。応用語彙については、URLの予約のみを行い、スキーマの配信は行わない。スキーマの配信は必要に応じて応用語彙の作成者が行うものとする。ただし、作成者から申請があり、IPAが承認した場合には、上記URLからスキーマの配信場所へのHTTPリクエスト転送が行えるようにする。

コード・IDの名前空間

コード・IDの名前空間は、≪ベースURL≫/ns/code_id/xxxx (xxxxはコードリストまたはID体系のID)とする。

コードリスト又はID体系の名前空間、≪ベースURL≫/ns/code_id/xxxx (xxxxはコードリストまたはID体系の識別子)に対するリクエストは、HTTPリクエストのACCEPTヘッダーを参照し、下記の表のレスポンス欄に指定されたものをHTTPレスポンスとして返す。

URL  ≪ベースURL≫/ns/coode_id/xxxx

Accept ヘッダー

レスポンス

application/xml

コードリスト・ID体系のXMLスキーマ

Application

コードリスト・ID体系のRDFインスタンス

Text/turtle

コードリスト・ID体系のRDFインスタンス

Application

コードリスト・ID体系のRDFインスタンス

text/html

コードリスト・ID体系の概要

*.*

コードリスト・ID体系の概要

コードリスト、コード、ID体系、IDのスキーマについては、http://imi.ipa.go.jpを参照すること。

語彙レポジトリ

語彙を格納するためのレポジトリとなる。各語彙はJSON形式のデータとして保存する。

各語彙は、バージョンごとに、「公開」、「ドラフト」の公開状態をもつ。

各語彙について下記の情報を保持する。

語彙のメタデータ

語彙の種類

コア語彙、ドメイン語彙、応用語彙の別。ドメイン語彙については、ドメイン名、応用語彙については、グループIDも識別可能な設計とする。

「別紙1-4表形式語彙フォーム」の「基本情報」シートに記載された全項目。

語彙の登録日(語彙レポジトリに登録した日付け)

当該語彙を登録したグループのグループID

公開状態

語彙に含まれるクラス用語の一覧。各用語は次の項目により表現される。

用語のID

共通語彙基盤のすべての用語を一意に識別するために、下記ルールにしたがって定義される。

コア語彙の場合:core/x.x#nnnn型 ここで、x.x は語彙のバージョン、nnnnは項目名

ドメイン語彙の場合:domain/dddd/x.x#nnnn型 ここで、ddddはドメイン名、x.x は語彙のバージョン、nnnnは項目名

応用語彙の場合:application/gggg#nnnn型 ここで、ggggはグループID、nnnnは項目名

る。

「「別紙1-4表形式語彙フォーム」の「クラス用語」シートに記載された全項目。」

語彙に含まれるプロパティ用語の一覧。各用語は次の項目により表現される。

用語のID

共通語彙基盤のすべての用語を一意に識別するために、下記ルールにしたがって定義される。

コア語彙の場合:core/x.x#nnnn ここで、x.x は語彙のバージョン、nnnnは項目名

ドメイン語彙の場合:domain/dddd/x.x#nnnn ここで、ddddはドメイン名、x.x は語彙のバージョン、nnnnは項目名

応用語彙の場合:application/gggg#nnnn ここで、ggggはグループID、nnnnは項目名

「別紙1-4表形式語彙フォーム」の「プロパティ」シートに記載された全項目。

語彙レポジトリに保存する際の形式はJSON形式とする。上記のすべての情報を包含することが求められる。

少なくとも下記の項目により用語を検索可能な設計とする。

用語のID

用語の項目名

用語の継承元

用語の説明

用語のプロパティ

用語の英語名

用語の英語説明

用語の型

用語のドメイン

レポジトリへは、Web APIを通してのみアクセスされる。

コード・IDレポジトリ

コード・IDレポジトリは、コア語彙2.3に定義されたコード型、コードリスト型、ID型、ID体系型なインスタンスを格納するためのレポジトリとする。

コード・IDレポジトリには、インスタンスのほか、そのインスタンスに対応した以下のメタデータを保存する。

コードリストのID(コードリストのIDはcode/xxxx ここで、xxxx は登録時に管理者により与えられたコードリストの名称。)

ID体系のID (ID体系のIDはid/xxxx ここで、xxxx は登録時に管理者により与えられたID体系の名称。)

当該コードリストがコード・IDレポジトリに登録された日付を保持する。

当該コードリストを登録したグループのグループID

公開状態(「公開」又は「ドラフト」)

メモ(登録者や更新者が自由に記述できる書式なしテキスト)

コード・IDレポジトリは上記の要件を満たす設計であることが求められる。

意味・根拠データベース

意味・根拠データベースは、語彙レポジトリに登録されている用語の詳細な意味や根拠をテキスト形式で保持するためのデータベースである。

用語のIDから意味・根拠、及び意味・根拠から用語の双方向の検索を可能とする設計にすること。

意味・根拠はテキスト形式によって記述される。意味・根拠データベースの仕様としては、テキストの形式は定めない。

データベースへは、Web APIを通してのみアクセスされる。

上記の要件を満たし、かつ、検索効率を高めるような工夫をすることが求められる。

オントロジーデータベース

オントロジーデータベースは、言葉と言葉の関係を有向グラフとして保持する。

言葉には、コア語彙に定義された各用語、他の語彙体系で定義された用語及び自治体・政府等の現場から収集した言葉などがある。

コア語彙に定義された各用語、他の語彙体系で定義された用語については、用語のIDによって参照する。それ以外の言葉については、例えば、https://imi.ipa.go.jp/vocabulary/xxxx#所在地 のように適切な識別子を与えるとともに出展が明確になるような情報を付加できるように構成することが求められる。付加する情報の種類やフォーマットについては、「別紙 1.1仕様書 2.3.2 ② オントロジーデータの整備」で整備するオントロジーデータを格納することを前提とし設計することが求められる。

オントロジーデータベースに保持する言葉間の「関係」については、利用シーンや用語及びDMDの検索に利用することを十分に考慮したものであることが求められる。

少なくとも次の「関係」を保持できる。()に示したSKOSの述語の定義に従う。

同義語 (skos:exactMatch)

類義語 (skos:closeMatch)

より広い意味をもつ語 (skos:broadMatch)

より狭い意味をもつ語 (skos:narrowMatch)

関係がある語 (skos:relatedMatch)

識別子、言葉の双方で検索可能な設計とする。

類義語や同義語の検索については、双方向に検索可能な設計とする。

データベースへは、Web APIを通してのみアクセスされる。

語彙API

語彙及び用語の検索

API名:

語彙及び用語の検索

概要:

与えられた文字列に対して、用語の項目名や説明が一致する用語を返す。

URL:

≪ベースURL≫/api/vocabulary/

ユーザー認証:

不要

メソッド:

GET

パラメーター:

パラメーター名

概要

必須

label

項目名を検索する文字列

URLエンコードされた文字列

任意

description

説明を検索する文字列

URLエンコードされた文字列

任意

q

項目名または説明を検索する文字列

URLエンコードされた文字列

任意

includeDraft

ドラフトを含める

true, false

任意

※項目間はAND検索

レスポンス:

HTTPステータスコード200で用語のメタ情報をJSONで返却する。

{

"$schema": "http://json-schema.org/draft-04/schema#",

"title": "語彙及び用語の検索",

"type": "array",

"items": {

"title": "語彙及び用語のメタ情報",

"type": "object",

"properties": {

"id": {

"type": "string"

},

"label": {

"type": "string"

},

"description": {

"type": "string"

},

"languages": {

"type": "array",

"items":{

"type":"string"

}

},

"xmlns": {

"type": "string"

},

"isDefinedBy": {

"type": "string"

},

"base": {

"type": "string"

},

"properties": {

"type": "array",

"items":{

"type":"string"

}

},

"type": {

"type": "string"

}

},

"required": [ "id", "label", "xmlns", "isDefinedBy"]

}

}

サンプルレスポンス:

[

{

"id":"core/230/人型",

"label":"人型",

"description":"人の情報を表現するためのデータ型",

"language":["ja","en"],

"xmlns":"http://imi.ipa.go.jp/ns/core/230",

"isDefinedBy":"http://imi.ipa.go.jp/ns/core/rdf#",

"type":"class",

"base":"http://imi.ipa.go.jp/ns/core/230/実体型",

"properties":["http://imi.ipa.go.jp/ns/core/230/ID", "http://imi.ipa.go.jp/ns/core/230/氏名"]

},

{

"id":"core/230/代理人",

"label":"代理人",

"description":"手続きなどを代理するもの",

"language":["ja","en"],

"xmlns":"http://imi.ipa.go.jp/ns/core/230",

"isDefinedBy":"http://imi.ipa.go.jp/ns/core/rdf#",

"type":"property"

}

]

Acceptヘッダー:

application/json

エラー:

共通エラー仕様にもとづいて返却する。

機能要件:

与えられた文字列に用語またはその説明が一致する用語を返す。ここで「一致する」とは、検索文字列が対象文字列の全部又は一部に一致することをいう。

検索文字列に「&」(U+0026)が含まれている場合、検索文字列は複数の文字列に分割され、それらすべての文字列に一致する用語を返す。少なくとも8個以上の文字列による検索をサポートする。

語彙の検索に関しては、意味・根拠データベースを効果的に利用した検索など、ユーザーの意図・目的にあった検索結果を適確に返すことが求められる。

検索結果は少なくとも次のものを検索結果に含む

項目名がlabel又はqに一致する用語

説明がlabel又はdescription一致する用語

項目名の同義語・類義語がlabel又はqに一致する用語

includeDraftパラメーターが指定され、値がtrueの場合は検索結果に公開状態が「ドラフト」の語彙も検索対象に含める。

エラーメッセージはユーザーが問題を確実に理解でき、適切な対処をできるようなものにする。

語彙の取得

API名:

語彙の取得

概要:

概念的なコア語彙またはドメイン語彙をExcelファイルとして取得する

URL:

≪ベースURL≫/api/vocabulary/

ユーザー認証:

不要

メソッド:

GET

パラメーター:

パラメーター名

概要

必須

type

語彙の種類

core,domain

任意

domain

ドメイン語彙のID

ドメイン語彙のID

任意

※項目間はAND検索。パラメーターが無い場合は、コア語彙とドメイン語彙の全てを含む概念辞書を表現したExcelファイルを返却する。

※typeパラメーターにdomainを指定した場合は、domainパラメーターの指定が必須。

レスポンス:

指定された語彙を格納したExcelファイル

Acceptヘッダー:

application/vnd.ms-excel

エラー

共通エラー仕様にもとづいて返却する。

機能要件

指定された語彙をExcelファイルに格納し返す。

Excelファイルの形式は「別紙1-4表形式語彙フォーム」(Excel形式)の形式とする。当該Excelファイル内には、ユーザーに害を及ぼす可能性のある実行コードや信頼できないサイトへのリンクなどユーザーに害を及ぼす可能性のなる内容が含まれていないことを確実とするための機能が求められる。

複数の語彙を返す場合は、すべての語彙を1つのファイルに収める。

各語彙は、語彙の基本情報、クラス用語のシートとプロパティ用語のシートの3つのシートを使用する。

語彙の登録

API名:

語彙登録

概要:

語彙を新規に登録する。

URL:

≪ベースURL≫/api/vocabulary/

ユーザー認証:

必要

必要な権限:

対象となる語彙に対する、語彙の登録権限

メソッド:

POST

パラメーター:

パラメーター名

概要

必須

file

語彙の仕様を満たすExcelファイル

Excelファイル

必須

status

公開状態

public,draft

任意

type

語彙の種類

core,domain,application

必須

token

認証トークン

認証トークン

必須

レスポンス:

HTTPステータスコード201で語彙のURIを返却する。

{

"$schema": "http://json-schema.org/draft-04/schema#",

"title": "語彙登録",

"type": "object",

"properties": {

"uri": {

"type": "string"

},

"message": {

"type": "string"

}

},

"required": [

"uri",

"message"

]

}

サンプルレスポンス:

{

"uri":" http://imi.ipa.go.jp/ns/vocabulary/12345678",

"message":"語彙を登録しました。"

}

エラー:

共通エラー仕様にもとづいて返却する。

機能要件

語彙の登録のためのファイルは、「別紙1-4表形式語彙フォーム」(Excel形式)に従う。

語彙の種類および対象ドメインなどは「別紙1-4表形式語彙フォーム」の内容によって指定される。

statusパラメーター が指定された場合、statusパラメーターの値が「public」であれば登録された語彙の公開状態は「公開」になる。それ以外の場合は、語彙の公開状態は「ドラフト」になる。

ドメイン語彙の新規登録を行う場合には、管理コンソールから対象ドメインが予め登録されていることが必要となる。

与えられた「別紙1-4表形式語彙フォーム」の内容少なくとも下記のようなことがないことを検証する。

必要な情報が与えられていない。

存在しないクラス用語が参照されている。

存在しないプロパティ用語が使用されている。

値型などに矛盾がある。

語彙の登録に際しては、コア語彙やドメイン語彙にすでに登録されている用語と重複する用語や類似する用語が登録されることを抑制することが求められる。

status に public が指定され、かつ、登録しようとする語彙のターゲット名前空間URIが、ベースURIから始まる場合は、XMLスキーマ、RDFスキーマ(RDF/XML形式、Turtle形式、JSON LD形式)及びHTMLの語彙一覧表を自動生成し、語彙サービスの機能要件の要件を満たすよう、登録された語彙の名前空間を自動的に構成する。

語彙の登録時には、少なくとも次の用語について警告を返す必要がある。

コア語彙もしくは既存のドメイン語彙(更新の場合には、更新対象は除く)に含まれる用語と同じ項目名をもつ用語が含まれている場合

オントロジーデータベースにおいて、コア語彙もしくは既存のドメイン語彙(更新の場合には、更新対象は除く)の用語と同義語もしくは類義語として登録されている用語が含まれている場合。

その他、既存語彙との衝突や不整合が疑われる場合、登録に関して懸念がある場合。

 

上記(ア)、(イ)、(ウ)において、比較対象となる語彙は下記の表のとおり登録する語彙によって決まる。

登録する語彙

確認対象コア語彙

コア語彙

コア語彙

ドメイン語彙

コア語彙、他のドメイン語彙

応用語彙

コア語彙、すべてのドメイン語彙

語彙の更新

API名:

語彙更新

概要:

指定したIDの語彙を更新する。

URL:

≪ベースURL≫/api/vocabulary/:id

ユーザー認証:

必要

必要な権限:

対象となる語彙に対する、語彙の更新権限

メソッド:

POST

ただし、X-HTTP-Method-OverrideヘッダーにPUTを送信すること。

パラメーター:

パラメーター名

概要

必須

uri

語彙のURI

URI

必須

file

語彙の仕様を満たすExcelファイル

ファイル

任意

status

公開状態

public,draft

任意

token

認証トークン

認証トークン

必須

レスポンス:

HTTPステータスコード200で語彙のURIを返却する。

{

"$schema": "http://json-schema.org/draft-04/schema#",

"title": "語彙更新",

"type": "object",

"properties": {

"uri": {

"type": "string"

},

"message": {

"type": "string"

}

},

"required": [

"uri",

"message"

]

}

サンプルレスポンス:

{

"uri":" http://imi.ipa.go.jp/ns/vocabulary/12345678",

"message":"語彙を更新しました。"

}

エラー:

共通エラー仕様にもとづいて返却する。

機能要件

ファイルが与えられた場合は、語彙の内容を更新する。

語彙の登録と同等の検証を行う。

ファイルが与えられず、公開状態が与えられた場合は、すでに登録されている語彙の公開状態のみを変更する。

status に public が指定され、かつ、対象の語彙のターゲット名前空間URIが、ベースURIから始まる場合は、XMLスキーマ、RDFスキーマ(RDF/XML形式、Turtle形式、JSON LD形式)を自動生成し、語彙サービスの機能要件の要件を満たすよう、登録された語彙の名前空間を自動的に構成する。

用語の意味の検索

API名:

意味・根拠検索

概要:

与えられた検索条件に合致する意味・根拠を返す。

URL:

≪ベースURL≫/api/senses/

ユーザー認証:

不要

メソッド:

GET

パラメーター:

パラメーター名

概要

必須

q

検索文字列

URLエンコードされた文字列

必須

レスポンス:

HTTPステータスコード200で意味・根拠のメタ情報一覧をJSONで返却する。

descriptionにはMarkdownフォーマットを期待する。

{

"$schema": "http://json-schema.org/draft-04/schema#",

"title": "意味・根拠検索",

"type": "array",

"items": {

"title": "意味・根拠のメタ情報",

"type": "object",

"properties": {

"name": {

"type": "string"

},

"description": {

"type": "string"

}

},

"required": ["name",”description”]

}

}

サンプルレスポンス:

[

{

"uri":"http://imi.ipa.go.jp/ns/codes/12345678",

"name":"軽自動車",

"description":"【Markdownフォーマット】#軽自動車(けいじどうしゃ)とは…"

}

]

エラー:

共通エラー仕様にもとづいて返却する。

機能要件:

検索文字列に「&」(U+0026)が含まれている場合、検索文字列は複数の文字列に分割され、それらすべての文字列に一致する用語を返す。少なくとも8個以上の文字列による検索をサポートする。

検索結果は少なくとも次のものを含む結果を返す。ここで「一致する」とは、検索文字列が対象文字列の全部又は一部に一致することをいう。

用語の項目名が検索文字列に一致する用語の意味・根拠

意味・根拠となるテキストが検索文字列に一致するもの

意味根拠の取得

API名:

意味・根拠取得

概要:

与えられたIDをもつ用語の意味・根拠を返す。

URL:

≪ベースURL≫/api/senses/:id

ユーザー認証:

不要

メソッド:

GET

パラメーター:

パラメーター名

概要

必須

id

用語のID

用語のID

必須

レスポンスフォーマット:

HTTPステータスコード200で意味・根拠のメタ情報をJSONで返却する。

{

"$schema": "http://json-schema.org/draft-04/schema#",

"title": "意味・根拠取得",

"type": "object",

"properties": {

"name": {

"type": "string"

},

"referenceURL": {

"type": "string"

},

"description": {

"type": "string"

}

},

"required": ["name"]

}

サンプルレスポンス:

{

"uri":"http://imi.ipa.go.jp/ns/codes/12345678",

"name":"軽自動車",

"referenceURL":"https://ja.wikipedia.org/wiki/%E8%BB%BD%E8%87%AA%E5%8B%95%E8%BB%8A",

"description":"【Markdownフォーマット】#軽自動車(けいじどうしゃ)とは…"

}

エラー:

共通エラー仕様にもとづいて返却する。

機能要件:

用語のIDがidの値である用語の意味・根拠のテキストを返す。

用語の関係の検索

API名:

オントロジー検索

概要:

与えられた言葉の同義語及び類義語を検索する。

URL:

≪ベースURL≫/api/ontology/

ユーザー認証:

不要

メソッド:

GET

パラメーター:

パラメーター名

概要

必須

q

検索文字列

URLエンコードされた文字列

必須

type

検索対象を全て、同義語、類義語から選択する。

all,equivalent,synonym

任意

レスポンス:

HTTPステータスコード200でオントロジーのメタ情報一覧をJSONで返却する。

{

"$schema": "http://json-schema.org/draft-04/schema#",

"title": "オントロジー検索",

"type": "array",

"items": {

"type": "object",

"properties": {

"uri": {

"type": "string"

},

"subject": {

"type": "string"

},

"synonyms": {

"type": "array",

"items": {

"type": "string"

}

},

"equivalents": {

"type": "array",

"items": {

"type": "string"

}

}

},

"required": [

"uri",

"subject"

]

}

}

サンプルレスポンス:

[ { "uri":"http://imi.ipa.go.jp/ns/ontology/12345678", "subject":"挨拶", "synonyms":["会釈"], "equivalents":["敬礼"] }]

エラー:

共通エラー仕様にもとづいて返却する。

機能要件:

検索文字列が言葉のIDまたは言葉そのものに一致する言葉について、その言葉、及び、その類義語、同義語を返す。ここで「一致する」とは、検索文字列が対象文字列の全部又は一部に一致することをいう。

検索結果において重複がないようにする。

typeパラメーターの値がallの場合は、類義語、同義語の両方を検索結果に含める。 typeパラメーターの値がequivalentの場合は、同義語のみを検索結果に含める。typeパラメーターの値がsynonymの場合は、類義語のみを検索結果に含める。

W1とW2が同義語であることをW1≡W2と表記したとき、言葉 W1 ≡ W2 ≡ W3 ≡ … ≡ Wn が成立するとき、W1~Wnはすべて同義語である。

W1とW2が類義語であることをW1≌W2と表記したとき、言葉 W1 ≡ W2 ≡ … ≡ Wm ≌ Wm+1 ≡ … ≡ Wn が成立するとき、W1~WmとWm+1~Wnは類義語である。

W1とW2が類義語であることをW1≌W2と表記したとき、W1≌W2≌W3が成立するとき、W1とW2、W2とW3は、それぞれ類義語であるが、W1とW3は類義語とはしない。

言葉に関係する言葉の取得

API名:

オントロジー取得

概要:

与えられた識別子がオントロジーデータベース上の言葉のIDと一致する言葉の類義語および同義語を返す。

URL:

≪ベースURL≫/api/ontology/:id

ユーザー認証:

不要

メソッド:

GET

パラメーター:

パラメーター名

概要

必須

id

言葉のID

言葉のID

必須

レスポンスフォーマット:

HTTPステータスコード200で オントロジーのメタ情報をJSONで返却する。

{ "$schema": "http://json-schema.org/draft-04/schema#", "title": "オントロジー取得", "type": "object", "properties": { "uri": { "type": "string" }, "subject": { "type": "string" }, "synonyms": { "type": "array", "items": { "type": "string" } }, "equivalents": { "type": "array", "items": { "type": "string" } } }, "required": [ "uri", "subject" ]}

サンプルレスポンス:

{

"uri":"http://imi.ipa.go.jp/ns/ontology/12345678",

"subject":"挨拶",

"synonyms":["会釈"],

"equivalents":["敬礼"]

}

エラー:

共通エラー仕様にもとづいて返却する。

機能要件:

idパラメーターで指定された言葉のIDをもつ言葉について、その言葉自身、その類義語、及び、その同義語を返す。

コード・ID API

コード及びコードリストの検索

API名:

コード検索

概要:

与えられた文字列に対して、検索条件に合致するコードリストかコードを返す。

URL:

http://imi.ipa.go.jp/api/code/

ユーザー認証:

不要

メソッド:

GET

パラメーター:

パラメーター名

概要

必須

q

検索文字列。ブランク文字列の場合は全てを返却する。

URLエンコードされた文字列

必須

filter

検索対象をコードかコードリストに絞り込む

code,codeList

任意

レスポンス:

Acceptヘッダーがapplication/jsonだった場合にはHTTPステータスコード200でコードのメタ情報をJSONで返却する。

Acceptヘッダーがtext/csvだった場合には、同等の情報をCSVで返却する。

{ "$schema": "http://json-schema.org/draft-04/schema#", "title": "コード検索", "type": "array", "items": { "title": "コードのメタ情報", "type": "object", "properties": { "uri": { "type": "string" }, "id": { "type": "string" }, "name": { "type": "string" }, "value": { "type": "string" } }, "required": [ "uri", "id", "name" ] }}

サンプルレスポンス:

[ { "uri":"http://imi.ipa.go.jp/ns/code/hospital/12345678", "id":"hospital/12345678", "name":"医療法人社団◯◯会△△区××病院", "value":"0801027" }, { "uri ":"http://imi.ipa.go.jp/ns/code/ sankaku_park/12345678", "id":"sankaku_park/12345678", "name":"△△町公園", "value":"P1001" }, { "uri ":"http://imi.ipa.go.jp/ns/code/ sankaku_park/12345678", "id":"sankaku_park", "name":"△△区公園コード" }]

Acceptヘッダー:

application/json, text/csv

エラー:

共通エラー仕様にもとづいて返却する。

機能要件:

filterが省略された場合は、コード及びコードリストの両方を検索対象とする。filterの値がcodeの場合は、コードのみを、codeListの場合はコードリストをそれぞれ検索対象とする。

検索文字列に「&」(U+0026)が含まれている場合、検索文字列は複数の文字列に分割され、それらすべての文字列に一致するものを返す。少なくとも8個以上の文字列による検索をサポートする。

コード及びコードリストの検索に関しては、意味・根拠データベースの考慮した検索など、ユーザーの意図・目的にあった検索結果を適確に返すことが求められる。

検索対象がコードであれば、少なくとも下記の条件に合致するコードを返す。ここで「一致する」とは、検索文字列が対象文字列の全部又は一部に一致することをいう。

コードの識別値の一部が与えられた文字列に一致する。

コードの表記の一部が与えられた文字列に一致する。

コードの説明文の一部が与えられた文字列に一致する。

検索対象がコードリストであれば、少なくとも下記の条件に合致するコードリストを返す。ここで「一致する」とは、検索文字列が対象文字列の全部又は一部に一致することをいう。

コードリストの名称の一部が与えられた文字列に一致する。

コードリストの説明の一部が与えられた文字列に一致する。

コードリストの発行者の一部が与えられた文字列に一致する。

ID及びID体系の検索

API名:

ID検索

概要:

与えられた文字列に対して、検索条件に合致するIDを返す。

URL:

http://imi.ipa.go.jp/api/ID

ユーザー認証:

不要

メソッド:

GET

パラメーター:

パラメーター名

概要

必須

q

検索文字列。ブランク文字列の場合は全てを返却する。

URLエンコードされた文字列

必須

filter

検索対象をIDかID体系に絞り込む

ID,IDSystem

任意

レスポンス:

Acceptヘッダーがapplication/jsonだった場合にはHTTPステータスコード200でIDのメタ情報をJSONで返却する。

Acceptヘッダーがtext/csvだった場合には、同等の情報をCSVで返却する。

{ "$schema": "http://json-schema.org/draft-04/schema#", "title": "ID検索", "type": "array", "items": { "title": "IDのメタ情報", "type": "object", "properties": { "uri": { "type": "string" }, "id": { "type": "string" }, "name": { "type": "string" }, "value": { "type": "string" } }, "required": [ "uri", "id" ] }}

サンプルレスポンス:

[ { "uri":"http://imi.ipa.go.jp/ns/ID/abc_product_ids/12345678", "id":"abc_product_ids/12345678", "value":"abc" }, { "uri":"http://imi.ipa.go.jp/ns/ID/abc_product_ids/12345678", "id":"abc_product_ids/12345679", "value":"def" }, { "uri":"http://imi.ipa.go.jp/ns/ID/abc_product_ids", "id":"abc_product_ids", "name":"製品ID" }]

Acceptヘッダー:

application/json, text/csv

エラー:

共通エラー仕様にもとづいて返却する。

機能要件

filterが省略された場合は、ID及びID体系の両方を検索対象とする。filterの値がIDの場合は、IDのみを、IDSystemの場合はID体系をそれぞれ検索対象とする。

検索文字列に「&」(U+0026)が含まれている場合、検索文字列は複数の文字列に分割され、それらすべての文字列に一致するものを返す。少なくとも8個以上の文字列による検索をサポートする。

ID及びID体系の検索に関しては、意味・根拠データベースの考慮した検索など、ユーザーの意図・目的にあった検索結果を適確に返すことが求められる。

検索対象がIDであれば、少なくとも下記の条件に合致するIDを返す。ここで「一致する」とは、検索文字列が対象文字列の全部又は一部に一致することをいう。

IDの識別値の一部が与えられた文字列に一致する。

検索対象がID体系であれば、少なくとも下記の条件に合致するID体系を返す。ここで「一致する」とは、検索文字列が対象文字列の全部又は一部に一致することをいう。

ID体系の名称の一部が与えられた文字列に一致する。

ID体系の説明の一部が与えられた文字列に一致する。

ID体系の発行者の一部が与えられた文字列に一致する。

コードリストの取得

API名:

コードリスト取得

概要:

与えられたidがコードリストのIDと一致するコードリストを返す。レスポンスにはコードの実体も含まれる。

URL:

http://imi.ipa.go.jp/api/code/:id

ユーザー認証:

不要

メソッド:

GET

パラメーター:

パラメーター名

概要

必須

id

コードリストのID

コードリストのID

必須

レスポンスフォーマット:

HTTPステータスコード200で コードリストのメタ情報をJSONで返却する。

{

"$schema": "http://json-schema.org/draft-04/schema#",

"title": "コードリスト",

"type": "object",

"properties": {

"codeList": {

"type": "object",

"items":{

"type": "object",

"label": {

"type": "array",

"items":{

"type": "object",

"properties": {

"name": {

"type": "string"

},

"lang": {

"type": "string"

}

},

"required": [

"name"

]

}

},

"uri":{

"type": "string"

},

"version":{

"type": "string"

},

"publisher":{

"type": "object",

"items":{

"type": "object",

"label": {

"type": "array",

"items":{

"type": "object",

"properties": {

"name": {

"type": "string"

},

"lang": {

"type": "string"

}

},

"required": [

"name"

]

}

}

}

},

"required": [

"label",

"uri"

]

}

},

"code": {

"type": "object",

"patternProperties": {

"^.+$":{

"type": "object",

"properties": {

"type": {

"type": "string"

},

"value": {

"type": "string"

}

},

"required": [

"type",

"value"

]

}

}

}

}

}

サンプルレスポンス:

{ "codeList": { "label": [ { "name": "座標データ書式コードリスト", "lang": "ja" }, { "name": "Code list for geometry encoding scheme", "lang": "en" } ], "uri": "http://imi.ipa.go.jp/ns/code/geometry_encoding_scheme", "version": "0.1", "publisher": { "label": [ { "name": "独立行政法人 情報処理推進機構", "lang": "ja" }, { "name": "Information-technology Promotion Agency", "lang": "en" } ] } }, "code": { "WKT": { "type": "http://imi.ipa.go.jp/ns/code/geometry_encoding_scheme", "value": "WKT" }, "GML": { "type": "http://imi.ipa.go.jp/ns/code/geometry_encoding_scheme", "value": "GML" } }}

Acceptヘッダー:

application/json

エラー:

共通エラー仕様にもとづいて返却する。

機能要件:

与えられたidがコードリストのIDと一致するコードリストを返す。レスポンスにはコードの実体も含める。

コードの取得

API名:

コード取得

概要:

与えられたidがコードのIDと一致するコードを返す。

URL:

http://imi.ipa.go.jp/api/code/:list/:id

ユーザー認証:

不要

メソッド:

GET

パラメーター:

パラメーター名

概要

必須

list

コードリストのID

コードリストのID

必須

id

コードのID

コードのID

必須

レスポンスフォーマット:

HTTPステータスコード200で コードのメタ情報をJSONで返却する。

{ "$schema": "http://json-schema.org/draft-04/schema#", "title": "コード", "type": "object", "patternProperties": { "^.+$": { "type": "object", "properties": { "type": { "type": "string" }, "value": { "type": "string" } }, "required": [ "type", "value" ] } }}

サンプルレスポンス:

Acceptヘッダーがapplication/jsonだった場合にはHTTPステータスコード200でコードのメタ情報をJSONで返却する。

Acceptヘッダーがtext/csvだった場合には、同等の情報をCSVで返却する。

{ "WKT": { "type": "http://imi.ipa.go.jp/ns/code/geometry_encoding_scheme", "value": "WKT" }, "GML": { "type": "http://imi.ipa.go.jp/ns/code/geometry_encoding_scheme", "value": "GML" }}

Acceptヘッダー:

application/json, text/csv

エラー:

共通エラー仕様にもとづいて返却する。

機能要件:

与えられたlistにより指定されたコードリストに含まれ、idがコードのIDと一致するコードを返す。

ID体系の取得

API名:

ID体系取得

概要:

与えられたidがID体系のIDと一致するID体系を返す。IDのインスタンスも含まれる。

URL:

http://imi.ipa.go.jp/api/ID/:id

ユーザー認証:

不要

メソッド:

GET

パラメーター:

パラメーター名

概要

必須

id

ID体系のid

ID体系のid

必須

レスポンスフォーマット:

HTTPステータスコード200で ID体系のメタ情報をJSONで返却する。

{ "$schema": "http://json-schema.org/draft-04/schema#", "title": "ID", "type": "object", "properties": { "IDSystem": { "type": "object", "items":{ "type": "object", "label": { "type": "array", "items":{ "type": "object", "properties": { "name": { "type": "string" }, "lang": { "type": "string" } }, "required": [ "name" ] } }, "uri":{ "type": "string" }, "version":{ "type": "string" }, "publisher":{ "type": "object", "items":{ "type": "object", "label": { "type": "array", "items":{ "type": "object", "properties": { "name": { "type": "string" }, "lang": { "type": "string" } }, "required": [ "name" ] } } } }, "required": [ "label", "uri" ] } }, "code": { "type": "array" } }}

サンプルレスポンス:

{ "IDSystem": { "label": [ { "name": "製品ID", "lang": "ja" }, { "name": "Product IDs", "lang": "en" } ], "uri": "http://imi.ipa.go.jp/ns/code/abc_product_ids", "version": "0.1", "publisher": { "label": [ { "name": "独立行政法人 情報処理推進機構", "lang": "ja" }, { "name": "Information-technology Promotion Agency", "lang": "en" } ] } }, "ID": [ "abc", "def", "fgh" ]}

エラー:

共通エラー仕様にもとづいて返却する。

機能要件:

与えられたidがID体系のIDと一致するID体系を返す。IDのインスタンスも含まれる。

IDの取得

API名:

ID取得

概要:

与えられたidがIDのIDと一致するIDを返す。

URL:

http://imi.ipa.go.jp/api/ID/:system/:id

ユーザー認証:

不要

メソッド:

GET

パラメーター:

パラメーター名

概要

必須

system

ID体系のID

ID体系のID

必須

id

IDのID

IDのID

必須

レスポンスフォーマット:

Acceptヘッダーがapplication/jsonだった場合にはHTTPステータスコード200でIDのメタ情報をJSONで返却する。

Acceptヘッダーがtext/csvだった場合には、同等の情報をCSVで返却する。

{ "$schema": "http://json-schema.org/draft-04/schema#", "title": "ID", "type": "array"}

サンプルレスポンス:

[ "abc", "def", "fgh"]

Acceptヘッダー:

application/json, text/csv

エラー:

共通エラー仕様にもとづいて返却する。

機能要件:

systemパラメーターにより指定されたID体系に含まれ、idがIDのIDと一致するコードを返す。

コードリストの登録

API名:

コードリスト登録

概要:

コードリストを新規に登録する。

URL:

http://imi.ipa.go.jp/api/code/

ユーザー認証:

必要

必要な権限:

対象となるコードリストに対する、コードリスト/ID体系の登録権限

メソッド:

POST

パラメーター:

パラメーター名

概要

必須

file

コードリストの仕様を満たすExcelファイル

Excelファイル

必須

status

公開状態

public,draft

任意

token

認証トークン

認証トークン

必須

レスポンス:

HTTPステータスコード201でコードリストのURIを返却する。

{

"$schema": "http://json-schema.org/draft-04/schema#",

"title": "コードリスト登録",

"type": "object",

"properties": {

"uri": {

"type": "string"

},

"message": {

"type": "string"

}

},

"required": [

"uri",

"message"

]

}

サンプルレスポンス:

{

"uri":"http://imi.ipa.go.jp/code/12345678",

"message":"コードリストを登録しました。"

}

エラー:

共通エラー仕様にもとづいて返却する。

機能要件

コードリストの登録のためのファイルは、「別紙1-5表形式コード・IDフォーム」(Excel形式)に従う。

コードリストの新規登録を行う場合には、管理コンソールから予めコードリスト情報が登録されていることが必要となる。

与えられた「別紙1-4表形式語彙フォーム」は内容に問題がないことを十分に検証することが求められる。

与えられた「別紙1-4表形式語彙フォーム」の内容少なくとも下記のようなことがないことを検証する。

必要な情報が与えられていない。

内容に矛盾がある。

statusパラメーター が指定された場合、statusパラメーターの値が「public」であれば登録されたコードリストの公開状態は「公開」になる。それ以外の場合は、コードリストの公開状態は「ドラフト」になる。

status に public が指定され、かつ、登録しようとするコードリストのターゲット名前空間URIが、ベースURIから始まる場合は、XMLスキーマ、RDFスキーマ(RDF/XML形式、Turtle形式、JSON LD形式)を自動生成し、語彙サービスの機能要件の要件を満たすよう、登録された語彙の名前空間を自動的に構成する。

ID体系の登録

API名:

ID体系登録

概要:

ID体系を新規に登録する。

URL:

http://imi.ipa.go.jp/api/ID/

ユーザー認証:

必要

必要な権限:

対象となるID体系に対する、コードリスト/ID体系の登録権限

メソッド:

POST

パラメーター:

パラメーター名

概要

必須

file

ID体系の仕様を満たすExcelファイル

Excelファイル

必須

status

公開状態

public,draft

任意

token

認証トークン

認証トークン

必須

レスポンス:

HTTPステータスコード201でID体系のURIを返却する。

{

"$schema": "http://json-schema.org/draft-04/schema#",

"title": "ID登録",

"type": "object",

"properties": {

"uri": {

"type": "string"

},

"message": {

"type": "string"

}

},

"required": [

"uri",

"message"

]

}

サンプルレスポンス:

{

"uri":"http://imi.ipa.go.jp/ID/12345678",

"message":"ID体系を登録しました。"

}

エラー:

共通エラー仕様にもとづいて返却する。

機能要件

ID体系の登録のためのファイルは、「別紙1-5表形式コード・IDフォーム」(Excel形式)に従う。

ID体系の新規登録を行う場合には、管理コンソールからID体系情報が登録されていることが必要となる。

与えられた「別紙1-4表形式語彙フォーム」は内容に問題がないことを十分に検証することが求められる。

与えられた「別紙1-4表形式語彙フォーム」の内容少なくとも下記のようなことがないことを検証する。

必要な情報が与えられていない。

内容に矛盾がある。

statusパラメーター が指定された場合、statusパラメーターの値が「public」であれば登録されたID体系の公開状態は「公開」になる。それ以外の場合は、ID体系の公開状態は「ドラフト」になる�