KR20080086456A - 찾기 및 교체 입력의 파생어를 레버리징하는 찾기 및 교체기능을 갖춘 텍스트 편집 방법 및 시스템 - Google Patents

찾기 및 교체 입력의 파생어를 레버리징하는 찾기 및 교체기능을 갖춘 텍스트 편집 방법 및 시스템 Download PDF

Info

Publication number
KR20080086456A
KR20080086456A KR1020087014519A KR20087014519A KR20080086456A KR 20080086456 A KR20080086456 A KR 20080086456A KR 1020087014519 A KR1020087014519 A KR 1020087014519A KR 20087014519 A KR20087014519 A KR 20087014519A KR 20080086456 A KR20080086456 A KR 20080086456A
Authority
KR
South Korea
Prior art keywords
find
replace
phrase
text
user
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Abandoned
Application number
KR1020087014519A
Other languages
English (en)
Inventor
막심 다니엘
Original Assignee
인터내셔널 비지네스 머신즈 코포레이션
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 인터내셔널 비지네스 머신즈 코포레이션 filed Critical 인터내셔널 비지네스 머신즈 코포레이션
Publication of KR20080086456A publication Critical patent/KR20080086456A/ko
Abandoned legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/268Morphological analysis
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/166Editing, e.g. inserting or deleting

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)
  • Document Processing Apparatus (AREA)

Abstract

사용자에 의해 제공된 초기 찾기 및 교체 어구 쌍으로부터 시작하는 텍스트의 찾기 및 교체 편집 동작을 수행하고, 규칙에 유효한 찾기 어구 및 교체 어구의 모든 파생 쌍들을 확인하기 위하여 초기 찾기 어구와 초기 교체 어구의 각각의 인정가능 변형 형태 정의 규칙을 초기 찾기 및 교체 어구에 적용한다. 찾기 어구 및 교체 어구의 파생 쌍들은 초기 찾기 및 교체 어구들의 변형 형태에 대응한다. 그러면, 파생 쌍들의 찾기 어구의 텍스트에서의 각 매칭에 대해, 사용자에게 텍스트의 교체를 위한 파생 쌍들을 제안한다. 텍스트 편집기의 일상적인 그래픽 사용자 인터페이스를 통해 또는 텍스트 기반의 단말기 사용자 인터페이스를 통해 사용자 인터페이스가 수행된다. 찾기 및 교체 동작은 찾기 및 교체 명령어를 포함하는 프로그램의 실행을 통해서 수동적일 수 있거나 또는 프로그램의 실행동안 사용자에게 자신의 선택을 달라고 요청함으로써 상호작용적일 수 있다.
코드, 오브젝티브, 클래스, 찾기, 교체, 어구, 텍스트, 편집, 파생, 변형, 매칭.

Description

