IBM®
本文へジャンプ
    Japan [変更]    ご利用条件
 
 
検索範囲検索:    
    ホーム    製品    サービス & ソリューション    サポート & ダウンロード    マイアカウント    
skip to main content

developerWorks Japan  >  XML  >

XML 的思索: SKOS を使って表現力豊かなスキーマ定義を実現する

ビジネスの問題の領域から XML アプリケーションに概念を付加する方法を学ぶ

developerWorks
ページオプション

JavaScript を要するドキュメントオプションは表示されません

議論する

原文はこちら

原文はこちら


レベル: 中級

Uche Ogbuji, Partner, Zepheira, LLC

2008年 11月 11日

スキーマの中に含まれる内容 (例えば人や場所、ものなど) は、人々がそれらをどう表現するかと不可分なほど密接に結びついており、そこがビジネスと技術を連携させる上での鍵です。XML スキーマの設計者ができる最も重要なことの 1 つは、この結びつきを明確に表現することです。DITA のコンポーネントとしてよく知られた言語である SKOS は、そうした表現のために非常に便利な手段です。SKOS 定義を使ってスキーマの定義を表現力豊かにする方法を学びましょう。

この「XML的思索」シリーズのメイン・テーマは、意味的透過性、つまり XML のスキーマとインスタンスにおける構成体の意味を明確にすることです。私は意味的透過性を実現するためのボトムアップ手法について説明してきました。この手法では文書やスキーマに依存しない別々のレベルで用語と概念を定義し (つまり実質的にデータ辞書を定義し)、そうすることでこの手法を幅広く応用することができます。さまざまな業界がボトムアップによる意味的透過性を実現するために多くのイニシアチブを立ち上げており、それらのうちの一部は他よりもその目的に適したものとして存続しています。この「XML的思索」シリーズでは、ISO の BSR (Basic Semantics Register)、RosettaNet Dictionaries、ebXML Core Components、UDEF (Universal Data Element Framework)、金融サービス分野での ISO 15022、その他を説明してきました。しかし、大部分の XML アプリケーションのスキーマ開発の推進源となる用語に取り組もうとする大きな業界イニシアチブはありません。ほとんどの場合、開発者は自分自身で特別なデータ辞書を定義する必要があります。

頻繁に使用する頭字語
  • DITA: Darwin Information Typing Architecture
  • URI: Uniform Resource Identifier
  • W3C: World Wide Web Consortium
  • XML: Extensible Markup Language
  • XSL: Extensible Stylesheet Language
  • XSLT: XSL Transformations

アーキテクトは徐々に、リッチな情報統合をサポートするためにはデータ辞書のみでは不十分なことに気付き始めています。XML 文書で人や場所、ものについて言及する際には、一般的な関係から特定の関係にまで至るさまざまなものとの関係や、その構成や性質、同義語や反意語などを使って表現する必要があります。具体的には、地理的な場所や、重要な時刻と日付、ポリシー、ビジネス・ルールなどとの関係についても記述する必要があります。場合によると、スコープを開発者の専門に特化した情報領域から、より広い業界の一般慣習にまでスコープを拡張する必要があります。こうした詳細事項があるため、セマンティック Web 技術は XML 開発をサポートするのに非常に適しており、最初は最も単純でささやかなセマンティック Web 技術から始めることが理にかなっています。SKOS (Simple Knowledge Organization System) は、まさにそうした技術です。SKOS は現在、ワーキング・ドラフト・プロセスのラスト・コールの段階にありますが、既に十分な理解、実装、議論がなされています。SKOS は残念なことに、最新のドラフトでは単純さが一部失われてしまいました。これは SKOS の委員会が SKOS よりもはるかに複雑な OWL (Web Ontology Language) と SKOS を結びつけているためですが、それでも、少数の人にしか必要のない装飾的なものを無視すれば SKOS は非常に便利です。少なくとも SKOS は、さまざまな用語の意味の基本的な関係を結びつける上での、単語の関係という側面をサポートしており、これは XML スキーマをリッチにするための第一歩として最適と言うことができます。

概念から表現へ

