KR20060047998A - 문서에 문맥 정보를 삽입하는 방법 및 시스템 - Google Patents

문서에 문맥 정보를 삽입하는 방법 및 시스템 Download PDF

Info

Publication number
KR20060047998A
KR20060047998A KR1020050041533A KR20050041533A KR20060047998A KR 20060047998 A KR20060047998 A KR 20060047998A KR 1020050041533 A KR1020050041533 A KR 1020050041533A KR 20050041533 A KR20050041533 A KR 20050041533A KR 20060047998 A KR20060047998 A KR 20060047998A
Authority
KR
South Korea
Prior art keywords
document
repository
configuration information
context
loading
Prior art date
Application number
KR1020050041533A
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 KR20060047998A publication Critical patent/KR20060047998A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/166Editing, e.g. inserting or deleting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/14Tree-structured documents
    • G06F40/143Markup, e.g. Standard Generalized Markup Language [SGML] or Document Type Definition [DTD]

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)
  • Document Processing Apparatus (AREA)
  • Stored Programmes (AREA)

Abstract

일반적인 스마트태그(smartTag) 모듈은 일반적인 인식기 및 일반적인 액션 처리기를 포함한다. 스마트태그 구성 정보를 포함하는 리파지토리로의 액세스를 가지는 플랫폼에 일반적인 모듈이 제공되고, 플랫폼에 상주하는 호스트 애플리케이션 각각에 인식기 및 액션 처리기가 제공된다. 리파지토리(repository)는 복수의 플랫폼에 이용가능한 공유되는 데이터 저장소일 수 있다. 일반적인 모듈은 런타임시에 선택된 인식기 및 액션 처리기를 리파지토리로부터 동적으로 로딩 및 언로딩시킬 수 있다. 일반적인 모듈은 호스트 애플리케이션으로의 등록을 처리하고 스마트태그 인터페이스를 구현할 수 있다. 일반적인 모듈은 문서의 문맥을 결정하고 이 결정된 문맥에 기초하여 리파지토리로부터 인식기 및 액션 처리기를 로딩시킬 수 있다. 일반적인 모듈은 표현식(예를 들면, 정규 NET. 표현식)을 평가하고 데이터 소스에 저장되는 데이터를 찾기 위하여 문서에서 검색을 수행할 수 있다.
스마트태그, 인식기, 액션 처리기, 리파지토리

Description

