Ad

영어프랑스어스페인어

무료 편집기 온라인 | DOC > | XLS > | PPT >


OffiDocs 파비콘

언어 구성 요소 문법 검사

OffiDocs는 온라인으로 OpenOffice를 제공하므로 영어 및 기타 지원되는 언어에 대한 문법 검사기를 설계, 개발 및 구현하는 것을 목표로 하는 Lingucomponent Grammar Checking에 관심이 있습니다. 문법 검사기 API는 버전 3.0부터 OpenOffice.org에서 사용할 수 있습니다.

문법 검사는 텍스트 반복 및 마크업 프로세스의 특정 구현으로 간주되며 철자 검사 또는 스마트 태깅과 같은 다른 반복/마크업 프로세스는 기본적으로 동일한 방식으로 작동할 수 있습니다(현재는 이와 같이 구현되지 않음). 다음 문서에서 문법 검사가 언급된 경우 이것은 텍스트 마크업의 보다 일반적인 작업을 위한 자리 표시자로 볼 수 있습니다. 텍스트 반복을 수행하는 객체는 그들이 사용되는 특정 마크업 프로세스를 알고 있으므로 기본적으로 해당 프로세스의 요구에 맞게 반복을 미세 조정할 수 있습니다.

문법 검사 프로세스는 다음과 같이 구성됩니다.

- 확인해야 할 하나 이상의 문서

- 각각 적어도 하나의 언어를 지원하는 하나 이상의 문법 검사기 구현.

- 하나 이상의 문법 검사 대화 상자(문서당 최대 하나의 인스턴스)

- 잘못된 것으로 표시된 텍스트를 클릭할 때 하나의 상황에 맞는 메뉴

- 싱글톤으로 구현된 전역 문법 검사 반복기(모든 문서에 공통)로, 한 번에 (임의의 문서의) 한 문장을 검사합니다.

- GUI를 차단하지 않고 검사를 수행하는 데 사용되는 문법 검사기당 하나의 스레드 개체

- 문서의 텍스트를 반복하는 개체, 요청된 단일 문법 검사 작업을 나타내는 개체

- 문서의 구체적인 구조를 추상화하고 간단한 텍스트 문자열과 하위 문자열의 위치와 길이를 설명하는 정수 값으로 텍스트에 대한 액세스를 제공하는 텍스트 문서의 텍스트 블록("플랫 단락")을 나타내는 개체입니다.

 

객체와 그 인터페이스

우리는 함께 일하는 세 부분을 가지고 있습니다. 첫 번째 부분은 확인 중인 문서에서 가져오며 특정 유형의 문서(예: 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 개체를 요청하고 구현 방법에 신경 쓰지 마십시오.

두 번째 부분은 문법 검사기입니다. 문법 검사기는 com.sun.star.linguistic2.XGrammarChecker 인터페이스를 구현하는 구성 요소입니다. 각 언어에는 해당 언어의 문법 오류를 확인할 수 있는 특정 구성 요소가 있을 수 있습니다. 구성은 어떤 구성 요소가 어떤 언어를 담당하는지 알려줍니다. 특정 구성 요소를 나타내는 com.sun.star.linguistic2.XGrammarChecker 구현은 이 문법 검사 구성 요소의 "비공개" API를 캡슐화합니다. 이 비공개 API는 UNO 기반 또는 순수 Java, CLI 또는 COM 인터페이스, C API 등 UNO 인터페이스 구현 내부에서 사용하거나 연결할 수 있는 모든 것일 수 있습니다. 인터페이스가 매우 작기 때문에 기존 문법 검사기를 OpenOffice.org에서 사용하기 위해 래핑하는 것이 그리 복잡하지 않을 것입니다.

가운데에는 다른 두 요소 사이를 중재하는 세 번째 구성 요소가 있습니다. 문법 검사 프로세스의 "논리"를 구현합니다. 정의된 UNO API에 의해 다른 두 부분과 통신할 때 이 중간 부분만 특정 문서 유형 또는 문법 검사 구성 요소와 독립적입니다. com.sun.star.linguistic2.GrammarCheckingIterator라는 UNO 서비스는 지원되는 모든 시나리오에 대한 문법 검사 프로세스를 실제로 수행하는 구성 요소입니다. 실행 중인 모든 문법 검사 프로세스를 제어하는 ​​싱글톤이므로 기존의 모든 문법 검사 구성 요소도 알고 있습니다. com.sun.star.linguistic2.XGrammarCheckingIterator 인터페이스를 구현하고 com.sun.star.linguistic2.XGrammarCheckingResultListener를 구현하는 개체도 제공합니다. 다음에서 이 개체는 GCIterator라고 합니다.


달리기 Chrome Extensions

Ad