開発プロセスでは、可能な限り早い段階で概念を理解できると最高です。新しいアプリケーションを分析したり、既存のアプリケーションを統合したものを分析したりする際には、主な概念を書き出し、元々のコンテキストを可能な限り詳細に保持する必要があります。RDF (Resource Description Framework) の Turtle 構文は、こうした情報を技術者ではないユーザーが見られるフォーマットで記述する上で便利な方法です。開発者とビジネスの利害関係者との間で、そうした方法によって密接な協力が行われることは、XML で管理される情報の価値を高める上で重要です。この記事では、Fluffy Boards というスノーボード・メーカーのシナリオを使用して、新しいスノーボード・モデル「Cumulus」に関するマーケティング情報を記述するフォーマットを作成します。リスト 1 は、これに関連する概念を Turtle 構文を使って SKOS で定義したもののサブセットです。


リスト 1. スノーボードのマーケティング情報の重要概念を Turtle フォーマットの SKOS で定義したもの

@prefix skos: <http://www.w3.org/2004/02/skos/core#>.
@prefix f: <http://www.fluffyboards.com/vocabulary#>.

f:product
  a  skos:Concept;
  skos:prefLabel "product";
  skos:altLabel "merchandise item";
  skos:definition "Item developed for sale by Fluffy Boards.".

f:snowboard
  a  skos:Concept;
  skos:prefLabel "snowboard";
  skos:altLabel "deck";
  skos:definition "Deck to be mounted with bindings for riding on snow.";
  skos:broader f:product.

f:endorsement
  a  skos:Concept;
  skos:prefLabel "endorsement";
  skos:altLabel "formal thumbs-up";
  skos:definition "Formal statement of approval of the product.";
  skos:broader f:review.

f:review
  a  skos:Concept;
  skos:prefLabel "review";
  skos:altLabel "product opinion";
  skos:definition "Statement of opinion of a product.".

f:customer
  a  skos:Concept;
  skos:prefLabel "customer";
  skos:definition "Person or group engaged by Fluffy Boards in the purchase process.".


SKOS について全体を紹介した資料は「参考文献」を参照してください。リスト 1 について簡単に説明すると、最初の 2 行は Turtle 版の名前空間宣言です。f 名前空間は Fluffy Boards 専用のものです。次のブロックは f:product という概念を定義し、望ましいラベルと、オプションとしての別ラベルを指定します。skos:definition は簡潔ながら正確に概念を記述します。skos:broader プロパティーは関連する概念を整理するための手段で、例えば「person (人)」は「boy (男)」よりも広い概念であり、「boy」は「person」よりも狭い概念であるといったことを整理します。一般的には、スキーマでは SKOS の語彙の XML バージョンを扱います。Turtle バージョンが用意できると、ツールを使ってそれを自動的に RDF/XML に変換することができます (その逆変換も可能です)。リスト 2 はリスト 1 を XML 形式で示したものです。


リスト 2. スノーボードのマーケティング情報の重要概念を RDF/XML 形式の SKOS で定義したもの

<?xml version="1.0"?>
<rdf:RDF xmlns:f="http://www.fluffyboards.com/vocabulary#"
  xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
  xmlns:skos="http://www.w3.org/2004/02/skos/core#">
  <skos:Concept rdf:about="http://www.fluffyboards.com/vocabulary#snowboard">
    <skos:prefLabel>snowboard</skos:prefLabel>
    <skos:altLabel>deck</skos:altLabel>
    <skos:definition>Deck to be mounted with bindings for riding on snow.
    </skos:definition>
    <skos:broader>
      <skos:Concept rdf:about="http://www.fluffyboards.com/vocabulary#product">
        <skos:prefLabel>product</skos:prefLabel>
        <skos:altLabel>merchandise item</skos:altLabel>
        <skos:definition>Item developed for sale by Fluffy Boards.</skos:definition>
      </skos:Concept>
    </skos:broader>
  </skos:Concept>
  <skos:Concept rdf:about="http://www.fluffyboards.com/vocabulary#endorsement">
    <skos:prefLabel>endorsement</skos:prefLabel>
    <skos:altLabel>formal thumbs-up</skos:altLabel>
    <skos:definition>Formal statement of approval of the product.</skos:definition>
    <skos:broader>
      <skos:Concept rdf:about="http://www.fluffyboards.com/vocabulary#review">
        <skos:prefLabel>review</skos:prefLabel>
        <skos:altLabel>product opinion</skos:altLabel>
        <skos:definition>Statement of opinion of a product.</skos:definition>
      </skos:Concept>
    </skos:broader>
  </skos:Concept>
  <skos:Concept rdf:about="http://www.fluffyboards.com/vocabulary#customer">
    <skos:prefLabel>customer</skos:prefLabel>
    <skos:definition>Person or group engaged by Fluffy Boards in the purchase process.
    </skos:definition>
  </skos:Concept>