찾기 및 교체 입력의 파생어를 레버리징하는 찾기 및 교체 기능을 갖춘 텍스트 편집 방법 및 시스템{A METHOD AND SYSTEM FOR EDITING TEXT WITH A FIND AND REPLACE FUNCTION LEVERAGING DERIVATIONS OF THE FIND AND REPLACE INPUT}
본 발명은 일반적으로 텍스트 편집에 관한 것이며, 보다 구체적으로는 개선된 '찾기 및 교체 기능'에 관한 것이다.
프로그래머들은 자신의 요구를 거의 만족시키는 관련 코드를 복사하고, 그런 다음 이 일부를 교체하여 새로운 코드의 최적의 오브젝티브들을 직접 삽입함으로써 매우 자주 새로운 기능/방법을 자신의 소스 코드에 추가시키곤 한다. 특히, (클래스에서의 속성 또는 방법, 또는 패키지에서의 클래스 또는 클래스와 같은) 콜렉션에서의 엘리먼트에 적합한 패턴들은 현존하는 엘리먼트에 대한 코드를 복사하고, 그런 후 생성할 엘리먼트의 명칭으로 이 현존하는 엘리먼트의 명칭을 교체함으로써 전파된다.
예를 들어, 생성될 개념 세그먼트(concept segment)에 대해 바람직할 것으로 보이는 특성을 갖는 데이터 엘리먼트(data element)를 다루는 이하의 클래스를 상정하면, 프로그래머는 일반적으로 DataElement.java 화일 내용을 Segment.java 화일로 복사하고, 그런 다음 Segment.java 화일을 편집하여 데이터 엘리먼트에 대한 모든 참조를 세그먼트에 대한 참조로 교체할 것이다.
public class DataElement {
public DataElement () {
....
}
private String DEFAULT_DATA_ELEMENT_NAME = "dummyName";
private String dataElementName = DEFAULT_DATA_ELEMENT_NAME;
/** Return the data element name. */
public String getDataElementName () {
return dataElementName;
}
}
이와 같이 매우 작은 예시에서, 프로그래머는 좌측 열 아이템을 이들의 우측 열 대응 아이템으로 적소에 교체시키기 위하여 약간의 편집처리를 할 것이다.
data element segment
DATA_ELEMENT SEGMENT
dataElement segment
DataElement Segment
소스의 길이가 커지면, 프로그래머는 편집기(윈도윙 시스템을 이용한 편집기이든지 아니든지 간에, 찾기 및 교체 명령어는 자주 이용가능하다)에서 이용가능한 찾기 및 교체 기능을 사용하는 것으로 전환할 것이다. 그러면 단일 개념 교체('논리적으로 데이터 엘리먼트를 세그먼트로 교체')에 대해, 프로그래머는 네 개의 찾기 및 교체 명령을 착수하게 되는 문제점이 발생된다.
이 문제에 대한 종래의 해결책들은 다음과 같다:
- 개념의 상이한 형태들간을 구별해주기 위한 활자 매칭 옵션(match case option)의 사용; 이것은 유용하지만, 이것은 개개의 사례별로 프로그래머에게 최종결정권을 남겨두면서 문제를 단지 세분화할 뿐이다.
- 활자 매칭 옵션을 사용하지 않는 경우, (마이크로소프트(RTM) 워드 2000과 같은) 몇몇의 교체 툴이 간단한 활자 매칭을 추론할 수 있다; 예를 들어, 'data element'를 'segment'로 교체하라는 요청은 'Data element'를 'segment'로 교체하는 제안을 초래할 것이고, 그러면 이것을 'Segment'로 효과적으로 교체시킨다; 'data element'를 'segment element'로 교체하도록 요청받은 동일한 툴은 'data Element'를 'segment Element'로 교체하지 못하지만 그 대신에 'segment element'를 생성함을 유념해둔다.
- 복잡한 통상적 어구 매칭(expressions match); VI, 이맥(Emac) 또는 기타 강력한 편집기를 이용하여, 숙련된 프로그래머들은 다방면의 교체 요구들을 이행할 수 있다; 이것은 복잡한 교체 어구들을 요구하며, 이에 따라 실행도중에 에러를 유발하기 쉬운 방법이 되고, 여전히 고난이도성 활자들을 해결하지는 못하고 있다.
이 해결책들의 공통적인 한계는 프로그래머가 개념의 각 변형체를 명시적으로 지정하면서 이 해결책들이 희망하는 최종 결과를 갖기 위하여 시나리오를 여러 번 이용하는 것을 포함한다는 점이다. VI 또는 이맥은 오직 DATA_ELEMENT 과 같은 활자들을 다룰 수 있지만 기타의 활자를 위한 기능은 갖고 있지 못하다.
만약 위에서 고려된 문제를 인스턴스들간의 차이점을 관리하는 몇가지 파라미터들에 적용되는 통상적인 프로그래밍 패턴을 얻기 위한 보다 일반적인 쟁점까지 확대한다면, 최종 코드 양상(예를 들어 일부 소스 툴은 템플릿을 제공하며 코드의 일부를 생성할 수 있다)에 근접할 수 있는 템플릿으로부터, 또는 (UML과 같은) 보다 개념적인 표기로부터 시작하여, 이를 위한 여러 방법들이 존재한다. 하지만, 이들은 동일 시나리오를 따르지 않는다. 시간의 경과와 함께 프로그래머에 의해 개발된 툴 또는 라이브러리내에 필요한 패턴이 존재하는 경우, 이들은 완벽하게 최적화된다. 프로그래머가 새로운 수단을 개척하고 신종 템플릿을 개량하는 경우, 복사/붙여넣기/찾기 및 교체 시나리오는 더욱 더 당연한 사항이 된다.
찾기 및 교체 단계 시나리오를 수행하는 다른 방법은 고려된 프로그래밍 언어 의미를 인식하는 리팩토링(refactoring) 툴을 포함하는 것이다. 예를 들어, DataElement 클래스를 다른 패키지내로 복사하고, 그런 다음 리팩토링 툴에게 이것을 Segment로 개명할 것을 요청한다. 이것은 클래스 명칭, 구성자 명칭, 및 (요청된 경우) 심지어 클래스 명칭에 대한 참조 코멘트까지도 적절하게 (그리고 임의의 텍스트 기반 찾기 및 교체 툴 보다 정확하게) 변경할 것이지만, dataElement와 같은 파생 형태들을 매칭시키지는 못할 것이다. 또한, 의미론적 레벨에서 작업하는 것은 항상 바람직하지만은 않거나 또는 심지어 가능하지도 않는다. 예를 들어, 만약 새로운 클래스가 기존 패키지보다는 동일 패키지내에서 생성된다면, 개명 프로 세스의 일부를 수행하기 직전에 이것이 컴파일하도록 하는 방법은 없다.
예를 들어, 마이크로소프트 (RTM) 워드 2000 편집기는 교체에 있어서의 초기 활자의 적응적 관리성을 제공한다. 이 편집기는 대문자가 만약 찾고자 하는 단어의 첫번째 위치에 있는 경우 부분적인 대문자 지원을 제공한다. 통상적 어구상에서 찾기 및 교체를 수행할 때에, 대문자 글자가 검색된 열에 존재하지 않는 경우 적절한 대문자 글자 교체를 지정하는 것은 어렵다; 'data element'를 찾고 'segment element'로 교체하는 것에 적용된 이러한 찾기 및 교체는 Data element에 대해서는 동작할 것이지만, data Element에 대해서는 동작하지 않을 것이다.
'자연어에 적용되는 형태적인 검색 및 교체'의 명칭을 갖는 마이크로소프트사의 미국 특허 제5,873,660호에서는 동일 어근을 갖는 단어 형태 세트를 검색함으로써 단어의 변형 형태를 찾는 것을 설명한다. 이것은 찾기 및 교체 단어가 음성의 일부와 매칭됨을 내포한다. 찾기 및 교체 입력 단어의 변형 형태를 찾기 위한 이러한 해결책은 자연어로 기재된 텍스트에서는 전형적인데, 그 이유는 언어의 문법적 규칙을 적용함으로써 변형 형태가 찾기 및 교체 입력 단어로부터 파생될 수 있기 때문이다. 하지만, 예컨대 프로그래밍 언어인 텍스트의 찾기 및 교체 입력 단어의 변형 형태는 이러한 해결책으로는 찾아낼 수 없는데 그 이유는 변형 형태들이 참조되는 알려진 문법 규칙에 의한 찾기 및 교체 입력 단어와 관련이 없는 상이한 어휘 통사(lexico-syntactic) 형태들이기 때문이다.
더군다나, 미국 특허 제5,873,660호와 같은 자언어에 관한 종래 기술의 해결책들은 사전을 기초로 한다. 사전은 하나의 주어진 단어에 대한 모든 변형된 단어 형태를 저장한다. 사전을 저장하는 데이터베이스의 크기 및 이러한 데이터베이스를 유지하는 비용은 시간이 경과함에 따라 매우 비현실적이 된다. 프로그래밍 언어의 경우에서와 같이, 단어 보다는, 단어뿐만이 아니라 어구에도 적용되는 찾기 및 교체 기능을 요구하는 경우에 데이터베이스 진화의 크기 및 제어는 더욱 더 비현실적이 된다. 이 경우 사전은 각각의 존재가능한 단어 조합이 되는 각 어구에 대한 변형 형태를 포함해야만 한다.
따라서, 원 패스로 수행되고 프로그래밍 언어로 기재된 텍스트에 적용되거나 또는 찾기 또는 교체 입력 단어 또는 어구의 변형 형태가 알려진 자연어의 문법론적 또는 의미론적 규칙을 따르지 않는 단어 또는 어구가 되는 기타 유형의 텍스트에 대한 찾기 및 교체 편집 기능이 필요로 한다. 이러한 언어들로 인하여, 찾기 또는 교체 입력 단어 또는 어구의 변형 형태는 동일 개념에 대해 상이한 공인된 어휘 통사 체계일 수 있다.
그러므로, 본 발명의 목적은 언제나 자연어이지만은 않은 언어로 기재된 텍스트상에서, 찾기 및 교체 입력 단어 또는 어구 및/또는 이 입력의 변형 형태의 찾기 및 교체를 원 패스로 수행하는 방법을 제공하는 것이다.
본 목적은 사용자에 의해 제공된 초기 찾기 및 교체 어구 쌍으로부터 시작하여 텍스트의 찾기 및 교체 편집 동작을 수행하고, 규칙에 유효한 찾기 어구 및 교체 어구의 모든 파생 쌍들을 확인하기 위하여 초기 찾기 어구와 초기 교체 어구의 각각의 인정가능 변형 형태 정의 규칙을 초기 찾기 및 교체 어구에 적용하는 청구항 제1항 내지 제10항의 방법, 컴퓨터 프로그램 및 시스템에 따라 달성된다. 찾기 어구 및 교체 어구의 파생 쌍들은 초기 찾기 및 교체 어구들의 변형 형태에 대응한다. 그런 후, 파생 쌍들의 찾기 어구의 텍스트에서의 각 매칭에 대해, 사용자에게 텍스트에서의 교체를 위한 파생 쌍들을 제안한다. 텍스트 편집기의 일반적인 그래픽 사용자 인터페이스를 통해 또는 텍스트 기반의 단말기 사용자 인터페이스를 통해 사용자 인터페이스가 수행된다. 찾기 및 교체 동작은 찾기 및 교체 명령어를 포함하는 프로그램의 실행을 통해서 수동적일 수 있거나 또는 프로그램의 실행동안 사용자에게 자신의 선택을 달라고 요청함으로써 상호작용적일 수 있다.
본 발명의 찾기 및 교체 방법은 자연어를 인식하지 못하는 순수 어휘 통사 변환을 적용함으로써 변형된 형태를 선택한다. 본 방법은 단어 또는 어구가 자연어로 기재되지만 대응 자연어의 문법적 규칙과 상관없는 텍스트로 사용될 수 있는 경우 임의의 텍스트 유형에 적용된다.
본 발명의 방법은 특히 프로그래밍 환경에서 필요로 하는 것으로서, 단일 개념의 다중 구문 형태를 위한 통합된 찾기 및 교체 기능을 제공한다; 다른 해결책들은 단일 개념의 응집된 상이한 구문 형태들 전체를 서로 링크시키지 않는다.
찾기 및 교체는 다중 상호작용대신에 단일 상호작용내에서 수행된다; 사용자는 오직 하나의 찾기 및 교체 세션을 착수하기만 하면 된다; 다른 해결책들은 여러 패스들이 수행될 것을 요구한다.
본 발명의 바람직한 실시예의 해결책을 통해, 단어 또는 어구의 인정가능 변형 형태 정의 규칙 세트만이 저장된다. 따라서 찾기 및 교체 입력 단어 또는 어구의 변형 형태를 저장하기 위한 방대한 사전을 사용하지 않게 된다.
본 발명은 프로그래밍 툴보다는 기타 편집 툴에 이로울 수 있다. 이것은 찾기 및 교체 개념만큼 본질적으로 일반적이다. 특히 15년 이래로, 다중 형태의 긴 명칭의 매우 일관된 프로그래밍 사용을 매우 강조해왔으며, 각각의 명칭 형태는 프로그래머에게 어떤 정보를 실어서 전달해주고, 명칭 그 자체는 개념 정보를 싣고 있는 것이 사실이다. 보다 최근에, 여러 소프트웨어 개발 방법들은 프로그램 소스 코드의 역할을 궁극적인 보호 대상으로서 강조해왔고, 이러한 코드 개발 방법의 탐구를 장려해왔다. 이로 인하여 본 발명은 프로그램 편집기를 제1 타켓부문으로 설정한다. 프로그래밍 분야 이외의 예시는 다음과 같다.
영역: 성(姓)을 이용한 전기, 일대기.
원문:
'The Duke of Ellington was born in... Ellington is especially known for his... '
규칙:
- Title of Name -> The Title of Name
-> the Title of Name
-> Name
적용:
- find and replace clause: ('Duke of Ellington', 'Prince of Wales ' )
- result :
'The Prince of Wales was born in... Wales is especially known for his ... '
본 발명의 해결책은 방대한 언어 의존 데이터베이스를 필요로 하지 않으며, 보다 단순한 알고리즘을 사용하여 보다 완벽한 효과를 달성한다.
본 발명의 해결책은 현존하는 찾기 및 교체 기술들 대부분의 기능들과 결합됨으로써 개선될 수 있다. 예를 들어, 본 발명의 해결책은 매칭을 건너뛰거나 또는 교체 어구로 교체하기 위한 단말기 사용자에게 주어지는 종래의 선택성과 완전히 호환된다. 또한 본 발명의 해결책은 찾기 어구에서의 활자를 보존할지에 대한 옵션, 단어 전체만을 매칭하거나 또는 단어의 일부 매칭들을 수용할지에 대한 옵션과 호환되며, 보다 일반적으로는 찾기 어구에서의 통상적 어구의 사용과 호환된다. 또한, 연산처리 환경에 의해 단어가 키워드로서 사용되지 않는 특정 상황에서, 본 발명의 해결책은 대응하는 자연어의 문법적 규칙을 따르는 텍스트의 단어에 대한 변형 형태들이 존재한다면 이를 찾기 위한 종래 임의의 기타 기존 해결책과 결합될 수 있다.
기타 장점들은 아래와 같다:
- 본 발명의 찾기 및 교체 기능은 사용자가 스스로 생성하도록 요구하는 것 없이 변형체들을 생성한다. 이것은 시간과 타이핑 에러를 덜어준다; 또한 이것은 사용자가 찾기 및 교체를 수행할 때에 이것을 고려하지 않는 경우에 특정 변형 형태가 텍스트에 잔존하게 되는 것을 막게 해준다.
- 본 발명의 찾기 및 교체는, 예컨대 프로그래밍 코드 텍스트에 적용된 경우, 프로그램의 논리적 표현은 고려하지 않고 오직 텍스트 단어만을 고려하기 때문에, (개발 프로세스에서 자주 발생되는) 불완전하고 부정확한 프로그램 텍스트를 받아들일 수 있게 된다; 다른 가장 강력한 해결책들 중 일부는(특히 리팩토링 툴) 프로그래밍 에러에 관대하지 않다.
- 본 발명의 해결책은 현존하는 찾기 및 교체 기능 아키텍쳐내로 통합될 수 있는데, 이것은 한편으로는 본 발명의 실시 비용을 낮추고, 다른 한편으로는 사용자를 위해 단순화되도록 해준다.
- 본 발명의 찾기 및 교체 방법은 유연성있고, 확장가능하며 사용자맞춤화 방식으로 동작된다; 단말기 사용자 조직은 본 해결책을 회사, 부서, 팀, 및 개인별 필요에 따라 맞춤화할 수 있다.
- 본 발명의 동작 모드는 프로그래머 또는 다른 부문의 사용자가 매우 수월하게 이해할 수 있다.
- 상술한 바와 같이, 본 발명의 방법은 다수의 프로그래밍 언어들에 적용되며, 가능하게는 프로그래밍 범위를 넘어서는 기타 다른 형식언어들(formal language)에도 적용된다.
도 1은 본 발명의 바람직한 실시예에 따른 방법의 시스템 환경이다.
도 2는 본 발명의 바람직한 실시예를 구성하는 구성부 및 그 인접 환경을 도시한다.
도 3은 본 발명의 바람직한 실시예에서 구현되는 찾기 및 교체 동작의 순서 도이다.
도 4는 도 3의 전환 규칙을 적용하는 단계(320)의 존재가능한 실시예의 상세도이다.
도 5는 그래픽 사용자 인터페이스를 이용한 본 발명의 바람직한 실시예의 설명이다.
도 1은 본 발명의 바람직한 실시예에 따른 소정의 방법의 시스템 환경을 도시한다. 본 발명의 바람직한 실시예는 컴퓨터상에서 실행되는 소프트웨어 프로그램이다. 텍스트 편집기(120)가 그래픽 사용자 인터페이스층(110)을 제공해주는 오퍼레이팅 시스템(100)상에 설치된다. 텍스트 편집기(120)는 단말기 사용자로 하여금 텍스트(121)를 조망하고 변경할 수 있도록 해준다. 여러 기능들 가운데에, 텍스트 편집기(120)는 단말기 사용자에게 찾기 및 교체 다이얼로그(122)에 의해 구현되는 찾기 및 교체 기능을 제공한다. 본 발명은 프로그래밍 지향 찾기 및 교체 확장부(123)에 의해 찾기 및 교체 다이얼로그(122)의 기능을 확장하며, 이 찾기 및 교체 확장부(123)의 입력, 출력 및 작동은 이후에 다른 도면들을 참조하여 본 명세서에서 자세히 설명된다. 본 확장부는 편집기의 찾기 및 교체 기능내에 편성되야만 한다. 이것은 일부 경우에서 외부 API 의 사용에 의해 가능할 수 있지만, 일반적으로, 편집기의 소스 코드가 변경되어야만 할 것으로 예상된다. 후자의 경우, 편집기의 코드가 명확하게 정의된 모듈내에서 조직되지 않은 경우를 제외하고는, 필요로 하는 변경은 주로 상기 편집기의 찾기 및 교체 모듈에 영향을 주어야만 한다. 본 발명은 찾기 및 교체 기능성을 포함하는 사실상의 모든 텍스트 편집 소프트웨어 패키지내에서 구현될 수 있다. 예로서는 통합형 개발 환경과 같이 바람직한 실시예에서 개시된 것 보다는 풍부한 사용자 인터페이스를 갖거나 또는 단말기 지향 텍스트 편집기와 같은 보다 단순한 사용자 인터페이스를 갖는 시스템들이 있다. 사용자가 제안된 텍스트 변경을 선택적으로 소용하거나 거절하도록 해주기 위한 상호작용 수단을 찾기 및 교체 기능이 제공하는 것이 바람직하지만, 이것은 의무적 사항은 아니다.
도 2는 바람직한 실시예의 방법을 수행할 때에 사용되는 구성부들을 도시한다.
텍스트 편집기의 일반적 그래픽 사용자 인터페이스를 통해 또는 텍스트 기반의 단말기 사용자 인터페이스를 통해 사용자 인터페이스가 수행됨을 유념해둔다. 찾기 및 교체 동작은 찾기 및 교체 명령어를 포함하는 프로그램의 실행을 통해 수동적일 수 있거나 또는 프로그램의 실행동안 사용자에게 자신의 선택을 달라고 요청함으로써 상호작용적일 수 있다. 바람직한 실시예에서는, 현존하는 텍스트 편집기의 그래픽 사용자 인터페이스를 통해서 그리고 사용자와의 다이얼로그를 통한 상호작용 방법으로 본 동작이 수행된다.
사용자 인터페이스는 텍스트 편집기내에 있는 찾기 및 교체 다이얼로그(122)를 텍스트(121)에 인터페이싱한다. 찾기 및 교체 다이얼로그는 찾기 및 교체 입력 영역(221)과 교체 다이얼로그 제어 영역(222)을 통해, 텍스트(121)에 대해 작용하고 사용자 입력을 수집한다. 찾기 및 교체 입력 영역(221)은 대부분의 텍스트 편집 소프트웨어 패키지내의 통상적 구성이며, 필수적으로 다음을 포함한다:
- 하나 이상의 단어들로 구성되어야 하는 찾기 어구를 수집하는 입력 영역,
- 찾기 어구로서 형성되는 교체 어구를 수집하는 입력 영역,
- 무옵션에서부터 여러가지 많은 옵션들(활자 매칭 여부, 문서 전체에서 찾기 여부 등)
교체 다이얼로그 제어 영역은 사용자가 찾기 어구를 교체 어구로 교체하기를 원하는지의 여부를 찾기 어구 매칭을 토대로 결정할 수 있도록 해주는 몇가지 그래픽 제어로 통상적으로 구성된다. 이것은 모든 나머지 매칭 및 기타 유사한 개량을 교체하는 옵션에 의해 확장된다. 본 발명의 바람직한 실시예에서는 임의의 주어진 매칭에 대해 가능할 수 있는 모든 교체 어구들을 찾기 어구상에 디스플레이해주는 다중 선택 인터페이스가 추가된다. 규칙 저장소(230)에서 규정된 규칙 및 텍스트(121)의 정확한 내용에 따라, 각각의 찾기 어구는 하나도 없거나 또는 하나 또는 수 많은 매칭들을 가질 수 있으며, 매칭이 존재하는 경우 각각의 매칭은 하나 또는 수 많은 교체 어구들을 야기시킬 수 있다. 많은 교체 어구들이 가능할 때마다, 교체 다이얼로그 제어 영역(222)은 사용자에게 자신이 선호하는 교체 어구를 선택하도록 해주는 (또는 매칭 모두를 건너뛰게 해주는) 가능성을 부여해야한다. 교체 제어 영역에서는 한번에 하나씩 개개별의 찾기 어구들을 리스트화하고, 각각의 찾기 어구마다 존재가능한 모든 교체 어구들을 리스트화한다.
규칙 데이터베이스(230)는 찾기 및 교체 쌍들에 적용되어야하는 전환 규칙을 포함한다. 규칙은 입력 열을 수취해서 전환된 열을 출력으로서 반송해주는 루틴으 로서 일반적으로 구현된다. 거의 어떠한 제약도 전환 규칙에 적용되지 않는다(본질적으로, 규칙은 절대로 실패해서는 안되고, 공백 상태의 열을 반송해서는 안된다). 따라서, 규칙은 프로그래밍 언어이든지 아니든지 간에, 임의의 형식언어의 요구를 받아들일 수 있다. 본 발명의 다양한 실시예들은 이러한 취지로 여러 프로그래밍 언어들을 사용할 수 있거나, 또는 심지어 고차원의 형식언어들(예컨대, 패턴 매칭 엔진)을 사용할 수도 있다. 예시적인 규칙은 입력 열의 모든 알파벳 문자들을 대문자화하고 기타 문자는 변경시키지 않는 자바 방법일 것이다. 이것은 본 발명의 바람직한 실시예 방법의 특색있고 필수적인 부분이다. 찾기 및 교체 쌍 데이터베이스(240)는 찾기 및 교체 다이얼로그(122)내로 기입된 찾기 및 교체 쌍으로의 규칙(230)의 적용에 의해 획득된 찾기 및 교체 쌍들을 복사본없이 저장한다.
변형체 생성 엔진(250)은 초기 찾기 및 교체 쌍들의 변형 형태를 획득하기 위하여 찾기 및 교체 다이얼로그(122)내에 기입된 초기 찾기 및 교체 쌍들의 열에 규칙(230)을 적용한다. 초기 찾기 및 교체 쌍들의 변형 형태는 찾기 및 교체 쌍 데이터베이스(240)에 저장된다. 변형체 생성 엔진(250)은 필수적으로 규칙 데이터베이스(230)의 모든 가능한 규칙들을 초기 찾기 및 교체 쌍에 적용하고, 그런 후 복사본을 제거한다. 복사본 제거는 모든 존재가능한 변형체들의 생성 후 또는 그 생성 도중 적절한 시기에 수행될 수 있다. 변형체 생성 엔진(250) 기술은 다양한 성질을 가질 수 있다. 본 발명의 바람직한 실시예에서, 변형체 생성 엔진(250) 기술은 자바 방법으로서 설명되는 규칙(230)을 레버리징할 수 있는 자바 클래스 또는 클래스의 클러스터일 것이다.
텍스트(121)에서의 매칭 인덱스는 찾기 및 교체 쌍들(240)을 지시하는 찾기 어구를 저장한다. 하나의 예시적인 텍스트에서의 인덱스는 텍스트에서의 매칭 장소 및 텍스트(121)에서의 매칭 문자열의 범위를 저장하는 것일 수 있으며, 여기에는 매칭하는 찾기 어구의 식별자가 추가된다. 일부 텍스트 편집기(120)는 찾기 및 교체 동작동안에 정식의 매칭 저장을 이미 구축하고 레버리징할 수 있다. 본 발명은 적어도 각 매칭에 대해 매칭하는 찾기 어구의 표시로 종래의 것을 보완하는 풍부한 매칭 데이터베이스(260)를 필요로 한다(이에 반하여 본 발명이 포함되지 않은 경우 찾기 어구는 단일적이다).
종래의 검색 엔진(270)은 매칭 데이터베이스(260)의 엔트리를 생성하기 위하여 찾기 및 교체 쌍들(240)의 찾기 어구에 대한 매칭들을 텍스트(210)에서 확인할 수 있다. 본 발명은 검색 엔진(270)이 다수의 찾기 패스들을 필요로 할 수 있고 각 패스는 주어진 찾기 어구에 대한 매칭들을 수집할 수 있지만, 대부분의 경우에서 검색 엔진(270)을 변경하는 것 없이 이를 레버리징할 수 있을 것으로 예상된다.
도 3은 본 발명의 바람직한 실시예에서 구현되는 찾기 및 교체 동작의 순서도이다. 찾기 및 교체 동작이 시작되면(단계 300), 사용자는 찾기 및 교체 다이얼로그(122)의 찾기 및 교체 입력 영역(221)을 통해 찾기 및 교체 쌍을 기입한다(단계 310). 찾기 및 교체 쌍의 변형 형태를 찾아내고, 이 변형 형태를 찾기 및 교체 쌍 데이터베이스(240)에 저장하기 위하여, 규칙 데이터베이스에 저장되어 있는 전환 규칙을 찾기 및 교체 쌍에 적용한다(단계 320)(보다 자세한 설명은 도면 4의 본 단계에서 주어진다). 검색 엔진(270)은 찾기 및 교체 쌍 데이터베이스(240)의 찾기 어구의 매칭을 찾기 위하여 텍스트(121)를 검색한다(단계 330). 찾아낸 매칭들은 매칭 데이터베이스(260)에 저장된다. 모든 매칭들을 찾아내면, (물음[단계 341]에 yes로 대답하여) 매칭 데이터베이스(260)에서 회수해온 각각의 매칭들은 텍스트(121)의 대응 부분에서 찾기 및 교체 다이얼로그에 의해 하이라이트표시된다. 교체 제어 영역(222)에는 매칭에 대한 모든 존재가능한 교체 어구들이 입력되며(단계 343), 이 교체 어구들은 찾기 어구가 단계 340에서 찾아낸 매칭의 하나와 동일한 경우에서의 찾기 및 교체 쌍 데이터베이스(240)에서 찾아낸 찾기 및 교체 쌍의 교체 요소들이다. 교체 다이얼로그 제어 영역(222)에 의해 교체 어구의 선택 또는 교체 없음이 수집된다(단계 344). 만약 사용자가 교체 없음을 선택하면(물음[단계 345]에 대해 No로 답변), 새로운 매칭이 판독되고(단계 340), 매칭 데이터베이스에서 모든 매칭들이 회수될 때 까지(물음[단계 341]에 대해 No로 답변)(종료 390), 새로운 루프(단계 342-346)가 수행된다. 만약 사용자가 교체를 선택하면(물음[단계 345]에 대해 Yes로 답변), 하이라이트표시된 텍스트가 단계 344에서 사용자에 의해 선택된 교체 어구로 교체되고(단계 344), 그 후 다음 매칭이 매칭 데이터베이스에서 회수된다.
본 발명의 다른 실시예들이 존재함을 유념해둔다: 도 3의 순서도에서 제공된 예시에서는, 먼저 모든 매칭들이 수집되고(단계 300-330), 그런 후 모든 매칭들이 저장되면, 이들이 일정 순서로 사용자에게 디스플레이된다(단계 340-390). 하나의 다른 옵션은 연산처리된 결과물을 디스플레이하는 것일 수 있다.
매칭들을 디스플레이하는 순서는 또한 변경될 수 있다. 하나의 바람직한 선 택은 각각의 상이한 찾기 어구에 대해 모든 매칭하는 쌍들을 동일한 찾기 어구를 시작으로 하여 연속적으로 디스플레이하는 것일 수 있다. 하나의 다른 선택은 매칭하는 쌍들을 찾기 어구의 매칭이 텍스트에서 나타나는 순서로 디스플레이하는 것일 수 있다. 찾기 및 교체 동작을 손쉽게 해주는 하나의 세번째 가능성은 모든 존재가능한 교체 변형 형태가운데에 제1 사용자 선택이 이전의 텍스트 매칭에 대한 이전 사용자의 매칭에 대응하는 교체 변형 형태가 되도록 제안하는 것이다.
도 4는 도 3의 전환 규칙(320)을 적용하는 단계의 존재가능한 실시예의 상세도이다. 단계 320은 규칙 데이터베이스에 저장된 전환 규칙을 찾기 및 교체 쌍에 적용하여 이 쌍에 대한 변형 형태를 찾는 것이다. 본 실시예는 단계 310의 실행 이후, 한 쌍의 어구로 이루어진 입력으로 시작하는데(단계 400), 제1 엘리먼트는 찾기 어구가 되며, 제2 엘리먼트는 교체 어구가 된다. 이들은 도 3의 찾기 및 교체 입력 쌍 단계(단계 310) 도중에, 사용자에 대한 인터페이스가 수동적인 경우, 프로그램에서 실행된 명령으로서 또는 그래픽 사용자 인터페이스의 찾기 및 교체 다이얼로그(122)를 통해서 단말기 사용자에 의해 제공되는 것이다. 바람직한 실시예의 옵션은 그래픽 사용자 인터페이스를 사용하는 것이며, 바람직하게는 일반적인 편집기의 그래픽 사용자 인터페이스는 사용자와의 다이얼로그를 갖는다. 다이얼로그 박스는 찾기 및 교체 필드 및 기타 편집 옵션을 포함한다. 스크린의 일부는 텍스트 편집의 디스플레이에 전용된다. 사용자에 의해 수행되는 모든 동작들에 대해 텍스트는 점진적으로 하이라이트표시된다. 전환 규칙은 규칙 데이터베이스(230)로부터 회수된다(단계 410). 규칙이 발견되면(물음[단계 411]에 대해 Yes로 답변), 단계 410에 의해 회수된 현재 전환 규칙은 시작부분(단계 400)에서 수신된 찾기 어구에 적용되고(단계 412), 시작부분(단계 400)에서 수신된 교체 어구에 적용된다(단계 413). 초기 찾기 어구의 변형 형태와 초기 교체 어구의 변형 형태를 포함할 수 있는 결과적인 찾기 및 교체 쌍이 연산처리된다. 변형 형태를 포함할 '수' 있는 이유는 언어 규칙 중에 '무변화' 규칙이 있을 수 있기 때문이다. '무변화'를 초기 찾기 어구 및 초기 교체 어구(hello, bye)에 적용하면 결과적인 찾기 및 교체 쌍(hello, bye)을 가져다준다. 이 경우 결과적인 찾기 및 교체 쌍은 편집기의 기본 찾기 및 교체 기능에서와 같이 초기 어구를 제외하고 어떠한 변형 형태도 포함하지 않는다.
두 개의 규칙을 초기 찾기 어구와 초기 교체 어구에 연속적으로 적용하는 것(단계 412)은 결과적인 찾기 및 교체 쌍들이 제1 및 제2 규칙을 찾기 어구와 교체 어구에 독립적으로 적용할 때에 획득되는 모든 데카르트 곱(Cartesian product) 쌍들로 형성되지 않음을 의미하는 것임을 또한 유념해둔다. 이와는 반대로 아래의 예시에서 보는 바와 같이, 파생 쌍들은 다른 규칙과는 독립적으로 하나의 규칙을 토대로 연산처리된다. 명확한 이해를 위해, 만약 예로서 사용자에 의해 제공되는 초기 쌍('hello', 'bye')을 수취한 경우, '무변화' 규칙을 적용하면 하나의 파생 쌍('hello', 'bye')이 획득되고, '모든 글자 대문자화' 규칙을 적용하면 하나의 파생 쌍('HELLO', 'BYE')이 획득된다. 두 가지 규칙을 혼합한 경우의 초기 쌍으로부터 데카르트 곱에 의해 획득되는 쌍들인 ('hello', 'BYE')와 ('HELLO', 'bye')는 본 발명의 바람직한 방법에 따른 파생 쌍으로서 간주되지 않는다.
결과적인 찾기 및 교체 쌍은 찾기 및 교체 쌍 데이터베이스(240)에 저장된 다(단계 414). 새로운 전환 규칙이 규칙 데이터베이스에서 회수된다(단계 410). 만약 어떠한 규칙도 발견되지 않는다면(물음[단계 411]에 대해 No로 답변), 찾기 및 교체 복사본 쌍들이 찾기 및 교체 쌍 데이터베이스(240)에서 회수된다(단계 420). 찾기 어구가 문자 대 문자로 비교하여 제1 쌍의 찾기 어구와 동일한 길이를 가지면서 동일한 경우, 그리고 교체 어구들에 대해서도 이와 동일하게 적용되는 경우에만 하나의 쌍은 다른 쌍의 복사본인 것이다. 만약 복사본이 발견되면(물음[단계 421]에 대해 Yes로 답변), 복사본 쌍은 찾기 및 교체 쌍 데이터베이스에서 제거된다(단계 422). 어떠한 복사본도 발견되지 않는 경우(물음[단계 421]에 대해 No로 답변), 단계 320은 종료된다(단계 430). 이 단계의 말미부분에서, 찾기 및 교체 쌍 데이터베이스(240)는 규칙 데이터베이스(230)에서 규정된 전환 규칙과 단계 310에서의 사용자에 의해 기입된 주어진 찾기 및 교체 원본 쌍이 생성될 수 있는 것과 같은 수의 고유 찾기 및 교체 쌍들을 포함한다. 순서도의 종료(단계 430)는 단계 330의 실행으로 진행하는 것을 의미한다.
동일한 취지로 다른 실시예들이 이와 다른 방식으로 구현될 수 있다. 이 실시예들에는 현존하는 쌍들이 복사본의 제거 이전에 찾기 및 교체 쌍 데이터베이스 또는 임의의 종류의 찾기 및 교체 쌍 데이터베이스에 추가되지 않는 단계가 단계 410내에 선택적으로 삽입되는 것을 포함하지만 이것으로 국한되는 것은 아니다.
도 5는 그래픽 사용자 인터페이스를 이용하는 본 발명의 바람직한 실시예의 설명이다. 본 영상은 본 발명의 실시예로부터 수취된 실제 스크린 사진은 아니며 영상 처리툴을 이용하여 작도된 것이다. 본 영상에서, 우측부분은 사용자에 의해 기입된 주어진 찾기 및 교체 요청(hello를 찾아서 hello world로 교체)에 대해 컴퓨터에 의해 사용자에게 제공된 교체 제안으로 도시된 사용자와 컴퓨터간의 다이얼로그를 나타낸다. 본 영상의 좌측부분은 텍스트 편집을 나타내고, 사용자에 의해 기입된 주어진 찾기 및 교체 요청(hello를 찾아서 hello world로 교체)에 대해 컴퓨터에 의해 사용자에게 제공된 몇가지 다른 교체 제안들을 도시한다. 이 예시에서 텍스트는 자바 소스 코드이며, 편집기는 자바 소스 코드 편집기이다.
찾기 및 교체 다이얼로그는 본 영상의 우측에 도시된다. 본 영상은 사용자가 찾기 어구를 기입하는 입력 영역(501)을 포함한다. 이것은 도 2의 찾기 및 교체 입력 영역(221)의 부분과 매칭되며, 기타 부분은 도면부호 502로서 구현된다. 이것은 또한 현재의 매칭을 반복할 수 있고, 텍스트(210)가 하이라이트표시(504)될 수 있기 때문에 도 3의 찾기 및 교체 다이얼로그 입력 단계(단계 343) 역할을 할 수 있다.
제2 입력 영역은 사용자가 교체 어구를 기입하는데에 사용되며, 드롭 다운 리스트는 현재 매칭에 대한 모든 존재가능한 파생어를 도시해준다. 이것은 찾기 및 교체 입력 영역(221)의 부분과 매칭되고, 교체 제어 영역(222)의 핵심 기능을 구현한다.
도 3 및 도 4의 순서도에서 설명된 바와 같이, 사용자가 찾기 및 교체 어구를 기입하면, 컴퓨터는 각각의 규칙을 찾기 및 교체 어구에 적용하고, 규칙에 따라 찾기 및/또는 교체 어구의 존재가능한 파생 형태를 찾는다. 연산처리된 찾기 및 교체 파생 형태에 대응하는 대응 쌍들이 저장된다. 그런 후, 컴퓨터는 저장된 대응 쌍의 찾기 부분의 텍스트에서 매칭들을 검색하고 저장된 대응 쌍의 교체 부분에 따라 제안된 교체 부분을 갖는 매칭 쌍을 생성한다. 찾기 및 교체 복사본 쌍들이 삭제된다. 그런 후, 컴퓨터는 저장된 쌍들의 찾기 부분의 텍스트에서 매칭들을 검색하고, 매칭들을 저장한다. 그 후, 각 매칭마다 차례로, 매칭 쌍들의 매칭되는 찾기 어구 및 교체 어구가 다이얼로그의 동일 찾기 및 교체 입력 영역들(501, 502)을 통해 사용자에게 제안된다.
도 5의 영상의 우측부분에서, 사용자는 'hello' 찾기 및 'hello world'로의 교체를 기입하고, 컴퓨터는 두 개의 매칭 쌍들을 제안한다:
- (hello, hello word) : '무변화' 규칙에 대응.
- (hello, helloWorld) : '두번째 및 후속 단어의 대문자화 및 빈칸 삭제' 규칙에 대응.
사용자는 제1 또는 제2 규칙에 따른 매칭에 대한 교체를 교체 영역(502)에서 선택하거나 또는 변동되지 않도록 하는 기회를 갖는다. 이 영상에서, 'helloWorld' 가 하이라이트표시되는데, 이것은 사용자에 의해 선택된 제2 규칙에 따른 매칭에 대한 교체를 의미한다.
도 5의 영상의 좌측 부분은 자바 코드 편집을 도시한다. 소비자에 의해 기입된 입력 영역들의 동일 찾기(hello) 및 교체(hello word) 값들에 대응하여, 컴퓨터는 '모든 단어 대문자화 및 빈칸 삭제' 규칙에 대응하는 매칭 쌍(Hello, HelloWorld)(503)을 제안한다.
텍스트에서 매칭(504)은 사용자에게 초기 찾기 단어 또는 어구를 갖는 매칭 을 가리키도록 음영표시된다.
영상의 우측 부분으로 다시 돌아와서, 다이얼로그는 찾기 및 교체 다이얼로그의 기타 통상적인 옵션들을 도시한다. 'Whole Word' 체크 박스를 클릭함으로써, 사용자는 컴퓨터가 매칭(504)을 제안하는 것을 배제시킬 수 있다. 이러한 찾기 및 교체 구현 기능은 본 발명의 바람직한 실시예에 특유적인 것은 아니고, 기존의 찾기 및 교체 기술과의 호환의 예를 제시하는 것이다.
본 발명의 바람직한 실시예에서 사용되는 데이터베이스[규칙(230), 찾기 및 교체 쌍(240), 매칭(260)]은 비교적 적은 엘리먼트를 갖고, 이 엘리먼트들은 짧게 생존되는 것으로 예상된다(일반적으로, 주어진 찾기 및 교체 세션 이전에는 사용되지 않을 것이다). 그러므로, 본 발명의 실시예는 오퍼레이팅 환경상의 다른 제약과 희망하는 비 기능성 요구조건(성능, 메모리 풋프린트, 등)에 따라, 내부 메모리 임시 리스트에서부터 완전 독립형 데이터베이스내의 기록에 이르는 이 데이터베이스에 관한 다양한 구현형태를 사용할 수 있다.
적어도 하나 이상의 단어가 되는 어구는 오직 하나의 단어에만 대응될 수 있음을 상정할 수 있기 때문에 '어구' 및 '변형 형태'의 의미는 일반화될 수 있음을 유념해둔다. 이와 유사하게, 규칙에 의해 인정될 수 있는 초기 찾기 어구 및 초기 교체 어구의 변형 형태는 만약 규칙이 '무변화'인 경우에 동일한 초기 찾기 어구 및 초기 교체 어구일 수 있다.

