手動でのビジネス・モデル・システム・ファイルの作成

ビジネス・モデル・システム・ファイルを作成する場合、このトピックで説明されている OWL 構成体のみを使用することを考慮してください。大/小文字を厳密に区別してください。OWL 構成体には大/小文字の区別があるため、正しくない場合は予期しない結果が発生します。

提供される例

ModellingSample.owl ファイル

構成パースペクティブで、「アクティブ・プロファイル」 > 「ビジネス・モデル・システム」をクリックします。

テクニカル・モデル
ビジネス・モデルの作成方法についての別の例。
WSRR システム・プロパティー
これらは、ビジネス・モデルを作成するときに使用されるレジストリー注釈です。ご使用の任意の OWL エディター・ツールにこれらのファイルをインポートして、検証目的に使用してください。

このファイルは、必ず owl:Ontology への owl:import としてインポートしてください。

<owl:imports
  rdf:resource="http://www.ibm.com/xmlns/prod/serviceregistry/6/1/model"/>
WSRR オブジェクト
これらは、ビジネス・モデルで関係をセットアップするときに使用できるサービス・レジストリー・オブジェクトの表現です。特定のレジストリー・オブジェクト・タイプへの関係が必要である場合は、このファイルを owl:import としてインポートしてください。
<owl:imports rdf:resource="http://www.ibm.com/xmlns/prod/websphere/repository/v6r3/xsd"/>
<owl:imports rdf:resource="http://www.ibm.com/xmlns/prod/websphere/repository/base"/>
<owl:imports rdf:resource="http://www.ibm.com/xmlns/prod/serviceregistry/v6r3/wsrrbase"/>
<owl:imports rdf:resource="http://www.ibm.com/xmlns/prod/websphere/repository/policy"/>
<owl:imports rdf:resource="http://www.ibm.com/xmlns/prod/websphere/repository/v6r3/ibmsca"/>
<owl:imports rdf:resource="http://www.ibm.com/xmlns/prod/websphere/repository/v6r3/wsdl11"/>

以下に、ビジネス・モデル・システムを作成するための基本テンプレートを示します。

<rdf:RDF xml:base="http://your.com/yournamespace"
  xmlns="http://your.com/yournamespace#"
  xmlns:srtest="http://your.com/yournamespace#"
  xmlns:wsrr="http://www.ibm.com/xmlns/prod/serviceregistry/6/1/model#"
  xmlns:rep63policy="http://www.ibm.com/xmlns/prod/websphere/repository/policy#"
  xmlns:rep63sca="http://www.ibm.com/xmlns/prod/websphere/repository/v6r3/ibmsca#"
  xmlns:rep63wsdl11="http://www.ibm.com/xmlns/prod/websphere/repository/v6r3/wsdl11#"
  xmlns:rep63xsd="http://www.ibm.com/xmlns/prod/websphere/repository/v6r3/xsd#"
  xmlns:repbase="http://www.ibm.com/xmlns/prod/websphere/repository/base#"
  xmlns:owl="http://www.w3.org/2002/07/owl#"
  xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
  xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#">
</rdf:RDF> 

ネーム・スペース

xml:base または xmlns (またはその両方) を、ご使用のネーム・スペースに設定します。

WSRR にロードする OWL ファイルで使用する URI は、通常の URI 形式ではなく、resource_type:// という形式で始まる URL 形式にする必要があります。その他の形式の URI (例えば、// 文字のない urn:) は、絶対 URI として正しく識別されないため、結果として、xml:base 値が前に付加される場合があります。

モデリング・オントロジーの作成

ビジネス・モデル owl ファイルを定義するときは、必ずオントロジー項目を指定してください。通常のラベルとコメントに加えて、そのファイル内に定義されているプロパティーの名前の接頭部を示す項目を追加してください。
<wsrr:prefix rdf:datatype="http://www.w3.org/2001/XMLSchema#string">
  yns
</wsrr:prefix>
ここで、yns はその owl ファイル内のプロパティーに追加される接頭部です。例えば、次のプロパティーがあるとします。
<owl:DatatypeProperty rdf:ID="StringProperty2">
レジストリー内におけるプロパティー名は、yns_StringProperty2 です。 ビジネス・モデル owl ファイルで、接頭部値を指定する必要があります。接頭部値は、前にロードされたビジネス・モデル owl ファイルで使用した値と同じにすることはできません。 この条件が満たされない場合、ファイルをロードしようとするとファイルが拒否されます。

次の例は、典型的な Ontology 項目を示しています。

owl:Ontology rdf:about="http://your.com/yournamespace">
    <wsrr:prefix rdf:datatype="http://www.w3.org/2001/XMLSchema#string">yns</wsrr:prefix>