</rdf:RDF>
  

スキーマに入れる

SKOS などの半公式の言語で表現された概念的なベースが用意できると、後はそれをスキーマの中に取り入れるための XML 設計に関する開発者自身のセンスと創造性の問題になります。Fluffy Boards のマーケティング部門では、XML の 1 つの使い方として、ボードごとのレビューを XML で保存しているとしましょう。そうしたレビューについては WXS (W3C XML Schema) で定義されているかもしれません (リスト 3)。


リスト 3. W3C XML Schema による定義

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" 
      elementFormDefault="qualified" 
      targetNamespace="http://www.fluffyboards.com/marketing/"
      xmlns:f="http://www.fluffyboards.com/vocabulary#"
      xmlns:m="http://www.fluffyboards.com/marketing/"
      xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
      xmlns:skos="http://www.w3.org/2004/02/skos/core#">
  <xs:import namespace="http://www.w3.org/XML/1998/namespace"
    schemaLocation="http://www.w3.org/2000/10/xml.xsd"/>
  <xs:element name="snowboard">
    <xs:annotation>
      <xs:appinfo>
      <skos:Concept rdf:about="http://www.fluffyboards.com/vocabulary#snowboard">
        <skos:prefLabel>snowboard</skos:prefLabel>
        <skos:altLabel>deck</skos:altLabel>
        <skos:broader rdf:resource="http://www.fluffyboards.com/vocabulary#product"/>
      </skos:Concept>

      </xs:appinfo>
      <!-- from skos:Concept/skos:definition -->
<xs:documentation>Deck to be mounted with bindings for riding on snow.
      </xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:element name="name"/>
        <xs:element ref="m:description"/>
        <xs:choice maxOccurs="unbounded">
          <xs:element ref="m:review"/>
        </xs:choice>
      </xs:sequence>
      <xs:attribute ref="xml:base"/>
      <xs:attribute name="id" use="required" type="xs:anyURI"/>
    </xs:complexType>
  </xs:element>
  <xs:element name="review">
    <xs:annotation>
      <xs:appinfo>
      <skos:Concept rdf:about="http://www.fluffyboards.com/vocabulary#review">
        <skos:prefLabel>review</skos:prefLabel>
        <skos:altLabel>product opinion</skos:altLabel>
      </skos:Concept>
      </xs:appinfo>
      <xs:documentation>Statement of opinion of a product.</xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="m:source"/>
        <xs:element name="content" type="xs:string"/>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="source">
    <xs:annotation>
      <xs:appinfo>
      <skos:Concept rdf:about="http://www.fluffyboards.com/vocabulary#customer">
        <skos:prefLabel>customer</skos:prefLabel>
      </skos:Concept>
      </xs:appinfo>
      <xs:documentation>Person or group engaged by Fluffy Boards in the purchase process
      </xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:element name="description">
    <xs:complexType>
      <xs:attribute name="purpose" use="required" type="xs:anyURI"/>
    </xs:complexType>
  </xs:element>
</xs:schema>


