(57)【要約】【課題】  ＨＴＭＬなどの構造化文書の体裁を定義するＣＳＳなどのスタイルシートを効率的に編集可能とする情報処理装置、情報処理方法およびプログラムを提供すること。【解決手段】  本発明の情報処理装置１０は、それぞれスタイルを定義付ける複数のクラスを登録する登録部６４と、与えられた１以上のスタイル特性を指定するプロパティ値を含むデータ・セットに類似する候補クラスを登録済みのクラスの中から検索する検索部５２と、検索された候補クラスを選択可能に提示する提示部５８と、入力された１以上のプロパティ値をデータ・セットとして与えて、選択可能な候補クラスの中から確定されたクラスを用いて構造化文書に対しスタイル定義を適用する適用部５０とを含み、構造化文書のスタイル定義を支援する。【選択図】図１
2010044626.tif 000002
【特許請求の範囲】
【請求項１】
構造化文書のスタイル定義を支援する情報処理装置であって、
それぞれスタイルを定義付ける複数のクラスを登録する登録部と、
与えられた１以上のスタイル特性を指定するプロパティ値を含むデータ・セットに類似する候補クラスを登録済みの前記クラスの中から検索する検索部と、
検索された前記候補クラスを選択可能に提示する提示部と、
入力された１以上の前記プロパティ値を前記データ・セットとして与えて、選択可能な前記候補クラスの中から確定されたクラスを用いて構造化文書に対しスタイル定義を適用する適用部と
を含む、情報処理装置。
【請求項２】
前記データ・セットと前記候補クラスとにそれぞれ含まれる前記プロパティ値を比較し、その差分から前記候補クラスに対する補完定義データを作成する作成部をさらに含む、請求項１に記載の情報処理装置。
【請求項３】
選択された前記候補クラスおよび対応する前記補完定義データを適用した場合のプレビューを描画する描画部をさらに含む、請求項２に記載の情報処理装置。
【請求項４】
前記補完定義データは、前記データ・セットとして前記検索部に再帰的に与えられ、前記作成部は、前記補完定義データと再帰的に検索された候補クラスとの差分から、次の補完定義データを作成する、請求項２に記載の情報処理装置。
【請求項５】
前記提示部は、検索された前記候補クラスとともに、該候補クラスの定義内容、および該候補クラスが定義されているファイルのパスの少なくとも一方を提示する、請求項１に記載の情報処理装置。
【請求項６】
構造化文書のスタイル定義を支援する方法であって、情報処理装置が、
スタイル特性を指定する１以上のプロパティ値の入力を受けるステップと、
それぞれスタイルを定義付ける登録済みの複数のクラスの中から、入力された前記１以上のプロパティ値を含むデータ・セットを与えて、該データ・セットに類似する候補クラスを検索するステップと、
検索された前記候補クラスを選択可能に提示するステップと、
選択可能な前記候補クラスの中から確定されたクラスを用いて構造化文書に対しスタイル定義を適用するステップと
を実行する、情報処理方法。
【請求項７】
情報処理装置が、前記データ・セットと前記候補クラスとにそれぞれ含まれる前記プロパティ値を比較し、その差分から前記候補クラスに対する補完定義データを作成するステップをさらに実行する、請求項６に記載の情報処理方法。
【請求項８】
情報処理装置が、選択された前記候補クラスおよび対応する前記補完定義データを適用した場合のプレビューを描画するステップをさらに実行する、請求項６に記載の情報処理方法。
【請求項９】
情報処理装置が、前記補完定義データを前記データ・セットとして前記検索部に再帰的に与えるステップと、前記補完定義データと再帰的に検索された候補クラスとの差分から、次の補完定義データを作成するステップとをさらに実行する、請求項６に記載の情報処理方法。
【請求項１０】
前記提示するステップでは、検索された前記候補クラスとともに、該候補クラスの定義内容、および該候補クラスが定義されているファイルのパスの少なくとも一方を提示する、請求項６に記載の情報処理方法。
【請求項１１】
構造化文書のスタイル定義を支援するためのコンピュータ実行可能なプログラムであって、
それぞれスタイルを定義付ける複数のクラスを登録する登録部と、
与えられた１以上のスタイル特性を指定するプロパティ値を含むデータ・セットに類似する候補クラスを登録済みの前記クラスの中から検索する検索部と、
検索された前記候補クラスを選択可能に提示する提示部と、
入力された１以上の前記プロパティ値を前記データ・セットとして与えて、選択可能な前記候補クラスの中から確定されたクラスを用いて構造化文書に対しスタイル定義を適用する適用部と
をコンピュータに実現するためのコンピュータ実行可能なプログラム。
【請求項１２】
前記データ・セットと前記候補クラスとにそれぞれ含まれる前記プロパティ値を比較し、その差分から前記候補クラスに対する補完定義データを作成する作成部をさらにコンピュータに実現するための請求項１１に記載のコンピュータ実行可能なプログラム。
【請求項１３】
選択された前記候補クラスおよび対応する前記補完定義データを適用した場合のプレビューを描画する描画部をさらにコンピュータに実現するための請求項１２に記載のコンピュータ実行可能なプログラム。
【請求項１４】
前記補完定義データは、前記データ・セットとして前記検索部に再帰的に与えられ、前記作成部は、前記補完定義データと再帰的に検索された候補クラスとの差分から、次の補完定義データを作成する、請求項１２に記載のコンピュータ実行可能なプログラム。
【請求項１５】
前記提示部は、検索された前記候補クラスとともに、該候補クラスの定義内容、および該候補クラスが定義されているファイルのパスの少なくとも一方を提示する、請求項１１に記載のコンピュータ実行可能なプログラム。
【請求項１６】
構造化文書のスタイル定義を支援する情報処理装置であって、
それぞれスタイルを定義付ける複数のクラスを登録する登録部と、
与えられた１以上のスタイル特性を指定するプロパティ値を含むデータ・セットに類似する候補クラスを登録済みの前記クラスの中から検索する検索部と、
検索された前記候補クラスを選択可能に提示する提示部と、
前記データ・セットと前記候補クラスとにそれぞれ含まれる前記プロパティ値を比較し、その差分から前記候補クラスに対する補完定義データを作成する作成部と、
選択された前記候補クラスおよび対応する前記補完定義データを適用した場合のプレビューを描画する描画部と、
入力された１以上の前記プロパティ値を前記データ・セットとして与えて、選択可能な前記候補クラスの中から確定されたクラスを用いて構造化文書に対しスタイル定義を適用する適用部と
を含み、
前記補完定義データは、前記データ・セットとして前記検索部に再帰的に与えられ、前記作成部は、前記補完定義データと再帰的に検索された候補クラスとの差分から、次の補完定義データを作成し、
前記提示部は、検索された前記候補クラスとともに、該候補クラスの定義内容、および該候補クラスが定義されているファイルのパスの少なくとも一方を提示する、
情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、構造化文書の作成アプリケーションに関し、より詳細には、ＨＴＭＬなどの構造化文書の体裁を定義するＣＳＳなどのスタイルシートを効率的に編集可能とする情報処理装置、情報処理方法およびプログラムに関する。
【背景技術】
【０００２】
ポータルサイト、ウェブアプリケーション、ホームページのデザインにおいて、ページの詳細なレイアウトを定義付けるカスケード・スタイルシート（Cascading Style Sheet；以下、ＣＳＳとして参照する。）は、重要な役割を果たしている。ＣＳＳは、Ｗ３Ｃ（World Wide Web Consortium）の勧告により仕様が定められ、１９９８年にLevel 2（ＣＳＳ２）が勧告されている。さらに現在では、Level 2 revision 1（ＣＳＳ２．１）の勧告候補、Level 3（ＣＳＳ３）のドラフトが公開されており、さらなる拡張が続いている。
【０００３】
ＣＳＳは、ＨＴＭＬ、ＸＭＬ、ＸＨＴＭＬ、その他のマークアップ言語で記述された構造化文書において、文書中の要素に対する修飾を指定するスタイルの定義を含んで構成され、文字のフォントや大きさ、文字飾り、行間などのレイアウトに関する情報を文書本体から切り離して定義付けることを可能としている。ＣＳＳにより、パーソナル・コンピュータか携帯端末かといったページを表示する媒体の別に適合させたスタイルシートの切り替えや、ユーザ・エージェント、サイト制作者、閲覧ユーザそれぞれが定義したスタイル定義の効果を重ね合わせが可能とされる。
【０００４】
一方、近年、ホームページ・ビルダー（登録商標）、WebSphere（登録商標）Studio Application Developer、Rational（登録商標） Application Developer for WebSphere（登録商標） Software、Microsoft（登録商標）FrontPage（登録商標）、Adobe（登録商標）Dreamweaver（登録商標）など、種々の洗練されたウェブ・オーサリング・ツールが提供されている。上述のようなウェブ・オーサリング・ツールには、メニュー選択方式またはコード直接記述方式にて上記ＣＳＳを編集する機能が備えられており、ポータルサイト、ウェブアプリケーション、ホームページに対して統一的なスタイルの定義を実施できるよう構成されている（非特許文献１，非特許文献２）。
【０００５】
図１３は、従来のウェブ・オーサリング・ツールにおけるＣＳＳの編集機能を示す図である。従来のウェブ・オーサリング・ツールでは、非特許文献２にも示されているように、図１３（Ａ）に示す新規にＣＳＳのクラスを追加するためのグラフィカル・ユーザ・インタフェース（以下、ＧＵＩとして参照する。）、図１３（Ｂ）に示すＣＳＳのクラスのプロパティを編集するＧＵＩ、図１３（Ｃ）に示すＣＳＳのクラスを一覧表示するＧＵＩなどが提供されている。その他、各ＣＳＳプロパティの値を入力する際に、値の候補を提示する補完機能を備え、ＣＳＳのコーディングを簡略化するためのＧＵＩも提供されている。
【非特許文献１】”Webパースペクティブ−後編−”、[online]、２００３年１月１０日、ＩＢＭ、製品、ソフトウェア、WebSphere、WebSphere DeveloperDomain、テクニカル情報、WSADによるアプリケーション開発ワークショップ資料［２００８年７月３０日検索］、インターネット<URL;http://www-06.ibm.com/jp/software/websphere/developer/wsad/workshop/pdf/8.pdf>
【非特許文献２】”プレビュー機能付きCSSエディタ”、[online]、ＩＢＭ、製品、ソフトウェア、ホーム・ソフトウェア、ホームページ・ビルダー、製品、３つの進化、進化２［２００８年７月３０日検索］、インターネット<URL;http://www-06.ibm.com/jp/software/internet/hpb/products/contents.html>
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、従来のＣＳＳ編集機能では、制作者は、ページをデザインする際に、どのようなＣＳＳのクラスが既に定義されているかを充分に把握していなければ、同等の修飾を指定するＣＳＳのクラスの重複定義が頻発してしまい、不用意に定義を追加することでクラスの定義数が増大してしまう可能性があった。
【０００７】
また、既定義のクラスの中から所望の修飾を指定するスタイルが定義されたクラスを探し出そうとしても、従来では、全体または所定のタグに関連するクラスの一覧といったＧＵＩしか提供されていなかったため、制作者は、一覧表示の中から所望のクラスを逐一確認しつつ探し出さなければならず、ユーザ利便性の観点から充分なものではなかった。つまり、従来のウェブ・オーサリング・ツールでは、ＣＳＳのクラス指定の優れた特徴である再利用性を充分に活用することができなかった。
【０００８】
本発明は、上記問題点に鑑みてなされたものであり、ＨＴＭＬ、ＸＭＬ、ＸＨＴＭＬ、その他のマークアップ言語で記述された構造化文書の体裁を定義するスタイルシートの編集において、既定義の設定を容易に再利用可能とし、重複定義の蓋然性を低減し、もって、効率的にポータルサイト、ウェブアプリケーション、ホームページなどのウェブ・コンテンツを構築することを可能とする、情報処理装置、情報処理方法およびプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００９】
本発明では、上記課題を解決するために、情報処理装置は、それぞれスタイルを定義付ける複数の既定義のクラスを登録しておき、入力された１以上のスタイル特性を指定するプロパティ値を含む所望のデータ・セットを基準として、それに類似する候補クラスを登録済みのクラスの中から検索して選択可能に提示する。そして、例えば、提示されたいずれかの候補クラスが選択され、適用の確定の指示を受けると、情報処理装置は、選択可能な候補クラスの中から確定されたクラスを用いて構造化文書に対しスタイル定義を適用する。
【００１０】
上記構成により、入力された所望のプロパティ値を含むデータ・セットに似たスタイルを定義付けるクラスが、登録済みのクラスの中から検索されて提示されるため、情報処理装置を用いてウェブ・コンテンツを製作しているユーザは、既定義のクラスの中から所望の修飾を指定するスタイルが定義されたクラスを容易に探し出すことができるようになり、また既に定義済みのクラスを効率的に再利用できるようになり、もって、ユーザ利便性に優れ、効率的かつ効果的な構造化文書のスタイル定義の編集支援が実現される。類似のクラスが既に定義済みであれば、そのクラスが提示されるため、ユーザが同等の修飾を指定するクラスを重複定義してしまう蓋然性も低減され、スタイル定義のデータ・サイズの増大、およびコードの複雑化が防止される。
【００１１】
本発明では、さらに、与えられたデータ・セットと候補クラスとにそれぞれ含まれるプロパティ値（プロパティおよび値のセット）を比較し、その差分から候補クラスに対する補完定義データを作成することができる。上記構成により、たとえ候補クラスにユーザの許容限度を超える過不足のプロパティ値が存在したとしても、データ・セットと候補クラスとの相違点に対応する最小限のスタイル定義によってユーザが望むスタイルが実現されるため、より効率的に既定義のクラスを活用することが可能となる。
【００１２】
本発明では、さらに、選択された候補クラスおよび対応する補完定義データを適用した場合のプレビューを描画することができる。上記構成により、ユーザは、構造化文書に対してスタイル定義を実際に適用する前に、スタイル定義が適用された場合に発現するスタイルの効果を確認することができ、ウェブ・コンテンツの製作作業の効率性を向上させることが可能となる。
【００１３】
さらに、本発明では、上記補完定義データは、上記データ・セットとして再帰的に与えられ、該補完定義データと再帰的に検索された候補クラスとの差分から、次の補完定義データを作成することができる。上記構成により、作成された補完定義データに類似するクラスが登録済みのクラスの中からさらに検索されるため、補完のための新たなスタイル定義をよりコンパクトにすることができる。また、この場合には、構造化文書に対しスタイル定義を適用する際に、再帰的に検索された候補クラスを用いることができる。
【００１４】
本発明では、さらに、検索された上記候補クラスとともに、該候補クラスの定義内容、および該候補クラスが定義されているファイルのパスの少なくとも一方を提示することができる。また本発明では、類似する候補クラスは、例えば、それぞれが包含するプロパティ値の一致度を評価する評価関数の値が、所定の閾値以上であることをもって判定することができる。
【００１５】
さらに本発明では、例えば、情報処理装置の出力装置を介してユーザが認識可能なように候補クラスの項目を出力し、入力装置を介したユーザからの項目の選択指示を待ち受けることで、上記選択的な提示を実施することができる。また、本発明では、確定されたクラスの指定を上記構造化文書中の対象要素の属性に加え、かつ上記補完定義データの各プロパティ値を対象要素に対しインラインで定義するか、または、確定されたクラスの指定および補完定義データに対応する新たに定義されるクラスの指定を、上記構造化文書の対象要素の属性に加えることで上記スタイル定義の適用を実施することができる。
【発明を実施するための最良の形態】
【００１６】
以下、本発明について実施形態をもって説明するが、本発明は、後述する実施形態に限定されるものではない。なお、以下の本発明の実施形態では、構造化文書としてＨＴＭＬ文書、スタイル定義としてカスケード・スタイルシート（ＣＳＳ）を編集対象としたウェブ・オーサリング・ツールを実現するコンピュータ装置を例として説明する。
【００１７】
図１は、本実施形態のコンピュータ装置１０の機能ブロックを示す。コンピュータ装置１０は、概ねパーソナル・コンピュータとして構成されている。図１に示すコンピュータ装置１０に含まれる各機能部（詳細は後述する。）およびウェブ・コンテンツを編集するためのウェブ・オーサリング・ツールとしての機能は、メモリ上にプログラムを展開し、プログラムの実行により各ハードウェア資源を動作制御することによって、コンピュータ装置１０上に実現される。コンピュータ装置１０は、ディスプレイ、マウスやキーボードなどの入力装置を含むユーザ・インタフェース部を備え、入力装置への入力に対応する操作イベントが、適切なオペレーティング・システム（ＯＳ）の制御の下、各機能部へと渡されて、操作イベントに応答した処理結果がディスプレイなどの出力装置に出力される。入力装置およびディスプレイによりグラフィカル・ユーザ・インタフェース（ＧＵＩ）が提供される。
【００１８】
本実施形態のコンピュータ装置１０は、ＨＴＭＬ文書のスタイルを編集する機能を提供するスタイル編集部５０を含んで構成される。本実施形態のスタイル編集部５０は、適用部として機能する。スタイル編集部５０は、ＨＴＭＬ文書中の所定の要素に対するスタイルを定義するためのＧＵＩを提供する。上記スタイルの適用対象となる要素は、特に限定されるものではないが、例えば、Ｐ要素、Ｈ１要素、Ｈ２要素、Ｈ３要素、ＤＩＶ要素およびＴＡＢＬＥ要素などを含むブロック要素、ＳＰＡＮ要素、ＩＭＧ要素、ＥＭ要素およびＳＴＲＯＮＧ要素などを含むインライン要素、およびインラインまたはブロック要素として働くＩＮＳ要素およびＤＥＬ要素などを挙げることができる。
【００１９】
上記要素に対して指定されるスタイルとしては、対象要素のタイプにも依るが、例えば、前景および背景に関する指定（color，background-attachment，background-color，background-image，background-positionなど）、フォントに関する指定（font，font-style，font-variant，font-weight，font-size，font-familyなど）、テキストの体裁に関する指定（line-height，text-align，vertical-align，text-decoration，text-indent，text-transform，white-space，letter-spacing，word-spacingなど）、サイズに関する指定（width，max-width，min-width，height，max-height，min-heightなど）、領域に関する指定（margin-top，margin-bottom，margin-left，margin-right，padding-topなど）、ボーダに関する指定（border-color，border-style，border-width，border-top，border-top-color，border-top-style，border-top-widthなど）、その他、テーブル（table-layout，caption-side，border-collapseなど）、リスト（list-style，list-style-image，list-style-type，list-style-position）、アウトライン（outline，outline-color，outline-style，outline-widthなど）に関する指定など、種々の修飾を指定するスタイルを挙げることができる。
【００２０】
本実施形態のコンピュータ装置１０は、さらに、ＣＳＳ編集操作を支援する機能を提供する編集支援部６０と、ＨＴＭＬ文書のページ・ファイル６８やスタイルシート・ファイル７０を格納する格納部６６と、ページ・ファイルおよびスタイルシート・ファイルから定義済みのＣＳＳのクラス（以下、用語「クラス」は、特に断らない限り、ＣＳＳのクラスを参照する。）を読み出して、クラス登録部６４に登録するクラス入出力部６２とを含んで構成される。クラス登録部６４は、コンピュータ装置１０のメモリ、ハードディスクなどにより提供され、編集を支援するために、検索可能なデータ構造にて定義済みのクラスを登録している。
【００２１】
なお、検索可能に登録されるクラスは、例えば、ウェブ・オーサリング・ツールが管理する編集対象のプロジェクト内のページ・ファイルおよびスタイルシート・ファイルに記述されたものとすることができるが、特に限定されるものではない。他の実施形態では、現在の編集対象のページ・ファイル６８および該ページ内で読み込むよう宣言された他の外部ファイルに記述されたクラスのみを登録することもできる。さらに他の実施形態では、ウェブ・オーサリング・ツールが管理する複数のプロジェクトに渡って、検索の範囲に取り込むこともできる。
【００２２】
上記編集支援部６０についてより具体的に説明すると、編集支援部６０は、類似定義検索部５２と、リスト提示部５８とを含んで構成される。ユーザにより、所定の要素に対する所望のＣＳＳプロパティ値（以下、用語「プロパティ値」は、特に断らない限り、ＣＳＳのプロパティ値を参照する。）のセット（以下、基準プロパティとして参照する。）１００が入力されると、上記スタイル編集部５０は、編集支援部６０に該基準プロパティ１００を渡し、編集支援処理の実行を依頼する。渡された基準プロパティ１００は、類似定義検索部５２に与えられ、類似定義検索部５２は、クラス登録部６４に登録された定義済みのクラスの中から、対象要素のタイプに適合しかつ基準プロパティ１００に類似するクラスを検索する。
【００２３】
なお、要素のタイプに適合するクラスは、対象要素のタイプに一致するタイプのクラス、および要素のタイプが指定されていないクラスを含むことができる。また、類似定義検索部５２は、基準プロパティ１００と既定義のクラスとの間の類似性を反映するスコアを、基準プロパティ１００および既定義のクラスそれぞれに含まれるプロパティ値の一致度を評価する所与の評価関数を用いて算出することができる。
【００２４】
類似のクラスが見つかると、リスト提示部５８は、類似のクラスを選択候補のクラスとして、それらの名称を、スコア順、アルファベット順などでソートして選択可能に一覧表示して、ユーザからの選択入力を待ち受ける。この際には、リスト提示部５８は、検索された候補のクラスを、例えば、所定の順位またはスコアまでで打ち切って提示することができる。また、リスト提示部５８は、クラスの名称に加え、該クラスの定義内容、該クラスに与えられた説明内容などを、例えばポップアップＧＵＩ上に提示することができる。
【００２５】
さらに、本実施形態の編集支援部６０は、補完定義作成部５４と、プレビュー描画部５６とを含むことができる。補完定義作成部５４は、基準プロパティ１００と候補クラスとの間で各プロパティ値を比較し、これらの差異を補完する補完定義データを適宜作成する。補完定義データが作成された場合、上記リスト提示部５８は、補完定義データの定義内容などをさらにポップアップＧＵＩ上に表示させることができる。
【００２６】
プレビュー描画部５６は、リスト提示部５８で選択された候補クラスを仮に適用した場合のプレビューを、例えばポップアップＧＵＩ上に描画する。また、補完定義が指定される場合には、選択された候補クラスを補完定義データにて補正して仮に適用した場合のプレビューを描画する。なお、プレビューの描画範囲は、特に限定されるものではないが、編集中のページ全体や、例えば編集対象要素の親要素、該対象要素、および該対象要素の下位の要素からなるページの一部、編集対象要素および該対象要素の下位の要素からなるページの一部といった、編集対象の要素を内包する特定の要素下位の要素からなるページの一部分を描画範囲とすることができる。
【００２７】
ユーザの操作により候補クラスの中から適用するクラスが確定された場合には、編集支援部６０は、確定されたクラス（以下確定クラスとして参照する。）を識別するクラス名、該クラスが定義されているファイルのパス、および適宜補完定義データをスタイル編集部５０へ通知する。スタイル編集部５０は、ページ・ファイル中の対象要素に対し、通知されたクラスを指定するクラス属性を加えて、確定クラスを用いたスタイル定義の適用を実施する。スタイル編集部５０は、補完定義が指定される場合には、ページ・ファイル中の対象要素に対し、通知された補完定義データに含まれる各プロパティ値を、クラス指定に優先する様式にて追加的に定義付ける。
【００２８】
なお、定義の具体的な追加方法は、勧告されたカスケーディングの優先順位に従う限り、特に限定されるものではないが、例えば、対象要素に対しインラインでスタイル属性を定義したり、対象要素のＩＤをセレクタとして規則集合を定義したりすることによって実施することができる。この際、確定クラスが編集中のページに関連付けられていなかった場合には、該クラスを定義するファイルを外部読み込みする宣言をＨＴＭＬ文書中に書き込む。また、上記追加的な定義方法としては、その他、補完定義データを新たなクラスとして定義し、複数のクラスを指定するクラス属性を対象要素に追加するなどにより実施することもできる。クラスの同時指定による場合には、補完定義データがクラス入出力部６２に与えられて、クラス入出力部６２は、例えばページ・ファイルのスタイル定義部分中にクラスとして定義することができる。クラス入出力部６２は、好適には、確定クラスの読み込み位置よりも後方に、補完定義データに対応するクラスを定義することができる。
【００２９】
なお、図１は、ＣＳＳ編集機能に関連した機能ブロックを説明のために示したものであり、本実施形態のコンピュータ装置１０が、ＨＴＭＬ文書自体の編集機能、ＪＳＰ（Java（登録商標） Server Pages）ファイルの編集機能などウェブ・オーサリング・ツールとして利用可能な種々の機能部を備えることができることは言うまでもない。
【００３０】
以下、本実施形態のＣＳＳの編集支援機能について、より具体的な例を参照して説明する。図２は、本実施形態のコンピュータ装置１０のディスプレイ画面上に表示されるページ編集ＧＵＩ画面を例示する。図２には、現在編集対象であるログインパネル２００が示されている。ユーザ操作により、例えば、テキスト２０２の要素を対象として選択されて、ＣＳＳのプロパティの編集機能が呼び出されると、該要素に対する所望のプロパティ値を入力するためのＧＵＩが表示される。このＧＵＩ上において１以上のプロパティ値が入力され、編集支援を呼び出す操作イベントが発生すると、入力されたプロパティ値のデータ・セットが基準プロパティ１００として編集支援部６０に渡され、本実施形態の編集支援機能が呼び出される。
【００３１】
図３は、本実施形態の編集支援機能を、各処理段階で用いるデータ構造とともに模式的に示す図である。図３には、与えられた基準プロパティ１００と、ページ・ファイル６８と、スタイルシート・ファイル７０ａ，ｂとが示されている。スタイルシート・ファイル７０ａ，ｂは、それぞれ、クラス１２０ａ，ｂの定義を含んで構成され、ページ・ファイル６８も同様に、クラス１２０ｃの定義を含んで構成されている。
【００３２】
図４は、本実施形態のクラス登録部６４が保持するクラス登録テーブルのデータ構造を示す図である。クラス入出力部６２は、上記スタイルシート・ファイル７０ａ，ｂおよびページ・ファイル６８を読み込んで、図４に示すようなクラス登録テーブル１４０を作成し、既に定義済みのクラスを登録する。図４に示すクラス登録テーブル１４０は、クラス名が入力されるフィールド１４０ａと、該クラス名に対応する定義内容が入力されるフィールド１４０ｂと、該クラスが定義されているファイルのパスが入力されるフィールド１４０ｃとを含んで構成される。
【００３３】
図１に示したクラス入出力部６２は、ＣＳＳの慣例に従って、スタイル定義情報の読み込み順にクラスのエントリを追加してゆき、重複があった場合には、優先度の低い方のエントリ、つまりＣＳＳ２では前方で定義されたクラスに対応するエントリを削除して、後方定義されたクラス定義を優先させる。なお、クラス登録テーブル１４０の具体的な実装については、検索可能に構成される限り特に限定されるものではないが、例えば、フィールド１４０ｂを、その内容中に記述される各プロパティ値でさらに細分化して管理し、リレーショナル・データベース、オブジェクト・データベース、オブジェクト・リレーショナル・データベース、ＸＭＬデータベース上に格納する実装とすることができる。その際には、類似定義検索部５２は、与えられた基準プロパティ１００を、対応する問い合わせ言語にて検索クエリを展開して、データベースに対し、基準プロパティ１００に類似するクラスの照会を実施する。
【００３４】
再び、図３を参照すると、基準プロパティ１００が類似定義検索部５２に与えられると、類似定義検索部５２は、基準プロパティ１００に類似するクラスを抽出するよう検索クエリを展開して、クラス登録テーブル１４０内の登録から類似のクラスを検索し、図３に示す検索結果１１０を取得する。検索結果１１０は、候補クラスの名称が入力されるフィールド１１０ａと、該候補クラスが定義されるファイルのパスが入力されるフィールド１１０ｂと、評価関数に従って求められたスコアが入力されるフィールド１１０ｃとを含んで構成される。そして、検索結果１１０のエントリは、スコアの値に従ってソーティングされる。検索結果１１０には、所定数以上（例えば１以上）のプロパティ値が一致しているクラスが候補クラスとしてエントリされることとなる。
【００３５】
基準プロパティ１００と既定義のクラスとの間の類似性を反映するスコアは、それぞれに含まれるプロパティ値の一致の程度を反映し、一致するプロパティ値の数などに依存した値となる。本実施形態では、プロパティ値が厳密一致する場合、プロパティ値が等価である場合、またはプロパティ値の差が所定の許容範囲内にある場合に、プロパティ値が一致したものと判定される。フォントサイズに関して例示すれば、プロパティ値「font-size : 12pt」に対しては、厳密一致するプロパティ値「font-size : 12pt」、等価なプロパティ値「font-size : 1pc」、許容範囲が±１ｐｔであれば１１〜１３ｐｔの範囲内のプロパティ値が、一致するものとして判定されるものとしてよい。
【００３６】
同様に色の値に関して例示すれば、プロパティ値「color : skyblue」に対しては、厳密一致するプロパティ値「color : skyblue」、等価なプロパティ値「color : #87CEEB」やプロパティ値「color : rgb(135, 206, 235)」、許容範囲がＲＧＢの値±５であれば、ＲＧＢ表現では、Ｒ値が１３０〜１４０かつＧ値が２０１〜２１１かつＢ値が２３０〜２４０の値の範囲のプロパティ値、１６進数カラーコード表現では、最上位２桁が８２〜８Ｃ、かつ次の２桁がＣ９〜Ｄ３、かつ最後の２桁がＥ６〜ｆ０の範囲内のプロパティ値が、一致するものとして判定されるものとしてよい。本実施形態の類似定義検索部５２は、基準プロパティ１００から、各プロパティ値につき、その等価範囲および許容範囲に含まれるプロパティ値を一致したものとして検索するよう検索クエリを展開して、類似のクラスの検索を実施する。なお、上記の許容範囲の値は、例えば、ウェブ・オーサリング・ツールの設定画面等により、予め設定されたものとすることができるが、特に限定されるものではない。
【００３７】
また上記スコアは、例えば、基準プロパティ１００と比較して、一致するプロパティ値の数に応じて（例えば１点づつ）加点し、余分なプロパティ値および不足するプロパティに数に応じて（例えば１点づつ）減点する評価関数を用いて算出することができる。さらに好適には、評価関数により求めた値を、候補クラスが定義されているファイルの種類の別に応じて補正することもできる。例えば、好適には、現在編集対象のファイル中で宣言されている候補クラスに対して高いスコアを与えるよう構成することができる。なお、本実施形態で用いる評価関数自体は、特に限定されるものではなく、他の実施形態では、例えば、厳密一致または等価であるプロパティ値に対する加点の重み付けを増やしたり、読み込み順位に応じて補正を加えたりすることもできる。
【００３８】
図３に示す検索結果１１０ではプロパティ値「background-color : red」および「border-style : dotted」の両方が一致する「important」クラス１２０ａが最も高いスコアの候補クラスとして算出されている。また、図３に示す検索結果１１０では、プロパティ値「background-color : red」が一致し、編集中のページ・ファイル６８内で定義されている「error」クラス１２０ｃが次の順位の候補クラスとして、プロパティ値「background-color : red」が一致し、プロジェクト内の他のスタイルシート・ファイル７０ｂ中で宣言されている「eyecatch」クラス１２０ｂが第３位となるように並び替えられている。
【００３９】
以下、補完定義作成部５４による処理について、より具体的に説明する。図５は、本実施形態の補完定義作成部５４による処理を、用いるデータ構造とともに模式的に示す図である。図５には、与えられた基準プロパティ１００の定義内容と、候補クラス１２０の定義内容と、作成される補完定義データ１３０の定義内容とが示されている。基準プロパティ１００および候補クラス１２０は、それぞれ、複数のプロパティ値１０２ａ〜ｃ、およびプロパティ値１２２ａ〜ｃを含んで構成されている。
【００４０】
図５に示す例では、候補クラス１２０のプロパティ値１２２ａ，１２２ｂは、基準プロパティ１００のプロパティ値１０２ａ，ｂにそれぞれ一致している。一方、基準プロパティ１００に含まれるプロパティ値１０２ｃは、候補クラス１２０側に対応するプロパティ値が存在せず、つまり候補クラス１２０は、プロパティ値が不足している。また候補クラス１２０に含まれるプロパティ値１２２ｃは、対応するプロパティ値が基準プロパティ１００側に存在せず、つまり候補クラス１２０は、余剰なプロパティ値を含んでいる。
【００４１】
本実施形態の補完定義作成部５４は、基準プロパティ１００と候補クラス１２０とがそれぞれ含むプロパティ値を比較して、上記不足するプロパティ値１０２ｃ、および余剰のプロパティ値１２２ｃを特定する。補完定義作成部５４は、これらの相違点を補完するために、特定された不足のプロパティ値１０２ｃに対応する補足プロパティ値１３２ａを補完定義データ１３０に追加し、また、特定された余剰のプロパティ値１２２ｃをキャンセルする打ち消しプロパティ値１３２ｂを追加する。なお、補足プロパティ値は、基準プロパティ１００に入力された不足のプロパティ値そのものとすることができる。打ち消しプロパティ値は、同一プロパティのデフォルト値、または対象要素が継承している値とすることができる。
【００４２】
以下、本実施形態のＣＳＳの編集支援機能により提供されるＧＵＩについて説明する。図６は、本実施形態のコンピュータ装置１０のディスプレイ画面上に表示される編集支援ＧＵＩ画面を例示する。図６（Ａ）には、所定の基準プロパティ１００が入力されたウィンドウ３００が示されている。ウィンドウ３００は、基準プロパティ１００をコード直接記述方式にて入力するためのテキスト入力ボックスを備え、図６（Ａ）に示すウィンドウ３００には、テキスト３００ａで示される基準プロパティが入力されている。基準プロパティが入力された後、さらに、編集支援を呼び出す操作イベントが発生すると、リスト３０２がポップアップ表示される。リスト３０２では、検索された候補クラスが、その名称およびパスとともに、スコア順に選択可能に一覧表示されている。図６（Ａ）に示す例では、「important」クラスの項目３０２ａが選択されている様子が示されている。候補クラスの選択は、例えばマウスのポインタ３０２ｂのオーバラップやクリックにより行うことができる。
【００４３】
また、図６（Ａ）に示すウィンドウ３００では、いずれかの候補クラスが選択されると、該候補クラスの定義内容を表示する表示ボックス３０４、該候補クラスを仮に適用した場合を示すプレビュー表示３０６がポップアップ表示されるよう構成されている。選択の候補クラスが変更されると、それに応答して、新たに選択された候補クラスの定義内容に従い表示ボックス３０４およびプレビュー表示３０６の表示内容が更新される。リスト３０２において、選択の確定を指示する操作イベントが発生すると、選択中の候補クラスが確定クラスとしてスタイル編集部５０に渡されて適用されることとなる。なお、図６（Ａ）に示すウィンドウ３００では、編集対象の要素を含む部分のプレビューが表示されている。
【００４４】
図６（Ｂ）には、他の基準プロパティ１００が入力されたウィンドウ３１０が示されている。図６（Ｂ）に示すウィンドウ３１０には、図６（Ａ）と同様に、コード直接記述方式にて入力されたテキスト３１０ａで示される基準プロパティが入力され、リスト３１２、表示ボックス３１４およびプレビュー表示３１６がポップアップ表示されている。リスト３１２では、検索された候補クラスが、その名称およびパスとともに、スコア順に選択可能に一覧表示され、図６（Ｂ）に示す例では、「eyecatch」クラスの補完定義を指定する項目３１２ａがポインタ３１２ｂのオーバラップにより選択されている様子が示されている。
【００４５】
図６（Ｂ）では、補完定義の指定が選択されており、さらに、選択中の候補クラスに対する補完定義の内容を表示する表示ボックス３１８がポップアップ表示されている。リスト３１２において、補完定義を指定する選択肢の確定を指示する操作イベントが発生すると、確定クラスおよび補完定義データがスタイル編集部５０に渡されて、適用されることとなる。図６（Ｂ）に示すウィンドウ３１０にも、編集対象の要素を含む部分のプレビューが表示されている。
【００４６】
図７は、コンピュータ装置１０のディスプレイ画面上に表示される編集支援ＧＵＩ画面の他の実施形態を例示する。図７に示すウィンドウ３２０は、基準プロパティが入力された後、さらに、編集支援を呼び出す操作イベントが発生した場合にポップアップ表示されるよう構成されている。ウィンドウ３２０は、検索された候補クラスが、その名称およびパスとともに、スコア順に選択可能に一覧表示されるリストボックス３２２を含み、図７に示す例では、「eyecatch」クラスの項目３２２ａがマウスにより選択されている様子が示されている。ウィンドウ３２０は、さらに、選択中の候補クラスの定義内容を表示する表示ボックス３２４、該候補クラスを仮に適用した場合を描画するプレビュー表示３２８、および確定ボタン３３０を含んで構成されている。
【００４７】
またウィンドウ３２０は、補完定義の要否を指示するためのチェック・ボックス３３２と、チェック・ボックス３３２がチェックされた場合に、作成された補完定義データの定義内容を表示する表示ボックス３２６とを含んで構成されている。図７に示す例では、チェック・ボックス３３２がチェックされている。補完定義が要とされる場合、プレビュー表示３２８は、該候補クラスを補完定義データにて補正した定義内容により適用した場合を描画するプレビューが描画される。選択の候補クラスが変更されると、その変更に応答して表示ボックス３２４およびプレビュー表示３２８の表示内容が新たに選択された候補クラスの内容に従って更新される。確定ボタン３３０がクリックされると、チェック・ボックス３３２がチェックされていない場合には、リストボックス３２２中で選択中の候補クラスがスタイル編集部５０に渡されて適用されることとなる。一方、チェック・ボックス３３２がチェックされている場合には、リストボックス３２２中で選択中の候補クラスおよび補完定義データがスタイル編集部５０に渡されて、適用されることとなる。
【００４８】
上述したように、本実施形態の編集支援ＧＵＩ画面では、途中まで入力された基準プロパティ１００に類似する候補クラスをユーザに提案して、プロパティ値の入力を簡略化する編集支援機能を実現し、また、所望の基準プロパティに類似する候補クラスをユーザに提案して、所望の基準プロパティと等価な効果を発現する補完定義を提案する編集支援機能を実現する。
【００４９】
なお、上記編集支援を呼び出す操作イベント、および選択を確定する操作イベントは、特に限定されるものでなく、マウスによるＧＵＩ部品に対するクリック、オーバラップなどの動作、キーボードによるショートカットキー入力などの動作、その他のユーザによる如何なる入力動作に応答する操作イベントとすることができる。また、選択動作についても、特に限定されるものでなく、マウスまたはキーボードなどによる如何なる入力操作と連動して機能するよう構成することができる。
【００５０】
以下、本実施形態のＣＳＳの編集支援機能を実現する処理について、より詳細に説明する。図８は、本実施形態のコンピュータ装置１０が実行するＣＳＳの編集支援処理を示すフローチャートである。図８に示す処理は、編集支援機能を呼び出す操作イベントに応答して、ステップＳ１００から開始される。ステップＳ１０１では、編集支援部６０は、図６に示したテキスト入力ボックスを介して入力された基準プロパティＳを用いて、類似定義検索部５２による検索フローを呼び出す。なお、検索フローの詳細については後述する。ステップＳ１０２では、編集支援部６０は、類似定義検索部５２からの検索結果を取得して、リスト提示部５８を呼び出して、スコア付けされた候補クラスの集合Ｃのリストをポップアップ表示させ、ステップＳ１０３で、デフォルトとして、最上位のスコアの候補クラスＣ１を選択対象に設定する。
【００５１】
ステップＳ１０４では、編集支援部６０は、選択対象の候補クラスＣｉ（デフォルトではｉ＝１）の定義内容を取得し、図６（Ａ）に示すテキスト表示ボックス３０４のように、選択中の候補クラスの定義内容を表示させる。ステップＳ１０５では、編集支援部６０は、プロパティ値に過不足が無いか否かを判定する。ステップＳ１０５で、過不足が無いと判定された場合（ＹＥＳ）には、ステップＳ１０９へ処理を渡す。ステップＳ１０９では、編集支援部６０は、プレビュー描画部５６を呼び出して、選択されている候補クラスの定義内容に従ったプレビューを表示させる。一方、ステップＳ１０５で、過不足が有ると判定された場合（ＮＯ）には、ステップＳ１０６へ処理を渡す。
【００５２】
ステップＳ１０６では、補完定義が必要であるか否かを判定する。ステップＳ１０６の判定では、例えば、図６（Ｂ）に示すウィンドウ３１０で、補完定義が指定されている項目が選択されている場合、または図７に示すウィンドウ３２０で、補完定義を指定するチェック・ボックス３３２にチェックが入っている場合に、補完定義が必要であると判定される。ステップＳ１０６で、補完定義が不要と判断された場合（ＮＯ）には、ステップＳ１０９へ処理を渡す。ステップＳ１０９では、編集支援部６０は、プレビュー描画部５６を呼び出して、例えば図６（Ａ）に示したプレビュー表示３０６のように、選択されている候補クラスの定義内容に従ったプレビューを表示させる。一方、ステップＳ１０６で、補完定義が必要であると判定された場合（ＹＥＳ）には、ステップＳ１０７へ処理を渡す。
【００５３】
ステップＳ１０７では、編集支援部６０は、補完定義作成部５４を呼び出して、基準プロパティＳと選択中の候補クラスＣｉとから、その差異を補完する補完定義データを作成させ、例えば図６（Ｂ）に示したテキスト表示ボックス３１８や図７に示した表示ボックス３２６に作成された補完定義データの定義内容を表示させる。ステップＳ１０８では、作成された補完定義データにて補正して候補クラスの定義内容を更新する。ステップＳ１０９では、編集支援部６０は、プレビュー描画部５６を呼び出して、例えば図６（Ｂ）や図７に示したプレビュー表示３１６，３２８のように、選択中の候補クラスの補正された定義内容に従ったプレビューを表示させる。
【００５４】
編集支援部６０は、編集支援機能が提供するＧＵＩ画面に対する操作イベントを監視し、ステップＳ１１０では、ユーザからの操作イベントが、「選択変更」、「確定」または「キャンセル」の何れを指示しているのかを判定する。ステップＳ１１０で、キャンセルに対応する操作イベントが発生したと判定された場合（キャンセル）には、ステップＳ１１２へ処理を渡し、ステップＳ１１２で編集支援処理を終了させる。
【００５５】
一方、ステップＳ１１０で、選択の確定に対応する操作イベントが発生したと判定された場合（確定）には、ステップＳ１１１へ処理を渡す。ステップＳ１１１では、確定された定義内容、つまり補完定義が不要であれば確定クラス、補完定義が指定されている場合には、確定クラスおよび対応する補完定義データを用いて、ＨＴＭＬ文書に対し定義内容を適用し、ステップＳ１１２で処理を終了させる。一方、ステップＳ１１０で、選択変更に対応する操作イベントが発生したと判定された場合（選択変更）には、ステップＳ１１３へ処理を分岐させる。ステップＳ１１３では、新たに選択された候補クラスを対象に設定して、ステップＳ１０４へ処理を分岐させる。
【００５６】
以下、図８に示したステップＳ１０１の処理ステップで呼び出される検索フローについて説明する。図９は、本実施形態のコンピュータ装置１０が実行する類似するクラスの検索フローを示すフローチャートである。図９に示す処理は、図８に示したステップＳ１０１の処理ステップで呼び出されて、ステップＳ２００から開始される。ステップＳ２０１では、類似定義検索部５２は、基準プロパティＳを取得し、ステップＳ２０２では、検索クエリを展開して、基準プロパティＳに類似する候補クラスＣｉを検索して、その集合Ｃを取得する。
【００５７】
ステップＳ２０３〜ステップＳ２０５までのループでは、検索された各候補クラスＣｉにつき、ループ内のステップＳ２０４の処理を繰り返す。ステップＳ２０４では、候補クラスＣｉに対し評価関数を用いてスコアを算出する。すべての候補クラスＣｉに対するスコアが算出されると、処理は、ステップＳ２０３〜ステップＳ２０５までのループから抜けだし、ステップＳ２０６へ進められる。ステップＳ２０６では、類似定義検索部５２は、集合Ｃの候補クラスをスコアに従って降順にソーティングして検索結果を作成し、ステップＳ２０７で処理を終了させる。
【００５８】
図８および図９に示した処理フローにより、入力された所望のプロパティ値を含むデータ・セットに似たクラスが、定義済みのクラスの中から検索されて提示される。そして、ウェブ・コンテンツを製作するユーザは、既定義のクラスの中から所望の修飾を指定するスタイルが定義されたクラスを容易に探し出すことが可能となる。また既に定義済みのクラスを効率的に再利用できるようになり、もって、ユーザ利便性に優れ、効率的かつ効果的なＨＴＭＬ文書のＣＳＳの編集支援機能が実現される。さらに、類似のクラスが既に定義済みであれば、そのクラスが提示されるため、同一、等価または許容範囲内の差異を有する修飾を指定するクラスを重複定義してしまう蓋然性が好適に低減され、ＣＳＳのデータ・サイズの増大、および複雑化が防止される。
【００５９】
また、補完定義作成部５４の処理により、たとえ候補クラスにユーザの許容限度を超える過不足のプロパティ値が存在したとしても、データ・セットと候補クラスとの差異に対応する最小限の定義データによりユーザが望むスタイルが実現されるため、より効率的に既定義のクラスを活用することが可能となる。また、プレビュー描画部５６により、ユーザは、ＨＴＭＬ文書に対してＣＳＳ定義を実際に適用する前に、ＣＳＳ定義が適用された場合に発現するスタイルの効果を確認することができ、ウェブ・コンテンツの製作作業の効率性を向上させることが可能となる。
【００６０】
なお、上述までの実施形態では、補完定義が指定される場合、補完定義データの適用は、例えば、インラインでスタイル属性を定義したり、対象要素のＩＤをセレクタとして規則集合を定義したり、補完定義データを新たなクラスとして定義し、複数のクラスを指定するクラス属性を対象要素に追加したりすることによって実施されるものとして説明してきた。以下に説明する他の実施形態は、作成された補完定義データをさらに類似定義検索部５２に与えて、補完定義データに類似するクラスを検索し、クラスの再利用により初期の基準プロパティと候補クラスとの差異の解消を試みることによって、より効果的に定義済みのクラスを再利用しようとするものである。なお、以下に示す他の実施形態は、編集支援機能が提供するＧＵＩおよび編集支援処理のフロー以外の構成については、図１〜図９を参照して説明した実施形態と同様であるため、以下の他の実施形態の説明では、相違する部分を中心に説明する。
【００６１】
以下、他の実施形態のＣＳＳの編集支援機能を実現する処理について説明する。図１０は、他の実施形態のＣＳＳの編集支援処理を示すフローチャートである。図１１は、他の実施形態においてディスプレイ画面上に表示される編集支援ＧＵＩ画面を例示する。図１１には、所定の基準プロパティ１００が入力されたウィンドウ３４０が示され、ウィンドウ３４０には、テキスト３４０ａで示されるユーザから入力された基準プロパティが入力されている。
【００６２】
再び図１０を参照すると、図１０に示す処理は、編集支援機能を呼び出す操作イベントに応答して、ステップＳ３００から開始される。ステップＳ３０１では、編集支援部６０は、入力された基準プロパティＳを用いて、類似定義検索部５２による検索フローを呼び出す。なお、検索フローは、図９に示した処理フローと同一である。ステップＳ３０２では、編集支援部６０は、類似定義検索部５２からの検索結果を取得して、リスト提示部５８を呼び出して、図１１に示すリスト３４２のように、スコア付けされた候補クラスの集合Ｃのリストをポップアップ表示させ、ステップＳ３０３で、デフォルトとして、最上位のスコアの候補クラスＣ１を選択対象に設定する。
【００６３】
ステップＳ３０４では、編集支援部６０は、選択対象の候補クラスＣｉ（デフォルトではｉ＝１）の定義内容を取得し、図１１に示すテキスト表示ボックス３４４のように、選択中の候補クラスの定義内容を表示させる。ステップＳ３０５では、編集支援部６０は、プロパティ値に過不足が無いか否かを判定する。ステップＳ３０５で、過不足が無いと判定された場合（ＹＥＳ）には、ステップＳ３１１へ処理を渡す。ステップＳ３１１では、編集支援部６０は、プレビュー描画部５６を呼び出して、図１１に示すプレビュー表示３４８のように、選択の候補クラスの定義内容に従ったプレビューを表示させる。一方、ステップＳ３０５で、過不足が有ると判定された場合（ＮＯ）には、ステップＳ３０６へ処理を渡す。
【００６４】
ステップＳ３０６では、補完定義が必要であるか否かを判定する。ステップＳ３０６で、補完定義が不要であると判断された場合（ＮＯ）には、ステップＳ３１１へ処理を渡す。ステップＳ３１１では、編集支援部６０は、プレビュー描画部５６を呼び出して、選択の候補クラスの定義内容に従ったプレビューを表示させる。一方、ステップＳ３０６で、補完定義が必要であると判定された場合（ＹＥＳ）には、ステップＳ３０７へ処理を渡す。
【００６５】
ステップＳ３０７では、編集支援部６０は、補完定義作成部５４を呼び出して、基準プロパティＳと選択中の候補クラスＣｉとから、その差異を補完する補完定義データを作成させ、例えば図１１に示したテキスト表示ボックス３４６に作成された補完定義データの定義内容を表示させる。図１１に示す例では、テキスト３４６ａで示す補完定義データが表示されている。ステップＳ３０８では、編集支援部６０は、再利用による差異の解消が選択されているか否かを判定する。この再利用による差異の解消は、再利用フローの初回では選択されておらず、後述するステップＳ３１２において、再利用による解消を指示する操作イベントが発生した段階で、選択されることとなる。
【００６６】
ステップＳ３０８で、再利用による解消が選択されていない場合（ＮＯ）には、ステップＳ３１０へ処理が直接進められる。ステップＳ３１０では、ステップＳ３０７で作成された補完定義データを用いて候補クラスＣｉの定義内容を更新し、ステップＳ３１１では、編集支援部６０は、プレビュー描画部５６を呼び出して、選択中の候補クラスの補正された定義内容に従ったプレビューを表示させる。
【００６７】
編集支援部６０は、編集支援機能が提供するＧＵＩ画面に対する操作イベントを監視し、ステップＳ３１２では、ユーザからの操作イベントが、「選択変更」、「確定」、「再利用による解消」または「キャンセル」の何れを指示しているのかを判定する。ステップＳ３１２で、キャンセルに対応する操作イベントが発生したと判定された場合（キャンセル）には、ステップＳ３１４へ処理を渡し、ステップＳ３１４で本再利用フローを終了させ、呼び出し元に処理を戻す。
【００６８】
一方、ステップＳ３１２で、選択の確定に対応する操作イベントが発生したと判定された場合（確定）には、ステップＳ３１３へ処理を渡す。ステップＳ３１３では、確定された定義内容を呼び出し元に戻し、ステップＳ３１４で本再利用フローを終了させ、呼び出し元に処理を戻す。なお、ステップＳ３１３で戻される定義内容は、再利用による解消が確定されていない場合には、本フローでの確定クラスおよび対応する補完定義データが戻されることとなる。
【００６９】
一方、ステップＳ３１２で、選択変更に対応する操作イベントが発生したと判定された場合（選択変更）には、ステップＳ３１５へ処理を分岐させる。ステップＳ３１５では、新たに選択された候補クラスを対象に設定して、ステップＳ３０４へ処理を分岐させる。
【００７０】
一方、ステップＳ３１２で、再利用による解消の選択に対応する操作イベントが発生したと判定された場合（再利用による解消）には、ステップＳ３０４へ処理を分岐させる。なお、この再利用による解消の選択に対応する操作イベントについても、他の指示と識別できる限り、特に限定されるものではなく、マウスによるＧＵＩ部品に対するクリック、オーバラップなどの動作、キーボードによるショートカットキー入力などの動作、その他のユーザによる如何なる入力動作に応答する操作イベントとすることができる。
【００７１】
ステップＳ３１２で、再利用による解消の選択に対応する操作イベントが発生したと判定された場合、次のループにおいてステップＳ３０８へ到達した際には、ステップＳ３０９へ処理が渡される。ステップＳ３０９では、編集支援部６０は、本フローのステップＳ３０７で作成された選択中の候補クラスに対応する補完定義データを基準プロパティＳとして、図１０に示す本再利用フローを再帰的に呼び出す。図１１に示す例では、「eyecatch」クラスの補完定義を指定する項目３４２ａが選択され、テキスト３４６ａで示す対応する補完定義データが、基準プロパティＳとして与えられることとなる。
【００７２】
再び図１０を参照すると、再呼び出し先の再利用フローのステップＳ３０１では、編集支援部６０は、再呼び出し元で作成された補完定義データを基準プロパティＳとして与えて、該補完定義データに類似するクラスが検索されることとなる。その際には、ＣＳＳ２では、後方定義のクラスが優先されるため、その検索範囲は、呼び出し元で選択された候補クラス以降の読み出し位置のものに限定することが好ましい。
【００７３】
再呼び出し先の再利用フローのステップＳ３０２では、編集支援部６０は、再呼び出し元での補完定義データを用いて検索された検索結果を取得して、リスト提示部５８を呼び出して、図１１に示すリスト３５２のように、スコア付けされた候補クラスの集合Ｃのリストをポップアップ表示させる。再呼び出し先の再利用フローのステップＳ３０４では、編集支援部６０は、選択対象の候補クラスＣｉの定義内容を取得し、図１１に示すテキスト表示ボックス３５４のように、選択中の候補クラスの定義内容を表示させる。再呼び出し先の再利用フローのステップＳ３０７では、編集支援部６０は、補完定義作成部５４を呼び出して、再呼び出し元の補完定義データと本フロー中で選択されている候補クラスＣｉとから、その差異を補完する補完定義データを作成させ、例えば図１１に示したテキスト表示ボックス３５６に補完定義データの定義内容を表示させる。
【００７４】
再呼び出し先の再利用フローのステップＳ３１２において、選択の確定に対応する操作イベントが発生したと判定された場合（確定）には、ステップＳ３１３では、本フローでの確定クラスおよび対応する補完定義データを呼び出し元に戻し、ステップＳ３１４で本フローを終了させ、再呼び出し元に処理を戻す。
【００７５】
再呼び出し元に処理が戻されると、そのステップＳ３１０において、戻されたクラスおよび対応する補完定義データを適宜用いて、候補クラスＣｉの定義内容を更新し、ステップＳ３１１では、編集支援部６０は、プレビュー描画部５６を呼び出して、選択中の候補クラスの補正された定義内容に従ったプレビューを表示させる。
【００７６】
再呼び出し元のステップＳ３１２で、選択の確定に対応する操作イベントが発生したと判定された場合（確定）には、ステップＳ３１３では、当該フローの呼び出し元（例えば、スタイル編集部５０）に確定された定義内容を戻し、ステップＳ３１４で本フローを終了させ、本フローの呼び出し元（この場合スタイル編集部５０）に処理を戻す。この場合、ステップＳ３１３で戻される定義内容は、再呼び出し先のフローで再利用による解消が確定されているので、再呼び出し先から戻された確定クラスと、該クラスに対応する補完定義データと、本フローで選択中の候補クラスとが適宜戻されることとなる。スタイル編集部５０は、複数のクラスが戻された場合には、複数のクラス名を連ねてクラス属性を加えて、クラスを同時指定することによりＨＴＭＬ文書に対しスタイル定義の適用を実施する。また、再帰呼び出し回数の限度は、特に限定されるものでないが、所与の限度を定めてもよい。
【００７７】
図１０および図１１を参照して説明した処理フローにより、データ・セットと確定クラスとの差異に対応する補完定義データに類似するクラスがさらに検索されるため、より効率的に既定義のクラスを再利用することが可能となる。
【００７８】
以下、ウェブ・オーサリング・ツールを実現するコンピュータ装置１０のハードウェア構成について説明する。図１２は、コンピュータ装置１０の概略的なハードウェア構成を示す。図１２に示すコンピュータ装置１０は、中央処理装置（ＣＰＵ）１２と、ＣＰＵ１２が使用するデータの高速アクセスを可能とするＬ１およびＬ２などのレベルを有するキャッシュ・メモリ１４と、ＣＰＵ１２の処理を可能とするＲＡＭ、ＤＲＡＭなどの固体メモリ素子から形成されるシステム・メモリ１６とを備えている。
【００７９】
ＣＰＵ１２、キャッシュ・メモリ１４、およびシステム・メモリ１６は、システム・バス１８を介して、他のデバイスまたはドライバ、例えば、グラフィックス・ドライバ２０およびネットワーク・インタフェース・カード（ＮＩＣ）２２へと接続されている。グラフィックス・ドライバ２０は、バスを介して外部のディスプレイ２４などの出力装置に接続されて、ＣＰＵ１２による処理結果をディスプレイ画面上に表示させることができる。また、ＮＩＣ２２は、物理層レベルおよびデータリンク層レベルでコンピュータ装置１０を、ＴＣＰ／ＩＰなどの適切な通信プロトコルを使用するネットワークへと接続している。
【００８０】
システム・バス１８には、さらにＩ／Ｏバス・ブリッジ２６が接続されている。Ｉ／Ｏバス・ブリッジ２６の下流側には、ＰＣＩなどのＩ／Ｏバス２８を介して、ＩＤＥ、ＡＴＡ、ＡＴＡＰＩ、シリアルＡＴＡ、ＳＣＳＩ、ＵＳＢなどにより、ハードディスク３０が接続されている。また、Ｉ／Ｏバス２８には、ＵＳＢなどのバスを介して、キーボードおよびマウスなどのポインティング・デバイスなどの入力装置３２が接続されていて、この入力装置３２によりユーザ・インタフェースが提供される。
【００８１】
コンピュータ装置１０のＣＰＵ１２としては、いかなるシングルコア・プロセッサまたはマルチコア・プロセッサを用いることができ、より具体的には、例えば、Ｘｅｏｎ（登録商標）、Ｉｔａｎｉｕｍ（登録商標）、ＰＯＷＥＲ  ＰＣ（登録商標）などＣＩＳＣまたはＲＩＳＣチップなどを挙げることができる。コンピュータ装置１０は、ＷＩＮＤＯＷＳ（登録商標）２００Ｘ、ＵＮＩＸ（登録商標）、ＬＩＮＵＸ（登録商標）などのＯＳにより制御され、ＯＳの管理の下、システム・メモリ１６上などにプログラムを展開し、プログラムを実行することにより、各ハードウェア資源を動作制御することによって、上述した機能部の構成および処理をコンピュータ上に実現することができる。
【００８２】
以上説明したように、本実施形態によれば、ＨＴＭＬなどのマークアップ言語で記述された構造化文書の体裁を定義するスタイルシートの編集において、既定義のクラスを容易に再利用可能とし、重複定義の蓋然性を低減し、もって、効率的にポータルサイト、ウェブアプリケーション、ホームページなどのウェブ・コンテンツを構築することを可能とする、情報処理装置、情報処理方法およびプログラムを提供することが可能となる。
【００８３】
なお、上述までは、ＨＴＭＬ文書中のある特定の要素に対してプロパティ値を指定しようとする際に、所望の基準プロパティに類似する既定義のクラスを選択可能に提示する構成について説明した。しかしながら、他の実施形態では、ＪＳＰなどのサーバ・サイドアプリケーションにて動的にＨＴＭＬ文書を生成する場合に、生成するＨＴＭＬ文書中の要素に対して適用されるスタイルシートの定義のために用いることもできる。さらに他の実施形態では、新たなクラスを定義する際に、これから定義しようと考えているクラスに類似したクラスが定義されているかを確認するために用いることもできる。
【００８４】
また、上述までの実施形態の説明では、構造化文書としてＨＴＭＬ文書、スタイル定義としてカスケード・スタイルシート（ＣＳＳ）を編集対象とした場合を例に説明してきた。しかしながら、本発明の実施形態で利用することができる構造化文書は、上述したＨＴＭＬ文書に限られるものではなく、ＸＭＬ、ＸＨＴＭＬ、ＳＶＧ、その他のマークアップ言語で書かれた文書とすることができる。また本発明の実施形態で利用することができるスタイルシートは、カスケード・スタイルシートに限られるものではなく、ＸＳＬ（eXtensible Style Sheet）、ＤＳＳＳＬ（Document Style Semantics and Specification Language）など、他のスタイルシート言語により作成されたものを採用することもできる。
【００８５】
また、コンピュータ装置としては、上述までのパーソナル・コンピュータの他、ラップトップ・コンピュータ、マルチプロセッサ・システムなどを含む種々のコンピュータ・システム構成と共に実施することができる。
【００８６】
本発明の上記機能は、Ｃ＋＋、Ｊａｖａ（登録商標）、Ｊａｖａ（登録商標）Ｂｅａｎｓ、Ｊａｖａ（登録商標）Ａｐｐｌｅｔ、Ｊａｖａ（登録商標）Ｓｃｒｉｐｔ、Ｐｅｒｌ、Ｒｕｂｙなどのオブジェクト指向プログラミング言語などで記述された装置実行可能なプログラムにより実現でき、装置可読な記録媒体に格納して頒布または伝送して頒布することができる。
【００８７】
これまで本発明を、特定の実施形態をもって説明してきたが、本発明は、実施形態に限定されるものではなく、他の実施形態、追加、変更、削除など、当業者が想到することができる範囲内で変更することができ、いずれの態様においても本発明の作用・効果を奏する限り、本発明の範囲に含まれるものである。
【図面の簡単な説明】
【００８８】
【図１】本実施形態のコンピュータ装置の機能ブロックを示す図。
【図２】本実施形態のコンピュータ装置のディスプレイ画面上に表示されるページ編集ＧＵＩ画面を例示する図。
【図３】本実施形態の編集支援機能を、各処理段階で用いるデータ構造とともに模式的に示す図。
【図４】本実施形態のクラス登録部が保持するクラス登録テーブルのデータ構造を示す図。
【図５】本実施形態の補完定義作成部による処理を、用いるデータ構造とともに模式的に示す図。
【図６】本実施形態のコンピュータ装置のディスプレイ画面上に表示される編集支援ＧＵＩ画面を例示する図。
【図７】コンピュータ装置のディスプレイ画面上に表示される編集支援ＧＵＩ画面の他の実施形態を例示する図。
【図８】本実施形態のコンピュータ装置が実行するＣＳＳの編集支援処理を示すフローチャート。
【図９】本実施形態のコンピュータ装置が実行する類似するクラスの検索フローを示すフローチャート。
【図１０】他の実施形態のＣＳＳの編集支援処理を示すフローチャート。
【図１１】他の実施形態においてディスプレイ画面上に表示される編集支援ＧＵＩ画面を例示する図。
【図１２】コンピュータ装置の概略的なハードウェア構成を示す図。
【図１３】従来のウェブ・オーサリング・ツールにおけるＣＳＳの編集機能を示す図。
【符号の説明】
【００８９】
１０…コンピュータ装置、１２…ＣＰＵ、１４…キャッシュ・メモリ、１６…システム・メモリ、１８…システム・バス、２０…グラフィックス・ドライバ、２２…ＮＩＣ、２４…ディスプレイ、２６…Ｉ／Ｏバス・ブリッジ、２８…Ｉ／Ｏバス、３０…ハードディスク、３２…入力装置、５０…スタイル編集部、５２…類似定義検索部、５４…補完定義作成部、５６…プレビュー描画部、５８…リスト提示部、６０…編集支援部、６２…クラス入出力部、６４…クラス登録部、６６…格納部、６８…ページ・ファイル、７０…スタイルシート・ファイル、１００…基準プロパティ、１０２…プロパティ値、１１０…検索結果、１２０…クラス、１２２…プロパティ値、１３０…補完定義データ、１３２…プロパティ値、１４０…クラス登録テーブル、２００…ログインパネル、２０２…テキスト、３００…ウィンドウ、３００ａ…テキスト、３０２…リスト、３０２ａ…項目、３０２ｂ…ポインタ、３０４…表示ボックス、３０６…プレビュー表示、３１０…ウィンドウ、３１０ａ…テキスト、３１２…リスト、３１２ａ…項目、３１２ｂ…ポインタ、３１４…表示ボックス、３１６…プレビュー表示、３１８…表示ボックス、３２０…ウィンドウ、３２２…リストボックス、３２２ａ…項目、３２４…表示ボックス、３２６…表示ボックス、３２８…プレビュー表示、３３０…確定ボタン、３３２…チェック・ボックス、３４０…ウィンドウ、３４０ａ…テキスト、３４２…リスト、３４２ａ…項目、３４４…表示ボックス、３４６…表示ボックス、３４６ａ…テキスト、３４８…プレビュー表示、３５２…リスト、３５４…表示ボックス、３５６…表示ボックス
【図１】
2010044626.tif 000003
【図２】
2010044626.tif 000004
【図３】
2010044626.tif 000005
【図４】
2010044626.tif 000006
【図５】
2010044626.tif 000007
【図６】
2010044626.tif 000008
【図７】
2010044626.tif 000009
【図８】
2010044626.tif 000010
【図９】
2010044626.tif 000011
【図１０】
2010044626.tif 000012
【図１１】
2010044626.tif 000013
【図１２】
2010044626.tif 000014
【図１３】
2010044626.tif 000015