<owl:imports rdf:resource="http://www.ibm.com/xmlns/prod/websphere/repository/v6r3/xsd"/>
<owl:imports rdf:resource="http://www.ibm.com/xmlns/prod/websphere/repository/base"/>
<owl:imports rdf:resource="http://www.ibm.com/xmlns/prod/serviceregistry/v6r3/wsrrbase"/>
<owl:imports rdf:resource="http://www.ibm.com/xmlns/prod/websphere/repository/policy"/>
<owl:imports rdf:resource="http://www.ibm.com/xmlns/prod/websphere/repository/v6r3/ibmsca"/>
<owl:imports rdf:resource="http://www.ibm.com/xmlns/prod/websphere/repository/v6r3/wsdl11"/>
<owl:imports rdf:resource="http://www.ibm.com/xmlns/prod/serviceregistry/6/1/model"/>
    <rdfs:label>Example Model</rdfs:label>
</owl:Ontology>

モデリング・クラスの作成

ビジネス・モデル・ファイル内で定義されるすべてのクラスは、ビジネス・モデル・テンプレートとして表示され、インスタンス化できます。
注: ビジネス・モデル・ファイルに定義されているクラスは、サブクラス owl:Thing を持つことはできません。

クラスを表示しないという要件がある場合 (例えば、その他の多数のクラスのスーパークラスである場合) は、次の注釈をそのクラスに適用できます。これにより、それがビジネス・モデル・テンプレートに表示されないようになります。

<wsrr:abstract rdf:datatype="http://www.w3.org/2001/XMLSchema#boolean">
  true
</wsrr:abstract>
注: ブール・データ型の値には大/小文字の区別があり、以下の値のみが有効です。
  • true
  • false
  • 1
  • 0
この例では、別のクラス (ModellingClass) のサブクラスであるモデリング・クラス (ModellingClassExtension) があります。ModellingClassExtension は、単一のストリング・プロパティー (StringProperty) および関係 (RelationshipObject) をサポートします。プロパティーおよび関係がモデルの一部とみなされるためには、それらに owl:Restriction というマークを付ける必要があります。

関係の作成

関係を定義するには、次の OWL 構成体を使用する必要があります。
<owl:ObjectProperty rdf:ID="RelationshipObject">
     <rdfs:label>Typical Relationship</rdfs:label>
     <rdfs:domain rdf:resource="#ModellingClassExtension"/>
     <rdfs:range rdf:resource="#RelationshipClass"/>
</owl:ObjectProperty>
この例では、関係のターゲットは RelationshipClass であり、これはビジネス・モデルとしても定義されています。

レジストリー・オブジェクトを指すように関係を設定することも可能です。例えば、関係のターゲットを WSDLDocument とする場合、次を使用します。

<rdfs:range
  rdf:resource="http://www.ibm.com/xmlns/prod/websphere/repository/v6r3/wsdl11#WSDLDocument"/>

継承も適用されるため、任意の文書タイプであるターゲットとの関係が必要な場合は、次のようなコードを使用します。

<rdfs:range rdf:resource="http://www.ibm.com/xmlns/prod/websphere/repository/base
#Document"/>

ターゲット・オブジェクトを表す URI は、WebSphere® Service Registry and Repository (WSRR) バージョン 6.3 で変更されました。 Registry Objects ファイルは、情報が内部的に保持されるようになったため、すべてのプロファイルから除去されました。オブジェクト URI 表は、以前の URI を新しい URI にマップする方法を示しています。WSRR の以前のバージョンからマイグレーションする場合、URI は自動的に変更されます。

定義済みの関係をクラスで使用するには、そのクラスに以下の構成体を追加する必要があります。

<rdfs:subClassOf>
  <owl:Restriction>
    <owl:onProperty rdf:resource="#RelationshipObject"/>
    <owl:minCardinality rdf:datatype="http://www.w3.org/2001/
            XMLSchema#nonNegativeInteger">0</owl:minCardinality>	
  </owl:Restriction>
</rdfs:subClassOf>
<rdfs:subClassOf>
  <owl:Restriction>
    <owl:onProperty rdf:resource="#RelationshipObject"/>
    <owl:maxCardinality rdf:datatype="http://www.w3.org/2001/
            XMLSchema#nonNegativeInteger">2</owl:maxCardinality>
  </owl:Restriction>
</rdfs:subClassOf>

これは、関係がタイプ RelationshipObject のオブジェクトを指しており、これらのオブジェクトが 0 個から 2 個まで存在できることを示しています。