SKOS の構成体を直接利用しているところは太字のフォントになっています。ここでは xml:base 属性を使えるように xml.xsd をインポートしていることに注目してください。SKOS による注釈の他に、XML スキーマの設計におけるセマンティック Web のもう 1 つの便利な習慣として、ID に URI を使用することができます。XML Base を利用すると、そうした URI を一義的なものに短縮することができます。snowboard 要素の中では、snowboard という名前の抽象概念がスキーマ注釈の中で表現されており、さらに WXS 対応のツールとの統合が容易になるように SKOS の概念記述が xs:documentation 要素の中に入れられています。SKOS の概念と XML 語彙の構成体との間には必ずしも 1 対 1 の相関がないことに注目してください。一部のスキーマ要素には概念が含まれておらず、また一部の概念はスキーマの中に現れません。review 要素の中では review という概念が表現されており、さらに review 要素の子要素である source 要素の中では customer という概念が表現されています。こうすることで、review の sourcecustomer (レビューのソースは顧客) であるという暗黙的なルールができます。私としては概念をベースとするそうしたルールも明示的に表現するように推奨しますが、この例を見ると、スキーマに概念を追加するだけでどれほど表現力が豊かになるかの感覚がわかると思います。

インスタンスの例

リスト 4 はリスト 3 のスキーマのインスタンスの例です。


リスト 4. リスト 3 のスキーマに基づくインスタンスの例

<?xml version="1.0" encoding="UTF-8"?>
<snowboard xmlns="http://www.fluffyboards.com/marketing/"
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xsi:schemaLocation="http://www.fluffyboards.com/marketing/ file:listing3.xsd"
 xml:base="http://www.fluffyboards.com/marketing/"
 id="boards/cumulus">
    <name>Cumulus</name>
    <description purpose="unsolicited-blurb"/>
        <review>
            <source>Uche Ogbuji</source>
            <content>The Cumulus floats in powder like a dream.  My favorite snowboard.
            </content>
        </review>
</snowboard>





上に戻る


関連付けを自動化する

前のセクションでの手法の 1 つの問題は、概念の情報がスキーマの中で重複してしまうことで、これにより、どちらか一方の情報のみが更新されるという不具合が生じがちです。これを防ぐ良い方法は、スキーマから概念情報へのリンクを使う方法です。この情報をまとめる作業は、必要なときにいつでも自動的に行うことができます。リスト 5 はリスト 3 のバリエーションであり、構成体をコピーする代わりに SKOS へのリンクを使っています。


リスト 5. SKOS 文書へのリンクを使用した WXS

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" 
      elementFormDefault="qualified" 
      targetNamespace="http://www.fluffyboards.com/marketing/"
      xmlns:f="http://www.fluffyboards.com/vocabulary#"
      xmlns:m="http://www.fluffyboards.com/marketing/"
      xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
      xmlns:owl="http://www.w3.org/2002/07/owl#"
      xmlns:skos="http://www.w3.org/2004/02/skos/core#">

  <xs:import namespace="http://www.w3.org/XML/1998/namespace"
    schemaLocation="http://www.w3.org/2000/10/xml.xsd"/>

  <xs:annotation>
    <xs:appinfo>
      <owl:imports rdf:resource="fluffy-marketing.skos"/>
    </xs:appinfo>
  </xs:annotation>

  <xs:element name="snowboard">
    <xs:annotation>
      <xs:appinfo>
        <skos:Concept rdf:about="http://www.fluffyboards.com/vocabulary#snowboard"/>
      </xs:appinfo>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:element name="name"/>
        <xs:element ref="m:description"/>
        <xs:choice maxOccurs="unbounded">
          <xs:element ref="m:review"/>
        </xs:choice>
      </xs:sequence>
      <xs:attribute ref="xml:base"/>
      <xs:attribute name="id" use="required" type="xs:anyURI"/>
    </xs:complexType>
  </xs:element>

  <xs:element name="review">
    <xs:annotation>
      <xs:appinfo>
        <skos:Concept rdf:about="http://www.fluffyboards.com/vocabulary#review"/>
      </xs:appinfo>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="m:source"/>
        <xs:element name="content" type="xs:string"/>
      </xs:sequence>
    </xs:complexType>
  </xs:element>

  <xs:element name="source">
    <xs:annotation>
      <xs:appinfo>
        <skos:Concept rdf:about="http://www.fluffyboards.com/vocabulary#customer"/>
      </xs:appinfo>
    </xs:annotation>
  </xs:element>

  <xs:element name="description">
    <xs:complexType>
      <xs:attribute name="purpose" use="required" type="xs:anyURI"/>
    </xs:complexType>
  </xs:element>