Claims (10)

  1. 텍스트의 찾기 및 교체 편집 동작을 수행하는 방법으로서, 상기 방법은:
    사용자에 의해 제공된 초기 찾기 어구 및 초기 교체 어구를 포함하는 한 쌍의 어구들을 수집하는 단계;
    상기 초기 찾기 어구의 변형 형태와 상기 초기 교체 어구의 변형 형태로 형성된 파생 쌍들을 획득하기 위하여, 상기 초기 찾기 어구 및 상기 초기 교체 어구의 인정가능 변형 형태 정의 규칙 각각마다, 상기 규칙을 판독하고, 상기 규칙을 상기 초기 찾기 어구에 적용하고, 상기 규칙을 상기 초기 교체 어구에 적용하는 단계;
    상기의 이전 단계들에서 연산처리된 상기 모든 파생 쌍들의 찾기 어구에 대하여 상기 텍스트에서 매칭을 확인하는 단계;
    상기 이전 단계에서 확인된 각 매칭마다, 상기 매칭되는 찾기 어구를 찾기 어구로서 갖는 각각의 파생 쌍의 상기 매칭되는 찾기 어구 및 교체 어구를 상기 사용자에게 제공하는 단계
    를 포함하는 것을 특징으로 하는 텍스트의 찾기 및 교체 편집 동작을 수행하는 방법.
  2. 제 1 항에 있어서, 상기 텍스트에서 확인된 매칭에 대한 하나의 파생 쌍만이 상기 사용자에게 제공되는 때 마다, 상기 텍스트에서 상기 하나의 쌍의 교체 어구 로 상기 교체 기능을 수행하는 단계를 더 포함하는 것을 특징으로 하는 텍스트의 찾기 및 교체 편집 동작을 수행하는 방법.
  3. 제 1 항 또는 제 2 항에 있어서, 상기 텍스트에서 확인된 매칭에 대한 하나 이상의 파생 쌍이 상기 사용자에게 제공되는 때 마다, 상기 사용자에게 제공된 하나 이상의 파생 쌍들 중에서 하나의 쌍을 상기 사용자로부터 수집하는 단계; 및
    상기 사용자로부터 수집된 상기 파생 쌍의 상기 교체 어구로 상기 텍스트에서 상기 교체 기능을 수행하는 단계
    를 더 포함하는 것을 특징으로 하는 텍스트의 찾기 및 교체 편집 동작을 수행하는 방법.
  4. 제 1 항 내지 제 3 항 중 어느 한 항에 있어서, 상기 찾기 어구 및 교체 어구의 인정가능 변형 형태 정의 규칙을 제1 저장 수단에 저장하는 초기 단계를 더 포함하고,
    상기 규칙을 판독하는 단계는 상기 저장 수단으로부터 상기 규칙을 판독하는 단계를 포함하는 것을 특징으로 하는 텍스트의 찾기 및 교체 편집 동작을 수행하는 방법.
  5. 제 1 항 내지 제 4 항 중 어느 한 항에 있어서, 상기 초기 찾기 어구 및 상기 초기 교체 어구로부터 파생된 모든 상기 쌍들을 제2 저장 수단에 저장하는 단계 를 더 포함하고,
    상기 확인 단계는 상기 제2 저장 수단으로부터 상기 파생된 모든 쌍들을 판독하는 단계를 포함하고,
    상기 매칭되는 찾기 어구를 찾기 어구로서 갖는 파생 쌍의 상기 매칭되는 찾기 어구 및 교체 어구를 상기 사용자에게 제공하는 상기 단계는 상기 제2 저장 수단으로부터 상기 파생된 쌍들을 판독하는 단계를 포함하는 것을 특징으로 하는 텍스트의 찾기 및 교체 편집 동작을 수행하는 방법.
  6. 제 1 항 내지 제 5 항 중 어느 한 항에 있어서, 상기 매칭을 검색하는 단계에서 발견된 상기 텍스트에서의 모든 상기 매칭들을 제3 저장 수단에 저장하는 단계를 더 포함하고,
    상기 매칭되는 찾기 어구를 찾기 어구로서 갖는 파생 쌍의 상기 매칭되는 찾기 어구 및 교체 어구를 상기 사용자에게 제공하는 상기 단계는 상기 제3 저장 수단으로부터 상기 매칭되는 찾기 어구를 판독하는 단계를 포함하는 것을 특징으로 하는 텍스트의 찾기 및 교체 편집 동작을 수행하는 방법.
  7. 제 6 항에 있어서, 상기 제3 저장 수단에 저장하는 상기 단계는, 상기 텍스트에서의 상기 매칭의 장소와 상기 매칭되는 문자열의 범위를 포함하는 상기 텍스트에서의 매칭의 인덱스를 저장하는 단계로서, 상기 매칭의 인덱스에는 매칭하는 상기 찾기 어구의 식별자가 추가되는 것인, 상기 인덱스 저장 단계를 더 포함하는 것을 특징으로 하는 텍스트의 찾기 및 교체 편집 동작을 수행하는 방법.
  8. 제 1 항 내지 제 7 항 중 어느 한 항에 있어서, 상기 사용자로부터 수집하는 단계와 상기 사용자에게 제공하는 단계는 상기 찾기 및 교체 편집 동작이 수행되는 상기 텍스트의 디스플레이 부분을 위한 영역을 갖는 그래픽 사용자 인터페이스를 통해 수행되며, 상기 그래픽 사용자 인터페이스는 또한 상기 찾기 어구를 디스플레이해주는 필드와 상기 교체 어구를 디스플레이해주는 필드를 포함하며, 상기 어구들은 사용자에 의해 기입되거나 또는 사용자에게 제공되는 것을 특징으로 하는 텍스트의 찾기 및 교체 편집 동작을 수행하는 방법.
  9. 프로그램이 컴퓨터상에서 수행되는 경우, 제 1 항 내지 제 8 항 중 어느 한 항에 따른 상기 방법의 단계들을 수행하기 위한 프로그래밍 코드 명령어를 포함하는 것을 특징으로 하는 컴퓨터 프로그램 제품.
  10. 제 1 항 내지 제 8 항 중 어느 한 항에 따른 상기 방법을 수행하도록 구성된 수단들을 포함하는 것을 특징으로 하는 시스템.