문서에 문맥 정보를 삽입하는 방법 및 시스템{METHOD AND SYSTEM FOR EMBEDDING CONTEXT INFORMATION IN A DOCUMENT}
도 1a 내지 1c는 스마트태그가 문서에서 선택된 데이터 조각에 대한 문맥상의 정보를 나타내는 방법을 도시하는 도면.
도 2는 일 실시예에 따른, 리파지토리로부터 인식기 및 액션 처리기를 로컬 기기에 로딩시키는 시스템을 도시하는 기능적 블럭도.
도 3은 일 실시예에 따른, 일반적인 스마트태그 모듈이 인식기 및 액션 처리기를 동적으로 로딩시키고 호출하는 동작적인 흐름을 일반적으로 도시하는 흐름도.
도 4는 일 실시예에 따른, 일반적인 스마트태그 시스템의 부분들을 배포하는 프로세스를 일반적으로 도시하는 흐름도.
도 5는 본 명세서에서 기술된 기술 및 메카니즘의 다양한 실시예가 구현될 수 있는 예시적인 컴퓨팅 환경을 일반적으로 도시하는 기능적 블럭도.
<도면의 주요 부분에 대한 부호의 설명>
202: 로컬 기기
210: 일반적인 스마트태그 모듈
224: 구성 로더
232: 문맥-기반의 인식기 & 액션 처리기
502: 프로세싱 유닛
504: 시스템 메모리
본 명세서는 2004년 5월 28일에 출원된 미국 가특허 출원번호 60/575,548의 권리를 청구한다.
이하 기술된 다양한 실시예는 일반적으로 전자 문서의 생성 및 처리에 관한 것으로, 보다 상세히는 이러한 문서에서 문맥상의 정보를 추가하고 처리하는 것에 관한 것이지만 이에 한정되지는 않는다.
다양한 실생활 시나리오에서, 사용자는 문서(예를 들면, 텍스트 문서, 스프레드시트(spreadsheet), 이메일 등)에 나타나는 사람, 회사, 주소 등에 관한 추가적인 정보를 쉽게 액세스하고 싶어한다. 워싱턴주, 레드몬드의 마이크로소프트사에 의해 개발된 스마트태그 기술은 이러한 문맥상의 정보를 문서에 추가하고 액세스하는 매카니즘을 제공한다. 도 1a 내지 1c는 문맥상의 정보를 텍스트 문서의 일부에 추가하는 스마트태그 기술의 일례를 도시한다.
도 1a는 텍스트 문서에 나타나는 주소 "One Microsoft Way, Redmond, Washington 98052"(100)를 도시한다. 주소(100) 아래에 위치한 점선(102)은 텍스트 문서의 이 부분이 스마트태그(즉, 텍스트의 그 부분과 관련된 문맥상의 정보)를 가짐을 나타낸다. 스마트태그 기술은 문서가 소정의 스트링에 대하여 관련한 문맥 상의 정보의 집합 중 어떤 집합이 이용가능한지 검토하는 인식기를 포함한다. 문맥상의 정보는 동적으로 링크된 라이브러리(DDL) 또는 다른 데이터 저장소에 저장된다. 그 다음 인식기는 이러한 문맥상의 정보를 인식된 스트링에 첨부한다.
도 1b는 사용자가 점선(102) 위에 커서를 놓을 때 스마트태그 기술이 디스플레이하는 "옵션" 버튼(110)을 도시한다. 스마트태그 기술은 또한 옵션 버튼(110)이 스마트태그 액션의 메뉴를 디스플레이하는 데에 이용됨을 나타내는 추가적인 그림(112)을 도시한다. 스마트태그 기술은 인식된 스트링에 관련하는 문맥상의 정보를 처리하여 사용자가 인식된 스트링에 관련하여 취할 수 있는 액션을 제공하는 액션 처리기를 포함한다.
도 1c는 사용자가 옵션 버튼(110)을 활성화할 때 디스플레이되는 메뉴(120)를 도시한다. 메뉴(120)는 사용자가 주소(100)와 관련하여 취할 수 있는 다양한 액션을 도시한다. 액션 처리기는 메뉴(120)를 디스플레이하고 사용자에 의해 선택된 액션(들)을 수행한다.
이 예는 텍스트 문서의 인식된 스트링에 기초하는 스마트태그를 도시하지만, 스마트태그는 텍스트 스트링 이외의 다른 타입의 데이터 및/또는 다른 타입의 문서나 파일에 기초할 수도 있다. 각각이 서로 다른 문맥상의 정보 및 수행될 수 있는 액션(사람에게 주어진 이메일의 개시, 사람의 달력 보기, 회사에 대한 전화 번호 디스플레이, 회사에 송신될 송장 디스플레이, 제품에 대하여 이루어지는 서비스 요청의 디스플레이, 등)과 관련된, 인식된 다른 타입의 데이터(예를 들면, 사람의 이름, 회사, 제품, 날짜, 장소, 등)에 다른 스마트태그들이 제공될 수 있다. 이러한 간단한 예는 스마트태그 기술이 사용자에게 얼마나 강력하고 유용한지를 보여준다.
현재, 스마트태그는 애플리케이션 단위 기반으로 구현된다. 즉, 사용자는 스마트태그를-이용할 수 있는 각각 애플리케이션 마다 등록된 인식기 및 액션 처리기를 구비하여, 애플리케이션이 개시될 때, 인식기 및 액션 처리기가 인스턴스화될 수 있도록 해야한다. 대형 기관에서는, 인식기 및 액션 처리기를 배포하고 각 애플리케이션에 대하여 등록하는 것은 상당한 일일 수 있다. 스마트태그를 보유하는 것(예를 들면, 기존의 인식기 및 액션 처리기 갱신 및 삭제, 새로운 인식기 및 액션 처리기 추가)도 대형 기관에서는 만만치 않은 일일 수 있다.
또한, 인식기는 인식기가 몇몇 타입의 문서에는 유용하지 않는 데이터(예를 들면, 개인적인 친구에의 편지에서 당신의 클라이언트의 제품의 이름을 인식하는 것)를 인식할 수 있더라도 그 애플리케이션을 사용하여 작성된 모든 타입의 문서에 적용될 것이다. 또한, 스마트태그를 작성하는 개발자는 인식기 및 액션 처리기에 대한 인터페이스를 구현해야 하며, 이는 개발자에게 비용 및 복잡함를 높이게 한다.
다양한 실시예의 양태에 따라서, 일반적인 스마트태그 시스템이 제공된다. 한 양태에서, 스마트태그 구성 정보를 포함하는 리파지토리로의 액세스를 가지는 컴퓨팅 플랫폼에 (일반적인 인식기 및 일반적인 액션 처리기를 포함하는) 일반적인 스마트태그 모듈이 제공되고 그 플랫폼에 상주하는 스마트태그를-이용가능한 애플리케이션 각각에 인식기 및 액션 처리기가 제공된다. 리파지토리는 복수의 컴퓨팅 플랫폼에 이용가능한 공유되는 데이터저장소일 수 있다. 일반적인 스마트태그 모듈은 런타임시에 선택된 인식기 및 액션 처리기를 리파지토리로부터 동적으로 로딩(loading) 및 언로딩(unloading)한다. 공유되는 리파지토리는 인식기 및 액션 처리기의 보유를 단순하게 하는 이점이 있다.
다른 양태에서, 일반적인 스마트태그 모듈은 스마트태그를-이용가능한 애플리케이션에의 모든 등록을 처리하고 스마트태그가 동작하는 데에 요구되는 모든 인터페이스(예를 들면, 컴포넌트 오브젝트 모델 또는 COM 인터페이스)를 구현한다. 이러한 양태는 스마트태그를 작성하는 개발자에게 복잡함을 상당히 줄여준다.
또 다른 양태에서, 일반적인 스마트태그 모듈은 문서의 문맥을 결정하고 결정된 문맥에 기초하여 리파지토리로부터 인식기 및 액션 처리기를 로딩시킨다. 어떠한 문맥도 결정될 수 없다면, 일반적인 스마트태그 모듈은 인식기 및 액션 처리기의 디폴트 집합을 로딩시킬 수 있다. 이러한 양태는 문서에서 관련없는 데이터 조각을 인식하지 않도록 컴퓨팅 플랫폼이 문서의 문맥에 맞추어진 인식기 및 액션 처리기의 집합을 가지도록 한다.
또 다른 양태에서, 일반적인 스마트태그 모듈이 직접 표현식을 평가할 수 있다. 이러한 양태는 개발자가 오직 리파지토리 내의 표현식만을 기술하면 되기 때문에 표현식을 평가하는 코드를 작성할 필요가 없어서 개발자에게 복잡함을 줄여준다. 관련된 양태에서, 일반적인 스마트태그 모듈이 직접 문서에서 데이터 소스에 저장된 데이터를 찾기 위한 검색을 수행할 수 있다. 이러한 관련된 양태는 개발자가 데이터 소스의 위치만을 기술하면 되기 때문에, 검색을 수행하는 코드를 작성할 필요가 없어서 개발자에게 복잡함을 줄여준다.
첨부된 도면을 참조하여 제한되지 않고 배타적이지 않은 실시예가 기술되며, 이 도면에서 유사한 참조 번호는 그렇지 않다고 기술되지 않는 한 다양한 관점에 걸쳐 유사한 부분을 언급한다.
이하의 기술 및 메카니즘은 문서에 문맥 정보를 삽입하는 방법 및 시스템의 구현에 관한 것이다. 일반적으로 말하자면, 하나 이상의 로컬 기기에 일반적인 모듈이 제공된다. 각 일반적인 모듈은 문서가 열릴 때 로컬 기기에 의해 동적으로 로딩될 수 있는 인식기 및 액션 처리기를 포함하는 리파지토리를 액세스할 수 있다. 리파지토리는 원격 기기에 상주하고(또는 복수의 원격 기기 간에 분산되고) 로컬 기기에 의해 공유될 수 있다. 일 실시예에서, 시스템은 마이크로소프트사로부터 이용가능한 스마트태그 기술에 기초한다. 이러한 일반적인 개념의 특정 구현은 이하에 기술된다.
도 2는 상술한 바와 같이 일 실시예에 따른, 리파지토리(204)로부터 인식기 및 액션 처리기가 로컬 기기(202)에 로딩되는 시스템(200)을 도시하는 기능적 블럭도이다. 실시예는 스마트태그 기술에 기초하지만, 다른 기술을 이용하는 다른 실시예들이 문서에 문맥 정보를 삽입할 수 있다. 이러한 실시예에서, 로컬 기기(202)는 일반적인 스마트태그 모듈(210) 및 하나 이상의 스마트태그를-이용할 수 있는 애플리케이션(212)을 포함한다. 스마트태그를-이용할 수 있는 애플리케이션는 본 명세서에서 호스트 애플리케이션이라고도 칭한다. 이 실시예에서, 일반적인 스마트태그 모듈(210)은 로컬 기기(202)에 구현되는 (도시되지 않은) 컴퓨팅 환경에서 실행되는 소프트웨어 컴포넌트이다. 예시적인 컴퓨팅 환경은 이하 도 5에 관련하여 기술된다. 시스템(200)에서, 일반적인 스마트태그 모듈(210) 및 리파지토리(204)는 화살표(216)가 나타내는 바와 같이 정보를 교환할 수 있다.
또한, 이 실시예에서, 일반적인 스마트태그 모듈(210)은 리파지토리(204)로부터 구성 정보를 로딩시키는 구성 로더(224), 리파지토리(204)로부터 로딩된 인식기의 호출을 수행하는 일반적인 인식기(226), 및 리파지토리(204)로부터 로딩된 액션 처리기의 호출을 수행하는 일반적인 액션 처리기(228)를 포함한다. 몇몇의 실시예에서, 일반적인 액션 처리기(228)는 표현(예를 들면, 마이크로소프트가 개발한 .NET 프레임워크에 따르는 표현) 평가 또한 수행한다. 이 예는 일반적인 스마트태그 모듈(210)이 몇몇의 "부-모듈"을 가진다고 도시하지만, 다른 실시예에서는, 이들 부-모듈의 기능은 더 작은(또는 더 많은) 부-모듈로 분산되거나 다른 조합일 수 있다.
리파지토리(204)는 이 실시예에서, 스마트태그 구성 정보(230), 및 인식기 및 액션 처리기(232)를 포함한다. 스마트태그 구성 정보(230)는 인식기와 액션 처리기들(232)의 각각의 인식기와 액션 처리기의 위치에 관련된 정보를 포함한다. 예를 들면, 구성 정보는 각각의 인식기 및 액션 처리기로의 포인터들을 가지는 포인터의 집합을 포함할 수 있다. 일 실시예에서, 스마트태그 구성 정보(230)는 메타데이터의 형태이지만, 다른 실시예에서, 이 구성 정보는 파일, 문서, 또는 다른 적절한 형태로 포함될 수 있다. 리파지토리(204)는, 도 2에서 하나의 장치로 도시 되지만, 로컬 기기(202)가 액세스할 수 있는 몇몇의 장치 간에 분산될 수 있다. 예를 들면, 스마트태그 구성 정보(230)는 하나의 장치에 저장되는 한편, 인식기 및 액션 처리기(232)는 다른 장치에 저장되지만, 하나의 논리 위치로 나타낼 수도 있다. 인식기 및 액션 처리기가 하나의 논리 위치에 저장되기 때문에, 인식기 및 액션 처리기의 배포 및 보유는 훨씬 덜 복잡하고 시간을 덜 소비할 수 있다.
몇몇의 실시예에서, 인식기 및 액션 처리기(232)는 문맥에-특정된 인식기 및 액션 처리기를 포함한다. 인식기 및 액션 처리기(232)는 또한 모든 호스트 애플리케이션에 이용되는 표준 인식기 및 액션 처리기 집합을 포함할 수 있으므로, 특정한 문맥에 관련되어야할 필요가 없다.
몇몇의 실시예에서, 문서의 "문맥"은 문서의 목적 및 사용을 말한다. 문서의 문맥의 예는 문서를 생성하는 데에 이용되는 호스트 애플리케이션, 문서를 생성하는 데에 이용되는 스타일 시트, 문서의 속성 등을 포함할 수 있다. 예를 들면, 법률 문서(예를 들면, 계약서)는 과학 문서와는 매우 다른 문맥을 가질 수 있다. "법률" 문맥을 가지는 문서에서 이용하기 위한 인식기는 법률 용어는 인식하는 반면 과학 용어는 무시하도록 적응될 수 있다; 과학 문서에서 이용하기 위한 인식기는 과학 용어는 인식하는 반면 법률 용어는 무시하도록 적응될 수 있다. 그 다음 개발자들은 리파지토리(204)에 저장될 문서의 문맥 각각에 대하여 인식기 및/또는 액션 처리기를 생성할 수 있다. 상술한 실시예는 스마트태그 기술을 이용하지만, 다른 실시예들은 다른 기술을 이용하여 문서에 문맥 정보를 삽입할 수 있다.
도 3은 일 실시예에 따른, (도 2의) 일반적인 스마트태그 모듈(210)이 인식 기 및 액션 처리기를 동적으로 로딩하고 호출하는 동작적인 흐름도를 일반적으로 도시한다. 도 2 및 도 3을 참조하면, 일반적인 스마트태그 모듈(210)의 동작적인 흐름의 이러한 예는 로컬 기기(222)의 사용자가 호스트 애플리케이션을 이용하여 문서를 열거나 생성할 때 개시된다.
블럭(302)에서, 일반적인 스마트태그 모듈(210)이 인스턴스화된다. 이 실시예에서, 문서를 여는 것에 응답하여, 로컬 기기(202)는 호스트 애플리케이션을 여는데, 그 다음, (예를 들면, 일반적인 스마트태그 모듈(210)이 로컬 기기(202)에 설치되었을 때) 일반적인 스마트태그 모듈(210)이 호스트 애플리케이션에 등록되므로 이 호스트 애플리케이션은 일반적인 스마트태그 모듈(210)을 메모리로 로딩시킨다.
블럭(304)에서, 문서에 대하여 하나 이상의 문맥이 식별된다. 이러한 실시예에서, 일반적인 스마트태그 모듈(210)의 구성 로더(224)가, 예를 들면, 문서의 속성, 문서에 대한 스타일 시트, 문서를 생성하는 데에 이용되는 호스트 애플리케이션, 문서에 첨부되는 스키마, 또는 문서에 포함되는 임의의 다른 관련 정보 중 하나 이상을 검토함으로써, 문서의 문맥(들)을 결정하도록 구성된다. 문맥 및 이 문맥을 식별하는 메카니즘(들)은 통상적으로 호스트 애플리케이션의 개발자에 의해 생성되지만, 몇몇의 시나리오에서는, 제3인 개발자가 문맥을 확장할 수 있다. 개발자는또한 리파지토리(204)에 저장된 대응하는 문맥에-특정된 인식기 및 액션 처리기를 생성한다. 몇몇의 문서는 어떠한 식별가능한 문맥도 가지지 않을 수 있다.
블럭(306)에서, 스마트태그 구성 정보(230)가 리파지토리(204)로부터 획득 되고 로컬 기기(202)에 로딩된다. 이러한 실시예에서, 구성 로더(224)는 스마트태그 구성 정보(230)에 대한 요청을 리파지토리(204)에 송신하고, 응답으로, 리파지토리(204)로부터 스마트태그 구성 정보(230)를 수신한다.
블럭(308)에서, 하나 이상의 인식기 및 하나 이상의 액션 처리기가 리파지토리(204)로부터 획득되고 로컬 기기(202)에 로딩된다. 이러한 실시예에서, 구성 로더(224)는 블럭(304)에서 식별된 문서의 문맥에 기초하여 스마트태그 구성 정보(230)에 포함되는 것 중에서 하나 이상의 인식기 및 액션 처리기를 선택한다. 블럭(304)에서 어떠한 문맥도 식별되지 않으면, 구성 로더(224)는 디폴트인 인식기 및 액션 처리기의 집합을 선택할 수 있다. 배포자 및/또는 관리자는 이러한 디폴트 집합을 정의하고 수정할 수 있다.
그 다음 블럭(310)에서, 블럭(308)에서 선택된 인식기(들) 및 액션 처리기(들)가 리파지토리(204)로부터 획득되고 로컬 기기(202)로 로딩될 수 있다. 이 실시예에서, 구성 로더(224)는 선택된 스마트태그 프로세싱 모듈(예를 들면, 인식기 및 액션 처리기)에 대한 (스마트태그 구성 정보(230)로부터 획득된, 선택된 인식기 및 액션 처리기의 위치 정보를 포함하는) 요청을 리파지토리(204)에 송신한다. 이들 요청의 응답으로, 구성 로더(224)는 리파지토리(204)로부터 선택된 프로세싱 모듈을 수신할 수 있다. 이러한 방식으로, 문맥에-특정된 인식기 및 액션 처리기가 런타임시에 동적으로 로딩될 수 있기 때문에, 관련 스마트태그를 제공하고 관련없는 스마트태그의 수를 줄임으로써 사용자의 경험을 향상시킨다.
배포자 및/또는 관리자가 리파지토리(204)에 저장할 수 있는, 하나 이상의 선택된 프로세싱 모듈은 개발자에 의해 작성된 DDL의 형태일 수 있다. 몇몇의 실시예에서, 프로세싱 모듈은 또한 정규 표현식(예를 들면, 상술한 .NET 프레임워크에 따르는 표현식)을 나타내는 형태일 수 있다. 다른 실시예에서, 서로 다른 프레임워크 또는 언어로부터의 표현식이 이용되고 생성될 수 있다. 표현식은, 평가될 때, 텍스트의 조각 내의 패턴이나 스트링을 식별한다. 스마트 태그는 선택된 텍스트에서의 구성이 제공한 정의로 생성된다. 몇몇의 다른 실시예에서, 프로세싱 모듈은 또한 데이터 소스 또는 데이터 소스의 위치를 나타내는 형태일 수 있다. 데이터 소스는 개발자가 스마트태그를 생성하였던 데이터 조각 또는 스트링의 리스트를 포함할 수 있다. 데이터 소스는, 예를 들면, 데이터베이스, 스프레드시트, 리스트 파일, XML 문서, 등의 형태일 수 있다.
블럭(312)에서, 문서에서 블럭(310)에 로딩된 인식기를 이용하여 인식 동작이 수행된다. 일 실시예에서, 일반적인 인식기(226)는 문서로부터 데이터의 조각을 선택하고, 데이터의 조각 각각에 대하여, 로딩된 인식기를 호출을 하여 이 데이터의 조각과 관련된 스마트태그가 존재하는지 판정한다. 이 실시예는 각 인식기가 하나의 메소드 호출(예를 들면, ISmartTagRecognizer2 인터페이스의 .Recognize2(…) 메소드 호출)을 구현하기만 해도 되기 때문에 개발자가 로딩된 인식기의 구현을 단순화하게 한다. 그 다음 일반적인 인식기(226)가 스마트태그 구현을 지원하는 데에 필요한 모든 다른 인터페이스를 관리한다. 이러한 특징의 예는 식 인식기에 대하여 도 4와 관련하여 이하 기술된다.
블럭(314)에서, 블럭(310)에 로딩된 액션 처리기를 이용하여 문서에서 액션 처리 동작이 수행된다. 이 실시예에서, 인식기는 텍스트를 인식하고 스마트태그를 삽입한다. 사용자가 스마트태그를 사용할 때, 일반적인 액션 처리기(228)가 트리거(trigger)되고 일반적인 스마트태그 모듈(210)은 그 실행을 블럭(310)에서 동적으로 로딩되었던 올바른 액션 처리기로 라우팅(route)한다. 그 다음 블럭(312 및 314)은 전체 문서가 처리될 때까지 문서의 다른 부분으로부터의 데이터 조각에 대해서 반복적으로 수행될 수 있다.
대안적인 실시예에서, (도 2의) 일반적인 스마트태그 모듈(210)은 블럭(310)을 수행할 때 데이터 소스 내용을 로딩할 필요가 없다. 대신에, (도 2의) 일반적인 인식기(226)가 블럭(312)을 수행할 때 데이터 소스 내용을 로딩할 수 있다.
상술된 프로세스는 순차적으로 도시되었고 기술되었지만, 다른 실시예에서, 블럭에 기술된 동작들은 다른 순서로, 반복적으로 및/또는 병렬적으로 수행될 수 있다. 또한, 상기 실시예는 스마트태그 기술을 사용하지만, 다른 실시예ㄷ르은 다른 기술을 사용하여 문서에 문맥 정보를 삽입할 수 있다.
도 4는, 본 발명에 따른, (도 2의) 일반적인 스마트 태그(200)의 부분들을 배포하는 프로세스를 도시한다. 이 예는 관리자 또는 배포자가 등록된 호스트 애플리케이션에 대한 새로운 인식기(402)를 배포하는 것에 관한 것이다. 새로운 애플리케이션에서, 배포자 또는 관리자는 이들 등록에 필요한 레지스트리 엔트리들을 생성할 필요가 있을 수 있다. 이는, 예를 들면, 사용자가 로그온할 때 스크립트를 통하여 수행될 수 있다.
새로운 인식기(402)가 호스트 애플리케이션의 개발자게 의해서 생성되었다. 예를 들어, 개발자가 새로운 인식기를 생성하였다면, 스마트태그 인터페이스2 릴리즈(release)(예를 들면, 마이크로소프트로부터 이용가능한 스마트태그 소프트웨어 개발 킷(Software Developer Kit: SDK)에서 볼 수 있음)를 위하여 적응된 실시예에서는, 이 인식기는 .Recognize2(…) 메소드 호출을 위한 구현을 제공하기만 하면 된다. 알려진 소프트웨어 버그(bug)의 식별자(즉, 버그번호)를 식별하는 정규 .NET 표현식의 샘플 구현은 이하에 제공된다. 그 다음 이 인식기에 대응하는 액션 처리기가 인식된 버그 번호에 특정된 정보를 포함하는 스마트태그를 얻을 것이다.
namespace MyNamespace
{
/// <summary>
/// Smart Tag class
/// </summary>
public class MyRecognizerClass: ISmartTagRecognizer2
{
private static Regex RegularExpresssion = new Regex(
@"(^|\W)(?<BugNumber>\d{4,5})($|\W)",
RegexOptions.Compiled | RegexOptions.Multiline |
RegexOptions.ExplicitCapture);
public SmartTagRecognizer()
{
}
public void Recognize2(string Text, IF_TYPE DataType, int LocaleID,
ISmartTagRecognizerSite2 RecognizerSite, string ApplicationName,
ISmartTagTokenList TokenList)
{
Match match = RegularExpresssion.Match(Text);
while (match.Success)
{
Group matchGroup = match.Groups["BugNumber"];
const string formatString =
"<?xml version=\"1.0\"?>" +
"<BugReference id='{0}' />";
string context = string.Format(formatString, matchGroup.Value);
ISmartTagProperties propBag = RecognizerSite.GetNewPropertyBag();
propBag.Write("data", context);
RecognizerSite.CommitSmartTag(“http://UniqueSmartTagName”,
matchGroup.Index+1, matchGroup.Length, propBag);
match = RegularExpresssion.Match(Text,
matchGroup.Index + matchGroup.Length);
}
}
}
}
블럭(404)에서, 인식기의 타입이 결정된다. 이 실시예에서, 인식기의 3개의타입(즉, DLL, 정규 표현식 및 데이터 소스)이 존재하지만, 다른 실시예에서는 다른 수의 타입이 존재할 수 있다. 이 실시예에서, 액션 처리기는 DLL이다.
판정 블럭(406)에서, 인식기(402)가 데이터 소스 타입인지 여부가 판정된다. 일 실시예에서, 배포자 및 관리자가 이 판정을 한다. 인식기(402)가 데이터 소스 타입이면, 동작적인 흐름은 블럭(408)으로 진행된다.
블럭(408)에서, 배포자 또는 관리자가 (도 2의) 리파지토리(204)에 인식기 (402)의 데이터 소스의 사본을 저장하고, (도 2의) 스마트태그 구성 정보(230)에 저장된 데이터 소스의 위치로의 포인터(또는 저장된 데이터 소스의 위치를 식별하는 메카니즘)를 입력하기만 하면 된다. 블럭(406)에서 인식기(402)가 데이터 소스가 아니라고 판정되면, 동작적인 흐름은 블럭(410)으로 진행된다.
판정 블럭(410)에서, 인식기(402)가 정규 표현식인지 여부를 판정한다. 이 실시예에서, 배포자 및 관리자가 이 판정을 한다. 인식기(402)가 정규 표현식 타입이라면, 동작적인 흐름은 블럭(412)으로 진행된다.
블럭(412)에서, 배포자 또는 관리자가 (도 2의) 스마트태그 구성 정보(230)에 정규 표현식을 나타내는 데이터를 저장하기만 하면 된다. 상술된-버그 번호 표현식에 대한 예는 다음과 같이 기술된다:
<SmartTagRecognizer ExpressionToDetect="(^|\W)(?<BugNumber>\d{4,5})($|\W)"
ExpressionToGenerate="<?xml version=\"1.0\"?><BugReference id='{0}' />" />
이 실시예에서, (도 2의) 일반적인 스마트태그 모듈(210)은 분리된 동작으로 리파지토리(204)로부터의 표현식을 얻어야 하기 보다는 직접적으로 스마트태그 구성 정보(230)로부터의 이 인식기에 필요한 모든 정보를 가진다. 이 실시예에서, 블럭(410)에서 인식기(402)가 정규 표현식이 아니라고 판정되면, 인식기(402)는 DLL 타입이고, 동작적인 흐름은 블럭(414)으로 진행된다.
블럭(414)에서, 배포자 또는 관리자가 (도 2의) 리파지토리(204)에 인식기 (402)의 DLL의 사본을 저장하고 DLL이 저장된 위치로의 포인터(또는 DLL의 위치를 식별하는 다른 메카니즘)를 (도 2의) 스마트태그 구성 정보(230)에 추가하기만 하면 된다. 이 위치 정보를 스마트태그 구성 정보(230)에 추가하는 것에 대한 예는 이하에 제공된다:
<SmartTagRecognizer Location=”\\some_share\MyRecognizer.dll” ClassName=”MyNamespace.MyRecognizerClass” />
액션 처리기를 배포하기 위하여, 배포자 또는 관리자는 리파지토리(204)에 액션 처리기 DLL을 저장하고 DLL로의 포인터를 (도 2의) 스마트태그 구성 정보(230)에 추가하는 블럭(414)의 동작과 대체로 유사한 동작들을 수행할 수 있다.
상기 프로세스가 순차적으로 도시되고 기술되었지만, 다른 실시예에서 블럭에 기술된 동작들은 다른 순서로, 여러번, 및/또는 병렬적으로 수행될 수 있다. 또한, 상기 실시예는 스마트태그 기술을 이용하지만, 다른 실시예가 다른 기술을 이용하여 문서에 문맥 정보를 삽입할 수 있다.
예시적인 오퍼레이팅 환경
상술한 다양한 실시예는 서버 및 클라이언트의 컴퓨터 환경에 구현될 수 있다. 서버 및 클라이언트에서 사용하기에 적절한 예시적인 컴퓨터 환경은 도 5에 관련하여 이하 기술된다.
도 5를 참조하면, 본 발명을 구현하는 예시적인 시스템은 컴퓨팅 장치(500)와 같은, 컴퓨팅 장치를 포함한다. 이 시스템의 가장 기본적인 구성에서, 컴퓨팅 장치(500)는 통상적으로 적어도 하나의 프로세싱 유닛(502) 및 메모리(504)를 포함 한다. 정확한 구성 및 컴퓨팅 장치의 유형에 의존하여, 메모리(504)는 (RAM과 같은) 휘발성, (ROM, 플래쉬 메모리, 등과 같은) 비휘발성 또는 이둘의 조합일 수 있다. 이러한 가장 기본적인 구성은 도 5에서 점선(506)으로 도시된다. 또한, 장치(500)는 추가적인 특징/기능도 가질 수 있다. 예를 들면, 장치(500)는 또한 한정되지는 않지만 자기 또는 광 디스크 또는 테입을 포함하는 (분리형(removable) 및/또는 비분리형(non-removable)인) 추가적인 저장장치를 포함할 수 있다. 이러한 추가적인 저장소는 분리형 저장장치(508) 및 비분리형 저장장치(510)로 도 5에 도시된다. 컴퓨터 저장 매체는 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈 또는 다른 데이터와 같은 정보의 저장을 위한 임의의 방법 또는 기술로 구현되는 휘발성 및 비휘발성, 분리형 및 비분리형 매체를 포함한다. 메모리(504), 분리형 저장장치(508) 및 비-분리형 저장장치(510)는 모두 컴퓨터 저장 매체의 예들이다. 컴퓨터 저장 매체는 RAM, ROM, EEPROM, 플래쉬 메모리 또는 기타 메모리 기술, CD-ROM, DVD(digital versatile disk) 또는 기타 광 디스크 저장장치, 자기 카세트, 자기 테이프, 자기 디스크 저장장치 또는 기타 자기 저장장치, 또는 장치(500)에 의해 액세스될 수 있고 원하는 정보를 저장하는 데 사용될 수 있는 임의의 기타 매체를 포함할 수 있지만, 이에 한정되지 않는다. 임의의 이러한 컴퓨터 저장 매체는 장치(500)의 일부일 수 있다.
장치(500)는 또한 장치가 다른 장치들과 통신할 수 있게 하는 통신 접속(들)(512)을 포함할 수 있다. 통신 접속(들)(512)은 통신 매체의 일례이다. 통신 매체는 통상적으로 반송파 또는 기타 전송 메카니즘 등의 변조된 데이터 신호에 컴퓨 터 판독가능 명령어, 데이터 구조, 프로그램 모듈, 또는 다른 데이터를 구현하며, 임의의 정보 전달 매체를 포함한다. "변조된 데이터 신호"라는 용어는 신호 내에 정보를 인코딩하도록 설정되거나 변환된 특성을 하나 또는 그 이상을 갖는 신호를 의미한다. 예로서, 통신 매체는 유선 네트워크 또는 직접 유선 접속 등의 유선 매체와, 음향, RF, 적외선 및 기타 무선 매체 등의 무선 매체를 포함하지만, 이에 한정되지 않는다. 본 명세서에서 사용된 컴퓨터 판독가능 매체라는 용어는 저장 매체 및 통신 매체를 둘 다 포함한다.
장치(500)는 또한 키보드, 마우스, 펜, 음성 입력 장치, 접촉 입력 장치 등과 같은 입력 장치(들)(514)를 가질 수 있다. 디스플레이, 스피커, 프린터, 등과 같은 출력 장치(들)(516)도 포함될 수 있다. 이들 모든 장치는 본 기술 분야에 잘 알려져 있어 본 명세서에서 장황하게 설명할 필요가 없다.
장치(500)는 다양한 컴퓨터 판독가능 매체를 포함할 수 있다. 컴퓨터 판독가능 매체는 장치(500)에 의해 액세스될 수 있는 임의의 이용가능한 매체일 수 있으며, 휘발성 및 비휘발성 매체, 분리형 및 비분리형 매체를 둘다 포함한다. 예로서, 컴퓨터 판독가능 매체는 컴퓨터 저장 매체 및 통신 매체를 포함할 수 있지만, 이에 한정되는 것은 아니다. 컴퓨터 저장 매체는 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈 또는 다른 데이터와 같은 정보의 저장을 위한 임의의 방법 또는 기술로 구현되는 휘발성 및 비휘발성, 분리형 및 비분리형 매체를 둘다 포함한다. 컴퓨터 저장 매체는 RAM, ROM, EEPROM, 플래쉬 메모리 또는 기타 메모리 기술, CD-ROM, DVD(digital versatile disk) 또는 기타 광학 디스크 저장장치, 자기 카세트, 자기 테이프, 자기 디스크 저장장치 또는 기타 자기 저장장치, 또는 장치(500)에 의해 액세스될 수 있고 원하는 정보를 저장하는 데 사용될 수 있는 임의의 기타 매체를 포함하지만, 이에 한정되지 않는다. 통신 매체는 통상적으로 반송파 또는 기타 전송 메카니즘 등의 변조된 데이터 신호에 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈, 또는 다른 데이터를 구현하며, 임의의 정보 전달 매체를 포함한다. "변조된 데이터 신호"라는 용어는 신호 내에 정보를 인코딩하도록 설정되거나 변환된 특성을 하나 또는 그 이상을 갖는 신호를 의미한다. 예로서, 통신 매체는 유선 네트워크 또는 직접 유선 접속 등의 유선 매체와, 음향, RF, 적외선 및 기타 무선 매체 등의 무선 매체를 포함하지만, 이에 한정되지 않는다. 상술한 것들 중의의 임의의 조합이 또한 컴퓨터 판독가능 매체의 범위 내에 포함되어야 한다.
본 발명에서 하나 이상의 컴퓨터 또는 다른 장치에 의해 실행되는 프로그램 모듈과 같은, 다양한 모듈 및 기법이 컴퓨터 실행가능 명령어와 일반적으로 관련하여 기술될 수 있다. 일반적으로, 프로그램 모듈은 특정 태스크를 수행하거나 특정 추상 데이터 유형을 구현하는 루틴, 프로그램, 오브젝트, 컴포넌트, 데이터 구조 등을 포함한다. 이들 프로그램 모듈 및 그외의 것들은, 가상 기기 또는 다른 엄격한-시간-제약을 따르는 실행 환경 등에서, 원시 코드로서 실행될 수 있거나 다운로드되어 실행될 수 있다. 통상적으로, 프로그램 모듈의 기능은 다양한 환경에서 원하는 바와 같이 결합되거나 분산될 수 있다.
이들 모듈 및 기법의 구현은 몇몇의 컴퓨터 판독가능 매체의 형태에 저장되 거나 그 형태를 통하여 전송될 수 있다. 컴퓨터 판독가능 매체는 컴퓨터에 의해 액세스될 수 있는 임의의 이용가능한 매체일 수 있다. 예로서, 컴퓨터 판독가능 매체는 "컴퓨터 저장 매체" 및 "통신 매체"를 포함할 수 있지만 이에 한정되지 않는다.
"컴퓨터 저장 매체"는 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈 또는 다른 데이터와 같은 정보의 저장을 위한 임의의 방법 또는 기술로 구현되는 휘발성 및 비휘발성, 분리형 및 비분리형 매체를 포함한다. 컴퓨터 저장 매체는 RAM, ROM, EEPROM, 플래쉬 메모리 또는 기타 메모리 기술, CD-ROM, DVD(digital versatile disk) 또는 기타 광 저장장치, 자기 카세트, 자기 테이프, 자기 디스크 저장장치 또는 기타 자기 저장장치, 또는 컴퓨터에 의해 액세스될 수 있고 원하는 정보를 저장하는 데 사용될 수 있는 임의의 기타 매체를 포함하지만, 이에 한정되지 않는다.
"통신 매체"는 통상적으로 반송파 또는 기타 전송 메카니즘 등의 변조된 데이터 신호에 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈, 또는 다른 데이터를 구현한다. 통신 매체는 또한 임의의 정보 전달 매체를 포함한다. "변조된 데이터 신호"라는 용어는 신호 내에 정보를 인코딩하도록 설정되거나 변환된 특성을 하나 또는 그 이상을 갖는 신호를 의미한다. 예로서, 통신 매체는 유선 네트워크 또는 직접 유선 접속 등의 유선 매체와, 음향, RF, 적외선 및 기타 무선 매체 등의 무선 매체를 포함하지만, 이에 한정되지 않는다. 상술한 것들 중 임의의 조합이 컴퓨터 판독가능 매체의 범위 내에 포함된다.
특정 기술된 특징, 구조, 또는 특성이 본 발명의 적어도 하나의 실시예에 포함됨을 의미하는 "일 실시예", "한 실시예", 또는 "한 예시적인 실시예"로의 참조가 본 명세서 전반에 걸쳐 이루어진다. 그러므로, 이러한 용어의 사용은 단지 하나의 실시예보다는 많은 것을 언급한다. 또한, 기술된 특징, 구조, 또는 특성이 하나 이상의 실시예에 임의의 적절한 방식으로 결합될 수 있다.
그러나, 본 기술 분야에서 숙련된 기술을 가진 자라면 본 발명은 하나 이상의 특정 상세한 사항 없이 또는 다른 방법, 자원, 재료 등으로 실행될 수 있다고 인식할 수 있다. 다른 예에서, 잘 알려진 구조, 자원, 또는 동작은 단지 본 발명의 양태를 명확하지 않게 하는 것을 방지하기 위하여 상세하게 도시되고 기술된 것은 아니다.
예시적인 실시예 및 애플리케이션이 도시되고 기술되었지만, 본 발명은 상술한 정확한 구성 및 자원으로 한정되는 것은 아니라고 이해되어야 한다. 본 기술 분야에서 숙련된 기술을 가진자가 볼 수 있는 다양한 수정, 변경, 및 변형물이 청구된 발명의 범위를 벗어나지 않고 본 명세서에서 개시된 본 발명의 방법 및 시스템의 구성, 동작, 및 상세한 사항으로 이루어질 수 있다.
다양한 실시예의 양태에 따라서, 일반적인 스마트태그 시스템이 제공된다. 한 양태에서, 스마트태그 구성 정보를 포함하는 리파지토리로의 액세스를 가지는 컴퓨팅 플랫폼에 (일반적인 인식기 및 일반적인 액션 처리기를 포함하는) 일반적인 스마트태그 모듈이 제공되고 그 플랫폼에 상주하는 스마트태그를-이용가능한 애플 리케이션 각각에 인식기 및 액션 처리기가 제공된다. 리파지토리는 복수의 컴퓨팅 플랫폼에 이용가능한 공유되는 데이터저장소일 수 있다. 일반적인 스마트태그 모듈은 런타임시에 선택된 인식기 및 액션 처리기를 리파지토리로부터 동적으로 로딩(loading) 및 언로딩(unloading)한다. 공유되는 리파지토리는 인식기 및 액션 처리기의 보유를 단순하게 하는 이점이 있다.

