WireCloud では、すべてのアプリケーション・マッシュアップ・コンポーネントは
メタデータ情報を提供する config.xml
ファイルを提供する必要があります。
さらに、すべてのコンポーネントは以下の情報を提供する必要があります。
vendor
: マッシャブル・アプリケーション・コンポーネントのベンダー/
ディストリビュータのID。"/" 文字を含めることはできませんname
: マッシャブル・アプリケーション・コンポーネントの名前。
"/" 文字 を含めることはできませんversion
: マッシャブル・アプリケーション・コンポーネントの現在の
バージョン。ドットで区切られた数字の開始シーケンスを定義する必要が
あります。さらに、ゼロは単独でしか使用できません。たとえば、0.1は
有効ですが03.2は無効です 。リリース番号に続いて、プレリリース・タグを
付けることができます。プレリリース・タグは、一連の文字です。a (アルファ),
b (ベータ) または rc (リリース候補)の後に、数字が続きます。
プレリリース・タグを使用すると、バージョンは追加されたバージョンよりも
古いものと見なされます。つまり、リビジョン2.4はリビジョン2.4rc1よりも
新しいです。リビジョン2.4rc1は2.4b1または2.4a1よりも新しいですこれらのツリー属性 (vendor, name and version) はリソースを一意に識別します。 そのため、WireCloud リソースのコレクション (ウィジェット、マッシュアップ、 オペレータなど) にそのような識別子を繰り返すことはできません。これらの属性に 加えて、すべてのリソースは、オプションで、以下の属性を提供できます。
title
: マッシャブル・アプリケーション・コンポーネントのユーザ・
インターフェースで使われる名前。たとえば、マッシャブル・アプリケーション・
コンポーネントを一覧表示するときに使用されます。このフィールドは翻訳可能
であるため、マッシャブル・アプリケーション・コンポーネントを一意に識別する
ためには使用されません。このフィールドは、ワークスペースに追加された
ウィジェットのデフォルトのタイトルとしても使用されます。authors
: コンマで区切られた開発者のリスト。例えば :
Álvaro Arranz, Aitor Magan
E メールや URL を入力することもできます :
Barney Rubble <b@rubble.com> (http://barnyrubble.tumblr.com/)
contributors
: コンマで区切られた貢献者のリスト。
authors フィールドと同じ形式
email
: サポートを受けるための E メールアドレスlicense
: マッシャブル・アプリケーション・コンポーネントに関連付けられている
ライセンスの名前description
: マッシャブル・アプリケーション・コンポーネントの簡単な説明文longdescription
: マッシャブル・アプリケーション・コンポーネントを記述する
マークダウン・ファイルへの相対パスchangelog
: 各バージョンでマッシャブル・アプリケーション・コンポーネントに
加えられた変更を詳述したマークダウン・ファイルへの相対パスimage
: カタログ用のマッシャブル・アプリケーション・コンポーネントイメージの
絶対 URL またはテンプレートの相対 URL。(170×80ピクセル)smartphone
: スマートフォンで使用する画像。(59×60ピクセル) doc
: マッシャブル・アプリケーション・コンポーネントのドキュメントの
絶対 URL またはテンプレートの相対 URLXML を使用して記述されたマッシャブル・アプリケーション・コンポーネントは、
開発したいコンポーネントに応じて widget
または operator
と呼ばれるルート要素
に http://wirecloud.conwet.fi.upm.es/ns/macdescription/1
名前空間を使用する
べきです。このルート要素には、リソースを識別する3つの属性
(vendor, name and version) が必要です。さらに、これは先に説明したように、
リソースに関するすべての基本情報を引き継ぐことになる別の要素
details
を含むべきです。
次のコードは、XML を使用したウィジェットの説明を示しています :
<?xml version='1.0' encoding='UTF-8'?>
<widget xmlns="http://wirecloud.conwet.fi.upm.es/ns/macdescription/1" vendor="CoNWeT" name="map-viewer" version="2.5.4">
<details>
<title>Map Viewer</title>
<authors>Example <user@example.com></authors>
<email>user@example.com</email>
<image>images/catalogue.png</image>
<description>Place things on map! Explore the world, trace routes...</description>
<longdescription>DESCRIPTION.md</longdescription>
<license>AGPLv3+ w/linking exception</license>
<licenseurl>http://www.gnu.org/licenses/agpl-3.0.html</licenseurl>
<doc>doc/userguide.md</doc>
<changelog>doc/changelog.md</changelog>
</details>
...
</widget>
そして、これが XML でのオペレータの記述です :
<?xml version='1.0' encoding='UTF-8'?>
<operator xmlns="http://wirecloud.conwet.fi.upm.es/ns/macdescription/1" vendor="CoNWeT" name="ngsi-source" version="3.0a2">
<details>
<title>Map Viewer</title>
<homepage>https://github.com/wirecloud-fiware/ngsi-source</homepage>
<authors>Example <user@example.com></authors>
<email>user@example.com</email>
<image>images/catalogue.png</image>
<description>Retrieve Orion Context Broker entities and their updates in real time.</description>
<longdescription>DESCRIPTION.md</longdescription>
<license>AGPLv3+ w/linking exception</license>
<licenseurl>http://www.gnu.org/licenses/agpl-3.0.html</licenseurl>
<doc>doc/userguide.md</doc>
<changelog>doc/changelog.md</changelog>
</details>
...
</operator>
XML フォーマットに加えて、ウィジェットとオペレータのディスクリプション
(config.xml
ファイル) は次の RDF 記法のうちの1つを使って書くこともできます :
n3, turtle または rdf/xml。これらの RDF 表記法は、通常、WireCloud が提供する
XML 表記法よりも複雑で、config.xml
に追加のメタデータを追加したい場合には
より適しています。WireCloud は、RDF を使用する他のシステムにコンポーネントの
メタデータをエクスポートするために、この構文を使用します。
ただし、これはユーザからは見えません)。
できるだけ XML 表記を使用することをお勧めします。
config.xml
ファイルに含める必要がある最初のものはすべての名前空間を
ドキュメントの残りの部分で利用可能にするためのヘッダです。少なくとも
WireCloud 名前空間 ("http://wirecloud.conwet.fi.upm.es/ns/widget")
をインポートする必要がありますが、コードを書く作業を容易にするために
他の名前空間をインポートすることができます。次の行に例があります。
ご覧のとおり、WireCloud 名前空間は "wire" としてタグ付けされています。
さらに、他の名前空間もいくつかインポートされています
(usdl-core, foaf, rdfs,...) :
<?xml version="1.0" encoding="UTF-8"?>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:usdl-core="http://www.linked-usdl.org/ns/usdl-core#"
xmlns:foaf="http://xmlns.com/foaf/0.1/"
xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
xmlns:dcterms="http://purl.org/dc/terms/"
xmlns:wire="http://wirecloud.conwet.fi.upm.es/ns/widget#"
xmlns:vCard = "http://www.w3.org/2006/vcard/ns#"
xmlns:gr="http://purl.org/goodrelations/v1#">
turtle を使用すると :
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix usdl-core: <http://www.linked-usdl.org/ns/usdl-core#> .
@prefix foaf: <http://xmlns.com/foaf/0.1/> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix dcterms: <http://purl.org/dc/terms/> .
@prefix wire: <http://wirecloud.conwet.fi.upm.es/ns/widget#> .
@prefix vCard: <http://www.w3.org/2006/vcard/ns#> .
@prefix gr: <http://purl.org/goodrelations/v1#> .
RDF ヘッダを追加したら、次のステップは作成したいコンポーネントに応じて必要な
ノードを追加することです : 作成したいコンポーネントによって、
wire:Operator
または wire:Widget
です。これがルート・ノードになるため、
ウィジェットまたはオペレータに関連付けられているすべてのメタデータは
このノードの子孫になります。
リソースに関する基本情報は、次のノードを使用して追加する必要があります :
vendor
: udsl-core:hasProvidername
: dcterms:titleversion
: usdl-core:versionInfodescription
: dcterms:descriptiontitle
: wire:displayNameauthor
: dcterms:creatoremail
: vcard:addrimage
: wire:hasImageUrismartphoneimage
: wire:hasiPhoneImageUridoc
: foaf:page次のコードは、オペレータのディスクリプションの例を示しています :
<wire:Operator rdf:about="http://wirecloud.conwet.fi.upm.es/ns/widget#CoNWeT/entity-service/2.3.2">
<usdl:hasProvider>
<gr:BusinessEntity rdf:nodeID="Ne2a8644226d049239a5a9856bafcd7c6">
<foaf:name>CoNWeT</foaf:name>
</gr:BusinessEntity>
</usdl:hasProvider>
<wire:hasImageUri rdf:resource="images/catalogue.png"/>
<wire:hasiPhoneImageUr rdf:resource="images/catalogue_mob.png"/>
<wire:displayName>Entity Service</wire:displayName>
<dcterms:title>entity-service</dcterms:title>
<usdl:versionInfo>2.3.2</usdl:versionInfo>
<dcterms:description>This operator permits us gather information about several entities (Lamp posts, AMMSs and Regulators) from any NGSI service.</dcterms:description>
<foaf:page rdf:resource="docs/index.html"/>
<dcterms:creator>
<foaf:Person rdf:nodeID="Ne3468f9471d349908dd8e81167153ac8">
<foaf:name>sblanco</foaf:name>
</foaf:Person>
</dcterms:creator>
<vcard:addr>
<vcard:Work rdf:nodeID="N6d57fc77a0e643138195f0db44b95fb2">
<vcard:email>example@example.com</vcard:email>
</vcard:Work>
</vcard:addr>
</wire:Operator>
他の RDF フォーマットも使用できます (例 : n3) :
!n3
<http://wirecloud.conwet.fi.upm.es/ns/widget#CoNWeT/entity-service/2.3.2> a wire:Operator ;
dcterms:creator [ a foaf:Person ;
foaf:name "example" ] ;
dcterms:description "This operator permits us gather information about several entities (Lamp posts, AMMSs and Regulators) from any NGSI service." ;
dcterms:title "entity-service" ;
wire:displayName "Entity Service" ;
wire:hasImageUri <images/catalogue.png> ;
usdl:hasProvider [ a gr:BusinessEntity ;
foaf:name "CoNWeT" ] ;
usdl:versionInfo "2.3.2" ;
vcard:addr [ a vcard:Work ;
vcard:email "example@example.com" ] ;
foaf:page <docs/display/wirecloud> .
ウィジェットとオペレータはよく似ていますが、同じではありません。オペレータには ビューがないため、両者には違いがあります。つまり、オペレータのディスクリプション は初期 HTML ドキュメントをエントリ・ポイントとして使用しません。代わりに、 オペレータは、それらの記述子ファイルで javascript ファイルのリストを定義します。
ウィジェットを定義するために XML を使用する場合は、HTML エントリ・ポイントを 設定するために contents 要素を定義する必要があります。この要素は、 前述のとお、ルート要素 (widget) に含まれています :
<contents src="index.html"/>
RDF を使用してウィジェットを記述する場合は、HTML エントリ・ポイントを
設定するために要素 usdl:utilizedResource
を設定する必要があります。
次のコードは N3 を使用した例です :
usdl:utilizedResource <index.html> ;
XML を使ってオペレータを開発した場合は、scripts
要素を使って実行される
JS ファイルを定義しなければなりません。次のスニペットでわかるように、
この要素はルート要素 (operator
) に含まれている必要があります :
<scripts>
<script src="js/main.js"/>
<script src="..."/>
</scripts>
オペレータの JS ファイルを RDF に設定するには、要素 usdl:utilizedResource
を
設定し、各ファイルのインデックスを設定する必要があります。
これを行うには、次の例に従うことができます :
!n3
<http://wirecloud.conwet.fi.upm.es/ns/widget#CoNWeT/entity-service/2.3.2> a wire:Operator ;
usdl:utilizedResource <js/main.js> ;
...
<js/main.js> a usdl:Resource ;
wire:index "0" .
XML のような他の RDF フォーマットを使うこともできます :
!xml
<usdl:utilizedResource>
<usdl:Resource rdf:about="js/main.js">
<wire:index>0</wire:index>
</usdl:Resource>
</usdl:utilizedResource>
WireCloud は自動的に マッシャブル・アプリケーション・コンポーネントの ディスクリプションのフォーマットを変換するためのツールを提供します。 変換する場合は、convert コマンドを使用できます。このツールを使用するには WireCloud がインストールされている必要があります。詳細については、 インストールおよび管理ガイドを参照してください。
$ wirecloud-admin convert [options] <source_widget_descriptor> [dest_file]
このコマンドでサポートされている最も重要なオプションは -d
フラグです、
これは出力フォーマットを指定することを可能にします。現在、次のフォーマットを
使うことができます : xml, rdf および old_xml。また、使用するフレーバーまたは
RDF を指定できる --rdf-format
オプションもあります。たとえば、
ディスクリプションの RDF (n3) バージョンを取得したい場合は、
次のコマンドを実行できます :
$ wirecloud-admin convert -d rdf --rdf-format n3 config.n3
これは新しいディスクリプションを標準出力に出力します。結果をファイルに保存する
には、[dest_file]
引数を使用してください。次の例では、config.ttl
ディスクリプション・ファイルを RDF/turtle から xml に変換して、
config.xml
ファイルを作成します :
$ wirecloud-admin convert -d xml config.ttl config.xml
help コマンドを使用して、convert コマンドに関する詳細情報をいつでも入手できます :
$ wirecloud-admin help convert
以下のチュートリアルでは、ウィジェットまたはオペレータを作成するためのガイドを
します。これらのチュートリアルは config.xml
ファイルに追加できる他の設定を
含みます。しかし、これらのドキュメントの構造を理解するための最良の方法は
いくつかの例を見ることです。
github にはウィジェットやオペレータがいくつかあります :
FIWARE Live Demo で使用されるいくつかのウィジェット :
いくつかの一般的なウィジェットとオペレータ :
さらに、FIWARE に関連するウィジェットやオペレータもあります :
ウィジェットとオペレータのディスクリプションを作成 | 1 |
---|---|
イントロダクション | 2 |
イントロダクション | 3 |
イントロダクション | 4 |
イントロダクション | 5 |
XML | 6 |
XML | 7 |
XML | 8 |
XML | 9 |
RDF | 10 |
RDF | 11 |
RDF | 12 |
RDF | 13 |
RDF | 14 |
RDF | 15 |
RDF | 16 |
エントリ・ポイント | 17 |
エントリ・ポイント | 18 |
エントリ・ポイント | 19 |
エントリ・ポイント | 20 |
エントリ・ポイント | 21 |
サポートされているディスクリプション形式の切り替え | 22 |
サポートされているディスクリプション形式の切り替え | 23 |
サポートされているディスクリプション形式の切り替え | 24 |
例 | 25 |
例 | 26 |
- | 27 |
目次 | t |
---|---|
スライド一覧 | ESC |
フルスクリーン | e |
発表者ビュー | p |
ソースファイル | s |
スライド番号 | n |
画面ブランキングの切り替え | b |
スライド・コンテキストの表示/非表示 | c |
ノート | 2 |
ヘルプ | h |