KR1020087014519A 2005-12-22 2006-10-27 찾기 및 교체 입력의 파생어를 레버리징하는 찾기 및 교체기능을 갖춘 텍스트 편집 방법 및 시스템 Abandoned KR20080086456A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP05301092.2 2005-12-22
EP05301092 2005-12-22

Publications (1)

Publication Number Publication Date
KR20080086456A true KR20080086456A (ko) 2008-09-25

Family

ID=38057542

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020087014519A Abandoned KR20080086456A (ko) 2005-12-22 2006-10-27 찾기 및 교체 입력의 파생어를 레버리징하는 찾기 및 교체기능을 갖춘 텍스트 편집 방법 및 시스템

Country Status (7)

Country Link
US (2) US10241987B2 (ko)
EP (1) EP1963995A2 (ko)
JP (1) JP2009521026A (ko)
KR (1) KR20080086456A (ko)
CN (1) CN101346716A (ko)
CA (1) CA2634388A1 (ko)
WO (1) WO2007071482A2 (ko)

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101346716A (zh) 2005-12-22 2009-01-14 国际商业机器公司 通过利用查找和替换输入的派生的查找和替换功能来编辑文本的方法和系统
US8010895B2 (en) * 2007-10-24 2011-08-30 E-Lead Electronic Co., Ltd. Method for correcting typing errors according to character layout positions on a keyboard
US8612853B2 (en) * 2007-11-15 2013-12-17 Harold W. Milton, Jr. System for automatically inserting reference numerals in a patent application
US20130007581A1 (en) * 2011-06-30 2013-01-03 Landon Ip, Inc. Method and apparatus for editing composite documents
CN102306186A (zh) * 2011-08-29 2012-01-04 上海量明科技发展有限公司 进行文档遍历处理的方法及系统
JP5764039B2 (ja) * 2011-10-25 2015-08-12 株式会社沖データ 情報処理装置、画像形成装置、プログラム、情報処理システム、及び、情報処理方法
US9436664B2 (en) 2012-05-31 2016-09-06 Tata Consultancy Services Limited Performing multiple scope based search and replace within a document
US9251128B2 (en) 2012-06-05 2016-02-02 International Business Machines Corporation Replacing a designated character string, or styling within the designated scope of tagged edited content in a document
US9361293B2 (en) * 2013-09-18 2016-06-07 International Business Machines Corporation Using renaming directives to bootstrap industry-specific knowledge and lexical resources
US9710526B2 (en) 2014-06-25 2017-07-18 Microsoft Technology Licensing, Llc Data set preview technology
US10528645B2 (en) * 2015-09-16 2020-01-07 Amazon Technologies, Inc. Content search using visual styles
US10127212B1 (en) * 2015-10-14 2018-11-13 Google Llc Correcting errors in copied text
CN108475258B (zh) * 2015-12-29 2021-07-27 微软技术许可有限责任公司 用于格式化文档对象的方法、设备和介质
CN108121697B (zh) * 2017-11-16 2022-02-25 北京百度网讯科技有限公司 一种文本改写的方法、装置、设备和计算机存储介质
US20190213249A1 (en) * 2018-01-05 2019-07-11 International Business Machines Corporation Intelligent Copy and Paste
US10387554B1 (en) * 2018-02-19 2019-08-20 International Business Machines Corporation Applying matching data transformation information based on a user's editing of data within a document
US10817264B1 (en) 2019-12-09 2020-10-27 Capital One Services, Llc User interface for a source code editor
US11604928B2 (en) * 2020-04-30 2023-03-14 International Business Machines Corporation Efficiently managing predictive changes for a conversational agent
CN112156460B (zh) * 2020-09-24 2025-02-25 完美世界(北京)软件科技发展有限公司 一种游戏用户界面资源的处理方法和装置
JPWO2022259513A1 (ko) * 2021-06-11 2022-12-15

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5143591B2 (ko) 1972-07-04 1976-11-22
US4420817A (en) * 1979-05-25 1983-12-13 Sharp Kabushiki Kaisha Word endings inflection means for use with electronic translation device
JPS61141078A (ja) * 1984-12-13 1986-06-28 Sharp Corp 電子式仏単語辞書
JPH07122875B2 (ja) * 1986-07-15 1995-12-25 ブラザー工業株式会社 文書編集装置
JPH0821030B2 (ja) 1986-12-29 1996-03-04 ブラザー工業株式会社 文書処理装置
JPH03185561A (ja) 1989-12-15 1991-08-13 Ricoh Co Ltd 欧文単語入力方法
NL9101286A (nl) * 1991-07-23 1993-02-16 Oce Nederland Bv Werkwijze voor het verbuigen van woorden, alsmede een data-verwerkings-eenheid voor het uitvoeren van een dergelijke werkwijze.
JPH05143591A (ja) * 1991-11-18 1993-06-11 Ricoh Co Ltd 文書作成装置
US5873660A (en) * 1995-06-19 1999-02-23 Microsoft Corporation Morphological search and replace
JPH09198398A (ja) 1996-01-16 1997-07-31 Fujitsu Ltd パターン検索装置
US5999896A (en) * 1996-06-25 1999-12-07 Microsoft Corporation Method and system for identifying and resolving commonly confused words in a natural language parser
JPH10269233A (ja) * 1997-03-25 1998-10-09 Hitachi Ltd 文書データベースの検索結果表示方法及び装置
GB9713019D0 (en) * 1997-06-20 1997-08-27 Xerox Corp Linguistic search system
US6442576B1 (en) 1997-08-06 2002-08-27 Adobe Systems Incorporated Searching for documents with multiple element types
US6044387A (en) * 1997-09-10 2000-03-28 Microsoft Corporation Single command editing of multiple files
US6366910B1 (en) 1998-12-07 2002-04-02 Amazon.Com, Inc. Method and system for generation of hierarchical search results
TW388826B (en) * 1998-12-21 2000-05-01 Inventec Corp Quickly word-identifying method
US6601059B1 (en) 1998-12-23 2003-07-29 Microsoft Corporation Computerized searching tool with spell checking
US8205149B2 (en) * 2001-01-05 2012-06-19 Microsoft Corporation Enhanced find and replace for electronic documents
CA2447361A1 (en) 2003-10-29 2005-04-29 Adrian Storisteanu Method for synchronization of a line-oriented text document and a stream-oriented text document
US9021424B2 (en) 2005-09-27 2015-04-28 Sap Se Multi-document editor with code inlining
GB2433403B (en) 2005-12-16 2009-06-24 Emil Ltd A text editing apparatus and method
CN101346716A (zh) 2005-12-22 2009-01-14 国际商业机器公司 通过利用查找和替换输入的派生的查找和替换功能来编辑文本的方法和系统
JP5143591B2 (ja) 2008-03-03 2013-02-13 大阪瓦斯株式会社 ガス検知装置及びガス検知方法
US7890516B2 (en) * 2008-05-30 2011-02-15 Microsoft Corporation Recommending queries when searching against keywords

