(57)【要約】  少なくとも１つのブラウザ型のソフトウェアディスプレイプログラムが表示のために使用される所定のマークアップ言語で表現された少なくとも１つのデジタルグラフィック文書を処理する方法であって、ｉ）読み出しモードで表示された前記元の文書（ＩＳＶＧ１）を、前記文書に対する書き込みルール群を取り入れ且つ前記文書にリンクしない所定の変換ルール群に従って、前記マークアップ言語で編集可能なバージョンに変換するステップと、ii）前記書き込みルール群に従う前記編集可能なバージョン（ＩＳＶＧ２）を変更するために、前記ソフトウェアディスプレイプログラムを介して前記編集可能なバージョンと対話するステップと、iii）変更された前記編集可能なバージョンを、ステップii）で行なわれた変更を取り入れた読み出しモードのバージョン（ＩＳＶＧ３）に変換するステップとを含むことを特徴とする方法。
2007510194.tif 000002
【特許請求の範囲】
【請求項１】
少なくとも１つのブラウザ型のソフトウェアディスプレイプログラムが表示のために使用される所定のマークアップ言語で表現された少なくとも１つのデジタルグラフィック文書を処理する方法であって、
ｉ）読み出しモードで表示された元の文書を、前記文書に対する書き込みルール群を取り入れた所定の変換ルール群に従って、前記マークアップ言語で編集可能なバージョンに変換するステップと、
ii）前記書き込みルール群に従う前記編集可能なバージョンを変更するために、前記ソフトウェアディスプレイプログラムを介して前記編集可能なバージョンと対話するステップと、
iii）ステップii）で行なわれた変更を取り入れて、変更された前記編集可能なバージョンを読み出しモードのバージョンに変換するステップとを含む方法。
【請求項２】
前記所定の変換ルール群は、前記文書にリンクしない請求項１に記載の方法。
【請求項３】
前記ブラウザ型のソフトウェアディスプレイプログラムは、前記元の文書を編集可能なバージョンに変換するための前記変換ルール群を使用可能である請求項１又は２に記載の方法。
【請求項４】
ステップiii）による前記逆変換は、編集済み文書から前記未編集文書を検索できる請求項１乃至３のいずれかに記載の方法。
【請求項５】
ステップｉ）による前記直接変換は、ステップiii）による前記逆変換をガイド可能なガイダンス情報を追加できる請求項１乃至４のいずれかに記載の方法。
【請求項６】
前記ガイダンス情報は、除去される要素、特定の名前空間の前記変更済み文書に位置する要素、前記ガイダンス情報の値を更新するスクリプト、属性の作成／変更に関係する命令情報により形成されるグループに属する請求項５に記載の方法。
【請求項７】
ステップｉ）による前記直接変換は、選択可能なグラフィック要素の各々を識別できる請求項１乃至６のいずれかに記載の方法。
【請求項８】
ステップｉ）による前記直接変換は、ＳＶＧ型マークアップ言語で書かれたノードの効果を停止するために、前記ノードを非ＳＶＧ名前空間に取り入れる／移動することができ、ステップiii）による前記逆変換は、非ＳＶＧ名前空間に移動された前記ＳＶＧノードを検索することができる請求項１乃至７のいずれかに記載の方法。
【請求項９】
ステップｉ）による前記直接変換は、アニメーション要素を保存するか／除去するかを判定できるパラメータを含む請求項１乃至８のいずれかに記載の方法。
【請求項１０】
ステップｉ）による前記直接変換は、初期文書に対する前記文書の同期変更を可能にする変化イベントを取り入れる請求項１乃至９のいずれかに記載の方法。
【請求項１１】
ステップｉ）による前記直接変換は、遠隔の前記文書から利用可能なプログラムを介して前記編集済み文書の全て又は一部を変更できる機構を取り入れる請求項１乃至１０のいずれかに記載の方法。
【請求項１２】
ステップiii）による前記逆変換は、初期化スクリプトにより作成されたグラフィック要素に対して行なわれた変更を保存するために、前記初期化スクリプトを変更できる請求項１乃至１１のいずれかに記載の方法。
【請求項１３】
少なくとも１つのブラウザ型のソフトウェアディスプレイプログラムが表示のために使用される所定のマークアップ言語で表現された少なくとも１つのデジタルグラフィック文書を処理する装置であって、
−読み出しモードで表示された前記元の文書を、前記文書に対する書き込みルール群を取り入れた所定の変換ルール群に従って、前記マークアップ言語で編集可能なバージョンに変換する変換手段と、
−前記書き込みルール群に従う前記編集可能なバージョンを変更するために、前記ソフトウェアディスプレイプログラムを介して前記編集可能なバージョンと対話する処理手段と、
−変更された前記編集可能なバージョンを、前記処理手段により行なわれた変更を取り入れた読み出しモードのバージョンに変換する逆変換手段とを備える装置。
【請求項１４】
前記所定の変換ルール群は、前記文書にリンクしない請求項１３に記載の装置。
【請求項１５】
前記逆変換手段は、編集済み文書から前記未編集文書を検索できる請求項１３又は１４に記載の装置。
【請求項１６】
前記変換手段は、前記逆変換手段をガイドできるガイダンス情報を追加できる請求項１３乃至１５のいずれかに記載の装置。
【請求項１７】
前記ガイダンス情報は、除去される要素、特定の名前空間の前記変更済み文書に位置する要素、前記ガイダンス情報の値を更新するスクリプト、属性の作成／変更に関係する命令情報により形成されるグループに属する請求項１６に記載の装置。
【請求項１８】
前記直接変換手段は、選択可能なグラフィック要素の各々を識別できる請求項１３乃至１７のいずれかに記載の装置。
【請求項１９】
前記変換手段は、ＳＶＧ型マークアップ言語で書かれたノードの効果を停止するために、前記ノードを非ＳＶＧ名前空間に取り入れる／移動することができ、前記逆変換手段は、非ＳＶＧ名前空間に移動された前記ＳＶＧノードを検索することができる請求項１３乃至１８のいずれかに記載の装置。
【請求項２０】
前記変換手段は、アニメーション要素の保存／除去を判定できるパラメータを使用する請求項１３乃至１９のいずれかに記載の装置。
【請求項２１】
前記変換手段は、前記初期文書に対して前記文書を同期変更できる変化イベントを処理する請求項１３乃至２０のいずれかに記載の装置。
【請求項２２】
前記変換手段は、遠隔の前記文書から利用可能なプログラムを介して前記編集済み文書の全て又は一部を変更できる機構を含む請求項１３乃至２１のいずれかに記載の装置。
【請求項２３】
前記変換手段は、初期化スクリプトにより作成されたグラフィック要素に対して行なわれた変更を保存するために、前記初期化スクリプトを変更できる請求項１３乃至２２のいずれかに記載の装置。
【請求項２４】
コンピュータシステムにより読み出し可能であり、全体的に又は部分的に取外し可能であり、コンピュータプログラムがコンピュータシステムによりロードされ実行される場合、請求項１乃至１２のいずれかに記載の方法の実現を可能にするコンピュータプログラムの命令を含み、特にＣＤ−ＲＯＭ、或は、ハードディスク又はフロッピー（登録商標）ディスク等の磁気媒体であるデータ媒体、或は、電気信号又は光信号等を伝送可能な媒体。
【請求項２５】
データ媒体に格納されたコンピュータプログラムにおいて、コンピュータシステムによりロードされ実行される場合、請求項１乃至１２のいずれかに記載の処理方法の実現を可能にする命令を含むプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、特にブラウザから、ＳＶＧのデジタルグラフィック文書又はこれと同様のタイプの文書を編集することに関する。
【背景技術】
【０００２】
ＳＶＧ（スケーラブルベクターグラフィックス）言語は、ＸＭＬ（拡張マークアップ言語）又は同様の型式のマークアップ言語で書かれる２次元のグラフィック文書を記述する言語である。
ＳＶＧ言語は、３種類のグラフィックオブジェクト又は文書を考慮している。即ち、ベクトルグラフィック形状（例えば、直線及び曲線から構成されるパス）、画像及びテキストである。それらグラフィックオブジェクトは、グループ化され、変換され、且つ先に描画されたオブジェクトに合成される。ＳＶＧ言語は、入れ子にされた変換、クリッピングパス、マスク及びテンプレートオブジェクト等のひとそろいの機能を含む。
ＳＶＧオブジェクトは、対話型及び／又は動的である。ＳＶＧアニメーション要素をＳＶＧコンテンツに取り入れることにより、或は、例えば実行可能なコマンドを含むスクリプトを介して、アニメーションは定義され、且つトリガされる。
【０００３】
また、ＨＴＭＬ（「HyperText Markup Language」）型式のマークアップ言語で書かれたウェブページ等のウェブコンテンツを、単純なインターネットブラウザから直接変更できるエディタは既に知られている。
【発明の開示】
【発明が解決しようとする課題】
【０００４】
本出願人は、単純なインターネットブラウザによりインターネット／ＷＷＷ（World Wide Web）上に掲載されたＳＶＧグラフィックオブジェクト等のデジタルグラフィック文書を、テキストと同様の方法で変更することの問題に直面した。
ＳＶＧ言語は、マークアップ言語に属するため、テキスト形式である。そのため、任意のＳＶＧ文書は、単純なテキストエディタから変更可能である。
しかし、本出願人は、ＷＹＳＩＷＹＧ（「What you see is what you get」）型等の、よりユーザフレンドリーで対話が可能な環境を提供可能にすることを追求している。ここで、対話とは、特に、マウス又は同様の種類のマンマシンインタフェース装置により行なわれることを指す。
【０００５】
本発明は、この問題に対する解決策を明確に提供するものである。
即ち、本発明は、ウェブ上に掲載されたＳＶＧタイプのデジタルグラフィック文書のための、読み出しモードでＳＶＧ文書を表示できる任意のブラウザ上で実行可能なエディタを提供することを目的とする。
【課題を解決するための手段】
【０００６】
本発明は、少なくとも１つのブラウザ型のソフトウェアディスプレイプログラムが表示のために使用される所定のマークアップ言語で表現された少なくとも１つのデジタルグラフィック文書を処理する方法に関する。
【０００７】
本発明の全体的な定義によると、本方法は以下のステップを含む。即ち、
ｉ）読み出しモードで表示された元の文書を、文書に対する書き込みルールを取り入れた所定の変換ルール群に従って、編集可能なマークアップ言語のバージョンに変換するステップと、
ii）上記書き込みルール群に従う上記編集可能なバージョンを変更するために、ソフトウェアディスプレイプログラムを介して上記編集可能なバージョンと対話するステップと、
iii）変更された上記編集可能なバージョンを、ステップii）で行なわれた変更を取り入れた読み出しモードのバージョンに変換するステップを含む。
【０００８】
実施例においては、所定の変換ルール群は、文書にリンクしない。
又、上記ブラウザ型のソフトウェアディスプレイプログラムは、元の文書を編集可能なバージョンに変換するために、上記の変換ルール群を使用できる。
別の実施形態によれば、ステップiii）による逆変換は、編集済み文書から未編集文書を検索できる。
【０００９】
例えば、ステップｉ）による直接変換は、ステップiii）による逆変換をガイド可能なガイダンス情報を追加できる。
実施例においては、上記ガイダンス情報は、除去される要素と、特定の名前空間における変更済み文書の状態にある要素と、ガイダンス情報の値を更新するスクリプトと、属性の作成／変更に関係する命令情報とにより形成されるグループに属する。
【００１０】
更に別の実施形態によると、ステップｉ）による直接変換は、選択可能なグラフィック要素の各々を識別できる。
更に別の実施形態によると、ステップｉ）による直接変換は、ＳＶＧ型マークアップ言語で書かれたノードの効果を停止するために、ノードを非ＳＶＧ名前空間に取り入れる及び／又は移動することができる。また、ステップiii）による逆変換は、非ＳＶＧ名前空間に移動されたＳＶＧノードを検索することができる。
例えば、ステップｉ）による直接変換は、アニメーション要素の保存／除去を判定できるパラメータを含む。
【００１１】
別の例によると、ステップｉ）による直接変換は、最初の文書に対して文書を同期変更できる変化イベントを含む。
実施例においては、ステップｉ）による直接変換は、文書から遠隔利用が可能なプログラムを介して、編集済み文書の全て又は一部を変更できる機構を取り入れる。
実施例においては、ステップiii）による逆変換は、初期化スクリプトにより作成されたグラフィック要素に対して行なわれた変更を保存するために、初期化スクリプトを変更又は除去できる。
【００１２】
本発明の別の目的は、少なくとも１つのブラウザ型のソフトウェアディスプレイプログラムが表示のために使用される所定のマークアップ言語で表現された少なくとも１つのデジタルグラフィック文書を処理する装置の提供にある。
【００１３】
本発明の別の態様による装置は以下を具備する。即ち、
−読み出しモードで表示された元の文書を、文書に対する書き込みルールを取り入れた特定の変換ルール群に従って、マークアップ言語で編集可能なバージョンに変換する変換手段と、
−書き込みルール群に従う編集可能なバージョンを変更するために、ソフトウェアディスプレイプログラムを介して編集可能なバージョンと対話する処理手段と、
−変更された編集可能なバージョンを、上記処理手段により行なわれた変更を取り入れた読み出しモードのバージョンに変換する逆変換手段とを具備する。
【００１４】
一実施形態によれば、上記所定の変換ルール群は、文書にリンクしない。
また、一実施形態によれば、上記逆変換手段は、編集済み文書から未編集文書を検索できる。
【００１５】
また、別の実施形態によれば、上記直接変換手段は、上記逆変換手段をガイド可能なガイダンス情報を追加できる。
実施例において、上記ガイダンス情報は、除去される要素と、特定の名前空間における変更済み文書の状態にある要素と、ガイダンス情報の値を更新するスクリプトと、属性の作成／変更に関係する命令情報とにより形成されるグループに属する。
【００１６】
更に別の実施形態によると、上記直接変換手段は、選択可能なグラフィック要素の各々を識別できる。
実施例において、上記直接変換手段は、ＳＶＧ型マークアップ言語で書かれたノードの効果を停止するために、ノードを非ＳＶＧ名前空間に取り入れる及び／又は移動することができる。また、上記逆変換手段は、非ＳＶＧ名前空間に移動されたＳＶＧノードを検索することができる。
上記変換手段は、アニメーション要素の保存／除去を判定できるパラメータを使用することが好ましい。
【００１７】
更に別の実施形態によれば、上記直接変換手段は、初期文書に対して文書を同期変更できる変化イベントを処理する。
更に別の実施形態によれば、上記直接変換手段は、遠隔の文書から利用可能なプログラムを介して編集済み文書の全て又は一部を変更できる機構を書き込みルールに取り入れる。
【００１８】
本発明の別の目的は、コンピュータシステムにより読み出し可能であり、全体的に又は部分的に取外し可能であるデータ媒体、或は、電気信号又は光信号等を伝送可能な媒体の提供にある。そのようなデータ媒体としては、特に、ＣＤ−ＲＯＭ、或は、ハードディスク又はフロッピー（登録商標）ディスク等の磁気媒体が挙げられる。データ媒体は、コンピュータプログラムがコンピュータシステムによりロードされ実行される場合、上述に示される方法の実現を可能にするコンピュータプログラム命令を含む。
【００１９】
また、本発明の別の目的は、データ媒体に格納されたコンピュータプログラムの提供にある。プログラムは、コンピュータシステムによりロードされ実行される場合、上述に示される処理方法の実現を可能にする命令を含む。
【００２０】
本発明の他の特徴及び利点は、以下の詳細な説明及び図面から理解されるであろう。
【発明を実施するための最良の形態】
【００２１】
図１を参照すると、本発明による編集方法は、少なくとも５つの主要なステップを含む。
第１に、ステップＥ１００において、インターネット又はWorld Wide Web上の画像ＩＳＶＧ１を取得する。
第２に、ステップＥ１１０では、第１の画像ＩＳＶＧ１を第２の画像ＩＳＶＧ２に変換する。この第２の画像ＩＳＶＧ２は、第１の画像ＩＳＶＧ１の編集可能なバージョンに対応し、画像ＩＳＶＧ１にリンクしない所定の書き込みルール群に従う。
第３に、ステップＥ１２０では、第２の画像ＩＳＶＧ２を読み出す。
第４に、ステップＥ１３０では、上記書き込みルール群に従って第２の画像ＩＳＶＧ２に対して対話又は変更がなされる。
第５に、ステップＥ１４０では、第１の画像ＩＳＶＧ１の更新済みバージョンＩＳＶＧ３を取得するために、ステップＥ１１０の逆変換を実行する。
必要であれば、ステップＥ１５０において、元のサーバ又は他の記憶手段に更新済みバージョンＩＳＶＧ３を格納する。
ステップＥ１１０及びステップＥ１４０の変換は、好ましくは、単純なインターネットブラウザから実行される。
【００２２】
図２を参照すると、図１を参照して上述した変換Ｅ１１０は、実際には、２つの部分で実行される。
編集されるべき文書ＩＳＶＧ１の取得後（ステップＥ２００）、この文書の新しいＸＭＬ文書への変換（ステップＥ２１０）が実行される。
【００２３】
この新しいＸＭＬ文書は、新しい形式で画像の全ての情報を含み、ステップＥ２２０において、ＳＶＧ文書のグラフィック要素に挿入される。この要素は〈svg/〉ルート要素の属性を検索し、相対ＵＲＩ参照を保存するためにxml:ベースの属性がこの要素に追加される。この要素は別のグラフィック要素に含まれ、編集済みＳＶＧ文書を所望のスケールにすることを可能にする。
【００２４】
このグラフィック要素は、例えば、マウスイベント又は変化イベントである対話属性を更に有する。
実際には、マウスイベントにより要素選択及び対話型変更（「ドラッグアンドドロップ」）が可能になる。
「変化」イベントにより、ＳＶＧ文書に対して行なわれた変更が追跡可能となる。これは、必要に応じて同期更新を行なうのに有用であり、更に、以下に更に詳細に説明される逆変換Ｅ１４０の実行を容易にする情報を更新するのにも有用である。
【００２５】
次に、新しいＳＶＧ文書を構成するために、ＸＭＬ情報が、この新しい文書に追加される（ステップＥ２３０〜ステップＥ２６０）。この最後の情報は、画像に特有のものではなく実際の編集を可能にする種々のユーザインタフェースに対応する。
この情報は、特に、任意の編集可能なグラフィック要素を容易に選択できる手段（ステップＥ２３０）を含む。例えば、これは、要素の一覧表であるか、或は、マウスにより選択された要素の認識を可能にするマウスイベントを検索できるスクリプトである。
【００２６】
ステップＥ２４０によると、この情報は、例えば新しいＳＶＧ要素を追加するなどにより編集済みＳＶＧ要素を変更する手段を含む。実際には、これは、変更又は作成されるべき各グラフィック要素のパラメータをユーザが入力可能にするグラフィック要素を追加することの問題である。
【００２７】
ステップＥ２５０に従って、この情報は、編集済みＳＶＧ文書の全て又は一部に対して外部処理を適用する手段を含む。実際には、例えば、ネットワーク又はハードディスク上で、ＳＶＧ文書の一部を検索すること、及びその一部に対してエディタの外部で規定された変更を実行することの問題となる。例えば、この手段は、ＸＳＬＴ変換、Java（登録商標）Scriptスクリプト又はウェブサービス呼び出しでもよい。
【００２８】
ステップＥ２６０に従って、この情報は、追加した機能性を制御する手段を含む。例えば、これらの手段は、特に、文書の一部を拡大するため、アクティブスクリプト／パッシブスクリプトモードにするため、又は時間尺度を制御するために、特定の情報を追加することを可能とする。
【００２９】
単一スクリプトの形式でステップＥ２００〜ステップＥ２６０を実現するように、選択が行なわれる。実現例は２つの部分に分離される。第１の部分は、編集されるＳＶＧ文書の変換（ＸＳＬＴ、JavaScript等）に対応する。第２の部分は、ステップＥ２３０〜ステップＥ２６０のデータを直接含むＳＶＧ編集文書である。その後、編集される文書の変換はＳＶＧ編集文書で使用される。
【００３０】
図３を参照すると、第１の変換（図１のＥ１１０）は、第１の〈svg/〉タグの子（child）の各々に適用される。１つ以上のＸＭＬツリーがこうして作成され、ステップＥ２２０（図２）で使用される単一の結果へと組み立てられる。
【００３１】
第１のステップＥ３００は、処理されるノードを取得することから構成される。
ステップＥ３０５において、参照により規定されたノードであるか又は直接規定されたノードであるかについてテストが行なわれる。
その文書に関して外部の相対参照が関係する場合、相対参照は、絶対参照に変換される（それは、ＵＲＩ等の下でいかなる編集済み文書をも格納することを可能にする）。
【００３２】
スクリプト型のノードが関係する場合（ステップＥ３０５）、スクリプトノードは、図４を参照して説明されるアルゴリズムにより変換される（Ｅ３１０）。他の場合は、ステップＥ３１５において、ノードが識別子を有するかに関してテストが行なわれる。要素が識別子のないグラフィック要素である場合（ステップＥ３２０）、識別子がノードに追加される（ステップＥ３２５）。識別子は表示され、マウスで選択され得る。これにより、グラフィック要素の選択をより容易に実現できる。
【００３３】
次に、管理データ名前空間が使用される。ＳＶＧがオープンコンテンツモデルを有するため、ＳＶＧ名前空間に存在しない全ての情報は、ＳＶＧリーダによって考慮されない。従って、この可能性は、ユーザ対話段階中には有用ではないが、逆変換中には有用であるという情報を追加するのに使用され得る。
【００３４】
ステップＥ３３０は、現在のノードがアニメーションノードであって、アニメーションが停止されるかどうかをテストする。
アニメーションノードであり且つそれが停止される場合、ノードは、管理データ名前空間に移動される（ステップＥ３３５）。これにより、対話段階中のアニメーションの停止、変換段階中のこれらアニメーションの再統合、情報の無損失が可能となる。
【００３５】
次に、ステップＥ３４０において、逆変換に必要な情報が初期化される。この情報（属性の形式にされる）により、逆変換中に以下を認識することが可能となる。即ち、要素が変換されたか否か、要素が除去されるべきか否か、或は、グラフィック要素がＸＭＬで規定されるか又はＤＯＭを使用するスクリプトを介して作成／変更されるかを認識することが可能になる。尚、ＤＯＭとは、ＸＭＬ文書のプログラマチックグラフィック表現又は「ドキュメントオブジェクトモデル」である。
又、スクリプトにより作成／変更が行なわれる場合、この情報は、ＳＶＧをロードする際に初期化スクリプトが関係するかを認識することを可能にする。
【００３６】
逆変換において要素を除去する必要がある場合、それらの要素は（例えば、文書の表示の際に）スクリプトにより作成される。更に、元のＳＶＧ文書で呼び出されるスクリプトにより追加された要素は、変更可能である必要はない。従って、この管理情報は、これらの要素の編集を区別することを可能にする。
また、変更済みファイルを格納するステップを許可し、逆変換を容易にするため、ＳＶＧ文書に対する元の文書のＵＲＩ等の他の情報も管理名前空間に格納される。
【００３７】
ステップＥ３４５において、処理されるノードが参照ノード（〈symbol/〉型）に対応するか否かがテストされる。この場合、このノードを参照する要素の一覧表を含む属性がノードに追加される。ユーザがこのノードを参照する要素を変更したい場合、ユーザは、そのノード（従って、全ての参照要素）を変更したいのか又はそのグラフィック要素のみを変更したいかが問われる。ノードのクローンが作成される場合、それが変更され、グラフィック要素は変更済みノードを指し示す。最後に、ノードが処理されるべき子を有する場合（ステップＥ３５５）、各ノードは同様の方法で再帰的に処理される。ノードに処理されるべき子が無い場合は、処理結果を返すことにより、アルゴリズムが終了する（ステップＥ３６５）。
【００３８】
ＳＶＧ文書の処理を終了するため、逆変換が〈SVG/〉ルート要素の属性を検索できるように、それら〈SVG/〉ルート要素の属性は管理名前空間に複写される。更に、ルート要素の属性、特に「イベント」属性は、変換の結果を取り入れるグラフィック要素において部分的に繰り返される。
【００３９】
図４を参照すると、スクリプトノードの処理が示される。
スクリプトの効果は、ＳＶＧ編集段階中に妨害となる可能性がある。従って、ユーザはそれらを停止及び起動できる。
これを行なうため、スクリプトノードの取得後（ステップＥ３１０に続くステップＥ４００）において、ノードの値が検索される（ステップＥ４３０）。そして、ノードの各機能（ステップＥ４４０、ステップＥ４５０及びステップＥ４７０）に対して、機能を実行する必要があるか否かの認識を可能にするテストが追加される（ステップＥ４６０）。
このテストは、アクティブスクリプトの属性「scriptEnable」が真又は偽のいずれに設定されたかを単にチェックする。これらスクリプトを起動／停止するために、ユーザは、編集段階中にこの属性を変更できる。
【００４０】
一般に、本発明の方法により呼び出される機能は、文書中に直接規定される。これら機能が別の文書に規定される場合、外部文書を参照してスクリプトノードを規定することが可能である。スクリプトノードが参照により規定される場合（ステップＥ４１０）、指示された文書が検索され、このノードの値として挿入される（ステップＥ４２０）。更に、外部文書に対する参照は除去される。
【００４１】
対話の大部分は、ＳＶＧ文書に直接書き込まれた要素を変更することから構成される。この場合、ＤＯＭ機能性を使用して要素を変更すれば十分である。管理データ、特に、ノード修正／未修正テストに対応する属性が更新される。また、新しい要素の追加もユーザに提供される。ツリーを変更する（例えば、場所を変更する／ノードのクローンを作成する）ための全てのＤＯＭ機能性は、ＳＶＧ規格に準拠するという条件の下で、実現可能である。
【００４２】
ＳＶＧ文書は、正確な時間に文書を変更するスクリプトを含むことが可能である。そのようなスクリプトが要素を追加する場合、それら要素は、逆変換中に除去される。一方、既存の要素に対して行なう変更は、管理するのが更に困難である。これは、ユーザが対話によりこれらの変更を削除することが可能であるからである。更に、保存されたＳＶＧ文書を再度読み出す間、スクリプトは文書を再び変更できる。この問題を解決するため、本発明による方法は、スクリプトのユーザ編集／変更を提供する。
【００４３】
多くのＳＶＧ文書において、初期化スクリプトは、新しいグラフィック要素の追加及び／又は存在する要素の変更に使用される。この初期化に干渉しないことが重要である。このため、スクリプトは編集の開始時に停止されない。行なわれた変更は、「変化」イベント（スクリプトによる要素作成は別に検出される）により検出され、異なる方法で考慮される。
【００４４】
例えば、新しい要素に関しては、それら要素は、新しい要素（スクリプトにより作成された要素）としてマークされ、新しい要素ではない場合には、全ての編集済みグラフィック要素を含むグラフィック要素に配置される。
別の例において、属性変更／追加に関連する場合、それら属性が初期化スクリプトにより変更されることが（管理データ名前空間を介して）示される。
【００４５】
初期化スクリプトにより作成／変更されたグラフィック要素の特定の変更が許可される。ユーザがそのような要素を変更したい場合、ユーザは、それら変更が保存段階後に必ずしも保存されないことを警告される。単純な変更（属性又は要素の値の変更）の問題である場合、変更はスクリプトの形式で書かれ、この新しいスクリプトを示す属性（管理データ名前空間における）を変更済み要素に追加する。そして、逆変換は、このスクリプトを、初期化スクリプトの最後に呼び出されるスクリプトに追加する。
【００４６】
逆変換中に、初期化スクリプトにより作成されたＸＭＬ要素が除去される。従って、ＸＭＬ要素は除去されたとしてラベル付けされる。
【００４７】
ＳＶＧ言語は、ＳＭＩＬ（同期マルチメディア統合言語）と呼ばれる言語の特定の機能をサポートする。これは、マルチメディアドキュメントアニメーション形式である。このアニメーションは、グラフィック要素内で、〈animate/〉、〈animateMotion/〉、〈animateColor/〉及び〈set/〉要素の形でもたらされる。文書編集を容易にするため、直接変換は、要素を維持又は停止のいずれが要望されるかを定義可能にするパラメータを有する。例えば、その名前空間がＳＶＧの名前空間ではなく管理情報に対して規定された名前空間である要素に、そのようなパラメータを取り入れることにより、要素を維持又は停止のいずれが要望されるかを定義可能にする。従って、逆変換はそれらの要素を再統合できる。
【００４８】
ユーザは、ＳＶＧ文書の全て又は一部における実行されるべき動作を実行可能にする文書に対応するＵＲＩを入力する。このＵＲＩは、スクリプト（ＸＳＬＴ、JavaScript）又はＷＳＤＬ（ウェブサービス記述言語）型の文書を指し示し、これらは、ＳＶＧデータフラグメントで実行され得る処理を規定する。ユーザは、編集済みＳＶＧ文書の変更されるべき部分を選択する。プログラムは、スクリプト／ウェブサービスを実行するスクリプトを開始する。スクリプトは、結果を検索し、その結果をＳＶＧ文書に追加する。例えば、入力されたＳＶＧ文書のその部分に置き換えられることにより追加される。
【００４９】
直接変換（図１のステップＥ１１０）は、逆変換（図１のステップＥ１４０）に有用な情報を初期化する。編集済みＳＶＧ文書に追加されるスクリプトにより、ユーザ対話に従った最新の状態にこの情報を維持できる。逆変換は、ユーザの操作により変更されたＳＶＧ文書を取得し、オリジナルの編集済みＶＧ文書に類似のフォーマットに戻すために、そのＳＶＧ文書を変換する。これを行なうため、逆変換は、結果の文書を構成するのに追加の上記情報を使用する。
【００５０】
図５を参照すると、ステップＥ５００において、逆変換は、処理されるべきＸＭＬノードを検索する。ステップＥ５０５において、ノードが初期化スクリプトによって変更又は作成されたかがテストされる。初期化スクリプトによって変更又は作成された場合、変更スクリプトが存在するならば、それを検索する（ステップＥ５１０）。他方、初期化スクリプトによって変更も作成もされていない場合はステップＥ５１５に直接進む。ステップ５１５では、ノードが除去されるか否かがテストされる。ノードが除去される場合、ステップＥ５２０に進む。子ノードに対応する全ての初期化後の変更スクリプトが検索され、初期化スクリプトの最後に追加される。その後、次のノードに直接進む。タグのみが除去されるノードを、通常処理されなければならない子と分離することにより、処理を洗練させることができる。この場合、全ての子が検索され、処理されるべきノードの一覧表に配置される。
【００５１】
ノードが除去されるべきものでない場合、ステップＥ５２５に進む。
ステップＥ５２５において、ユーザによるあらゆるノードの変更に関してテストが行なわれる。変更がない場合は、元のＸＭＬノードが検索され（ステップＥ５３０及びステップＥ５３５）、文書に追加される。こうして当該ノードに対する処理が終了し、次のノードの処理へ進む。
【００５２】
ノードに変更が加えられていた場合、又は元のＸＭＬノードが占有されていない場合、ステップＥ５４０に進む。ノードに対応する要素が追加され、直接変換により属性が作成された場合には、管理データ名前空間の属性及び識別属性を除去するために、それら属性がフィルタリングされる。ノードが子を有する場合（ステップＥ５４５）、各子が再帰的に処理される（ステップＥ５５０）。ノードが子を有さない場合、ノードの値が処理される（ステップＥ５６５）。このステップは、スクリプトの起動／停止に対応するテストが除去される場合に、スクリプトノードの場合を除いて、値を複写することから構成される。その後、アルゴリズムが終了する（ステップＥ５６０）。
【００５３】
文書が変換されると、最終ステップは、直接変換で格納された情報が追加される〈SVG/〉要素にその文書を統合することから構成される。
例えば、処理される読み出しバージョンの文書ＩＳＶＧ１は、以下のＳＶＧ文書に対応する。
【００５４】
〈svg width="250" height="250"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:nsvg="http://example.com/nonsvgns"〉
〈g id="Group" style="stroke-width:4;stroke-antialiasing:false"〉
〈image xlink:href="image.jpg" x="10" y="10" width="40" height="40"/〉
〈text style="font-size:12;fill-opacity:1" x="50" y="1O"〉
My SVG image
〈/text〉
〈/g〉
〈script type="text/ecmascript" xlink:href="myscript.js"/〉
〈/svg〉
【００５５】
書き込みモードにおいて、文書ＩＳＶＧ２は以下の命令に対応する。
【００５６】
〈svg width="1600" height="1600" viewBox="0 0 1600 1600"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:nsvg="http://example.com/nonsvgns"〉
〈g id="nsvg:svg_image"〉
〈!-- 次の要素がソース画像をカプセル化する --〉
〈g id="nsvg:wrapper" url="http://example.com/servlet/Update?id=10" switch="true" onmouseup="on_mouseupp(evt)" onload="init(evt)"〉
〈g id="Group" style="stroke-width:4;stroke-antialiasing:false"〉
〈image xlink:href="image.jpg" x="10" y="10" width="40" height="40" /〉
〈text style="font-size:12;fill-opacity:1" x="50" y="10"〉
My SVG image
〈/text〉
〈/g〉
〈/g〉
〈g nsvg:remove="true"〉
〈!-- 対話及び表示のためのＵＩを含む
特にＳＶＧオブジェクト選択のためのＧＵＩを含む
特にＳＶＧオブジェクト変更のためのＧＵＩを含む --〉
〈text x="90" y="10" style="text-anchor:left;font-size:12"〉X=〈/text〉
〈!-- 他のＳＶＧ要素 --〉
〈/g〉
〈/g〉
〈script type="text/ecmascript" nsvg:remove="true"〉
〈!-- nsvg:removeは逆変換をガイドする情報である --〉
〈![CDATA[
function on_mouseup(evt)
{
// ドラッグアンドドロップ、オブジェクトの配列の再定義等の
// ユーザとの対話を許可する
}
〈!-- 他のJavaScript関数 --〉
]]〉
〈/script〉
〈script type="text/ecmascript" nsvg:href="myscript.js" nsvg:remove="initThere"〉
〈!-- 使用不可能な機構を有するインラインスクリプト関数 --〉
〈/script〉
〈/svg〉
【００５７】
この例において、変換ルールは、ＸＳＬＴスクリプトの形式で規定される。このスクリプトは、特に、ユーザとの対話を可能にする要素（ドラッグアンドドロップを使用するグラフィックオブジェクト移動機能）を含む。
【００５８】
〈xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns="http://www.w3.org/2000/svg"〉
〈xsl:template match="*"〉
〈svg〉
〈xsl:copy-of select="@*"/〉
〈xsl:attribute name="width"〉1600〈/xsl:attribute〉
〈xsl:attribute name="height"〉1600〈/xsl:attribute〉
〈xsl:attribute name="viewBox"〉0 0 1600 1600〈/xsl:attribute〉
〈xsl:if test="not(@id)"〉
〈xsl:attribute name="id"〉root〈/xsl:attribute〉
〈/xsl:if〉
〈g id="nsvg:wrapper" switch="true" onmouseup="on_mouseupp(evt)" onload="init(evt)"〉
〈xsl:attribute name="url"〉...〈/xsl:attribute〉
〈xsl:for-each select="*[not(name()='script')]"〉
〈xsl:call-template name="transformNode"/〉
〈/xsl:for-each〉
〈g nsvg:remove="true"〉
〈text x="90" y="10" style="text-anchor:left;font-size:12"〉X=〈/text〉
〈!-- 他のＳＶＧ要素 --〉
〈/g〉
〈/g〉
〈script type="text/ecmascript" nsvg:remove="true"〉
〈!-- nsvg:removeは逆変換をガイドする情報である --〉
〈![CDATA[
function on_mouseup(evt)
{
// ドラッグアンドドロップ、オブジェクトの配列の再定義等の                      // ユーザとの対話を許可する
}
〈!-- 他のJavaScript関数 --〉
]]〉
〈/script〉
〈!-- 他のＳＶＧ要素 --〉
〈/svg〉
〈/xsl:template〉
〈xsl:template name="transformNode"〉
〈-- ＳＶＧの各子に対する変換ルール --〉
〈xsl:template〉
〈/xsl:stylesheet〉
【００５９】
更に、本実施形態において、書き込みルールは、削除、挿入、変更又はそれに同種のルールの一例である。
【００６０】
図６を参照すると、本発明の方法に従って、ＳＶＧ文書の処理を可能にするソフトウェアを実現するための装置が示される。
装置は、例えば、マイクロコンピュータ１０であってもよい。マイクロコンピュータ１０は、グラフィックスカードに接続されたデジタルカメラ１０７（又はスキャナ、あるいは、任意の画像収集手段又は記憶手段）等の種々の周辺装置に接続され、本発明に従って、処理される情報を提供する。
【００６１】
装置１０は、デジタル情報を送信できるネットワーク１１３に接続された通信インタフェース１１２を含む。また、装置１０は、ハードディスク等の記憶手段１０８を含む。装置１０は、フロッピー（登録商標）ディスク装置１０９を更に含む。ディスク１０８のようなフロッピー（登録商標）ディスク１１０は、本発明のソフトウェア構成データ及び本発明のコードを含むことができる。それらは、装置１０により読み出されるとハードディスク１０８に格納される。変形例によると、装置が本発明の実現を可能にするためのプログラムが、読み出し専用メモリ１０２（図中、ＲＯＭと呼ばれる）に格納される。同様のことがコーディング手順に適用される。第２の変形例において、プログラムは、通信ネットワーク１１３を介して上述と同様の方法で格納されるために受信される。
【００６２】
装置１０は、Ｉ／Ｏカード１０６によりマイクロフォン１１１に接続される。本発明により処理されるデータは、この場合、音声信号となる。
この装置は、画面１０４を有する。画面１０４は、処理される情報の表示、あるいは、キーボード１１４又は任意の他の手段（例えば、マウス）により、ある処理モードをパラメータ化できるユーザとのインタフェースとしての役割を可能にする。
【００６３】
中央装置１００（ＣＰＵと呼ばれる）は、本発明の実現に関係する命令を実行する。命令は、読み出し専用メモリ１０２又は他の記憶素子に格納される。起動中、ＲＯＭ１０２等の不揮発性メモリの１つに格納されたプログラム及び処理手順は、ランダムアクセスメモリＲＡＭ１０３に転送される。こうして、ＲＡＭ１０３は、本発明の実行形式のコード及び本発明の実現に必要な変数を含むことになる。変形例において、処理手順は、異なる場所に格納される。これは、通信ネットワーク１１３又はフロッピー（登録商標）ディスク１１０により送信された新しい手順を追加することにより、本発明を改良することが可能だからである。当然、フロッピー（登録商標）ディスクは、ＣＤ−ＲＯＭ又はメモリカード等の任意のデータ媒体に置換できる。
【００６４】
通信バス１０１は、マイクロコンピュータ１０の異なるサブ要素間、又はマイクロコンピュータ１０に接続されたサブ要素間の通信を可能にする。バス１０１の表現は限定するものではなく、特に、中央装置１００は、直接又はマイクロコンピュータ１０の別のサブ要素を介して１０の任意のサブ要素に命令を通信できる。
ここで説明される装置は、本発明において上述した処理の全て又は一部を含むことができる。
【図面の簡単な説明】
【００６５】
【図１】本発明による編集方法の主なステップを示すフローチャートである。
【図２】本発明による変換ステップを示すフローチャートである。
【図３】本発明によるＳＶＧ処理ステップを示すフローチャートである。
【図４】本発明によるスクリプトノード変換ステップを示すフローチャートである。
【図５】本発明による逆変換ステップを示すフローチャートである。
【図６】本発明による方法の実現を可能にする装置を概略的に示すブロック図である。
【図１】
2007510194.tif 000003
【図２】
2007510194.tif 000004
【図３】
2007510194.tif 000005
【図４】
2007510194.tif 000006
【図５】
2007510194.tif 000007
【図６】
2007510194.tif 000008
【国際調査報告】
2007510194.tif 000009
2007510194.tif 000010
2007510194.tif 000011