</xs:schema>


ここで、SKOS の概念のスキーマへの統合を正式に行うための急場しのぎに owl:imports を使っていることに注目してください。これらのリンクをトラバースし、リスト 3 の短縮形式からリスト 5 の完全な形式を自動生成することがどれほど容易かを示すために、この作業を行うための簡単な XSLT を作成しました。リスト 6 の XSLT は、あまり強力なものではなく (一般的ではない RDF の構成体を処理することができず、rdf:IDxml:base のような簡単なものさえ処理することができません)、また XML スキーマの設計に SKOS を大量に使うようになると、適切な RDF ツールを手軽に使いたいと思うようになるでしょうが、この作業がいかに容易なものかを示しつつ、この記事の例を処理する上では十分です。


リスト 6. WXS で単純な SKOS 参照を取得して展開する XSLT

<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0"
  xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
  xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
  xmlns:owl="http://www.w3.org/2002/07/owl#"
  xmlns:skos="http://www.w3.org/2004/02/skos/core#"
  xmlns:xs="http://www.w3.org/2001/XMLSchema"
>

  <xsl:variable name="skosfile"
      select="document(/xs:schema/xs:annotation/xs:appinfo/owl:imports/@rdf:resource)"/>
  
  <xsl:template match="@*|node()">
    <xsl:copy>
      <xsl:apply-templates select="@*|node()"/>
    </xsl:copy>
  </xsl:template>

  <xsl:template match="skos:Concept">
    <xsl:variable name="uri" select="@rdf:about"/>
    <xsl:copy>
      <xsl:apply-templates select="$skosfile//skos:Concept[@rdf:about=$uri]/*"/>
    </xsl:copy>
  </xsl:template>

  <xsl:template match="xs:annotation">
    <xsl:variable name="concept" select="xs:appinfo/skos:Concept/@rdf:about"/>
    <xsl:copy>
      <xsl:apply-templates select="@*|node()"/>
    </xsl:copy>
    <xsl:if test="$concept">
      <xs:documentation>
        <xsl:value-of
            select="$skosfile//skos:Concept[@rdf:about=$concept]/skos:definition"/>
      </xs:documentation>
    </xsl:if>
  </xsl:template>

  <xsl:template match="skos:definition"/>

</xsl:stylesheet>





上に戻る


まとめ

RELAX NG や Schematron (どちらも私が個人的に気に入っている言語です) など表現力豊かなスキーマ言語では、構成体に SKOS の概念を追加する作業は WXS の場合よりもさらに容易です。そうした場合には、どこでも適切な場所に SKOS 要素をインライン配置することができますが、これは SKOS 用に名前空間が用意されているおかげです。スキーマ言語が何であろうと皆さんが手にできるものは、どんな XML 文書でも一瞬にして人間が読みやすい文書やアプリケーションが理解できる文書に変えられる魔法の杖ではありません。皆さんが手にできるものは、この「XML的思索」シリーズで私がアンカーと呼んでいるもの、つまり情報の統合を進め、データ品質を改善する上で必要となるヒントを人々に与える際の拠り所なのです。ウィキなどの総合的な情報共有ツールに結びつけられたスキーマ注釈を使用することで、誰もが技術的な能力によらずコラボレーションやコントリビューションに関心を持てるようになります。SKOS はそうした交流の技術的な実体を表現するのに適した言語です。この記事では、関心領域の概念を XML スキーマの定義に追加することがいかに容易かを学びました。



参考文献