Also Published As

Publication number Publication date
EP1963995A2 (en) 2008-09-03
JP2009521026A (ja) 2009-05-28
CN101346716A (zh) 2009-01-14
US10241987B2 (en) 2019-03-26
US20190220504A1 (en) 2019-07-18
WO2007071482A3 (en) 2007-12-13
CA2634388A1 (en) 2007-06-28
US20080263443A1 (en) 2008-10-23
WO2007071482A2 (en) 2007-06-28
US10970474B2 (en) 2021-04-06

Similar Documents

Publication Publication Date Title
US10970474B2 (en) Method and system for editing text with a find and replace function leveraging derivations of the find and replace input
EP2577460B1 (en) Generating text manipulation programs using input-output examples
US5555169A (en) Computer system and method for converting a conversational statement to computer command language
US7251777B1 (en) Method and system for automated structuring of textual documents
JP4448881B2 (ja) コンピュータプログラムを発生する方法及びシステム
JP4658420B2 (ja) 文字列の正規化表示を生成するシステム
CN110059176B (zh) 一种基于规则的通用文本信息抽取和信息生成方法
US6219831B1 (en) Device and method for converting computer programming languages
US5752058A (en) System and method for inter-token whitespace representation and textual editing behavior in a program editor
US20020194223A1 (en) Computer programming language, system and method for building text analyzers
JPS6375835A (ja) 目的コ−ド、プログラム・リスト及び設計文書を生成する装置
JP2003186875A (ja) 自然言語パーシング方法
US20100228538A1 (en) Computational linguistic systems and methods
CN112948419A (zh) 查询语句处理方法及装置
CN118312153A (zh) 编译器后端代码生成方法、装置、存储介质
CN109325217A (zh) 一种文件转换方法、系统、装置及计算机可读存储介质
Beckmann et al. Partial parsing for structured editors
US12333245B2 (en) Methods and apparatus to improve disambiguation and interpretation in automated text analysis using structured language space and transducers applied on automatons
Mössenböck Compiler Construction: Fundamentals and Applications
Gerdes “CDG Lab”: An Integrated Environment for Categorial Dependency Grammar and Dependency Treebank Development
JP3316884B2 (ja) 言語翻訳装置
Recanati Success and failure of programming environments-report on the design and use of a graphic abstract syntax tree editor
Eeg-Olofsson Software Systems for Computational Morphology—An Overview
Mössenböck Compiler Construction
JPH0561679A (ja) 対話型インターフエイス方式

Legal Events

Date Code Title Description
PA0105 International application

Patent event date: 20080616

Patent event code: PA01051R01D

Comment text: International Patent Application

PG1501 Laying open of application
A201 Request for examination
PA0201 Request for examination

Patent event code: PA02012R01D

Patent event date: 20080929

Comment text: Request for Examination of Application

E902 Notification of reason for refusal
PE0902 Notice of grounds for rejection

Comment text: Notification of reason for refusal

Patent event date: 20100831

Patent event code: PE09021S01D

E701 Decision to grant or registration of patent right
PE0701 Decision of registration

Patent event code: PE07011S01D

Comment text: Decision to Grant Registration

Patent event date: 20120130

NORF Unpaid initial registration fee
PC1904 Unpaid initial registration fee