Claims (33)

  1. 문맥상의 정보를 문서에 추가하는 방법으로서,
    문서의 문맥을 결정하는 단계,
    리파지토리(repository)로부터 상기 문맥상의 정보와 관련된 구성 정보를 로딩(loading)시키는 단계, 및
    상기 문맥 및 상기 구성 정보에 응답하여 상기 리파지토리로부터 프로세싱 모듈을 로딩시키는 단계 - 상기 프로세싱 모듈은 활성화될 때 문맥상의 정보를 상기 문서에 추가하기 위함 -
    를 포함하는 방법.
  2. 제1항에 있어서,
    상기 리파지토리로부터 구성 정보를 로딩시키는 단계는 상기 구성 정보가 로딩되는 위치로부터 원거리에 있는 리파지토리로부터 구성 정보를 로딩시키는 단계를 포함하는 방법.
  3. 제1항에 있어서,
    상기 리파지토리로부터 구성 정보를 로딩시키는 단계는 동적으로 링크된 라이브러리(DLL)로의 포인터를 로딩시키는 단계를 포함하는 방법.
  4. 제1항에 있어서,
    상기 리파지토리로부터 구성 정보를 로딩시키는 단계는 상기 구성 정보를 포함하는 데이터 소스를 로딩시키는 단계를 포함하는 방법.
  5. 제1항에 있어서,
    상기 리파지토리로부터 구성 정보를 로딩시키는 단계는 상기 구성 정보를 포함하는 표현식을 로딩시키는 단계를 포함하는 방법.
  6. 제1항에 있어서,
    상기 리파지토리로부터 구성 정보를 로딩시키는 단계는
    어떠한 문맥도 결정될 수 없다면 디폴트(default) 구성 정보를 로딩시키는 단계를 포함하는 방법.
  7. 제1항에 있어서,
    상기 구성 정보는 복수의 문맥에 적용되는 정보를 포함하는 방법.
  8. 제1항에 있어서,
    상기 리파지토리는 복수의 엔티티(entity)에 의해 액세스될 수 있는 방법.
  9. 제1항에 있어서,
    상기 로딩된 구성 정보를 언로딩(unloading)하는 단계를 더 포함하는 방법.
  10. 제1항에 있어서,
    상기 로딩된 프로세싱 모듈을 언로딩하는 단계를 더 포함하는 방법.
  11. 제1항에 있어서,
    문서에서 선택된 데이터 조각을 인식하는 프로세싱 모듈을 호출을 하는 단계를 더 포함하는 방법.
  12. 제11항에 있어서,
    인식된 데이터 조각에 응답하여 다른 프로세싱 모듈을 호출을 하는 단계를 더 포함하는 방법.
  13. 제1항에 있어서,
    상기 문서의 문맥은 상기 문서의 속성을 포함하는 방법.
  14. 제1항에 있어서,
    상기 문서의 문맥은 상기 문서와 연관된 스타일 시트(style sheet)를 포함하는 방법.
  15. 제1항에 있어서,
    상기 문서의 문맥은 상기 문서에 첨부된 스키마(schema)를 포함하는 방법.
  16. 제1항에 있어서,
    상기 문서의 문맥은 상기 문서를 생성하는 데에 이용되는 호스트 애플리케이션을 포함하는 방법.
  17. 제1항 기재의 방법을 수행하는 명령어들을 포함하는 기기 판독가능 매체.
  18. 문맥상의 정보를 문서에 추가하는 장치에 있어서,
    상기 문서의 문맥을 결정하는 수단,
    리파지토리로부터 상기 문맥상의 정보와 관련된 구성 정보를 로딩시키는 수단,
    상기 문맥 및 상기 구성 정보에 응답하여 상기 리파지토리로부터 프로세싱 모듈을 로딩시키는 수단 - 상기 프로세싱 모듈은 활성화될 때 문맥상의 정보를 상기 문서에 추가하기 위함 -
    을 포함하는 장치.
  19. 제18항에 있어서,
    상기 리파지토리는 상기 장치로부터 원거리에 위치된 장치.
  20. 제18항에 있어서,
    상기 구성 정보는 DLL로의 포인터, 데이터 소스, 및 표현식 중 하나 이상을 포함하는 장치.
  21. 제18항에 있어서,
    상기 구성 정보를 로딩시키는 수단은 상기 문서의 문맥을 결정할 수 없다고 판정하는 상기 수단에 응답하여 디폴트 구성 정보를 로딩시키는 장치.
  22. 제18항에 있어서,
    로딩된 구성 정보를 언로딩시키는 수단, 및 로딩된 프로세싱 모듈을 언로딩시키는 수단을 더 포함하는 장치.
  23. 제18항에 있어서,
    상기 문서에서 선택된 데이터 조각을 인식하는 프로세싱 모듈을 호출을 하는 수단을 더 포함하는 장치.
  24. 제23항에 있어서,
    인식된 데이터 조각에 응답하여 다른 프로세싱 모듈을 호출을 하는 수단을 더 포함하는 장치.
  25. 문맥상의 정보를 문서에 추가하는 시스템으로서,
    로딩된 제2 인식기를 호출을 하여 상기 문서에서 선택된 데이터 조각을 인식하는 제1 인식기,
    상기 제1 인식기에 의해 인식된 데이터 조각에 응답하여 로딩된 제2 액션 처리기(handler)를 호출을 하는 제1 액션 처리기, 및
    상기 문서의 문맥을 결정하고, 그 응답으로, 리파지토리로부터 상기 문맥상의 정보와 연관된 구성 문서를 로딩시키는 구성 로더
    를 포함하는 시스템.
  26. 제25항에 있어서,
    상기 구성 로더는 상기 로딩된 구성 정보에 응답하여 상기 제2 인식기 및 액션 처리기를 로딩시키는 시스템.
  27. 제25항에 있어서,
    상기 구성 로더는 또한 상기 로딩된 구성 정보에 응답하여 복수의 인식기 및 복수의 액션 처리기를 로딩시키는 시스템.
  28. 제25항에 있어서,
    상기 시스템이 기기에 설치되었을 때 상기 문서를 생성하는 데에 이용되는 호스트 애플리케이션에 등록되는 시스템.
  29. 제25항에 있어서,
    상기 제2 인식기는 상기 문서를 생성하는 데에 이용되는 호스트 애플리케이션에 등록될 필요가 없는 시스템.
  30. 제25항에 있어서,
    상기 구성 정보는 DDL로의 포인터, 데이터 소스, 및 표현식 중 하나 이상을 포함하는 시스템.
  31. 제25항에 있어서,
    상기 리파지토리는 상기 시스템이 상주하는 기기와는 다른 기기에 상주하는 시스템.
  32. 제25항에 있어서,
    상기 리파지토리는 상기 시스템이 상주하는 기기와는 다른 기기에 상주하는 다른 시스템으로 액세스할 수 있는 시스템.
  33. 제25항 기재의 시스템을 구현하는 컴포넌트를 포함하는 기기 판독가능 매체.