注: オブジェクト A にオブジェクト B に対する関係があり、オブジェクト B を削除すると、関係ターゲットの数がその関係に対し定義されている最小基数を下回る場合でも、WSRR ではオブジェクト B の削除が許可されます。

プロパティーの作成

プロパティーを定義するには、以下の OWL 構成体を使用する必要があります。
<owl:DatatypeProperty rdf:ID="StringProperty2">
    <rdfs:label>Typical String Property 2</rdfs:label>
    <rdfs:domain rdf:resource="#ModellingClassExtension"/>
    <rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#string"/>
</owl:DatatypeProperty>

ドメインを指定する必要はなく、そのプロパティーに対する制限を持つ任意のクラスがそのプロパティーを使用できます。クラスに対して明示的にプロパティーを指定する必要がある場合は、ドメインを使用します。

プロパティーを複数のクラスで定義する場合は、次の構成体を使用します。

<rdfs:domain>
  <owl:Class>
    <owl:unionOf rdf:parseType="Collection">
      <owl:Class rdf:about="#Class1"/>
      <owl:Class rdf:about="#Class2"/>
    </owl:unionOf>
  </owl:Class>
</rdfs:domain>

rdf:about を rdf:ID の代わりに使用できます。

プロパティーの可能な範囲は、以下の XSD スキーマ・タイプのいずれかです。ビジネス・モデル・バリデーターは、これらのタイプに対してのみデータを検証します。

"http://www.w3.org/2001/XMLSchema#string";
"http://www.w3.org/2001/XMLSchema#anyURI";
"http://www.w3.org/2001/XMLSchema#boolean";
"http://www.w3.org/2001/XMLSchema#int";
"http://www.w3.org/2001/XMLSchema#integer";
"http://www.w3.org/2001/XMLSchema#short";
"http://www.w3.org/2001/XMLSchema#long";
"http://www.w3.org/2001/XMLSchema#float";
"http://www.w3.org/2001/XMLSchema#double";
"http://www.w3.org/2001/XMLSchema#dateTime";
"http://www.w3.org/2001/XMLSchema#time";
"http://www.w3.org/2001/XMLSchema#date";
注: ビジネス・モデル・バリデーターは、以下のデフォルト値を設定します。
"http://www.w3.org/2001/XMLSchema#anyURI"; urn:serviceregistry
"http://www.w3.org/2001/XMLSchema#boolean"; false
"http://www.w3.org/2001/XMLSchema#int"; 0
"http://www.w3.org/2001/XMLSchema#integer"; 0
"http://www.w3.org/2001/XMLSchema#short"; 0
"http://www.w3.org/2001/XMLSchema#long"; 0
"http://www.w3.org/2001/XMLSchema#float"; 0.0
"http://www.w3.org/2001/XMLSchema#double"; 0.0
"http://www.w3.org/2001/XMLSchema#dateTime"; Current date and time
"http://www.w3.org/2001/XMLSchema#time"; Current time
"http://www.w3.org/2001/XMLSchema#date"; Current date 

定義済みのプロパティーをクラスで使用するには、そのクラスに以下の構成体を追加する必要があります。

<rdfs:subClassOf>
  <owl:Restriction>
    <owl:onProperty rdf:resource="#StringProperty2"/>
    <owl:minCardinality  rdf:datatype="http://www.w3.org/2001/
            XMLSchema#nonNegativeInteger">1</owl:minCardinality>	
  </owl:Restriction>
</rdfs:subClassOf>

ブール値以外のタイプのプロパティーでは、minCardinality に 1 を宣言することは、プロパティーが値を 1 つ持つ必要があることを意味します。宣言しない場合は、プロパティー名が存在することのみが必要です。値が必須でない場合は、minCardinality を 0 に設定します。

ただし、ブール値型のプロパティーの場合は、プロパティーは値を 1 つ持つ必要があり、その値は true または false のどちらかである必要があります。また、 Web ユーザー・インターフェースの制約により、基数が常に -1 と表示されることに注意してください。

構成体を以下のように置き換えることができます。

<rdfs:subClassOf>
  <owl:Restriction>
    <owl:onProperty rdf:resource="#StringProperty2"/>
    <owl:cardinality rdf:datatype="http://www.w3.org/2001/
            XMLSchema#nonNegativeInteger">1</owl:cardinality>	
  </owl:Restriction>
</rdfs:subClassOf>

基数を 1 に設定すると、実質的に minCardinality と maxCardinality が 1 に設定されます。
必要な場合、プロパティーでデフォルト値をセットアップできます。

これを行うには、DatatypeProperty に以下の構成体を追加します。

