KR20080024114A - 컨텍스트 기반 작업 환경 - Google Patents

컨텍스트 기반 작업 환경 Download PDF

Info

Publication number
KR20080024114A
KR20080024114A KR1020077027610A KR20077027610A KR20080024114A KR 20080024114 A KR20080024114 A KR 20080024114A KR 1020077027610 A KR1020077027610 A KR 1020077027610A KR 20077027610 A KR20077027610 A KR 20077027610A KR 20080024114 A KR20080024114 A KR 20080024114A
Authority
KR
South Korea
Prior art keywords
context
references
task
computer system
contexts
Prior art date
Application number
KR1020077027610A
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 KR20080024114A publication Critical patent/KR20080024114A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/957Browsing optimisation, e.g. caching or content distillation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/903Querying
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/40Data acquisition and logging

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Computational Linguistics (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Stored Programmes (AREA)

Abstract

본 발명은 컨텍스트 기반 환경을 제공하기 위한 방법, 시스템, 및 컴퓨터 프로그램 제품들에 관한 것이다. 몇몇 실시예에서, 컨텍스트와 관련된 참조를 캡쳐하기 위해 컴퓨터 시스템이 관계를 마이닝하도록 구성된다. 다른 실시예에서, 컴퓨터 시스템이 컨텍스트에 참조를 추가한다. 또한 다른 실시예에서, 태스크의 다른 부분들의 수행 사이에서 태스크로부터 포커스가 시프트될 때 컴퓨터 시스템이 태스크를 수행한다. 따라서, 본 발명의 실시예들은 컴퓨터 시스템에서 더 효과적인 데이터 조작을 증진하며, 작업자가 떠났다가 이어서 태스크를 다시 시작할 때 재-수행되어야 하는 작업의 양을 (잠재적으로 의미있게) 줄일 수 있다.
컨텍스트 기반 환경, 참조, 관계, 태스크

Description

컨텍스트 기반 작업 환경{CONTEXT BASED WORK ENVIRONMENT}
컴퓨터 시스템 및 관련된 기술들은 사회의 많은 양상들에 영향을 준다. 실제로, 정보를 처리하는 컴퓨터 시스템의 능력은 우리가 생활하고 일하는 방식을 변화시켰다. 이제 컴퓨터 시스템들은 컴퓨터 시스템의 출현 전에는 수동적으로 수행되었던 태스크(예를 들어, 워드 프로세싱, 스케줄링, 및 데이터베이스 관리)들의 호스트를 일반적으로 수행한다. 더욱 최근에, 컴퓨터 시스템 및 다른 전자 장치들이 전자적 데이터를 전송할 수 있는 유선 및 무선 컴퓨터 네트워크를 형성하기 위해, 컴퓨터 시스템들은 서로 연결되고 다른 전자 장치들과도 연결되었다. 그 결과, 컴퓨터 시스템에서 수행되는 많은 태스크들(예를 들어, 음성 통신, 전자 메일, 가전 제품 제어, 웹 브라우징, 및 문서 인쇄)은 유선 및/또는 무선 컴퓨터 네트워크를 통한 다수의 컴퓨터 시스템 및/또는 전자 장치들 사이의 전자적 메시지 교환을 포함한다.
사실상 모든 컴퓨팅 환경에서, 사용자들은, 예를 들어, 다른 애플리케이션 및/또는 다른 데이터와 같은 다르게 구성된 요소들 사이를 자주 전환한다. 종종, 다른 애플리케이션 및 다른 데이터들은 서로 관련된다. 예를 들어, LOB(Line of Buisness) 시스템에서 참조는 흔히, 예를 들어, 특정 고객, 특정 주문, 또는 특정 제품과 같은 인스턴스와 관련된다. 따라서, 고객 제안서를 준비하는 과정에서, 세 일즈 매니저는 제품 전략을 결정하기 위해 다양한 공급자로부터의 다수의 대안적인 제품들을 비교해보고 싶어할 수 있다. 이에 따라, 각 대안적인 제품은 모든 다른 대안적인 제품 및 고객 제안서와 관련된다.
종종, 다른 애플리케이션의 사용을 통한 다른 유형의 데이터의 조작은 컴퓨터 시스템의 사용자에 의해 개시되고 이해된 인간-구동 프로세스(human-driven process)의 일부이다. 예를 들어, 세일즈 매니저는 다른 애플리케이션을 사용하고 있을 가능성이 있는 다른 공급자들로부터의 제품 데이터를 액세스할 수 있다. 몇몇 제품 데이터는 전자 메일을 통해 얻을 수 있고, 몇몇은 웹 브라우징을 통해, 몇몇은 전화 통신 등을 통해 얻을 수 있다. 다음, 기업 경영진들을 위한 고객 제안서의 개요를 편집하는 것이 세일즈 매니저의 책임일 수 있다. 하지만, 애플리케이션을 실행하고 데이터를 조작하는 컴퓨터 시스템의 관점에서 이 프로세스는 구조화되지 않은 프로세스이다. 다시 말하면, 다른 애플리케이션을 통해 제품 데이터를 액세스하고 개요를 편집하는 것의 프로세스는 세일즈 매니저의 생각에는 존재하지만 프로세스에 대한 어떠한 형식적 설명도 컴퓨터 시스템에 알려지지 않는다. 따라서, 일반적으로, 전체적인 태스크 상태를 제공하는 컴퓨터 기반 지원 또는 애플리케이션들을 조정하는 것에 대한 컴퓨터 기반 안내가 없다. 따라서, 태스크 상태를 유지하고 애플리케이션들을 조정하는 것은 세일즈 매니저의 몫이다.
따라서, 인간-구동 프로세스에서 사용자가 작업을 일시적으로 정지해야 하면(예를 들어, 소정의 다른 프로세스를 작업하기 위해), 그 프로세스에서 작업이 정지되었던 시점으로 돌아갈 수 있는 쉬운 방법이 없는 경우가 많다. 다시 말해, 일반적으로 다수의 데이터 유형, 애플리케이션 등을 다루는 태스크를 정지시키고 다시 시작하기 위한 컴퓨터 기반 메커니즘이 없다. 그 결과, 사용자는 종종 그들이 어디에 있었는지 기억하도록 요구된다. 만약 사용자가 자신의 기억에 있어 정확하지 않다면, 사용자는 이전에 수행된 작업의 일정량을 다시 하도록 요구될 수 있다. 예를 들어, 고객 제안 프로젝트로 돌아갈 때, 세일즈 매니저는 다른 공급자로부터의 제품들을 재-식별(re-identify)하기 위해 이메일, 웹 페이지 및 전화 메시지의 위치를 찾고 재검토(re-review)해야 할 수 있다.
제1 사용자가 인간-구동 프로세스의 일부를 수행하고 제2의 다른 사용자가(예를 들어, 제1 사용자의 책임 위임의 결과로) 인간-구동 프로세스의 다른 일부를 수행할 때 유사한, 그리고 잠재적으로 더 어려운 문제들이 발생할 수 있다. 다시 말해, 태스크의 다른 부분들이 다른 데이터 유형 및 다른 애플리케이션에 의존할 때, 일반적으로 멀티-사용자(multi-user) 기반 태스크를 구현하기 위한 컴퓨터 기반 메커니즘이 없다. 따라서, 제2 사용자는, 제2 사용자가 인간-구동 프로세스에 작업하기 전에 제1 사용자가 인간-구동 프로세스상에서 얼마나 진행해 있었는지 알 수 있는 방법이 없을 수 있다. 예를 들어, 세일즈 매니저는 고객 제안서의 작업을 시작할 수 있고 다음, 미래의 한 시점에서, 고객 제안서의 완성을 어시스턴트에게 위임할 수 있다. 유감스럽게도, 고객 제안서가 정확하다는 것을 보장하기 위해, 어시스턴트는 세일즈 매니저가 이미 수행한 적어도 몇몇의 동작들을 다시 수행해야할 수 있다. 예를 들어, 어시스턴트는 세일즈 매니저가 이미 검토한 이메일, 웹 페이지, 및 전화 메시지의 위치를 찾고 재검토해야 할 수 있다.
태스크의 다른 부분들이, 예를 들어, 다르게 구성된 사용자 인터페이스, 다르게 구성된 보안 요구사항, 다르게 구성된 접속 요구사항 등과 같은 다르게 구성된 컴퓨터 시스템 요소들에 의존할 때 기타 유사한 문제들이 발생할 수 있다. 그 결과, 사용자는 종종 이전에 식별된 데이터를 재-식별하고 이전에 수행된 작업을 재-수행하도록 강요된다. 이전에 식별된 데이터를 재-식별하고, 이전에 수행된 작업을 재-수행하는 것은 비능률적이며 생산성을 감소시킬 수 있다.
앞서 말한 본 기술의 이전 상태의 문제들은 본 발명의 원리에 의해 극복되며, 이 본 발명의 원리들은 컨텍스트(context) 기반 작업 환경을 제공하기 위한 방법, 시스템, 및 컴퓨터 프로그램 제품들에 대한 것이다. 몇몇의 실시예에서, 컴퓨터 시스템은 컨텍스트와 관련된 참조들을 캡쳐하기 위해 관계(relationship)들을 마이닝(mining)한다. 컴퓨터 시스템은 컨텍스트의 공통 외부 행동(common external behavior)를 통해 쿼리 기준을 컨텍스트에 서브밋한다. 공통 외부 행동은 컨텍스트 및 하나 이상의 다른 컨텍스트와 공통이며, 공통 인터페이스를 제공하여 다른 애플리케이션들이 컨텍스트 및 하나 이상의 다른 컨텍스트에 쿼리를 균일하게 서브밋할 수 있도록 한다.
컨텍스트는 컨텍스트의 특유한 내부적 행동에 따라 쿼리 기준을 만족하는 컨텍스트 내의 임의의 참조들을 내부적으로 식별한다. 컴퓨터 시스템은 잠재적으로 관련된 참조를 가진 하나 이상의 컨텍스트에 포함된 제2 컨텍스트가 컨텍스트의 관련성 임계값(relevance threshold) 내에 있음을 결정한다. 컴퓨터 시스템은 공통 외부 행동을 통해 재귀적(recursively)으로 쿼리 기준을 제2 컨텍스트에 서브밋한다. 제2 컨텍스트는 제2 컨텍스트의 특유한 내부적 행동에 따라 쿼리 기준을 만족하는 제2 컨텍스트 내의 임의의 참조들을 내부적으로 식별한다.
다른 실시예에서, 컴퓨터 시스템은 컨텍스트에 참조를 추가한다. 컴퓨터 시스템은 사용자 입력 장치를 통해 참조를 선택한다. 컴퓨터 시스템은 참조가 컨텍스트에 포함될 것임을 나타낸다. 컨텍스트는 컴퓨터 시스템에서 컨텍스트 및 하나 이상의 다른 컨텍스트와 공통인 참조를 수신하기 위한 공통 외부 컨텍스트 행동을 갖는다. 컨텍스트는 공통 외부 행동에 따라 참조를 받아들인다. 컨텍스트는 내부 논리에 따라 참조를 프로세싱한다. 컨텍스트의 내부에 있고 서로 다른 내부 논리는 하나 이상의 다른 컨텍스트의 적어도 하나의 내부 논리를 형성한다.
또한 다른 실시예에서, 컴퓨터 시스템은 태스크의 다른 부분들의 수행 사이에서 태스크에 대한 포커스(focus)가 시프트(shift)되었을 때 태스크를 수행한다. 컴퓨터 시스템은 태스크를 수행하는 것과 관련된 하나 이상의 참조를 포함하는 컨텍스트에 포커스를 시프트한다(예를 들어, 자동으로 또는 사용자 입력에 대한 응답으로). 태스크의 제1 부분이 수행된다. 태스크의 제1 부분의 수행은 하나 이상의 관련된 참조의 구성을 조작하는 결과를 가져온다. 컴퓨터 시스템은 하나 이상의 관련된 참조의 구성을 보존하기 위해 컨텍스트를 저장한다. 컴퓨터 시스템은 다른 참조들을 포함하는 다른 컨텍스트로 포커스를 시프트하여(예를 들어, 자동으로 또는 사용자 입력에 대한 응답으로) 포커스가 하나 이상의 관련된 참조들로부터 시프트되도록 한다. 컴퓨터 시스템은 컨텍스트를 저장하는 것에 이어 컨텍스트를 복원한다. 태스크의 제1 부분의 결과에 의존하는 태스크의 이어지는 제2 부분이 수행된다. 태스크의 이어지는 제2 부분은 하나 이상의 참조의 보존된 구성을 사용하여 태스크의 제1 부분의 수행이 반복될 필요가 없게 한다.
이들과 본 발명의 목적 및 특징들은 이어지는 설명 및 첨부된 청구항을 통해 더 완전히 명백해지거나, 또는 이하에 제시된 본 발명의 실시를 통해 이해될 수 있다.
위에 제시된 본 발명의 이점 및 특징과 다른 이점 및 특징들을 더 명확하게 하기 위해, 첨부된 도면에 도시된 특정 실시예들을 참조하여 본 발명에 대한 더욱 구체적인 설명이 제시될 것이다. 이 도면들은 단지 본 발명의 전형적인 실시예들을 나타낸다는 것이 이해되며, 따라서 이들은 본 발명의 범위를 제한하는 것으로 이해되어서는 안된다. 본 발명은 첨부된 도면의 사용을 통해 추가적인 전문성 및 세부사항들로 묘사되고 설명될 것이다.
도 1은 컨텍스트 기반 환경을 용이하게 하는 컴퓨터 아키텍처의 예를 도시한다.
도 2는 활동 컨텍스트(activity context) 사용자 인터페이스 화면의 예를 도시한다.
도 3은 컨텍스트와 관련된 참조를 캡쳐하기 위해 관계들을 마이닝하기 위한 방법의 예시적인 흐름도를 도시한다.
도 4는 컨텍스트에 참조를 추가하기 위한 방법의 예시적인 흐름도를 도시한 다.
도 5는 태스크의 다른 부분들의 수행 사이에서 포커스가 시프트될 때 태스크를 수행하기 위한 방법의 예시적인 흐름도를 도시한다.
도 6은 본 발명의 원리를 위한 적합한 운영 환경을 도시한다.
본 발명의 원리는 컨텍스트 기반 환경을 제공하기 위해 제공된다. 몇몇 실시예에서, 컴퓨터 시스템은 컨텍스트와 관련된 참조를 캡쳐하기 위해 관계들을 마이닝한다. 컴퓨터 시스템은 컨텍스트의 공통 외부 행동을 통해 쿼리 기준을 컨텍스트에 서브밋한다. 공통 외부 행동은 컨텍스트 및 하나 이상의 다른 컨텍스트에 대해 공통이며, 공통 인터페이스를 제공하여 다른 애플리케이션들이 컨텍스트 및 하나 이상의 다른 컨텍스트에 쿼리를 균일하게 서브밋할 수 있게 한다.
컨텍스트는 컨텍스트의 특유한 내부 행동에 따라 쿼리 기준을 만족하는 컨텍스트 내의 임의의 참조들을 내부적으로 식별한다. 컴퓨터 시스템은 잠재적으로 관련된 참조를 가진 하나 이상의 컨텍스트에 포함된 제2 컨텍스트가 컨텍스트의 관련성 임계값(relevance threshold) 내에 있음을 결정한다. 컴퓨터 시스템은 공통 외부 행동을 통해 재귀적으로 쿼리 기준을 제2 컨텍스트에 서브밋한다. 제2 컨텍스트는 제2 컨텍스트의 특유한 내부적 행동에 따라 쿼리 기준을 만족하는 제2 컨텍스트 내의 임의의 참조들을 내부적으로 식별한다.
다른 실시예에서, 컴퓨터 시스템은 컨텍스트에 참조를 추가한다. 컴퓨터 시스템은 사용자 입력 장치를 통해 참조를 선택한다. 컴퓨터 시스템은 참조가 컨텍 스트에 포함될 것임을 나타낸다. 컨텍스트는 컴퓨터 시스템에서 컨텍스트 및 하나 이상의 다른 컨텍스트와 공통인 참조를 수신하기 위한 공통 외부 컨텍스트 행동을 갖는다. 컨텍스트는 공통 외부 행동에 따라 참조를 받아들인다. 컨텍스트는 내부 논리에 따라 참조를 프로세스한다. 컨텍스트의 내부에 있고 서로 다른 내부 논리는 하나 이상의 다른 컨텍스트의 적어도 하나 이상의 내부 논리를 형성한다.
또한 다른 실시예에서, 컴퓨터 시스템은 태스크의 다른 부분들의 수행 사이에서 태스크에 대한 포커스가 시프트될 때 태스크를 수행한다. 컴퓨터 시스템은 태스크를 수행하는 것과 관련된 하나 이상의 참조를 포함하는 컨텍스트에 포커스를 시프트한다(예를 들어, 자동으로 또는 사용자 입력에 대한 응답으로). 태스크의 제1 부분이 수행된다. 태스크의 제1 부분의 수행은 하나 이상의 관련된 참조의 구성을 조작하는 결과를 가져온다. 컴퓨터 시스템은 하나 이상의 관련된 참조의 구성을 보존하기 위해 컨텍스트를 저장한다. 컴퓨터 시스템은 다른 참조들을 포함하는 다른 컨텍스트로 포커스를 시프트하여(예를 들어, 자동으로 또는 사용자 입력에 대한 응답으로) 포커스가 하나 이상의 관련된 참조들로부터 시프트되도록 한다. 컴퓨터 시스템은 컨텍스트를 저장하는 것에 이어 컨텍스트를 복원한다. 태스크의 제1 부분의 결과에 좌우되는 태스크의 이어지는 제2 부분이 수행된다. 태스크의 이어지는 제2 부분은 하나 이상의 참조의 보존된 구성을 사용하여 태스크의 제1 부분의 수행이 반복될 필요가 없게 한다.
본 발명의 범위 내에 포함되는 실시예들은 컴퓨터 실행가능 명령어 또는 데이터 구조들을 운반하거나 저장하기 위한 컴퓨터 판독가능 매체를 포함한다. 이러 한 컴퓨터 판독가능 매체는 범용 또는 특수 목적 컴퓨터 시스템에 의해 액세스 가능한 임의의 사용가능한 매체일 수 있다. 예를 들어, 이러한 컴퓨터 판독가능 매체는 RAM, ROM, EPROM, CD-ROM 또는 기타 광학 디스크 저장소, 자기 디스크 저장소 또는 기타 자기 디스크 저장 장치, 또는 컴퓨터 실행가능 명령어, 컴퓨터 판독가능 명령어, 또는 데이터 구조의 형태로 필요한 프로그램 코드 수단을 운반 또는 저장하는 데 사용될 수 있고, 범용 또는 특수 목적 컴퓨터 시스템에 의해 액세스될 수 있는 임의의 기타 매체와 같은 물리적 저장 매체를 포함할 수 있지만, 이에 제한되지는 않는다.
이 명세서 및 이하의 청구항에서, "네트워크"는 컴퓨터 시스템 및/또는 모듈 사이에 전자적 데이터의 전송을 가능하게 하는 하나 이상의 데이터 링크로서 정의된다. 네트워크 또는 다른 통신 연결을 통해 정보가 컴퓨터 시스템에 전송 또는 제공될 때, 이 연결은 컴퓨터 판독가능 매체로서 적절하게 보여진다. 따라서, 모든 이러한 연결은 컴퓨터 판독가능 매체라고 적절하게 불린다. 위에 제시된 것들의 조합 또한 컴퓨터 판독가능 매체의 범위 내에 포함되어야 한다. 컴퓨터 실행가능 명령어들은, 예를 들어, 범용 컴퓨터 시스템 또는 특수 목적 컴퓨터 시스템으로 하여금 특정 기능 또는 기능들의 그룹을 수행하도록 하는 명령어 및 데이터를 포함한다. 컴퓨터 실행가능 명령어들은, 예를 들어, 바이너리, 어셈블리 언어 또는 심지어 소스 코드와 같은 중간 포맷 명령어일 수 있다.
이 명세서 및 이하의 청구항에서, "컴퓨터 시스템"은 전자적 데이터에 작업을 수행하기 위해 함께 동작하는 하나 이상의 소프트웨어 모듈, 하나 이상의 하드 웨어, 또는 이들의 조합으로서 정의된다. 예를 들어, 컴퓨터 시스템의 정의는 개인용 컴퓨터의 하드웨어 요소뿐 아니라, 개인용 컴퓨터의 운영 체제와 같은 소프트웨어 모듈을 포함한다. 모듈들의 물리적 레이아웃은 중요하지 않다. 컴퓨터 시스템은 네트워크를 통해 연결된 하나 이상의 컴퓨터를 포함할 수 있다. 이와 마찬가지로, 컴퓨터 시스템은 전자적 데이터에 작업을 수행하기 위해 내부 모듈(메모리 및 프로세서와 같은)들이 함께 동작하는 단일 물리적 장치(휴대 전화 또는 PDA(Personal Digital Assistant)와 같은)를 포함할 수 있다.
이 명세서 및 이하의 청구항에서, "참조"는 데이터 엔티티의 하나 이상의 인스턴스를 식별하기 위해 사용되는 데이터로서 정의된다. 참조는 데이터 엔티티를 식별하기 위해 사용되는 하나 이상의 데이터 항목을 포함할 수 있다. 예를 들어, 고객들은 택스 번호(tax number), DUNS 번호 등을 통해 고유하게 식별될 수 있다. 대안적으로, 우편번호, 지역, 계정, 관리자 등을 통해 식별될 수 있다.
참조는, 예를 들어, 데이터 엔티티 특성의 목록 또는 조건들의 집합의 공식화와 같은 서비스에 대한 쿼리를 공식화하기 위해 사용될 수 있다. 참조는 요구되는 특성(attribute) 및 선택적 특성의 조합을 포함할 수 있다. 따라서, 서로 다른 참조 정보들을 가진 클라이언트들이 데이터 엔티티에 대한 유사한 뷰(view)를 유연하게 얻을 수 있고, 동일한 인터페이스를 통해 동일한 동작들을 사용할 수 있다. 참조 스키마는 데이터 엔티티의 식별을 위해 데이터 엔티티의 특성 및 속성(property)들을 노출하는 데 사용될 수 있다. 따라서, 참조 포맷은 형식적 그리고 일반적으로 정의될 수 있다.
이 명세서 및 이하의 청구항에서, "관계"는 다른 데이터 엔티티에 대한 참조를 생성하는 데 사용될 수 있는 하나의 데이터 엔티티 내의 정보로서 정의된다. 예를 들어, 주문 데이터 엔티티(예를 들어, 구매 주문을 나타내는)에 대한 뷰가 주어졌을 때, 주문 데이터 엔티티 정보에 기반하여 대응하는 고객 데이터 엔티티(구매 주문에서 제품을 구매하는 고객)에 대한 참조를 생성하는 것이 가능하다. 다시 말해, 주문 뷰는 고객 데이터 엔티티와 관련된 고객 참조로 변환될 수 있다. 관계는 뷰 스키마 및 참조 스키마 둘 다를 사용하여 정의될 수 있다. 따라서, 관계는 단일 서비스에 제약된 것이 아니며 서로 다른 서비스들에 캡슐화되어 있는 데이터 엔티티들을 관련시키는 데 사용될 수 있다.
관계는, 예를 들어, 어떤 데이터 엔티티에 대한 표현 참조(express reference)와 같은 메타데이터에 정적으로 정의될 수 있다. 예를 들어, 주문 데이터 엔티티는 주문을 서브밋한 고객에 대한 표현 참조를 포함할 수 있다. 대안적으로, 컨텍스트 관리자는 데이터 엔티티 간의 관계를 끌어내거나 추정하기 위해 실시간으로 데이터를 상호 연관시킬 수 있다(이하에서는 "상호 연관(correlation)"이라 불림). 예를 들어, 서비스 에이전트는 문서의 본문이 제품 데이터에 대한 참조를 포함한다는 것을 결정할 수 있다(구문 분석 또는 어떤 다른 메커니즘을 통해). 따라서, 컨텍스트 관리자는 제품 데이터가 문서와 관련된다고 추정한다. 더 나아가, 다수의 참조가 같은 컨텍스트에 추가되었을 때, 컨텍스트 관리자는 다수의 참조를 상호 연관시킬 수 있다.
이에 따라, 엔티티, 참조, 및 관계들의 조합이 서비스를 시맨틱하게 설명하 도록 사용될 수 있다. 따라서, 서비스의 시맨틱 설명(semantic description)은 데이터 엔티티, 그들의 서로와의 관계뿐 아니라, 그들의 행동을 포함할 수 있다. 서비스의 시맨틱 설명에 기반하여, 데이터 엔티티 간의 관련성이 결정될 수 있다. 관련성은 모든 사용자들 전체에 디폴트로 될 수 있으며, 역할(role) 기반 또는 활동(activity)에 기반할 수 있다.
이 명세서 및 이하의 청구항에서, "컨텍스트"는 무엇이 존재하거나 일어나는 환경으로 정의된다. 컨텍스트는 환경 및/또는 태스크와 관련된 참조들의 컨테이너라고 볼 수 있다. 환경 및/또는 태스크와 관련하여 참조의 관련성이 변경됨에 따라 컨텍스트는 시간에 따라 변경될 수 있다. 다른 사용자들을 위해 다른 유형의 컨텍스트가 구성될 수 있다.
예를 들어, 활동 컨텍스트는 참조를 작업 영역 상에 아이콘으로 표시하고 관계를 연결선으로 표시하도록 구성될 수 있다. 커서로 아이콘 위를 배회함으로써 팝업 텍스트가 표시되도록 할 수 있다. 선택하는 한 방식은(예를 들어, 마우스로 클릭하는 것) 아이콘을 팝업 텍스트로 대체한다. 또 다른 선택하는 방식은(예를 들어, 마우스로 더블클릭하는 것) 컨텐트를 위한 윈도(window)를 연다.
공동 작업 컨텍스트(collaboration context)는 타임라인(timeline) 및 계획(planning)을 포함하고 관리하도록 구성될 수 있다. 이것은 적절하게 타임라인 또는 계획에 첨부된 참조를 보여준다. 이것은 참조를 아이콘, 팝업 또는 윈도로서 표시할 수 있다. 참조는 활동 컨텍스트에서와 유사한 행동을 나타낼 수 있다.
문서 컨텍스트는 텍스트에 스마트 태그(SmartTag) 또는 아이콘으로 포함된 엔티티 참조를 포함하도록 구성될 수 있다. 이 아이콘들은 엔티티에 관한 최신(up to date)의 정확한 정보를 제공할 수 있다.
RTC(Real Time Communication) 컨텍스트는 연락 정보, 비디오, 인스턴트 메시지 대화 텍스트, 혹은 음성 대화의 트랜스크립트(transcript) 및 회의의 당사자 간에 참조를 공유(또는 실제로 통신)하기 위해 사용될 수 있는 영역을 포함할 수 있다. 다른 당사자들은 같은 시간에, 같은 참조에 기반하여 다른 정보를 볼 수 있다. 그들은 참조를 공유하지만, 반드시 행동을 공유하지는 않는다(예를 들어, 나의 구매 주문은 상대의 판매 주문일 수 있다.)
다른 유형의 컨텍스트들은 공통 외부 행동을 가질 수 있다. 예를 들어, 다른 유형의 컨텍스트들은 모두 참조를 저장하고, 저장된 참조와 상호 작용하고, 참조가 전체 컨텍스트에 같은 사용자 경험을 제공할 수 있도록 하고, 새로운 참조를 받아들이고(예를 들어, 드래그 앤드 드롭을 통해), 참조를 제거하고, 쿼리를 수신하고, 쿼리 결과를 제공할 수 있다.
다른 한편, 다른 유형의 컨텍스트들은 다른 내부 논리를 가질 수 있다. 예를 들어, 다른 유형의 컨텍스트들은 그들이 어떻게 참조와 상호 작용하는지, 어떻게 참조를 구성하는지, 어떻게 참조 구조를 나타내는지, 그리고 그들이 어떻게 컨텍스트를 저장하고 공유하는지에 있어서 다를 수 있다. 다른 유형의 컨텍스트들은 또한 그들이 어떻게 관련성을 계산하는지에 있어 다를 수 있다. 예를 들어, 공동 작업 컨텍스트는 최근의 이벤트를 더 관련성 있는 것으로 생각하고 비즈니스 목적(objective)에 관한 어떤 것을 이해할 수 있다. 다른 한편, 문서 컨텍스트는 타 임라인이 없고 비즈니스 목적도 없지만, 자신의 저장소 또는 자신의 유형으로부터 정보를 끌어낼 수 있고 이것을 대신 사용할 수 있다. 이것은 다른 탐색 및 다른 동작들을 제공하는 것으로 이어진다. 한 컨텍스트에서, 제품들은 공급자와 가까이 링크되었을 수 있고, 또는 다른 컨텍스트에서는 진행 중인 프로젝트와, 또는 다르게 일반 원장 계정(general ledger account)과 가까이 링크되었을 수 있다.
본 기술 분야의 숙련된 자들은 본 발명이 개인용 컴퓨터, 랩톱 컴퓨터, 핸드-헬드 장치, 멀티프로세서 시스템, 마이크로프로세서-기반 또는 프로그램 가능한 가전제품, 네트워크 PC, 미니 컴퓨터, 메인프레임 컴퓨터, 휴대 전화, PDA, 무선 호출기 등과 같은 것을 포함하는 다양한 유형의 컴퓨터 시스템 구성을 가진 네트워크 컴퓨팅 환경에서 실시될 수 있다는 것을 이해해야 한다. 본 발명은 또한 네트워크를 통해 링크되어 있는(배선-접속 데이터 링크, 무선 데이터 링크, 또는 배선-접속 및 무선 데이터 링크의 조합에 의해) 로컬 및 원격 컴퓨터 시스템들이 모두 태스크를 수행하는 분산 시스템 환경에서 실시될 수 있다. 분산 시스템 환경에서, 프로그램 모듈은 로컬 및 원격 메모리 저장 장치 둘 다에 위치할 수 있다.
도 1은 컨텍스트 기반 작업 환경을 원활하게 하는 컴퓨터 아키텍처(100)의 예를 도시한다. 컴퓨터 아키텍처(100)에 도시된 것은 컴퓨터 시스템(101)이다. 컴퓨터 시스템(101)은, 예를 들어, LAN(Local Area Network), WAN(Wide Area Network), 또는 심지어 인터넷과 같은 네트워크에 연결될 수 있다. 이에 따라, 컴퓨터 시스템(101) 및 다른 네트워크 연결 컴퓨터 시스템들은 네트워크에 연결된 다른 컴퓨터 시스템으로부터 데이터를 수신하고 또 그로 데이터를 송신할 수 있다. 이에 따라, 컴퓨터 시스템(101)뿐 아니라, 다른 연결된 컴퓨터 시스템(도시되지 않음)들은 메시지 관련 데이터를 만들고 메시지 관련 데이터(예를 들어, 인터넷 프로토콜(IP) 데이터그램, 및 TCP(Transmission Control Protocol), HTTP(Hypertext Transfer Protocol), SMTP(Simple Mail Transfer Protocol) 등과 같은 IP 데이터그램을 사용하는 다른 상위 계층 프로토콜)를 네트워크를 통해 교환할 수 있다. 예를 들어, 컴퓨터 시스템(101)은 SOAP 엔벨로프를 만들고, 네트워크에서 SOAP 엔벨로프를 교환하고 SOAP 엔벨로프를 수신할 수 있다.
컴퓨터 시스템(101)은 일반적으로 참조의 컨테이너를 관리하도록 구성된 컨텍스트 관리자(102)를 포함한다. 컨텍스트 관리자(102)는 컴퓨터 시스템(101)의 사용자에게 지정된 컨텍스트와 관련된 참조를 제공하기 위해 참조의 컨테이너를 관리한다. 컨텍스트 관리자(102)는 컨텍스트 캡쳐 모듈(103), 관련성 모듈(104), 컨텍스트 저장 모듈(106), 컨텍스트 복원 모듈(107), 및 컨텍스트 쿼리 모듈(108)을 포함한다. 일반적으로, 컨텍스트 캡쳐 모듈(103)은 컨텍스트를 위해 참조를 캡쳐하도록 구성되며, 관련성 모듈(104)은 한 참조의 다른 참조와의 관련성을 결정하도록 구성되며, 컨텍스트 저장 모듈(106)은 컨텍스트를 저장하도록 구성되며, 컨텍스트 복원 모듈(107)은 컨텍스트를 복원하도록 구성되며, 컨텍스트 쿼리 모듈(108)은 지정된 기준에 부합하는 참조를 위해 컨텍스트를 쿼리하도록 구성된다.
저장소(151)는 사실상, 예를 들어, 자기 디스크 또는 광학 디스크와 같은 어떤 유형의 저장 장치도 될 수 있다. 저장소(151)는 컴퓨터 시스템(101)에서 다양한 다른 애플리케이션에 의해 차례로 사용되는 다양한 다른 포맷으로 참조(데이터) 를 저장할 수 있다. 예를 들어, 도시된 것과 같이, 저장소(151)는 문서(152), 연락처(153), 이메일(154), 실시간 통신(156), 및 컨텍스트(157)를 저장한다. 하지만, 넓은 범위의 다른 유형의 데이터 또한 저장소(151)에 저장될 수 있다는 것이 이해되어야 한다. 참조 스키마(114)는 저장소(151)에 저장된 참조들 간의 특성 및 속성을 노출하도록 사용될 수 있고 다른 방식으로 컴퓨터 시스템(101)에서 사용될 수 있다.
컨텍스트 관리자(102)는 저장소(151)에 저장된 참조를 포함하는 컨텍스트(즉, 참조의 컨테이너)를 만들 수 있고, 그 컨텍스트들을 컨텍스트(157)로 유지할 수 있다. 예를 들어, 도시된 것과 같이, 활동 컨텍스트(111)는 주문(121), 연락처(122), 제품(123), 및 이메일(124)을 포함한다. 컨텍스트 캡쳐 모듈(103)은 컨텍스트(즉, 참조의 컨테이너)에의 포함을 위해 어떤 참조가 캡쳐되어야 할지를 결정하기 위해 참조 간의 관계를 이용할 수 있다. 컨텍스트 캡쳐 모듈(103)은 캡쳐된 참조와 필수적인 관련성을 갖는 다른 참조들을 식별하기 위해 관련성 모듈(104)과 상호동작할 수 있다. 캡쳐된 참조들과 필수적인 관련성을 갖는 참조들 또한 컨텍스트에 포함될 수 있다. 예를 들어, 대안 제품(141 및 142)이 제품(123)에 대한 잠재적인 대안이라면, 관련성 모듈(104)은 대안 제품(141 및 142)이 활동 컨텍스트(111)에 포함될 것이라는 것을 결정할 수 있다.
관련성 모듈(104)은 관련성을 결정하기 위해 참조들 간의 정적 메타데이터 관계를 평가할 수 있으며 참조들 간의 상호 연관을 만들 수 있다(예를 들어, 런타임 시에). 예를 들어, 관련성 모듈(104)은 대안 제품(141)과 대안 제품(142)이 제 품(123)의 대안 제품인 것에 기반하여 대안 제품(141)과 대안 제품(142) 사이에 상호연관을 만들 수 있다. 관련성 모듈(104)은 대안 제품(141)과 대안 제품(142) 사이에 명백히 설명된 관계(예를 들어, 참조 스키마(114)에 정의된)가 없더라도 이러한 결정을 내리기 위한 논리를 포함할 수 있다. 예를 들어, 관련성 모듈(104)은 대안 제품(141)과 대안 제품(142) 모두가 제품(123)을 위한 대체물의 탐색에서 식별되었다는 것을 검출할 수 있다.
관련성을 결정하기 위한 한 메트릭(metric)은 참조들 사이에 얼마나 많은 관계들이 뒤따랐는지(또는 "거리")를 계산하는 것을 포함한다. 관련성 임계값은 한 참조가 다른 참조들과 관련된 것으로 식별되기 위해 (그리고 따라서 어쩌면 제1 참조와 같은 컨텍스트에 포함될 수 있기 위해), 한 참조가 다른 참조와 얼마나 관련되어야 하는지를 나타내도록 정의될 수 있다. 몇몇 실시예에서, 관련성 임계값(예를 들어, 관련성 임계값(116))이, 예를 들어, 1, 2, 3, 4 ,5 등과 같은 수로서 정의된다. 한 참조가 다른 참조와 관련 있는지를 결정하기 위해 두 참조 사이의 거리는 관련성 임계값에 비교될 수 있다. 예를 들어, 두 참조 간의 거리가 관련성 임계값 내에(예를 들어, 관련성 임계값보다 적거나 같음) 있을 때, 관련성 모듈(104)은 한 참조가 다른 참조와 관련성이 있다고 결정한다. 다른 한편, 참조 간의 거리가 관련성 임계값 내에 있지 않을 때(예를 들어, 관련성 임계값보다 클 때), 관련성 모듈은 한 참조가 다른 참조와 관련성이 없다고 결정한다.
따라서, 관련성 임계값은 본질적으로 컨텍스트 주변의 경계에 귀착된다. 컨텍스트와 관련된 참조들은 경계 내의 데이터 엔티티로 제한될 수 있다.
하지만, 관련성 임계값은 요청된 데이터 엔티티 주변의 경계를 나타내는 수들로 제한되지 않는다는 것을 이해해야 한다. 예를 들어, 관련성 임계값은, 예를 들어, 사용자 역할, 데이터 엔티티 유형, 기록된 데이터 사용 등과 같은 다른 관련성 규칙 데이터를 포함하는 더 복잡한 관련성 데이터 구조일 수 있다. 경계 거리를 나타내는 수는 관련성 데이터 구조 내의 다른 관련성 데이터와 결합되거나 또는 결합되지 않을 수 있다. 예를 들어, 관계의 관련성은 관련성 알고리즘에 의해 결정될 수 있다. 관련성 알고리즘은 관련성을 반환할 수 있는 실행가능한 코드의 부분을 나타내는 메타데이터로 구성될 수 있다.
컨텍스트 캡쳐 모듈(103) 및/또는 관련성 모듈(104)은 자동으로 컨텍스트에 참조를 포함할 수 있다. 예를 들어, 주문(121)이 포함을 위해 캡쳐된 것(121)에 대한 응답으로 컨텍스트 캡쳐 모듈은 또한 연락처(122)(예를 들어, 주문(121)을 위한 판매원) 및 제품(123)(예를 들어, 주문(121)에 포함된 제품)을 캡쳐할 수 있다. 따라서, 컴퓨터 시스템의 사용자가 주문(121)을 액세스했을 때, 다른 관련된 참조들 또한 사용가능하다.
사용자들은 또한 컨텍스트에 참조를 추가할 수 있다. 예를 들어, 사용자 인터페이스는 컨텍스트에 참조를 포함시키는 메뉴 옵션을 포함할 수 있다. 이러한 메뉴 옵션을 포함하는 메뉴는 참조를 선택(예를 들어, 오른쪽 클릭)함으로써 나타날 수 있다. 대안적으로, 컨텍스트로의 참조의 드래그 앤드 드롭 추가를 원활하기 위해, 컨텍스트들의 공통 외부 행동은 사용자 인터페이스와 상호작용하기 위한 것일 수 있다. 사용자는 참조를 선택하고(예를 들어, 왼쪽 마우스 버튼을 클릭하고 누름으로써), 참조를 드래그하고(예를 들어, 마우스를 움직임으로써), 컨텍스트로 참조를 드롭(예를 들어, 왼쪽 마우스를 놓음으로써)할 수 있다. 예를 들어, 사용자는 이메일(126)을 (예를 들어, 연락처(122)의 상사(boss)로부터) 활동 컨텍스트(111)로 드래그 앤드 드롭할 수 있다. 이와 유사한 기술들이 컨텍스트로부터 참조를 제거하는 데 사용될 수 있다.
참조를 받게 되면(자동으로 또는 사용자에 의해 추가) 컨텍스트의 내부 논리는(컨텍스트마다 다를 수 있음) 참조가 어떻게 프로세스되는지를 제어한다. 예를 들어, 문서 컨텍스트에서 참조는 스마트 태그 또는 하이퍼링크에 의해 나타날 수 있다. 대안적으로, 공동 작업 컨텍스트에서, 참조는 타임라인의 적절한 위치에 있는 아이콘에 의해 나타날 수 있다. 사용자에 의해 추가된 참조들은 컨텍스트와 높은 관련성을 갖는 것으로 분류될 수 있다.
컨텍스트 저장 모듈(106)은 컨텍스트(157)에 컨텍스트를 저장할 수 있다. 예를 들어, 컨텍스트 저장 모듈(106)은 활동 컨텍스트(111)를 컨텍스트(157)로 저장할 수 있다. 활동 컨텍스트는 컴퓨터 시스템(101)의 시스템 메모리에 저장된 컨텍스트일 수 있다. 따라서, 컨텍스트 저장 모듈(106)은 시스템 메모리로부터 저장소(151)로 컨텍스트를 저장할 수 있다. 다른 한편, 컨텍스트 복원 모듈(107)은 컨텍스트(157)로부터 컨텍스트를 복원할 수 있다. 예를 들어, 컨텍스트 저장 모듈(107)은 컨텍스트(157)로부터 공동 작업 컨텍스트(131)를 로드할 수 있다. 따라서, 컨텍스트 저장 모듈은 저장된 컨텍스트를 저장소(151)로부터 시스템 메모리로 로드할 수 있다.
컨텍스트 쿼리 모듈(108)은 지정된 쿼리 기준을 만족하는 참조를 위해 컨텍스트(즉, 참조의 컨테이너)를 쿼리할 수 있다. 예를 들어, 컨텍스트 쿼리 모듈(108)은, 예를 들어, 주문 번호, 고용인 ID, 제품 이름 등과 같은 기준(161)을 활동 컨텍스트(111)로 서브밋할 수 있다. 기준(161)은 사용자의 입력 장치(예를 들어, 키보드 및 마우스) 조작으로부터 생길 수 있고 또는 다른 컴퓨터 시스템에 생길 수 있다.
컨텍스트 쿼리 모듈(108)은 재귀적 쿼리(recursive query)를 구현할 수 있다. 예를 들어, 대안 제품(141 및 142)이 제품(123)과 관련된 결과로서, 컨텍스트 쿼리 모듈(108)은 또한 기준(161)을 공동 작업 컨텍스트(131)에 서브밋할 수 있다. 컨텍스트 쿼리 모듈(108)은 공동 작업 컨텍스트(131)의 참조들과 관련된 참조들을 갖는 다른 컨텍스트 등에 기준을 서브밋할 수 있다. 재귀는 쿼리에 대한 응답으로 적절한 양의 참조가 반환되도록 범위가 정해질 수 있다(예를 들어, 관련성 임계값을 사용하여). 예를 들어, 컨텍스트 쿼리 모듈(108)이 처음에 쿼리 기준을 수신한 컨텍스트로부터 1의 거리 내에 있는 컨텍스트로 반환하는 것일 수 있다.
쿼리 결과는 사용자 인터페이스에서의 디스플레이를 위해 컨텍스트 쿼리 모듈로 반환될 수 있다.
도 2는 활동 컨텍스트(200)의 예시적인 사용자 인터페이스 화면을 도시한다. 활동 컨텍스트(200)는 기업 A의 고용인의 관점에서 주문 5006(기업 A에 대해 PO 5006 그리고 기업 B에 대해 SO 5006-01)을 포함한다. 컨텍스트(200)는 기업 A를 위해 관련된 구매 주문 PO 5022, PO 4987 및 PO 4851, 및 PO 5006에 포함된 제품 Z 를 포함하여 관련된 참조들을 보여준다. 컨텍스트(200)는 또한 작업, 세일즈 주문, 대리인, 및 거래를 포함하는 관련된 참조들을 기업 B를 위해 보여준다. 음성 메시지의 트랜스크립트 및 오디오 파일 또한 포함된다. 따라서, 고용인은 다수의 애플리케이션(예를 들어, 미디어 플레이어, 구매 주문 애플리케이션, 컨텍트 뷰어(contact viewer) 등을 실행하거나 여러 다른 위치를 검색하지 않고서도 주문 5006을 위한 관련 정보에 대해 효과적인 액세스를 갖는다.
도 3은 컨텍스트와 관련된 참조를 캡쳐하기 위해 관계를 마이닝하기 위한 방법(300)의 예시적인 흐름도를 도시한다. 방법(300)은 컴퓨터 아키텍처(100) 및 활동 컨텍스트(200)와 관련하여 설명될 것이다.
방법(300)은 공통 외부 행동에 따라 쿼리 기준을 컨텍스트에 서브밋하는 동작을 포함한다(동작 301). 예를 들어, 컨텍스트 쿼리 모듈(108)은 활동 컨텍스트(111)로 기준(161)을 서브밋할 수 있다. 활동 컨텍스트(111)가 활동 컨텍스트(200)에 도시된 몇몇의 참조를 포함하는 것일 수 있다. 예를 들어, 주문(121)은 세일즈 주문 SO 5006-01, 연락처(122)는 랍 베이커(Rob Baker), 제품(123)은 제품 Z 등일 수 있다. 앞서 설명된 것과 같이, 기준(161)은 주문 번호, 고용인 ID, 제품 이름 등을 포함할 수 있다.
공통 외부 행동은 컨텍스트 및 하나 이상의 다른 컨텍스트에 대해 공통이며, 다른 애플리케이션들이 컨텍스트 및 하나 이상의 다른 컨텍스트에 균일하게 쿼리를 서브밋할 수 있도록 공통 인터페이스를 제공한다. 예를 들어, 활동 컨텍스트(111)는 컴퓨터 시스템(101)에서 다른 컨텍스트(예를 들어, 공동 작업 컨텍스트(131))에 대해 공통인 쿼리 기준을 수신하기 위해 공통 외부 행동을 노출할 수 있다. 따라서, 예를 들어, 컨텍스트 관리자(102)와 같은 애플리케이션은 활동 컨텍스트(111), 공동 작업 컨텍스트(131), 및 컨텍스트(157) 내의 다른 컨텍스트에 균일하게 쿼리를 서브밋할 수 있다.
방법(300)은 컨텍스트가 컨텍스트의 특유한 내부적 비헤어비어에 따라 쿼리 기준을 만족하는 컨텍스트 내의 임의의 참조들을 식별하는 동작을 포함한다(동작 302). 예를 들어, 활동 컨텍스트(111)는 기준(161)을 만족하는 임의의 참조(예를 들어, 주문(121), 연락처(122) 등)를 식별할 수 있다. 활동 컨텍스트(111)는 다른 컨텍스트(예를 들어, 공동 작업 컨텍스트(131))의 내부 논리와 다를 수 있는 내부 논리에 따라 기준(161)을 프로세스할 수 있다. 식별된 참조는 참조 스키마(114)에 따라 포맷되거나 또는 구조화되지 않은 참조일 수 있다.
활동 컨텍스트(111)는 컴퓨터 시스템(101)에서 다른 컨텍스트(예를 들어, 공동 작업 컨텍스트(131))와 공통인 식별된 참조를 반환하기 위한 공통 외부 행동을 노출할 수 있다. 활동 컨텍스트(111)는 공통 외부 행동에 따라 쿼리 기준(161)을 만족시키는 모든 식별된 참조를 컨텍스트 쿼리 모듈(108)로 반환할 수 있다.
방법(300)은 하나 이상의 다른 컨텍스트에 포함된 잠재적으로 관련된 참조를 가진 제2 컨텍스트가 컨텍스트의 관련성 임계값 내에 있음을 결정하는 동작을 포함한다(동작 303). 예를 들어, 관련성 모듈(104)은 공동 작업 컨텍스트(131)가 활동 컨텍스트(111)의 관련성 임계값(116) 내에 있음을 결정할 수 있다(예를 들어, 활동 컨텍스트에 가기 위해 하나의 관계를 건너면 됨).
방법(300)은 공통 외부 행동을 통해 쿼리 기준을 재귀적으로 제2 컨텍스트에 서브밋하는 동작을 포함한다(동작 304). 예를 들어, 컨텍스트 쿼리 모듈(108)은 공동 작업 컨텍스트(131)에 기준(161)을 서브밋할 수 있다. 공동 작업 컨텍스트(131)가 활동 컨텍스트(200)에 도시된 참조와 관련된 참조들을 포함하는 것일 수 있다. 예를 들어, 대안 제품(141 및 142)은 제품 Z와 관련될 수 있다. 공동 작업 컨텍스트(131)는 컴퓨터 시스템(101)에서 다른 컨텍스트(예를 들어, 활동 컨텍스트(111))와 공통인 쿼리 기준을 수신하기 위해 공통 외부 행동을 노출할 수 있다.
방법(300)은 제2 컨텍스트의 특유한 내부 행동에 따라 쿼리 기준을 만족하는 제2 컨텍스트 내의 임의의 참조들을 제2 컨텍스트가 식별하는 동작을 포함한다(동작 305). 예를 들어, 공동 작업 컨텍스트(131)는 기준(161)을 만족하는 공동 작업 컨텍스트(131) 내의 임의의 참조들(예를 들어, 대안 제품(141 및 142), 문서(143) 등)을 식별할 수 있다. 공동 작업 컨텍스트(131)는 다른 컨텍스트(예를 들어, 활동 컨텍스트(111))의 내부 논리와 다를 수 있는 내부 논리에 따라 기준(161)을 프로세스할 수 있다.
공동 작업 컨텍스트(131)는 컴퓨터 시스템(101)에서 다른 컨텍스트(예를 들어, 활동 컨텍스트(111))에 대해 공통인 식별된 참조를 반환하기 위해 공통 외부 행동을 노출할 수 있다. 공동 작업 컨텍스트(131)는 공통 외부 행동에 따라 쿼리 기준(161)을 만족하는 임의의 참조를 컨텍스트 쿼리 모듈(108)로 반환할 수 있다.
관련성 모듈(104)은 다른 어떤 컨텍스트가 활동 컨텍스트(111)의 관련성 임계값(116) 내에 있는지 결정할 수 있다. 이 다른 컨텍스트들은 활동 컨텍스 트(111)로부터의 거리가 공동 작업 컨텍스트(133)와 동일한 컨텍스트들을 포함할 수 있다. 이 다른 컨텍스트들은 또한 활동 컨텍스트(111)로부터 공동 작업 컨텍스트(133)보다 더 멀리 있지만 여전히 관련성 임계값(116) 내에 있는 컨텍스트를 포함할 수 있다. 예를 들어, 관련성 임계값(161)이 두 관계를 건너는 것일 때, 공동 작업 컨텍스트(131)로부터 하나의 관계를 건너야하는 임의의 컨텍스트 또한 관련성 임계값(116) 내에 있다. 이 다른 컨텍스트들은 컴퓨터 시스템(101)에서 쿼리 기준을 수신하고 다른 컨텍스트(예를 들어, 활동 컨텍스트(111) 및 공동 작업 컨텍스트(131))와 공통인 식별된 참조를 반환하기 위해 공통 외부 행동을 노출할 수 있다. 하지만, 이 다른 컨텍스트들은 다른 컨텍스트(예를 들어, 활동 컨텍스트(111) 및 공동 작업 컨텍스트(131))의 내부 논리와 다를 수 있는 내부 논리에 따라 기준(161)을 프로세스할 수 있다.
도 4는 컨텍스트에 참조를 추가하기 위한 방법(400)의 예시적인 흐름도를 도시한다. 방법(400)은 컴퓨터 아키텍처(100)와 관련하여 설명될 것이다.
방법(400)은 사용자 입력 장치로 참조를 선택하는 동작을 포함한다(동작 401). 예를 들어, 컴퓨터 시스템(101)의 사용자는 키보드 및/또는 마우스를 사용하여 이메일(126)을 나타내는 아이콘을 선택할 수 있다.
방법(400)은 참조를 수신하기 위한 공통 외부 컨텍스트 행동을 가지고 참조가 컨텍스트에 포함될 것이라는 것을 나타내는 동작을 포함한다(동작 402). 공통 외부 행동은 컴퓨터 시스템에서 컨텍스트 및 하나 이상의 다른 컨텍스트에 대해 공통이다. 예를 들어, 컴퓨터 시스템(101)의 사용자는 이메일(126)을 나타내는 아이 콘을 활동 컨텍스트(111)로 드래그할 수 있다. 대안적으로, 컴퓨터 시스템의 사용자는 이메일(126)이 활동 컨텍스트(111)에 포함될 것이라는 것을 나타내기 위해 이메일(126)과 관련된 메뉴 옵션을 선택할 수 있다. 활동 컨텍스트(111), 공동 작업 컨텍스트(131), 및 컨텍스트(157) 내의 다른 컨텍스트들은 참조를 수신하기 위한 공통 외부 행동을 가질 수 있다.
방법(400)은 컨텍스트가 공통 외부 행동에 따라 참조를 받아들이는 동작을 포함한다(동작 403). 예를 들어, 활동 컨텍스트(111)는 활동 컨텍스트(111), 공동 작업 컨텍스트(131), 및 컨텍스트(157) 내의 다른 컨텍스트에 공통인 외부 행동에 따라 이메일(126)을 받아들일 수 있다. 활동 컨텍스트(111)로 미리 드래그되어 있던 이메일(126)을 나타내는 아이콘이 이어서 활동 컨텍스트(111)에 드롭된 것일 수 있다. 대안적으로, 메뉴 선택의 결과로 활동 컨텍스트(111)가 이메일(126)을 받아들일 수 있다.
방법(400)은 컨텍스트가 내부 논리에 따라 참조를 프로세스하는 동작을 포함한다(동작 404). 예를 들어, 활동 컨텍스트(111)는 활동 컨텍스트(111)에 포함된 논리에 따라 이메일(126)을 프로세스할 수 있다. 컨텍스트의 내부 논리는 다른 컨텍스트의 내부 논리와 다를 수 있다. 예를 들어, 활동 컨텍스트에 포함된 내부 논리는 공동 작업 컨텍스트(131)에 포함된 내부 논리와 다를 수 있다.
도 5는 태스크의 다른 부분들의 수행 사이에서 태스크로부터 포커스가 시프트될 때 태스크를 수행하기 위한 방법(500)의 예시적인 흐름도를 도시한다. 방법(500)은 컴퓨터 아키텍처(100) 및 활동 컨텍스트(200)와 관련하여 설명될 것이 다.
방법(500)은 태스크를 수행하는 것과 관련된 하나 이상의 참조를 포함하는 컨텍스트로 포커스를 시프트하는 동작을 포함한다(동작 501). 예를 들어, 컴퓨터 시스템의 사용자는 입력 장치를 사용하여 활동 컨텍스트(200)로 포커스를 시프트할 수 있다. 앞서 설명된 것과 같이, 활동 컨텍스트(111)에 도시된 참조들은 활동 컨텍스트(200)에 표시된 몇몇 참조들일 수 있다. 활동 컨텍스트(200) 내의 하나 이상의 참조들은 제품 Z를 포함하는 모든 구매 주문의 총 비용을 결정하는 태스크와 관련된 것일 수 있다. 대안적으로, 예를 들어, 어떤 이벤트에 대한 응답으로 컨텍스트 관리자는 (사용자 입력을 받지 않고) 자동으로 포커스를 활동 컨텍스트로 시프트할 수 있다.
방법(500)은 태스크의 제1 부분을 수행하는 동작을 포함하며, 태스크의 제1 부분의 수행은 하나 이상의 관련된 참조의 구성을 조작하는 결과를 가져온다(동작 502). 예를 들어, 제품 Z를 포함하는 모든 구매 주문의 총 비용을 결정하는 태스크의 제1 부분은, 제품 Z를 포함하는 모든 구매 주문을 식별하는 것일 수 있다. 활동 컨텍스트(200)에서, 식별된 구매 주문은 PO 5006, PO 5022, PO 4987, 및 PO 4851을 포함하는 것으로 도시되어 있다. 식별된 구매 주문을 활동 컨텍스트(200)에 포함시키는 것은 활동 컨텍스트(200)의 구성을 변경한다(이 구매 주문들이 이전에 "구매 주문" 참조 아래 포함되지 않았기 때문).
방법(500)은 하나 이상의 관련된 참조의 구성을 보존하기 위해 컨텍스트를 저장하는 동작을 포함한다. 예를 들어, 사용자 입력에 대한 응답으로, 컨텍스트 저장 모듈(106)은 저장소(151)에 활동 컨텍스트(200)를 저장할 수 있다. 대안적으로, 예를 들어, 어떤 이벤트에 대한 응답으로, 컨텍스트 저장 모듈(106)은 자동으로 활동 컨텍스트(200)를 저장할 수 있다(예를 들어, 사용자 입력을 받지 않고).
방법(500)은 포커스가 하나 이상의 관련된 참조의 구성으로부터 시프트되도록, 다른 참조를 포함하는 다른 컨텍스트로 포커스를 시프트하는 동작을 포함한다(동작 504). 예를 들어, 사용자 입력에 대한 응답으로 활동 컨텍스트(200)로부터 컨텍스트(157) 내의 어떤 다른 컨텍스트로 포커스가 시프트될 수 있다. 포커스의 시프트의 결과로, 활동 컨텍스트(200)에 도시된 식별된 구매 주문 PO 5006, PO 5022, PO 4987, 및 PO 4851의 그루핑(grouping)은 시스템 메모리로부터 지워지고/거나 더 이상 디스플레이되지 않을 수 있다. 대안적으로, 예를 들어, 어떤 이벤트에 대한 응답으로, 컨텍스트 관리자(102)는 활동 컨텍스트(200)로부터 컨텍스트(157) 내에 저장된 어떤 다른 컨텍스트로 자동으로 포커스를 시프트할 수 있다(예를 들어, 사용자 입력을 받지 않고).
방법(500)은 컨텍스트를 저장하는 것에 이어서 컨텍스트를 복원하는 동작을 포함한다(동작 505). 예를 들어, 사용자 입력에 대한 응답으로, 컨텍스트 복원 모듈은 활동 컨텍스트(200)를 복원할 수 있다. 대안적으로, 예를 들어, 어떤 이벤트에 대한 응답으로, 컨텍스트 복원 모듈(108)은 자동으로 활동 컨텍스트(200)를 복원할 수 있다(예를 들어, 사용자 입력을 받지 않고). 컨텍스트를 복원하는 것은 하나 이상의 관련된 참조들의 그루핑 및 구성을 보존하는 것을 포함할 수 있다. 예를 들어, 도 2에 도시된 관계 및 배열은 활동 컨텍스트(200)가 저장될 때 보존될 수 있다.
방법(500)은 태스크의 제1 부분의 결과에 의존하는 태스크의 이어지는 제2 부분을 수행하는 동작을 포함하며, 태스크의 이어지는 제2 부분은 하나 이상의 관련된 참조의 보존된 구성을 사용하여 태스크의 제1 부분을 반복하지 않아도 되도록 한다(동작 506). 예를 들어, 구매 주문 PO 5006, PO 5022, PO 4987, 및 PO 4851의 총 비용은 구매 주문 PO 5006, PO 5022, PO 4987, 및 PO 4851의 보존된 그루핑으로부터 계산될 수 있다. 총 비용은 구매 주문 PO 5006, PO 5022, PO 4987, 및 PO 4851이 제품 Z를 포함한다는 것을 재-식별할 필요없이 계산될 수 있다.
따라서, 컨텍스트 기반 작업 환경은 일반적으로 태스크, 애플리케이션, 다른 사용자, 및 원격 시스템 및 그들의 대응하는 데이터를 통합하는 데 있어 사용자를 돕는다. 따라서, 본 발명의 실시예들은 컴퓨터 시스템에서 더 효과적인 데이터 조작을 증진시킨다. 컴퓨터 시스템 사용자들은 컨텍스트와 관련된 참조를 위해 유연하게 쿼리할 수 있고, 다른 유형의 참조들 간에 공통인 공통 외부 행동에 따라 참조를 컨텍스트에 추가하거나 컨텍스트로부터 제거할 수 있다. 하지만, 다른 컨텍스트들은 참조를 다른 방식으로, 예를 들어, 컨텍스트 유형에 기반하여, 처리하는 다른 내부 논리를 가질 수 있다. 더 나아가, 본 발명의 실시예들은 작업자가 떠났다가 이어서 태스크를 다시 시작할 때, 재-수행해야 하는 작업의 양을 (잠재적으로 의미있게) 줄일 수 있다.
도 6은 본 발명의 원리를 위한 적절한 운영 환경을 도시한다. 도 6 및 이어지는 논의는 본 발명이 구현될 수 있는 적절한 컴퓨팅 환경에 대한 간결하고 일반 적인 설명을 제공하도록 의도된다. 요구되지 않았지만, 본 발명은 컴퓨터 시스템에 의해 실행되는 프로그램 모듈과 같은 컴퓨터 실행가능 명령어의 일반적인 배경에서 설명될 것이다. 일반적으로, 프로그램 모듈은 특정 태스크를 수행하거나 특정 추상 데이터 유형을 구현하는 루틴, 프로그램, 개체, 컴포넌트, 데이터 구조 등을 포함한다. 컴퓨터 실행가능 명령어, 관련된 데이터 구조, 및 프로그램 모듈은 여기에 개시된 방법의 동작들을 실행하기 위한 수단인 프로그램 코드의 예들을 나타낸다.
도 6과 관련하여, 본 발명을 구현하기 위한 예시적인 시스템은 처리 장치(621), 시스템 메모리(622), 및 시스템 메모리(622)를 포함한 다양한 시스템 컴포넌트를 처리 장치(621)에 연결시키는 시스템 버스(623)를 포함하는 컴퓨터 시스템(620) 형태의 범용 컴퓨팅 장치를 포함한다. 처리 장치(621)는 본 발명의 특징을 포함하여, 컴퓨터 시스템(620)의 특징들을 구현하도록 설계된 컴퓨터 실행가능 명령어들을 실행할 수 있다. 시스템 버스(623)는 메모리 버스 또는 메모리 컨트롤러, 주변 장치 버스 및 각종 버스 아키텍처 중 임의의 것을 이용하는 로컬 버스를 비롯한 몇몇 유형의 버스 구조 중 어느 것이라도 될 수 있다. 시스템 메모리는 판독 전용 메모리("ROM")(624) 및 랜덤 액세스 메모리("RAM")(625)를 포함한다. 시동 중과 같은 때에, 컴퓨터 시스템(620) 내의 요소들 사이의 정보 전송을 돕는 기본 루틴을 포함하는 기본 입/출력 시스템("BIOS")(626)은 ROM(624)에 저장될 수 있다.
컴퓨터 시스템(620)은 또한 자기 하드 디스크(639)를 판독하고 이에 기입하 기 위한 자기 하드 디스크 드라이브(627), 이동식 자기 디스크(629)를 판독하거나 이에 기입하기 위한 자기 디스크 드라이브(628), 및 예를 들어, CD-ROM 또는 다른 광 매체와 같은, 이동식 광 디스크(631)를 판독하거나 이에 기입하기 위한 광 디스크 드라이브(630)를 포함할 수 있다. 자기 하드 디스크 드라이브(627), 자기 디스크 드라이브(628), 및 광 디스크 드라이브 각각은 하드 디스크 드라이브 인터페이스(632), 자기 디스크 드라이브 인터페이스(633), 및 광 드라이브 인터페이스(634)를 통해 시스템 버스(623)에 연결된다. 드라이브 및 그들의 연관된 컴퓨터 판독가능 매체는 컴퓨터 시스템(620)을 위해 컴퓨터 실행가능 명령어, 데이터 구조, 프로그램 모듈 및 다른 데이터의 비휘발성 저장소를 제공한다. 여기에 설명된 예시적인 환경이 자기 하드 디스크(639), 이동식 자기 디스크(629) 및 이동식 광 디스크(631)를 사용하고 있지만 자기 카세트, 플래시 메모리 카드, DVD, 베르누이 카트리지, RAM, ROM 등을 포함하여, 데이터를 저장하기 위한 다른 유형의 컴퓨터 판독가능 매체가 사용될 수 있다.
하나 이상의 프로그램 모듈을 포함하는 프로그램 코드 수단은 하드 디스크(639), 자기 디스크(629), 광 디스크(631), ROM(624) 또는 운영 체제(635), 하나 이상의 애플리케이션 프로그램(636), 기타 프로그램 모듈(637), 및 프로그램 데이터(638)를 포함하는 RAM(625)에 저장될 수 있다. 사용자는 키보드(640), 포인팅 장치(642), 또는, 예를 들어, 마이크로폰, 조이스틱, 게임 패드, 스캐너 등과 같은 기타 입력 장치(도시되지 않음)를 통해 명령 및 정보를 컴퓨터 시스템(620)에 입력할 수 있다. 이들 및 기타 입력 장치들은 시스템 버스(623)에 연결된 입/출력 인 터페이스(646)를 통해 처리 장치(621)에 연결될 수 있다. 입/출력 인터페이스(646)는, 예를 들어, 직렬 포트 인터페이스, PS/2 인터페이스, 병렬 포트 인터페이스, USB(Universal Serial Bus) 인터페이스, 또는 IEEE(Institute of Electrical and Electronics Engineers) 1394 인터페이스(즉, 파이어와이어(FireWire) 인터페이스)와 같은 다수의 다양한 다른 인터페이스 중 어떤 것이라도 논리적으로 나타내며, 또는 심지어 다른 인터페이스들의 조합을 논리적으로 나타낼 수도 있다.
모니터(647) 또는 기타 디스플레이 장치 또한 비디오 인터페이스(648)를 통해 시스템 버스(623)에 연결된다. 예를 들어, 스피커 및 프린터와 같은 다른 주변 출력 장치(도시되지 않음)도 컴퓨터 시스템(620)에 연결될 수 있다.
컴퓨터 시스템(620)은, 예를 들어, 사무실 또는 전사적 컴퓨터 네트워크, 홈 네트워크, 인트라넷, 및/또는 인터넷과 같은 네트워크에 연결가능하다. 컴퓨터 시스템(620)은 이러한 네트워크를 통해서, 예를 들어, 원격 컴퓨터 시스템, 원격 애플리케이션, 및/또는 원격 데이터베이스와 같은 외부 소스와 데이터를 교환할 수 있다.
컴퓨터 시스템(620)은 네트워크 인터페이스(653)를 포함하며, 컴퓨터 시스템(620)은 이를 통해 외부 소스로부터 데이터를 수신하고/거나 외부 소스로 데이터를 전송한다. 도 6에 도시된 것과 같이, 네트워크 인터페이스(653)는 링크(651)를 통해 원격 컴퓨터 시스템(683)과의 데이터 교환을 촉진한다. 네트워크 인터페이스(653)는, 예를 들어, 네트워크 인터페이스 카드 및 대응하는 NDIS(Network Driver Interface Specification) 스택과 같은 하나 이상의 소프트웨어 및/또는 하 드웨어 모듈을 논리적으로 나타낸다. 링크(651)는 네트워크의 일부(예를 들어, 이더넷 세그먼트(Ethernet segment))를 나타내고, 원격 컴퓨터 시스템(683)은 네트워크의 노드를 나타낸다.
마찬가지로, 컴퓨터 시스템(620)은 입/출력 인터페이스(646)를 포함하며, 이를 통해 컴퓨터 시스템(620)은 외부 소스로부터 데이터를 수신하고/거나 외부 소스로 데이터를 전송한다. 입/출력 인터페이스(646)는 링크(659)를 통해 모뎀(654)(예를 들어, 표준 모뎀, 케이블 모뎀, 또는 DSL(digital subscriber line) 모뎀)에 연결되며, 이를 통해 컴퓨터 시스템(620)은 외부 소스로부터 데이터를 수신하고/거나 외부 소스로 데이터를 전송한다. 도 6에 도시된 것과 같이, 입/출력 인터페이스(646) 및 모뎀(654)은 링크(652)를 통해 원격 컴퓨터 시스템(693)과의 데이터 교환을 촉진한다. 링크(652)는 네트워크의 일부를 나타내고 원격 컴퓨터 시스템(693)은 네트워크의 노드를 나타낸다.
도 6이 본 발명을 위한 적절한 운영 환경을 나타내는 한편, 본 발명의 원리들은, 필요하다면 적절한 변경과 함께, 본 발명의 원리들을 구현할 수 있는 모든 시스템에서 사용될 수 있다. 도 6에 도시된 환경은 예시적인 것일 뿐이며, 본 발명의 원리들이 구현될 수 있는 다수의 다양한 환경의 작은 일부조차 나타내기 위한 것이 아니다.
본 발명에 따라, 컨텍스트 관리자, 컨텍스트 캡쳐 모듈, 관련성 모듈, 컨텍스트 저장 모듈, 컨텍스트 복원 모듈, 컨텍스트 쿼리 모듈을 포함하는 모듈뿐 아니라, 관련성 임계값, 참조 스키마, 참조, 및 관계를 포함하는 관련 데이터는 컴퓨터 시스템(620)과 관련된 모든 컴퓨터 판독가능 매체에 저장될 수 있고 이로부터 액세스될 수 있다. 예를 들어, 이러한 모듈의 일부 및 관련된 프로그램 데이터의 일부는 시스템 메모리(622)에의 저장을 위해 운영 체제(635), 애플리케이션 프로그램(636), 프로그램 모듈(637) 및/또는 프로그램 데이터(638)에 포함될 수 있다.
예를 들어, 자기 하드 디스크(639)와 같은 대용량 저장 장치가 컴퓨터 시스템(620)에 연결되었을 때, 이러한 모듈 및 관련된 프로그램 데이터 또한 대용량 저장 장치에 저장될 수 있다. 네트워크 환경에서, 컴퓨터 시스템(620)과 관련된 것으로 도시된 프로그램 모듈 또는 그 일부는, 원격 컴퓨터 시스템(683) 및/또는 원격 컴퓨터 시스템(693)과 관련된 시스템 메모리 및/또는 대용량 저장 장치와 같이 원격 메모리 저장 장치에 저장될 수 있다. 이러한 모듈의 실행은 앞서 설명된 것과 같이 분산 환경에서 수행될 수 있다.
본 발명은 본 발명의 정신 또는 본질적인 특성을 벗어나지 않으면서 다른 특정 형태들로 구현될 수 있다. 설명된 실시예들은 모든 관점에서 단지 예시적인 것으로만 이해되어야하며 제한적인 것으로 이해되어서는 안된다. 따라서, 본 발명의 범위는 앞선 설명보다는 첨부된 청구항에 의해 지시된다. 청구항과 동등한 의미 및 범위 내의 변경들은 모두 청구항의 범위 내에 포함되어야 한다.

Claims (20)

  1. 컨텍스트 기반 작업 환경을 제공하기 위해 구성된 컴퓨터 시스템에서, 컨텍스트와 관련된 참조(reference)를 캡쳐하기 위해 관계를 마이닝(mining)하기 위한 방법으로서,
    상기 컨텍스트의 공통 외부 행동(common external behavior)을 통해 상기 컨텍스트에 쿼리 기준을 서브밋하는 단계 -상기 공통 외부 행동은 상기 컨텍스트 및 하나 이상의 다른 컨텍스트에 대해 공통이며, 상기 공통 외부 행동은 공통 인터페이스를 제공하여 서로 다른 애플리케이션들이 상기 컨텍스트 및 상기 하나 이상의 다른 컨텍스트에 균일하게 쿼리를 서브밋할 수 있도록 함-,
    상기 컨텍스트의 특유한 내부 행동에 따라 상기 쿼리 기준을 만족하는 상기 컨텍스트 내의 임의의 참조들을 상기 컨텍스트가 내부적으로 식별하는 단계,
    잠재적으로 관련된 참조를 가진 제2 컨텍스트가 상기 컨텍스트의 관련성 임계값(relevance threshold) 내에 있음을 결정하는 단계 -상기 제2 컨텍스트는 상기 하나 이상의 다른 컨텍스트 중 하나임-,
    상기 공통 외부 행동을 통해 상기 쿼리 기준을 상기 제2 컨텍스트에 재귀적(recursively)으로 서브밋하는 단계, 및
    상기 제2 컨텍스트의 특유한 내부 행동에 따라 상기 쿼리 기준을 만족하는 상기 제2 컨텍스트 내의 임의의 참조들을 상기 제2 컨텍스트가 식별하는 단계
    를 포함하는 방법.
  2. 제1항에 있어서,
    상기 컨텍스트에 쿼리 기준을 서브밋하는 단계는, 쿼리 기준을 활동 컨텍스트(activity context)에 서브밋하는 단계를 포함하는 방법.
  3. 제1항에 있어서,
    상기 쿼리 기준을 만족하는 상기 컨텍스트 내의 임의의 참조들을 식별하는 단계는, 참조 스키마에 따라 포맷(format)된 참조를 식별하는 단계를 포함하는 방법.
  4. 제1항에 있어서,
    상기 쿼리 기준을 만족하는 상기 컨텍스트 내의 임의의 참조들을 식별하는 단계는, 구조화되지 않은 참조를 식별하는 단계를 포함하는 방법.
  5. 제1항에 있어서,
    상기 잠재적으로 관련된 참조를 가진 다른 컨텍스트가 상기 컨텍스트의 관련성 임계값 내에 있음을 결정하는 단계는, 상기 컨텍스트의 참조가 다른 컨텍스트의 참조에 대해 정의된 관계를 가짐을 결정하는 단계를 포함하는 방법.
  6. 제1항에 있어서,
    상기 잠재적으로 관련된 참조를 가진 다른 컨텍스트가 상기 컨텍스트의 관련성 임계값 내에 있음을 결정하는 단계는, 상기 컨텍스트의 참조가 다른 컨텍스트의 참조와 상호 연관되었음을 결정하는 단계를 포함하는 방법.
  7. 제1항에 있어서,
    상기 잠재적으로 관련된 참조를 가진 다른 컨텍스트가 상기 컨텍스트의 관련성 임계값 내에 있음을 결정하는 단계는, 다른 컨텍스트의 참조가 지정된 수보다 적은 관계들을 건넘으로써 액세스될 수 있음을 결정하는 단계를 포함하는 방법.
  8. 제1항에 있어서,
    상기 관련성 임계값을 만족하는 임의의 다른 컨텍스트에 상기 쿼리 기준을 재귀적으로 서브밋하는 단계를 더 포함하는 방법.
  9. 컨텍스트 기반 작업 환경을 제공하기 위해 구성된 컴퓨터 시스템에서, 컨텍스트에 참조를 추가하기 위한 방법으로서,
    사용자 입력 장치로 참조를 선택하는 단계,
    상기 참조가 컨텍스트에 포함될 것임을 나타내는 단계 -상기 컨텍스트는 참조를 수신하기 위한 공통 외부 컨텍스트 행동을 가지며, 상기 공통 외부 행동은 컴퓨터 시스템에서 상기 컨텍스트 및 하나 이상의 다른 컨텍스트에 공통임-,
    상기 공통 외부 행동에 따라 컨텍스트가 상기 참조를 받아들이는 단계, 및
    내부 논리에 따라 상기 컨텍스트가 상기 참조를 프로세스하는 단계 -상기 내부 논리는 상기 컨텍스트 내부에 있으며, 상기 내부 논리는 상기 하나 이상의 다른 컨텍스트 중 적어도 하나의 내부 논리와 다름-
    를 포함하는 방법.
  10. 제9항에 있어서,
    상기 참조가 컨텍스트에 포함될 것임을 나타내는 단계는, 상기 참조를 나타내는 아이콘을 상기 컨텍스트로 드래그하고 상기 아이콘을 상기 참조에 드롭하는 단계를 포함하는 방법.
  11. 제9항에 있어서,
    상기 참조가 컨텍스트에 포함될 것임을 나타내는 단계는, 메뉴 선택을 입력하는 단계를 포함하는 방법.
  12. 제9항에 있어서,
    상기 내부 논리에 따라 상기 컨텍스트가 상기 참조를 프로세스하는 단계는, 문서 컨텍스트가 상기 참조를 문서 내에 스마트 태그(smart tag)로서 저장하는 단계를 포함하는 방법.
  13. 제9항에 있어서,
    상기 내부 논리에 따라 상기 컨텍스트가 상기 참조를 프로세스하는 단계는, 공동 작업 컨텍스트(collaboration context)가 상기 공동 작업 컨텍스트에 포함된 타임라인(timeline)에 상기 참조를 저장하는 단계를 포함하는 방법.
  14. 컨텍스트 기반 작업 환경을 제공하기 위해 구성된 컴퓨터 시스템에서, 태스크의 다른 부분들의 수행 사이에서 포커스가 시프트될 때 상기 태스크를 수행하기 위한 방법으로서,
    태스크를 수행하는 것과 관련된 하나 이상의 참조를 포함하는 컨텍스트로 포커스를 시프트하는 단계,
    상기 태스크의 제1 부분을 수행하는 단계 -상기 태스크의 상기 제1 부분의 수행은 하나 이상의 상기 관련된 참조들의 구성을 조작하는 결과를 가져옴-,
    상기 하나 이상의 관련된 참조의 상기 구성을 보존하기 위해 상기 컨텍스트를 저장하는 단계,
    상기 하나 이상의 관련된 참조의 상기 구성으로부터 포커스가 시프트되도록 다른 참조를 포함하는 다른 컨텍스트로 포커스를 시프트하는 단계,
    상기 컨텍스트를 저장하는 것에 이어 상기 컨텍스트를 복원하는 단계,
    상기 태스크의 상기 제1 부분의 결과에 의존하는 상기 태스크의 이어지는 제2 부분을 수행하는 단계 -상기 태스크의 이어지는 제2 부분은 상기 하나 이상의 관련된 참조의 상기 보존된 구성을 사용하여 상기 태스크의 상기 제1 부분이 반복될 필요가 없도록 함-
    를 포함하는 방법.
  15. 제14항에 있어서,
    상기 태스크를 수행하는 것과 관련된 하나 이상의 참조를 포함하는 컨텍스트로 포커스를 시프트하는 단계는 사용자 입력에 대한 응답으로 포커스를 시프트하는 단계를 포함하는 방법.
  16. 제14항에 있어서,
    상기 하나 이상의 관련된 참조의 상기 구성을 보존하기 위해 상기 컨텍스트를 저장하는 단계는, 상기 컨텍스트를 시스템 메모리로부터 자기 또는 광 디스크로 저장하는 단계를 포함하는 방법.
  17. 제14항에 있어서,
    상기 다른 참조를 포함하는 다른 컨텍스트로 포커스를 시프트하는 단계는, 시스템 메모리로부터 상기 하나 이상의 관련된 참조를 제거하는 단계를 포함하는 방법.
  18. 제14항에 있어서,
    상기 컨텍스트를 저장하는 것에 이어 상기 컨텍스트를 복원하는 단계는, 자기 또는 광 디스크로부터 시스템 메모리로 상기 컨텍스트를 로드하는 단계를 포함 하는 방법.
  19. 제14항에 있어서,
    상기 컨텍스트를 저장하는 것에 이어 상기 컨텍스트를 복원하는 단계는, 상기 하나 이상의 관련된 참조의 그루핑(grouping) 및 구성을 보존하는 단계를 포함하는 방법.
  20. 제19항에 있어서,
    상기 태스크의 상기 제1 부분의 상기 결과에 의존하는 상기 태스크의 이어지는 제2 부분을 수행하는 단계는, 상기 태스크의 이어지는 상기 제2 부분을 수행하기 위해 상기 하나 이상의 관련된 참조의 보존된 그루핑 및 구성을 사용하는 단계를 포함하는 방법.
KR1020077027610A 2005-07-01 2006-06-07 컨텍스트 기반 작업 환경 KR20080024114A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/173,579 US7567944B2 (en) 2005-07-01 2005-07-01 Context based work environment
US11/173,579 2005-07-01

Publications (1)

Publication Number Publication Date
KR20080024114A true KR20080024114A (ko) 2008-03-17

Family

ID=37604931

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020077027610A KR20080024114A (ko) 2005-07-01 2006-06-07 컨텍스트 기반 작업 환경

Country Status (5)

Country Link
US (1) US7567944B2 (ko)
KR (1) KR20080024114A (ko)
CN (1) CN101647011B (ko)
BR (1) BRPI0612625A2 (ko)
WO (1) WO2007005187A2 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014137075A1 (en) * 2013-03-07 2014-09-12 Samsung Electronics Co., Ltd. Computing system with contextual interaction mechanism and method of operation thereof

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7533808B2 (en) 2005-02-09 2009-05-19 Yuh-Shen Song Privacy protected cooperation network
US7769767B2 (en) 2007-09-27 2010-08-03 Domingo Enterprises, Llc System and method for filtering content on a mobile device based on contextual tagging
JP2009217404A (ja) * 2008-03-07 2009-09-24 Hitachi Ltd ストレージシステム
US9805135B2 (en) * 2011-03-30 2017-10-31 Cbs Interactive Inc. Systems and methods for updating rich internet applications
US20140115495A1 (en) * 2012-10-18 2014-04-24 Aol Inc. Systems and methods for processing and organizing electronic content

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6760720B1 (en) 2000-02-25 2004-07-06 Pedestrian Concepts, Inc. Search-on-the-fly/sort-on-the-fly search engine for searching databases
US20030229624A1 (en) 2002-06-05 2003-12-11 Petrisor Greg C. Search system
US20040243631A1 (en) * 2002-10-25 2004-12-02 Walker Andrew S. System or method for gathering and utilizing information
US7512885B2 (en) 2003-03-31 2009-03-31 Avid Technology, Inc. Graphical user interface for navigating and displaying relationships among media data and metadata

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014137075A1 (en) * 2013-03-07 2014-09-12 Samsung Electronics Co., Ltd. Computing system with contextual interaction mechanism and method of operation thereof
KR20140110728A (ko) * 2013-03-07 2014-09-17 삼성전자주식회사 컨텍스트적 상호작용 메커니즘을 갖춘 컴퓨팅 시스템 및 그 작동 방법
US9799005B2 (en) 2013-03-07 2017-10-24 Samsung Electronics Co., Ltd. Computing system with contextual interaction mechanism and method of operation thereof

Also Published As

Publication number Publication date
WO2007005187A3 (en) 2009-04-09
US20070022071A1 (en) 2007-01-25
CN101647011B (zh) 2013-06-19
WO2007005187A2 (en) 2007-01-11
CN101647011A (zh) 2010-02-10
US7567944B2 (en) 2009-07-28
BRPI0612625A2 (pt) 2010-11-23

Similar Documents

Publication Publication Date Title
US10949383B2 (en) Electronic document classification
CA2487999C (en) Behavior-based adaptation of computer systems
JP5319079B2 (ja) 役割ベースのユーザインタフェースナビゲーションのための方法およびシステム
JP5890308B2 (ja) コンテキスト上関連するタスクアイテムの自動発見
JP5080447B2 (ja) グループウェアクライアントにおけるコンテキスト認識のための方法及び装置
US9690875B2 (en) Providing search results for mobile computing devices
US7454414B2 (en) Automatic data retrieval system based on context-traversal history
US20080046407A1 (en) Application search interface
US20060047811A1 (en) Method and system of providing access to various data associated with a project
US20110179067A1 (en) Lifecycle marketing object oriented system and method
JP2007310881A (ja) 役割ベースのユーザインタフェースにおける表示エリアの最適化のための方法およびシステム
US8645387B2 (en) Expertise identification using interaction metrics
WO2019036087A1 (en) BASIC KNOWLEDGE OPERATION OF GROUPS IN THE MINING OF ORGANIZATIONAL DATA
KR20080024114A (ko) 컨텍스트 기반 작업 환경
AU2021202447B2 (en) Agnostic crm augmentation with a display screen
JP2001306593A (ja) 表示方法、表示処理装置、及び記録媒体
CN115023722A (zh) 客户关系管理应用的不可知增强
AU2021202446A1 (en) Agnostic customer relationship management with agent hub and browser overlay
US20180247273A1 (en) Dynamic schedule creation based on knowledge
US20120173294A1 (en) Integrating Report Actions for a Series of Reports Within a Single User Interface
EP3455805A1 (en) Enhancing contact card based on knowledge graph
US20060106688A1 (en) Program interface for a business management application and an accounting application
US11588768B2 (en) Intelligent management of hero cards that display contextual information and actions for backend systems
US20240249243A1 (en) Facilitating generation of item insights
EP2219144A1 (en) A method for analysing data transmissions

Legal Events

Date Code Title Description
A201 Request for examination
SUBM Surrender of laid-open application requested