KR1020050041533A 2004-05-28 2005-05-18 문서에 문맥 정보를 삽입하는 방법 및 시스템 KR20060047998A (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US57554804P 2004-05-28 2004-05-28
US60/575,548 2004-05-28
US10/891,093 2004-07-14
US10/891,093 US20050268219A1 (en) 2004-05-28 2004-07-14 Method and system for embedding context information in a document

Publications (1)

Publication Number Publication Date
KR20060047998A true KR20060047998A (ko) 2006-05-18

Family

ID=34939782

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020050041533A KR20060047998A (ko) 2004-05-28 2005-05-18 문서에 문맥 정보를 삽입하는 방법 및 시스템

Country Status (4)

Country Link
US (1) US20050268219A1 (ko)
EP (1) EP1600860A3 (ko)
JP (1) JP2006048645A (ko)
KR (1) KR20060047998A (ko)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050240653A1 (en) * 2004-04-23 2005-10-27 Telenor Asa Integrated telecommunications/office automation apparatus, system, and computer program product
US7761924B2 (en) * 2004-06-30 2010-07-20 Microsoft Corporation Manipulation of information embedded in content
WO2006008516A1 (en) * 2004-07-22 2006-01-26 Barefruit Limited Improved user interface
US20070245308A1 (en) * 2005-12-31 2007-10-18 Hill John E Flexible XML tagging
US8244694B2 (en) * 2006-09-12 2012-08-14 International Business Machines Corporation Dynamic schema assembly to accommodate application-specific metadata
US20090037842A1 (en) * 2007-07-31 2009-02-05 Tysowski Piotr K Electronic device and method of controlling the electronic device
US10699242B2 (en) * 2008-01-16 2020-06-30 International Business Machines Corporation Automated surfacing of tagged content adjunct to vertical applications
US9235648B2 (en) 2008-01-16 2016-01-12 International Business Machines Corporation Automated surfacing of tagged content in vertical applications
US20090217254A1 (en) * 2008-02-22 2009-08-27 Microsoft Corporation Application level smart tags
US11151323B2 (en) 2018-12-03 2021-10-19 International Business Machines Corporation Embedding natural language context in structured documents using document anatomy

Family Cites Families (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU6826694A (en) * 1993-05-10 1994-12-12 Apple Computer, Inc. System for automatically determining the status of contents added to a document
US5797015A (en) * 1995-04-18 1998-08-18 Pitney Bowes Inc. Method of customizing application software in inserter systems
US5765176A (en) * 1996-09-06 1998-06-09 Xerox Corporation Performing document image management tasks using an iconic image having embedded encoded information
US6353824B1 (en) * 1997-11-18 2002-03-05 Apple Computer, Inc. Method for dynamic presentation of the contents topically rich capsule overviews corresponding to the plurality of documents, resolving co-referentiality in document segments
US6804659B1 (en) * 2000-01-14 2004-10-12 Ricoh Company Ltd. Content based web advertising
WO2000007133A1 (en) * 1998-07-28 2000-02-10 Adobe Systems Incorporated Method and system for applying user specified hyperlinks
US6324551B1 (en) * 1998-08-31 2001-11-27 Xerox Corporation Self-contained document management based on document properties
US6763496B1 (en) * 1999-03-31 2004-07-13 Microsoft Corporation Method for promoting contextual information to display pages containing hyperlinks
CA2409920C (en) * 2000-06-22 2013-05-14 Microsoft Corporation Distributed computing services platform
US6681223B1 (en) * 2000-07-27 2004-01-20 International Business Machines Corporation System and method of performing profile matching with a structured document
US20020129345A1 (en) * 2000-09-27 2002-09-12 Tilden Mark D. Scripting business logic in a distributed object oriented environment
US7032174B2 (en) * 2001-03-27 2006-04-18 Microsoft Corporation Automatically adding proper names to a database
US7171619B1 (en) * 2001-07-05 2007-01-30 Sun Microsystems, Inc. Methods and apparatus for accessing document content
US20030125929A1 (en) * 2001-12-10 2003-07-03 Thomas Bergstraesser Services for context-sensitive flagging of information in natural language text and central management of metadata relating that information over a computer network
US20040215665A1 (en) * 2002-01-09 2004-10-28 Edgar David A. System, method, and computer program product for providing accelerated and secure wireless data transmission over the internet
US6826437B2 (en) * 2002-02-28 2004-11-30 Advanced Micro Devices, Inc. Association of process context with configuration document for manufacturing process
WO2003091848A2 (en) * 2002-04-23 2003-11-06 Joe Acton System and method for generating and displaying attribute-enhanced documents
US20050108195A1 (en) * 2002-05-07 2005-05-19 Microsoft Corporation Method, system, and apparatus for processing information based on the discovery of semantically labeled strings
US7356537B2 (en) * 2002-06-06 2008-04-08 Microsoft Corporation Providing contextually sensitive tools and help content in computer-generated documents
US7003522B1 (en) * 2002-06-24 2006-02-21 Microsoft Corporation System and method for incorporating smart tags in online content
US20040123308A1 (en) * 2002-12-20 2004-06-24 Siemens Information And Communication Networks, Inc. Hybird of implicit and explicit linkage of windows dynamic link labraries
US20040158619A1 (en) * 2003-02-10 2004-08-12 Claus Pedersen Method and apparatus for provisioning content
US8239380B2 (en) * 2003-06-20 2012-08-07 Microsoft Corporation Systems and methods to tune a general-purpose search engine for a search entry point
US7458022B2 (en) * 2003-10-22 2008-11-25 Intel Corporation Hardware/software partition for high performance structured data transformation
US20050262435A1 (en) * 2003-10-30 2005-11-24 Avaya Technology Corp. Automatic detection and dialing of phone numbers on computer documents
US20050097189A1 (en) * 2003-10-30 2005-05-05 Avaya Technology Corp. Automatic detection and dialing of phone numbers on web pages
US8095882B2 (en) * 2003-10-30 2012-01-10 Avaya Technology Corp. Additional functionality for telephone numbers and utilization of context information associated with telephone numbers in computer documents
US8656274B2 (en) * 2003-10-30 2014-02-18 Avaya Inc. Automatic identification and storage of context information associated with phone numbers in computer documents
US7673286B2 (en) * 2004-01-30 2010-03-02 Microsoft Corporation Architecture for converting control types in a data bound user interface
US20050261010A1 (en) * 2004-04-23 2005-11-24 Telenor Asa Integrated telecommunications/office automation apparatus, system, and computer program product
US7761924B2 (en) * 2004-06-30 2010-07-20 Microsoft Corporation Manipulation of information embedded in content
US20060004618A1 (en) * 2004-06-30 2006-01-05 Microsoft Corporation Explaining task scheduling for a project
US20060230333A1 (en) * 2005-04-07 2006-10-12 Microsoft Corporation Creating associated content for a region of a document in response to a user selecting the region

Also Published As

Publication number Publication date
EP1600860A2 (en) 2005-11-30
EP1600860A3 (en) 2007-09-19
US20050268219A1 (en) 2005-12-01
JP2006048645A (ja) 2006-02-16

Similar Documents

Publication Publication Date Title
US10169034B2 (en) Verification of backward compatibility of software components
Hashimi et al. Pro Android 3
KR20060047998A (ko) 문서에 문맥 정보를 삽입하는 방법 및 시스템
US7698126B2 (en) Localization matching component
US8261244B2 (en) Arbitrary runtime function call tracing
US7653528B2 (en) Resource authoring incorporating ontology
KR100995199B1 (ko) 명령에 입력되는 파라미터들에 반영 기반 프로세싱을 수행하는 시스템 및 컴퓨터 판독 가능 저장 매체
US8219907B2 (en) Resource authoring with re-usability score and suggested re-usable data
US9977770B2 (en) Conversion of a presentation to Darwin Information Typing Architecture (DITA)
US7774195B2 (en) Method and system for creating, storing, managing and consuming culture specific data
US10048960B2 (en) Identifying source code used to build executable files
US20130055291A1 (en) Describing native application programming interfaces of an operating system with metadata
EP1701255B1 (en) Authoring implementing application localization rules
US7761924B2 (en) Manipulation of information embedded in content
KR20080071133A (ko) 메타데이터를 이용하여 사용자 인터페이스를 렌더링하기위한 장치, 사용자 인터페이스를 생성하는 방법, 및 컴퓨터판독 가능 매체
US20070083378A1 (en) Secure application programming interface
Mackey Introducing. NET 4.0: With Visual Studio 2010
US20230130527A1 (en) Dynamic review of software updates after pull requests
JPWO2011118003A1 (ja) ウェブアプリケーション構築システム、ウェブアプリケーション構築方法、ウェブアプリケーション構築プログラムおよびウェブアプリケーション構築プログラムを記録した記録媒体
US20110296373A1 (en) Command line shell command generation based on schema
US8146109B2 (en) Version resiliency for a host application and custom code
EP2756396B1 (en) Simulation of static members and parameterized constructors on an interface-based api
Hoang Finnish scanner mobile application
KR20190048416A (ko) 애플리케이션의 화이트 레이블링 장치 및 방법
Cafferky et al. Extending PowerShell

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid