Ad

英語フランス語スペイン語

オンラインの無料エディター| DOC > | XLS > | PPT >


OffiDocsファビコン

言語構成要素の文法チェック

OffiDocs は OpenOffice をオンラインで提供しているため、Lingucomponent Grammar Checking に関心があります。その目標は、英語およびその他のサポートされている言語の文法チェッカーを設計、開発、および実装することです。 バージョン 3.0 以降、文法チェッカー API が OpenOffice.org で利用可能になりました。

文法チェックは、テキストの反復およびマークアップ プロセスの特定の実装と見なされます。スペル チェックやスマート タグなどの他の反復/マークアップ プロセスは、基本的に同じように機能します (ただし、現在はこのように実装されていません)。 次のドキュメントで文法チェックが言及されている場合、これはテキスト マークアップのより一般的なタスクのプレースホルダーと見なすことができます。 テキスト反復を実行するオブジェクトは、使用される特定のマークアップ プロセスを認識しているため、基本的に、そのプロセスのニーズに合わせて反復を微調整することができます。

文法チェックプロセスは、

- チェックする XNUMX つまたは複数のドキュメント

- それぞれが少なくとも XNUMX つの言語をサポートする、XNUMX つ以上の文法チェッカーの実装。

- XNUMX つまたは複数の文法チェック ダイアログ (ドキュメントごとに最大 XNUMX つのインスタンス)

- 間違っているとマークされたテキストをクリックしたときの XNUMX つのコンテキスト メニュー

- 一度に (任意のドキュメントの) XNUMX つの文をチェックする、シングルトンとして実装されたグローバルな文法チェック イテレータ (すべてのドキュメントに共通)。

- GUI をブロックせずにチェックを実行するために使用される文法チェッカーごとに XNUMX つのスレッド オブジェクト

- ドキュメントのテキストを繰り返し処理するオブジェクト。XNUMX つのオブジェクトは、要求された単一の文法チェック タスクを表します。

- ドキュメントの具体的な構造を抽象化し、部分文字列の位置と長さを記述する単純なテキスト文字列と整数値によってテキストへのアクセスを提供するテキスト ドキュメント (「フラット パラグラフ」) 内のテキスト ブロックを表すオブジェクト。

 

オブジェクトとそのインターフェース

XNUMXつの部分が連携しています。 最初の部分はチェック対象のドキュメントから取得され、特定の種類のドキュメント (Writer や Calc など) に固有の実装です。 ドキュメントのテキストへのアクセスをカプセル化します。 文法エラーのチェックを希望するドキュメントは、インターフェイス com.sun.star.text.XFlatParagraphIteratorProvider をサポートする必要があります。 このインターフェースを通じて、それ自体が com.sun.star.text.XFlatParagraph を実装するオブジェクトを返す com.sun.star.text.XFlatParagraphIterator を実装するオブジェクトを提供できなければならない。 後者のインターフェースは、com.sun.star.text.XTextMarkup から派生しています。 以下では、これらのオブジェクトを「フラット パラグラフ イテレータ」(FPIterator) および「フラット パラグラフ」(FP) と呼びます。 「段落」という単語が使用されている場合、これは「FP」も意味しますが、両方が同じであるとは限らないため、ドキュメント内の実際の段落ではありません。

FP は、ドキュメント コンテキストのように必ずしも段落ではなく、それらのコレクション (リストなど) である可能性があり、フロー テキストだけでなく、テキスト フレーム、ヘッダー、フッターなどの他のテキスト コンテンツも含まれます。ドキュメント コアは、そのような FP オブジェクト オブジェクトを効率的に処理できます。これは、ドキュメント固有の実装です。 FP は、完全な内部テキスト構造またはその属性を明らかにしません。その内容は、完全なテキスト ブロックを含む文字列としてのみアクセスできます。

FPIterator は、一緒にドキュメント テキスト コンテンツを構成するすべての FP オブジェクトを反復処理できるようにするオブジェクトです。 段落が反復される順序は任意であり、FPIterator の実装の詳細です。 「通常の」テキスト コンテンツは通常、読み方向に提供する必要がありますが、ヘッダーやフッター (一度だけ存在するがすべてのページで繰り返される) やテキスト フレーム (フロー テキストに埋め込まれている可能性がある) などの他のテキストがどのように適合するかは、あらかじめ決められていません。 テキストの反復処理は、ドキュメント全体を処理するテキスト マークアップ プロセスに常に割り当てられます。 したがって、反復はドキュメントの最後でラップアラウンドし、すべての段落が特定のマークアップ プロセス (文法チェックなど) の「チェック済み」としてマークされる前に終了しません。 「チェック済み」としてマークされた段落は、繰り返しでスキップされます。 したがって、FPIterator のクライアントの場合、それらを使用するのは簡単です。新しい FP オブジェクトが返されなくなるまで要求し、それがどのように実装されているかは気にしません。

2 番目の部分は文法チェッカーです。 文法チェッカーは、インターフェイス com.sun.star.linguistic2.XGrammarChecker を実装するコンポーネントです。 言語ごとに、その言語の文法エラーをチェックできる特定のコンポーネントが存在する場合があります。 構成は、どのコンポーネントがどの言語を担当しているかを示します。 特定のコンポーネントを表す com.sun.star.linguisticXNUMX.XGrammarChecker の実装は、この文法チェック コンポーネントの「プライベート」API をカプセル化します。 このプライベート API は、UNO ベースまたは純粋な Java、CLI または COM インターフェイス、C API など、UNO インターフェイスの実装内で使用またはブリッジできるすべてのものです。 インターフェイスはかなり小さいので、既存の文法チェッカーを OpenOffice.org で使用するためにラップすることはそれほど複雑ではありません。

中間には、他の 2 つを仲介する 2 番目のコンポーネントがあります。 文法チェックプロセスの「ロジック」を実装します。 定義された UNO API によって他の 2 つの部分と対話するため、この中間部分のみが特定のドキュメント タイプまたは文法チェック コンポーネントから独立しています。 com.sun.star.linguisticXNUMX.GrammarCheckingIterator と呼ばれる UNO サービスは、サポートされているすべてのシナリオの文法チェック プロセスを実際に実行するコンポーネントです。 これは、実行中のすべての文法チェック プロセスを制御するシングルトンであり、既存のすべての文法チェック コンポーネントも認識します。 インターフェース com.sun.star.linguisticXNUMX.XGrammarCheckingIterator を実装し、com.sun.star.linguisticXNUMX.XGrammarCheckingResultListener を実装するオブジェクトも提供します。 以下では、このオブジェクトを GCIterator と呼びます。


ラン Chrome Extensions

Ad