学ぶために
  • SKOS のメイン・ソースである W3C の SKOS Simple Knowledge Organization System Primer を利用して SKOS について学んでください。

  • SKOS を利用して、セマンティック Web のフレームワークでのシソーラス、分類スキーマ、主題見出しシステム、分類法など、KOS (knowledge organization systems) での開発の最新情報を入手してください。

  • DITAとSKOSによる主題の分類」(Erik Hennum、Robert Anderson、Colin Bird の共著、developerWorks、2005年10月) を読み、大規模なコンテンツ・ライブラリーを持つ組織で使われる DITA のコンテキストでの SKOS について学んでください。この記事では少し古くなったバージョンの SKOS を使っているので注意してください。.

  • スキーマにデータ・ディクショナリのリンクを使う」(Uche Ogbuji 著、developerWorks、2004年5月) を読み、この記事で詳述されている基本的な手法について学んでください。この記事では著者のヒントとして RELAX NG と Schematron でのディクショナリーの使い方も紹介しています。

  • 保守が容易で拡張性を持った XML フォーマットを作成する」(Eric de Jonge と Sally Slack の共著、developerWorks、2008年8月) では WXS スキーマ注釈の基本的な使い方を学ぶことができます。

  • XML ゾーンに用意された、XML に関する最新リソースの中心、New to XML を調べてみてください。このシリーズの読者にとっては、このページは基本的すぎるかもしれませんが、皆さんの同僚が出発点として利用するためにはこのページが最適です。XML ゾーンには多くの XML 標準の一覧が用意されており、すべての XML 開発者に役立ちます。

  • Uche Ogbuji によるこのコラムの、これまでの関連記事を読んでください。
  • XML および関連技術において IBM 認定技術者になる方法については、IBM XML certification を参照してください。

  • developerWorks の XML ゾーンは XML の技術ライブラリーとして、これまでの「XML 的思索」コラムを含め、広範な話題を網羅した技術記事やヒント、チュートリアル、技術標準、IBM Redbooks などを用意しています。

  • developerWorks technical events and webcasts で最新情報を入手してください。

  • technology bookstore には、この記事や他の技術的な話題に関する本が豊富に取り揃えられています。

  • developerWorks podcasts では、ソフトウェア開発者のための興味深いインタビューや議論を聞くことができます。


製品や技術を入手するために
  • RDF フォーマット間の交換を簡単に行うための、Joshua Tauberer によるツール、RDF Validator and Converter を使ってください。

  • developerWorks から直接ダウンロードできる IBM ソフトウェアの試用版を利用して皆さんの次期プロジェクトを構築してください。これらの試用版には DB2® や Lotus®、Rational®、Tivoli®、WebSphere® などが提供するアプリケーション開発ツールやミドルウェア製品が含まれています。


議論するために


著者について

Photo of Uche Ogbuji

Uche Ogbuji は次世代の Web 技術によるソリューションを専門とする会社 Zepheira, LLCパートナーです。Ogbuji 氏は XML、RDF、およびナレッジ・マネージメント・アプリケーション用のオープンソース・プラットフォームである 4Suite とその後継である Akara の中心的開発者であり、またチームによる Web 開発のための Jacqard アジャイル手法、そして Versa RDF 問い合わせ言語などの開発リーダーでもあります。彼はナイジェリア出身のコンピューター・エンジニア兼ライターとして米国コロラド州ボルダーに住み、そこで働いています。彼に関して詳しくは、彼のブログである Copia を見てください。




記事の評価


サイト改善のため、ご意見をお寄せください。こちらのフォームからお願いいたします。



 


 


不充分・不完全である大変素晴らしい
 


この記事を共有する

del.icio.us del.icio.us newsing newsing FC2ブックマーク FC2ブックマーク
Choix! Choix! ニフティクリップ ニフティクリップ Yahoo!ブックマーク Yahoo!ブックマーク
MM/memo MM/memo CZブックマーク CZブックマーク livedoorクリップ livedoorクリップ
はてなブックマーク はてなブックマーク Buzzurl(バザール) Buzzurl(バザール)




上に戻る


Adobe、Adobe ロゴ、PostScript、および PostScript ロゴは、Adobe Systems Incorporated の米国およびその他の国における登録商標または商標です。 IBM、IBM ロゴ、ibm.com、DB2、developerWorks、Lotus、Rational、Tivoli、WebSphere、および pureXML は、International Business Machines Corporation の米国およびその他の国における商標または登録商標です。 他の会社名、製品名およびサービス名等はそれぞれ各社の商標です。

    日本IBMについて プライバシー お問い合わせ