<wsrr:default rdf:datatype="http://www.w3.org/2001/XMLSchema#string">
  The Default Value
</wsrr:default>
注: カスタム・ビジネス・モデルに固有のプロパティー名の場合、名前の長さに対する制限は、1020 バイトから基本ネーム・スペースのバイト数を引いたものです。

列挙

列挙を宣言する方法は 2 つあります。現在は、xsd:string 列挙のみがサポートされています。

最初の例では、DatatypeProperty が列挙を範囲として指します。

<owl:DatatypeProperty rdf:ID="DataTypeProperty_StringEnumeration">
  <rdfs:label>Typical String Enumeration Property</rdfs:label>
  <rdfs:domain rdf:resource="#ModellingClassExtension"/>
  <rdfs:range rdf:resource="#StringEnumeration"/>
</owl:DatatypeProperty>

<owl:DataRange rdf:ID="StringEnumeration">
  <owl:oneOf rdf:parseType="Resource">
    <rdf:first rdf:datatype="http://www.w3.org/2001/
            XMLSchema#string">EnumerationString1</rdf:first>
    <rdf:rest rdf:parseType="Resource">
       <rdf:first rdf:datatype="http://www.w3.org/2001/
               XMLSchema#string">EnumerationString2</rdf:first>
       <rdf:rest rdf:parseType="Resource">
         <rdf:first rdf:datatype="http://www.w3.org/2001/
                 XMLSchema#string">EnumerationString3</rdf:first>
         <rdf:rest rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#nil"/>
       </rdf:rest>
    </rdf:rest>
  </owl:oneOf>
</owl:DataRange>

2 番目の例では、DataRange が DatatypeProperty に組み込まれています。

<owl:DatatypeProperty rdf:ID="testProperty1">
 <rdfs:range>
  <owl:DataRange>
   <owl:oneOf>
    <rdf:List>
      <rdf:first rdf:datatype="http://www.w3.org/2001/XMLSchema#string">0</rdf:first>
      <rdf:rest>
       <rdf:List>
        <rdf:first rdf:datatype="http://www.w3.org/2001/XMLSchema#string">15</rdf:first>
        <rdf:rest>
         <rdf:List>
          <rdf:first rdf:datatype="http://www.w3.org/2001/XMLSchema#string">30</rdf:first>
          <rdf:rest>
           <rdf:List>
            <rdf:first rdf:datatype="http://www.w3.org/2001/XMLSchema#string">40</rdf:first>
           <rdf:rest rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#nil" />
          </rdf:List>
         </rdf:rest>
        </rdf:List>
       </rdf:rest>
      </rdf:List>
     </rdf:rest>
    </rdf:List>
   </owl:oneOf>
  </owl:DataRange>
 </rdfs:range>
</owl:DatatypeProperty>
以前のバージョンでは、列挙型フィールドに値がないファイルをロードできました。以下に例を示します。
<rdf:first rdf:datatype="http://www.w3.org/2001/XMLSchema#string"></rdf:first> 
列挙型がストリング型ではない場合 (例えば int (XMLSchema#int) など)、ファイルのロード時に値が正しい型であることを確かめるためのチェックが実行されるため、列挙のすべての項目が値を持つようにする必要があります。

既存ビジネス・モデル・システムのサブクラス化

WSRR で提供されているビジネス・モデル・システム・ファイルを変更しないでください。 代わりに、既存のビジネス・モデル・システムをサブクラス化する新規ビジネス・モデル・システム・ファイルを作成してから、その新規ファイルを変更してください。 既存のビジネス・モデル・システムをサブクラス化するには、subClassOf エレメントを使用します。次の例では、Service ビジネス・モデルをサブクラス化します。
<owl:Class rdf:about="http://www.ibm.com/subservice#MySubService">
  <rdfs:subClassOf 
    rdf:resource="http://www.ibm.com/xmlns/prod/serviceregistry/v6r3/ServiceModel#Service"/>
  <rdfs:label>my subservice class</rdfs:label>
</owl:Class> 

API を使用したビジネス・モデルのインスタンスの作成

API を使用してビジネス・モデル・インスタンスを作成する必要がある場合、必要な手順は以下のとおりです。

  1. GenericObject のインスタンスを作成します。
  2. primaryType フィールドをビジネス・モデルの URI に設定します。この例では、http://your.com/yournamespace#ModellingClassExtension です。
  3. モデルで定義されるプロパティーおよび関係を追加します。
  4. 通常の方法で、インスタンスをレジストリーに保管します。
  5. primaryType フィールドが設定されると、ビジネス・モデル・バリデーターがトリガーされ、データを検証します。