KR20200099619A - 애플리케이션간 통신을 통한 작업 완료 기법 - Google Patents

애플리케이션간 통신을 통한 작업 완료 기법 Download PDF

Info

Publication number
KR20200099619A
KR20200099619A KR1020207023304A KR20207023304A KR20200099619A KR 20200099619 A KR20200099619 A KR 20200099619A KR 1020207023304 A KR1020207023304 A KR 1020207023304A KR 20207023304 A KR20207023304 A KR 20207023304A KR 20200099619 A KR20200099619 A KR 20200099619A
Authority
KR
South Korea
Prior art keywords
entity
action
application
target application
context
Prior art date
Application number
KR1020207023304A
Other languages
English (en)
Other versions
KR102251597B1 (ko
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 KR20200099619A publication Critical patent/KR20200099619A/ko
Application granted granted Critical
Publication of KR102251597B1 publication Critical patent/KR102251597B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • User Interface Of Digital Computer (AREA)
  • Stored Programmes (AREA)
  • Navigation (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

무엇보다도 특히 애플리케이션간 통신을 통해 작업 완료를 용이하게 하고/하거나 컨텍스트 인식 작업 실행을 위한 타겟 애플리케이션을 등록하기 위한 하나 이상의 기술 및/또는 시스템이 제공된다. 즉, 현재 애플리케이션이 엔티티를 포함하는 콘텐츠를 표시할 수 있다(예로서, 맵핑 애플리케이션이 식당 엔티티를 표시할 수 있다). 엔티티에 대해 수행될 수 있는 하나 이상의 액션(예로서, 테이블 예약 액션)이 노출될 수 있다. 액션의 선택에 응답하여, 엔티티에 대해 액션을 수행할 수 있는 하나 이상의 타겟 애플리케이션이 제공될 수 있다. 타겟 애플리케이션의 선택에 응답하여, 엔티티 및/또는 액션에 대한 컨텍스트 정보가 타겟 애플리케이션으로 전송될 수 있으며, 따라서 타겟 애플리케이션은 작업의 완료를 용이하게 하기 위해 컨텍스트 관련 상태로 런칭될 수 있다. 예를 들어, 식사 애플리케이션이 식당 엔티티에 대한 테이블 예약 형태로 런칭될 수 있다.

Description

애플리케이션간 통신을 통한 작업 완료 기법{TASK COMPLETION THROUGH INTER-APPLICATION COMMUNICATION}
많은 사용자는 이동 전화, 태블릿 장치 및/또는 개인용 컴퓨터와 같은 컴퓨팅 장치들을 이용하여 다양한 타입의 액션들을 수행한다. 일례에서, 사용자는 "오늘 무슨 뉴스가 있지?"라는 음성 명령을 이동 전화 내에 입력할 수 있다. 이동 전화는 웹 브라우저를 통해 사용자에게 뉴스 웹사이트 검색 결과들의 리스트를 제공할 수 있다. 다른 예에서, 사용자는 태블릿 장치를 통해 액세스되는 검색 엔진을 통해 "영화 티켓 주문"이라는 검색 질의를 입력할 수 있다. 검색 엔진은 영화 티켓과 관련된 것으로서 태깅(tagging)될 수 있는 웹사이트들의 리스트를 제공할 수 있다. 사용자는 영화 논평, 상영 시간 및/또는 영화 티켓 주문 서비스와 같은 영화 정보를 제공할 수 있는 영화 웹사이트를 수동으로 탐험할 수 있다. 티켓 주문 서비스를 발견한 후, 사용자는 티켓 주문 서비스에 의해 요청된 정보를 제공하여 영화 티켓 주문 액션을 완료할 수 있다. 불행하게도, 영화 티켓 주문 액션의 완료는 특정 영화 티켓팅 앱 또는 웹사이트의 발견, 많은 수동 입력, 검색, 시행착오 및/또는 중복 정보의 입력을 필요로 할 수 있다.
본 요약은 상세한 설명에서 더 후술하는 개념들의 발췌를 간단한 형태로 소개하기 위해 제공된다. 본 요약은 청구 발명의 중요한 특징들 또는 본질적인 특징들을 식별하는 것을 의도하지 않으며, 청구 발명의 범위를 한정하는 데 사용되는 것도 의도하지 않는다.
많은 가운데 특히, 애플리케이션간 통신을 통해 작업 완료를 용이하게 하고/하거나 컨텍스트 인식 작업 실행(contextually aware task execution)을 위한 타겟 애플리케이션을 등록하기 위한 하나 이상의 시스템 및/또는 기술이 본 명세서에서 제공된다. 작업 완료를 용이하게 하는 일부 실시예들에서, 현재 애플리케이션의 콘텐츠 내에 포함된 엔티티가 식별될 수 있다. 엔티티는 사람 엔티티, 비즈니스 엔티티, 소비자 제품 엔티티, 시간 엔티티, 위치 엔티티, 물체 엔티티 및/또는 임의의 다른 타입의 엔티티들을 포함할 수 있다. 예를 들어, 소셜 네트워크 애플리케이션은 자동차 엔티티를 식별하는 데 사용될 수 있는 2013년식 스포츠카 모델 (X)를 설명하는 콘텐츠를 포함하는 소셜 네트워크 포스트(post)를 표시할 수 있다(예를 들어, 소셜 네트워크 포스트의 콘텐츠는 자동차 엔티티를 정의하고/하거나 자동차 엔티티 상에서 수행될 수 있는 액션들을 설명하는 데 사용되는 하나 이상의 엔티티 파라미터를 포함하는 자동차 엔티티 정의와 매칭될 수 있다). 엔티티 상에서 수행될 수 있는 하나 이상의 액션이 노출될 수 있다. 일례에서, 소셜 네트워크 애플리케이션은 소셜 네트워크 애플리케이션 내에 삽입된 자동차 논평 보기 액션을 가질 수 있다. 다른 예에서, 자동차 엔티티에 기초하여 자동차 견적 액션이 동적으로 식별될 수 있다(예를 들어, 자동차 엔티티 정의는 자동차 엔티티에 대해 자동차 견적 액션을 수행하는 데 사용되는 정보에 대응하는 하나 이상의 액션 파라미터를 포함하는 자동차 견적 액션 정의를 참조할 수 있다).
액션의 선택에 응답하여, 작업을 완수하기 위한 사용자 의도가 엔티티와 관련된 엔티티 컨텍스트 및/또는 액션과 관련된 액션 컨텍스트에 기초하여 판단될 수 있다. 예를 들어, 자동차 견적 액션을 수행하기 위한 사용자 의도가 자동차 엔티티(예를 들어, 모델명 및/또는 모델 연식과 같이 소셜 네트워크 애플리케이션에 의해 제공되는 자동차 엔티티에 대한 자동차 엔티티 정의 및/또는 컨텍스트 정보) 및/또는 자동차 견적 액션(예로서, 중개인 위치, 자동차 빌드 옵션(car build option), 자동차 거래 정보 등과 같이 소셜 네트워크 애플리케이션에 의해 제공되는 자동차 견적 액션에 대한 자동차 견적 정의 및/또는 컨텍스트 정보)에 기초하여 판단될 수 있다. 엔티티에 대해 액션을 수행할 수 있는 하나 이상의 애플리케이션(예로서, 자동차 거래자 애플리케이션)이 (예로서, 쉐어 참(share charm)과 같은 운영 체제 사용자 인터페이스를 통해) 제공될 수 있다.
타겟 애플리케이션의 선택에 응답하여, 엔티티 컨텍스트(예로서, 모델명 및/또는 모델 연식) 및/또는 액션 컨텍스트(예로서, 중개인 위치, 자동차 빌드 옵션, 자동차 거래 정보 등)가 타겟 애플리케이션으로 전송될 수 있으며, 따라서 타겟 애플리케이션은 엔티티 컨텍스트 및/또는 액션 컨텍스트에 따라 런칭되어 작업의 완료를 용이하게 한다. 일례에서, 자동차 거래자 애플리케이션은 (예를 들어, 단순히 컨텍스트과 무관한 홈 스크린 내의 개방이 아니라) 엔티티 컨텍스트 및/또는 액션 컨텍스트로부터 추출되는 적어도 일부 정보를 포함할 수 있는 컨텍스트 인식 상태로(예로서, 자동차 견적 형태로) 개방될 수 있다. 이러한 방식으로, 사용자는 자동차 거래자 애플리케이션을 통해, 예를 들어 비교적 적은 사용자 입력, 검색, 시행착오 및/또는 중복 정보의 입력을 이용하여 자동차 견적 액션을 효율적으로 수행할 수 있다.
컨텍스트 인식 작업 실행을 위한 타겟 애플리케이션을 등록하는 일부 실시예들에서, 타겟 애플리케이션과의 데이터 계약을 설정하기 위한 등록 요청이 수신될 수 있다. 등록 요청은 타겟 애플리케이션에 의해 지원되는 엔티티 및/또는 액션을 포함할 수 있다. 예를 들어, 자동차 애호가 애플리케이션은 자동차 애호가 애플리케이션이 자동차 엔티티, 자동차 견적 액션 및/또는 다른 엔티티들 및/또는 액션들을 지원하는 것에 기초하여 자동차 애호가 애플리케이션과 운영 체제 사용자 인터페이스(예로서, 쉐어 참)와 같은 작업 실행 컴포넌트 사이에 데이터 계약을 설정하도록 요청할 수 있다. 이러한 방식으로, 타겟 애플리케이션과의 데이터 계약이 이루어질 수 있다. 데이터 계약은 타겟 애플리케이션이 엔티티에 대해 액션을 수행할 수 있다는 것을 명시할 수 있다.
엔티티에 대한 엔티티 정의가 유지될 수 있다. 엔티티 정의는 엔티티를 정의하는 하나 이상의 엔티티 파라미터를 포함할 수 있다. 엔티티 파라미터는 액션이 엔티티에 대해 수행될 수 있다는 것을 명시할 수 있다. 예를 들어, 자동차 엔티티 정의는 자동차 모델 정보에 대한 제1 엔티티 파라미터, 모델 연식 정보에 대한 제2 엔티티 파라미터, 자동차 견적 액션이 자동차 엔티티에 대해 수행될 수 있다는 것을 명시하는 제3 엔티티 파라미터 및/또는 다른 엔티티 파라미터들을 포함할 수 있다. 액션에 대한 액션 정의가 유지될 수 있다. 액션 정의는 액션을 정의하는 하나 이상의 액션 파라미터를 포함할 수 있다. 액션 파라미터는 액션을 수행하는 데 사용되는 정보를 명시할 수 있다. 예를 들어, 자동차 견적 액션 정의는 중개인 위치 정보에 대한 제1 액션 파라미터, 자동차 빌딩 옵션 정보에 대한 제2 액션 파라미터 및/또는 다른 액션 파라미터들을 포함할 수 있다. 이러한 방식으로, 자동차 엔티티 정의 및/또는 자동차 견적 액션 정의는 현재 애플리케이션으로부터 추출되는 컨텍스트 정보에 기초하여 타겟 애플리케이션에 의해 작업의 수행을 용이하게 하는 데 사용될 수 있다.
상기한 그리고 관련 목적들을 달성하기 위해, 아래의 설명 및 첨부 도면들은 특정한 예시적인 양태들 및 구현들을 설명한다. 이들은 하나 이상의 양태가 이용될 수 있는 다양한 방식들 중 일부만을 나타낸다. 본 개시 내용의 다른 양태들, 장점들 및 새로운 특징들은 첨부 도면들과 연계하여 고려될 때 아래의 상세한 설명으로부터 명백해질 것이다.
도 1은 애플리케이션간 통신을 통해 작업 완료를 용이하게 하는 예시적인 방법을 나타내는 흐름도이다.
도 2는 엔티티에 대한 엔티티 정의, 액션에 대한 액션 정의 및/또는 타겟 애플리케이션과 관련된 데이터 계약을 유지하기 위한 예시적인 시스템을 나타내는 컴포넌트 블록도이다.
도 3a는 애플리케이션간 통신을 통해 작업 완료를 용이하게 하기 위한 예시적인 시스템을 나타내는 컴포넌트 블록도이다.
도 3b는 애플리케이션간 통신을 통해 작업 완료를 용이하게 하기 위한 예시적인 시스템을 나타내는 컴포넌트 블록도이다.
도 4a는 애플리케이션간 통신을 통해 작업 완료를 용이하게 하기 위한 예시적인 시스템을 나타내는 컴포넌트 블록도이다.
도 4b는 애플리케이션간 통신을 통해 작업 완료를 용이하게 하기 위한 예시적인 시스템을 나타내는 컴포넌트 블록도이다.
도 5는 컨텍스트 인식 작업 실행을 위한 타겟 애플리케이션을 등록하는 예시적인 방법을 나타내는 흐름도이다.
도 6은 본 명세서에서 설명되는 항목들 중 하나 이상을 구현하도록 구성되는 프로세서 실행 가능 명령어들을 포함할 수 있는 예시적인 컴퓨팅 장치 판독 가능 매체의 도면이다.
도 7은 본 명세서에서 설명되는 항목들 중 하나 이상을 구현할 수 있는 예시적인 컴퓨팅 환경을 나타낸다.
이제, 도면들을 참조하여 청구 발명이 설명되며, 도면들 전반에서 동일한 참조 번호들은 일반적으로 동일한 요소들을 지칭하는 데 사용된다. 아래의 설명에서는 설명의 목적으로 청구 발명의 이해를 제공하기 위해 다양한 특정 상세들이 설명된다. 그러나, 청구 발명은 이러한 특정 상세 없이도 실시될 수 있다는 것이 명백할 수 있다. 다른 예들에서는 청구 발명의 설명을 용이하게 하기 위해 구조들 및 장치들이 블록도 형태로 도시된다.
애플리케이션간 통신을 통해 작업 완료를 용이하게 하는 일 실시예가 도 1에서 예시적인 방법(100)에 의해 도시된다. 102에서, 방법이 시작된다. 일례에서, 사용자는 현재 애플리케이션(예로서, 소셜 네트워크 애플리케이션, 이메일 애플리케이션, 웹사이트를 표시하는 웹 브라우저, 맵핑 애플리케이션, 비디오 게임, 국지적으로 설치된 애플리케이션, 클라우드 애플리케이션 등)과 상호작용하고 있을 수 있다. 현재 애플리케이션은 하나 이상의 엔티티를 포함하는 콘텐츠를 표시할 수 있다. 예를 들어, 소셜 네트워크 애플리케이션은 사용자가 즐겼던 멕시칸 칸티나(Mexican Cantina)와 같은 특정 식당을 참조하는 사용자에 의한 소셜 네트워크 포스트를 표시할 수 있다. 일례에서, 식당 엔티티는 콘텐츠로부터 동적으로 식별될 수 있다(예를 들어, 콘텐츠는 식당 이름, 위치, 가격 범위, 및 식당 엔티티에 대해 수행될 수 있는 하나 이상의 액션, 예를 들어 테이블 예약 액션, 메뉴 보기 액션 등과 같이 엔티티를 정의하는 하나 이상의 엔티티 파라미터를 포함하는 엔티티 정의와 매칭될 수 있는 엔티티 후보를 식별하도록 파싱(parsing)될 수 있다). 다른 예에서, 식당 엔티티는 소셜 네트워크 애플리케이션에 의해 사전 정의될 수 있다. 이러한 방식으로, 현재 애플리케이션의 콘텐츠 내에 포함된 엔티티가 104에서 식별될 수 있다.
106에서, 엔티티에 대해 수행될 수 있는 하나 이상의 액션이 노출될 수 있다. 일례에서, 식당 엔티티 정의는 테이블 예약 액션과 같이 식당 엔티티에 대해 수행될 수 있는 하나 이상의 액션을 명시할 수 있다. 테이블 예약 액션 정의는 좌석 수, 시간, 식당 이름 등과 같이 테이블 예약 액션을 수행하는 데 사용되는 정보를 명시하는 하나 이상의 액션 파라미터를 포함할 수 있다. 이러한 방식으로, 액션이 엔티티에 기초하여 동적으로 식별될 수 있고, 제공될 수 있다. 다른 예에서, 액션은 현재 애플리케이션 내에 삽입될 수 있다(예를 들어, 현재 애플리케이션의 개발자는 사용자가 엔티티를 선택하는 것에 응답하여 액션을 제공할 수 있는 기능을 현재 애플리케이션 내에 삽입할 수 있다).
108에서, 액션(예로서, 테이블 예약 액션)의 선택에 응답하여, 작업(예로서, 멕시칸 칸티나에서의 테이블 예약)을 완수하기 위한 사용자 의도가 엔티티와 관련된 엔티티 컨텍스트 및/또는 액션과 관련된 액션 컨텍스트에 기초하여 판단될 수 있다. 예를 들어, 엔티티 컨텍스트는 식당 이름인 멕시칸 칸티나 및 위치인 다운타운(Downtown)과 같이 식당 엔티티 정의 내에 명시된 하나 이상의 엔티티 파라미터에 대한 값들을 포함할 수 있다. 엔티티 파라미터에 대한 값은 현재 애플리케이션의 콘텐츠로부터 추출될 수 있고/있거나, 엔티티 정의로부터 추출될 수 있다. 액션 컨텍스트는 식당 이름인 멕시칸 칸티나 및 시간인 8:00과 같이 테이블 예약 액션 정의 내에 명시된 하나 이상의 액션 파라미터에 대한 값들을 포함할 수 있다.
타겟 애플리케이션(예로서, 음식 전문가 애플리케이션)의 선택에 응답하여, 112에서, 엔티티 컨텍스트 및/또는 액션 컨텍스트가 타겟 애플리케이션으로 전송될 수 있으며, 따라서 타겟 애플리케이션은 엔티티 컨텍스트 및/또는 액션 컨텍스트에 따라 런칭되어 작업의 완료를 용이하게 할 수 있다. 타겟 애플리케이션은 웹사이트를 표시하는 웹 브라우저, 국지적으로 설치된 애플리케이션, 클라우드 애플리케이션 또는 서비스, 및/또는 다운로드 및/또는 설치에 이용 가능한 시장 애플리케이션을 포함할 수 있다(예를 들어, 사용자는 애플리케이션 시장으로부터 시장 애플리케이션을 획득하도록 안내(prompt)될 수 있다). 예를 들어, 국지적으로 설치될 수 있는 음식 전문가 애플리케이션은 엔티티 컨텍스트 및/또는 액션 컨텍스트과 관련된 적어도 일부 정보를 포함할 수 있는 컨텍스트 관련 상태로 개방될 수 있다(예를 들어, 음식 전문가 애플리케이션은 하나 이상의 엔티티 파라미터 및/또는 하나 이상의 액션 파라미터로부터의 값들로 채워지는 테이블 예약 형태로 개방될 수 있다). 컨텍스트 정보를 타겟 애플리케이션으로 전송하는 예에서, 운영 체제 통신 모델을 이용하여, 엔티티 컨텍스트 및/또는 액션 컨텍스트를 타겟 애플리케이션으로 전송할 수 있다. 일례에서, 타겟 애플리케이션은 집중 보기 상태로(예로서, 실질적 풀 스크린 상태로) 런칭될 수 있다. 다른 예에서, 타겟 애플리케이션은 현재 애플리케이션과 나란히 런칭될 수 있다. 또 다른 예에서, 타겟 애플리케이션은 현재 애플리케이션과 나란히 표시될 수 있는 오버레이 인터페이스(예로서, 애플리케이션들을 표시하는 데 사용되는 참(charm)과 같은 운영 체제 사용자 인터페이스) 내에 런칭될 수 있다. 이러한 방식으로, 사용자는 적절한 기능에 대한 과도한 검색 및/또는 중복 정보의 수동 입력 없이 작업을 효율적으로 완료할 수 있다. 런칭되면, 타겟 애플리케이션의 표시를 현재 애플리케이션으로 그리고/또는 작업 완료를 위해 선택될 수 있는 하나 이상의 타겟 애플리케이션을 포함하는 작업 인터페이스로 전이할 수 있는 백(back) 명령과 같은 다양한 명령들이 수행될 수 있다.
일례에서, 엔티티 액션 로그(예로서, 데이터베이스, 로그 파일, 상호작용 사용자 인터페이스 등)가 유지될 수 있다. 엔티티 액션 로그는 액션들에 대한 사용 패턴들, 액션들에 대한 약속 패턴들, 액션 런칭 횟수, 애플리케이션 런칭 횟수 등과 같이 작업 완료와 관련된 정보를 포함하는 하나 이상의 엔트리를 포함할 수 있다. 사용자 옵트인 또는 옵트아웃이 임의의 그러한 정보, 활동, 액션 등을 로깅(logging)하기 위한 옵션이 제공될 수 있다. 엔트리는 예를 들어 타겟 애플리케이션에 의해 엔티티에 대해 액션이 수행되었다는 것을 명시할 수 있다. 엔티티 액션 로그는 제삼자 애플리케이션(예로서, 여행 애플리케이션의 개발자)에 노출될 수 있다. 작업 완료 컴포넌트와 제삼자 애플리케이션 사이의 데이터 계약이 생성될 수 있다(예를 들어, 개발자는 데이터 계약을 생성하기 위한 소망을 나타내는 등록 요청을 전송할 수 있다). 데이터 계약은 제삼자 애플리케이션이 엔티티에 대한 액션의 수행을 지원한다는 것을 명시할 수 있다. 이러한 방식으로, 제삼자 애플리케이션은 컨텍스트 인식 작업 실행을 위한 타겟 애플리케이션으로서 등록될 수 있다. 114에서, 방법이 종료된다.
도 2는 엔티티에 대한 엔티티 정의, 액션에 대한 액션 정의 및/또는 타겟 애플리케이션과 관련된 데이터 계약을 유지하도록 구성되는 시스템(200)의 일례를 도시한다. 시스템(200)은 정의 컴포넌트(202) 및/또는 계약 컴포넌트(208)를 포함할 수 있다. 정의 컴포넌트(202)는 엔티티에 대한 엔티티 정의를 생성하도록 구성될 수 있다. 예를 들어, 정의 컴포넌트(202)는 식당 엔티티에 대한 식당 엔티티 정의(204)를 유지할 수 있다. 식당 엔티티 정의(204)는 엔티티를 정의하고/하거나 엔티티에 대해 수행될 수 있는 액션들을 명시하는 하나 이상의 엔티티 파라미터를 포함할 수 있다. 예를 들어, 식당 이름 파라미터, 식당 위치 파라미터, 식당 타입 파라미터 및/또는 다른 엔티티 파라미터들이 식당 엔티티 정의(204) 내에 명시될 수 있다. 일례에서, 멕시칸 칸티나 엔티티와 같은 식당 엔티티의 일례가 엔티티 파라미터들(예로서, 식당 이름인 멕시칸 칸티나, 식당 위치인 다운타운 등) 중 하나 이상에 대한 값들로 식당 엔티티 정의를 채우는 것에 기초하여 정의될 수 있다. 테이블 예약 액션, 논평 읽기 액션, 메뉴 보기 액션 및/또는 식당 엔티티에 대해 수행될 수 있는 다른 액션들과 같은 하나 이상의 지원되는 액션이 식당 엔티티 정의(204) 내에 명시될 수 있다. 식당 엔티티 정의(204)는 작업 완료를 용이하게 하기 위해 식당 엔티티에 대한 엔티티 컨텍스트를 생성하는 데 사용될 수 있다(예를 들어, 엔티티 컨텍스트는 식당 엔티티 정의(204) 내에 명시되는 적어도 일부 정보를 포함할 수 있고, 이는 타겟 애플리케이션으로 전송될 수 있으며, 따라서 타겟 애플리케이션은 작업 완료를 위해 컨텍스트 관련 상태로 런칭될 수 있다).
정의 컴포넌트(202)는 액션에 대한 액션 정의를 생성하도록 구성될 수 있다. 예를 들어, 정의 컴포넌트(202)는 테이블 예약 액션에 대한 테이블 예약 액션 정의(206)를 유지할 수 있다. 테이블 예약 액션 정의(206)는 액션을 정의하고/하거나 액션을 수행하는 데 사용되는 정보를 명시하는 하나 이상의 액션 파라미터를 포함할 수 있다. 예를 들어, 테이블 예약 액션 정의(206)는 식당 이름 파라미터, 식당 위치 파라미터, 전화 번호 파라미터, 예약 시간 파라미터, 파티 규모 파라미터 및/또는 테이블 예약 액션을 수행하는 데 사용되는 다른 액션 파라미터들을 포함할 수 있다. 테이블 예약 액션 정의(206)는 작업 완료를 용이하게 하기 위해 테이블 예약 액션에 대한 액션 컨텍스트를 생성하는 데 사용될 수 있다(예를 들어, 액션 컨텍스트는 테이블 예약 액션 정의(206) 내에 명시되는 적어도 일부 정보를 포함할 수 있고, 이는 타겟 애플리케이션으로 전송될 수 있으며, 따라서 타겟 애플리케이션은 작업 완료를 위해 컨텍스트 관련 상태로 런칭될 수 있다).
계약 컴포넌트(208)는 (애플리케이션간 통신을 통해 작업의 완료를 용이하게 하도록 구성되는) 작업 실행 컴포넌트와 하나 이상의 제삼자 애플리케이션 사이의 하나 이상의 데이터 계약을 유지하도록 구성될 수 있다. 예를 들어, 계약 컴포넌트(208)는 여행 애플리케이션에 대한 데이터 계약(210)을 생성할 수 있다. 데이터 계약(210)은 여행 애플리케이션이 하나 이상의 엔티티(예로서, 식당 엔티티, 자동차 임대 엔티티, 호텔 엔티티 등) 및/또는 하나 이상의 액션(예로서, 테이블 예약 액션, 자동차 예약 액션, 호텔 비교 액션 등)을 지원한다는 것을 명시할 수 있다. 이러한 방식으로, 여행 애플리케이션(210)은 작업 완료를 용이하게 하기 위해 엔티티에 대해 액션을 수행할 수 있는 타겟 애플리케이션으로서 식별될 수 있다.
도 3a는 애플리케이션간 통신을 통해 작업 완료를 용이하게 하도록 구성되는 시스템(300)의 일례를 나타낸다. 시스템(300)은 작업 실행 컴포넌트(308)(예로서, 프로그래밍 모듈, 웹 서비스, 애플리케이션 기능 및/또는 예를 들어 쉐어 참과 같은 운영 체제 사용자 인터페이스)를 포함할 수 있다. 작업 실행 컴포넌트(308)는 맵핑 애플리케이션(302)과 같은 현재 애플리케이션과 관련될 수 있다. 맵핑 애플리케이션(302)은 콘텐츠(예로서, 다운타운 내의 멕시칸 칸티나(304) 및 북 스토어를 나타내는 로컬 맵)를 사용자에게 제공할 수 있다. 작업 실행 컴포넌트(308)는 맵핑 애플리케이션(302)의 콘텐츠 내에 포함되는 멕시칸 칸티나 엔티티와 같은 엔티티를 식별하도록 구성될 수 있다. 예를 들어, 작업 실행 컴포넌트(308)는 맵핑 애플리케이션(302)의 콘텐츠와 관련된 컨텍스트 정보(306)를 이용하여, 멕시칸 칸티나 엔티티를 정의하는 데 사용될 수 있는 엔티티 정의 저장소(312) 내의 식당 엔티티 정의를 식별할 수 있다. 작업 실행 컴포넌트(308)는 멕시칸 칸티나 엔티티에 대해 수행될 수 있는 하나 이상의 액션을 노출시킬 수 있다. 예를 들어, 작업 실행 컴포넌트(308)는 작업 인터페이스(320)를 통해 메뉴 보기 액션(322) 및/또는 테이블 예약 액션(328)을 제공(318)할 수 있다. 일례에서, (예로서, 개발자에 의해 사전 정의된) 액션이 맵핑 애플리케이션(302) 내에 삽입될 수 있다. 다른 예에서, 액션이 액션 정의 저장소(314) 내의 액션 정의(예로서, 메뉴 보기 액션 정의, 테이블 예약 액션 정의 등)에 기초하여 동적으로 식별될 수 있다.
작업 실행 컴포넌트(308)는 액션의 선택을 식별하도록 구성될 수 있다. 일례에서, 사용자는 메뉴 보기 액션(322)을 선택할 수 있다. 작업 실행 컴포넌트(308)는 엔티티와 관련된 엔티티 컨텍스트 및/또는 액션과 관련된 액션 컨텍스트에 기초하여 작업을 완수하기 위한 사용자 의도(310)를 판단하도록 구성될 수 있다. 예를 들어, 사용자 의도(310)는 엔티티 컨텍스트(예로서, 맵핑 애플리케이션(302)의 콘텐츠와 관련된 컨텍스트 정보(306)로부터 도출되고/되거나 엔티티 정의 저장소(312)로부터의 식당 엔티티 정의로부터 도출되었을 수 있는 멕시칸 칸티나 엔티티와 관련된 컨텍스트 정보) 및/또는 액션 컨텍스트(예로서, 맵핑 애플리케이션(302)의 콘텐츠와 관련된 컨텍스트 정보(306)로부터 도출되고/되거나 액션 정의 저장소(314)로부터의 메뉴 보기 액션 정의로부터 도출되었을 수 있는 메뉴 보기 액션과 관련된 컨텍스트 정보)에 기초하여 사용자가 멕시칸 칸티나(304)에 대한 메뉴를 보기를 원한다는 것을 지시할 수 있다. 엔티티에 대해 액션을 수행할 수 있는 메뉴 R US 애플리케이션(324) 및/또는 음식 전문가 애플리케이션(326)과 같은 하나 이상의 타겟 애플리케이션이 제공될 수 있다(예를 들어, 맵핑 애플리케이션(302) 내의 사용자 인터페이스와 같은 작업 인터페이스(320) 또는 운영 체제 사용자 인터페이스와 같은 외부 사용자 인터페이스를 통해 제공(318)될 수 있다). 예를 들어, 메뉴 R US 애플리케이션(324) 및/또는 음식 전문가 애플리케이션(326)은 그러한 애플리케이션들이 멕시칸 칸티나 엔티티 및/또는 메뉴 보기 액션(324)을 지원한다는 것을 명시할 수 있는 데이터 계약 저장소(316) 내의 데이터 계약들을 가질 수 있다. 테이블 예약 액션(328)이 선택되는 다른 예에서, 여행 애플리케이션(330)은 멕시칸 칸티나 엔티티 및 테이블 예약 액션(328)이 여행 애플리케이션(330)에 의해 지원된다는 것을 지시하는 여행 애플리케이션(330)과 작업 실행 컴포넌트(308) 사이의 데이터 계약에 기초하여 작업 인터페이스(320)를 통해 제공될 수 있다. 이러한 방식으로, 사용자는 (예로서, 도 3b에 도시된 바와 같이) 작업 완료를 위해 컨텍스트 관련 상태로 런칭될 수 있는 타겟 애플리케이션을 선택할 수 있다.
도 3b는 애플리케이션간 통신을 통해 작업 완료를 용이하게 하도록 구성되는 시스템(340)의 일례를 나타낸다. 일례에서, 시스템(340)은 도 3a의 시스템(300)에 대응한다는 것을 알 수 있다. 예를 들어, 시스템(340)은 작업 실행 컴포넌트(370)를 포함할 수 있다. 작업 실행 컴포넌트(370)는 맵핑 애플리케이션(예로서, 도 3a의 302)과 같은 현재 애플리케이션과 관련될 수 있다. 멕시칸 칸티나 엔티티와 같은 엔티티가 맵핑 애플리케이션의 콘텐츠 내에 존재하는 것에 기초하여, 멕시칸 칸티나 엔티티에 대해 수행될 수 있는 하나 이상의 액션 및/또는 멕시칸 칸티나 엔티티에 대해 액션을 수행할 수 있는 하나 이상의 애플리케이션을 포함하는 작업 인터페이스(예로서, 도 3a의 320)가 제공되었을 수 있다.
작업 실행 컴포넌트(370)는 멕시칸 칸티나 엔티티에 대한 테이블 예약 액션(예로서, 도 3a의 328)과 관련된 여행 애플리케이션(330)과 같은 애플리케이션의 선택(342)을 수신하도록 구성될 수 있다(예로서, 사용자는 도 3a의 작업 인터페이스(320) 내의 여행 애플리케이션(330)을 선택했을 수 있다). 작업 실행 컴포넌트(370)는 맵핑 애플리케이션(예로서, 도 3a의 302)으로부터의 그리고/또는 테이블 예약 액션(예로서, 도 3a의 328)을 수행하는 데 사용되는 정보에 대응하는 하나 이상의 액션 파라미터를 포함하는 테이블 예약 액션 정의로부터의 컨텍스트 정보(예로서, 도 3a의 306)에 기초하여 테이블 예약 액션 컨텍스트(344)를 식별할 수 있다. 테이블 예약 액션 콘텐츠(344)는 식당 이름, 식당 위치, 파티 규모 등과 같이 테이블 예약 액션을 수행하는 데 사용되는 정보를 포함할 수 있다. 작업 실행 컴포넌트(370)는 맵핑 애플리케이션(예로서, 도 3a의 302)으로부터의 그리고/또는 멕시칸 칸티나 엔티티를 설명하는 정보에 대응하는 하나 이상의 엔티티 파라미터를 포함하는 식당 엔티티 정의로부터의 컨텍스트 정보(예로서, 도 3a의 306)에 기초하여 멕시칸 칸티나 엔티티를 정의하는 식당 엔티티 컨텍스트(346)를 식별할 수 있다.
작업 실행 컴포넌트(370)는 (예로서, 운영 체제 통신 모델을 이용하여) 테이블 예약 액션 컨텍스트(344) 및/또는 식당 엔티티 컨텍스트(346)를 여행 애플리케이션(330)으로 전송(348)할 수 있으며, 따라서 여행 애플리케이션(330)은 테이블 예약 액션 컨텍스트(344) 및/또는 식당 엔티티 컨텍스트(346)에 따라 런칭될 수 있다. 예를 들어, 여행 애플리케이션(330)은 테이블 예약 액션 컨텍스트(344) 및/또는 식당 이름(352)인 멕시칸 칸티나, 식당 위치(354)인 다운타운 및/또는 전화 번호(356)인 555-555-5555와 같은 식당 엔티티 컨텍스트(346)로부터의 적어도 일부 정보로 채워질 수 있는 테이블 예약 형태로 개방될 수 있다. 일례에서, 여행 애플리케이션(330)은 집중 보기 상태(예로서, 풀 스크린 등)로 런칭될 수 있다. 다른 예에서, 여행 애플리케이션(330)은 현재 애플리케이션과 나란히 표시되는 오버레이 인터페이스(예로서, 쉐어 참과 같은 운영 체제 사용자 인터페이스) 내에 런칭될 수 있다. 이러한 방식으로, 사용자는 예를 들어 적절한 기능에 대한 과도한 검색 및/또는 중복 정보의 수동 입력 없이 멕시칸 칸티나에서 테이블을 효율적으로 예약할 수 있다.
일례에서, 시스템(340)은 분석 컴포넌트(358)를 포함할 수 있다. 분석 컴포넌트(358)는 엔티티 액션 로그(360)를 유지하도록 구성될 수 있다. 분석 컴포넌트(358)는 여행 애플리케이션(330)의 런칭에 기초하여 엔티티 액션 로그(360) 내에 엔트리를 생성할 수 있다. 예를 들어, 엔트리는 작업을 완료하기 위해 타겟 애플리케이션에 의해 엔티티에 대해 액션이 수행되었다(예를 들어, 여행 애플리케이션(330)이 멕시칸 칸티나 엔티티에 대해 테이블 예약 액션을 수행하였다)는 것을 명시할 수 있다. 엔티티 액션 로그(360)는 액션이 선택된 횟수, 액션을 수행하기 위해 애플리케이션이 런칭된 횟수 등과 같은 다양한 정보 및/또는 규준을 포함할 수 있다. 엔티티 액션 로그(360)는 제삼자 애플리케이션(예로서, 제삼자 애플리케이션의 개발자)에 노출될 수 있으며, 제삼자 애플리케이션은 제삼자 애플리케이션이 컨텍스트 인식 작업 완료를 위한 타겟 애플리케이션으로서 사용되는 것을 가능하게 할 수 있는 데이터 계약을 생성하기 위해 작업 실행 컴포넌트(370)에 등록될 수 있다.
도 4a는 애플리케이션간 통신을 통해 작업 완료를 용이하게 하도록 구성되는 시스템(400)의 일례를 나타낸다. 시스템(400)은 작업 실행 컴포넌트(408)(예로서, 프로그래밍 모듈, 웹 서비스, 애플리케이션 기능 및/또는 쉐어 참과 같은 운영 체제 사용자 인터페이스)를 포함할 수 있다. 작업 실행 컴포넌트(408)는 소셜 네트워크 애플리케이션(402)과 같은 현재 애플리케이션과 관련될 수 있다. 소셜 네트워크 애플리케이션(402)은 사용자에게 콘텐츠(예로서, 2013년식 스포츠카 모델 (X)에 대한 사용자에 의한 소셜 네트워크 포스트)를 제공할 수 있다. 작업 실행 컴포넌트(408)는 소셜 네트워크 애플리케이션(402)의 콘텐츠 내에 포함된 스포츠카 모델 (X) 엔티티와 같은 엔티티를 식별하도록 구성될 수 있다. 예를 들어, 작업 실행 컴포넌트(408)는 스포츠카 모델 (X) 엔티티를 정의하는 데 사용될 수 있는 엔티티 정의 저장소(412) 내의 자동차 엔티티 정의를 식별하기 위해 소셜 네트워크 애플리케이션(402)의 콘텐츠와 관련된 컨텍스트 정보(406)를 이용할 수 있다. 작업 실행 컴포넌트(408)는 스포츠카 모델 (X) 엔티티에 대해 수행될 수 있는 하나 이상의 액션을 노출시킬 수 있다. 예를 들어, 작업 실행 컴포넌트(408)는 작업 인터페이스(420)를 통해 자동차 견적 액션(422) 및/또는 자동차 빌드 액션(428)을 제공(418)할 수 있다. 일례에서, (개발자에 의해 사전 정의된) 액션이 소셜 네트워크 애플리케이션(402) 내에 삽입될 수 있다. 다른 예에서, 액션 정의 저장소(414) 내의 액션 정의(예로서, 자동차 견적 액션 정의, 자동차 빌드 액션 정의 등)에 기초하여 액션이 동적으로 식별될 수 있다.
작업 실행 컴포넌트(408)는 액션의 선택을 식별하도록 구성될 수 있다. 일례에서, 사용자는 자동차 견적 액션(422)을 선택할 수 있다. 작업 실행 컴포넌트(408)는 엔티티와 관련된 엔티티 컨텍스트 및/또는 액션과 관련된 액션 컨텍스트에 기초하여 작업을 완수하기 위한 사용자 의도(410)를 판단하도록 구성될 수 있다. 예를 들어, 사용자 의도(410)는 엔티티 컨텍스트(예로서, 소셜 네트워크 애플리케이션(402)의 콘텐츠와 관련된 컨텍스트 정보(406)로부터 도출되고/되거나 엔티티 정의 저장소(412)로부터의 자동차 엔티티 정의로부터 도출되었을 수 있는 스포츠카 모델 (X) 엔티티와 관련된 컨텍스트 정보) 및/또는 액션 컨텍스트(예로서, 소셜 네트워크 애플리케이션(402)의 콘텐츠와 관련된 컨텍스트 정보(406)로부터 도출되고/되거나 액션 정의 저장소(414)로부터의 자동차 견적 액션 정의로부터 도출되었을 수 있는 자동차 견적 액션(422)과 관련된 컨텍스트 정보)에 기초하여 사용자가 스포츠카 모델 (X) 엔티티에 대한 자동차 견적을 획득하기를 원한다는 것을 지시할 수 있다. 엔티티에 대해 액션을 수행할 수 있는 자동차 거래자 애플리케이션(424) 및/또는 자동차 중개인 애플리케이션(426)과 같은 하나 이상의 타겟 애플리케이션이 제공될 수 있다(예로서, 소셜 네트워크 애플리케이션(402) 내의 사용자 인터페이스와 같은 작업 인터페이스(420) 또는 운영 체제 사용자 인터페이스와 같은 외부 사용자 인터페이스를 통해 제공(418)될 수 있다). 예를 들어, 자동차 거래자 애플리케이션(424) 및/또는 자동차 중개인 애플리케이션(426)은 그러한 애플리케이션들이 스포츠카 모델 (X) 엔티티 및/또는 자동차 견적 액션(422)을 지원한다는 것을 명시할 수 있는 데이터 계약 저장소(416) 내의 데이터 계약들을 가질 수 있다. 자동차 빌드 액션(428)이 선택되는 다른 예에서, 자동차 제조자 애플리케이션(430)은 스포츠카 모델 (X) 엔티티 및 자동차 빌드 액션(428)이 자동차 제조자 애플리케이션(430)에 의해 지원된다는 것을 지시하는 자동차 제조자 애플리케이션(430)과 작업 실행 컴포넌트(408) 사이의 데이터 계약에 기초하여 작업 인터페이스(420)를 통해 제공될 수 있다. 이러한 방식으로, 사용자는 (예로서, 도 4b에 도시된 바와 같이) 작업 완료를 위해 컨텍스트 관련 상태로 런칭될 수 있는 타겟 애플리케이션을 선택할 수 있다.
도 4b는 애플리케이션간 통신을 통해 작업 완료를 용이하게 하도록 구성되는 시스템(440)의 일례를 나타낸다. 일례에서, 시스템(440)은 도 4a의 시스템(400)에 대응한다는 것을 알 수 있다. 예를 들어, 시스템(440)은 작업 실행 컴포넌트(470)를 포함할 수 있다. 작업 실행 컴포넌트(470)는 소셜 네트워크 애플리케이션(예로서, 도 4a의 402)과 같은 현재 애플리케이션과 관련될 수 있다. 스포츠카 모델 (X) 엔티티와 같은 엔티티가 소셜 네트워크 애플리케이션(예로서, 도 4a의 402)의 콘텐츠 내에 존재하는 것에 기초하여, 스포츠카 모델 (X) 엔티티에 대해 수행될 수 있는 하나 이상의 액션 및/또는 스포츠카 모델 (X) 엔티티에 대해 액션을 수행할 수 있는 하나 이상의 애플리케이션을 포함하는 작업 인터페이스(예로서, 도 4a의 420)가 제공되었을 수 있다.
작업 실행 컴포넌트(470)는 스포츠카 모델 (X) 엔티티에 대한 자동차 견적 액션(예로서, 도 4a의 422)과 관련된 자동차 중개인 애플리케이션(426)과 같은 애플리케이션의 선택(442)을 수신하도록 구성될 수 있다(예를 들어, 사용자는 도 4a의 작업 인터페이스(420) 내의 자동차 중개인 애플리케이션(426)을 선택했을 수 있다). 작업 실행 컴포넌트(470)는 소셜 네트워크 애플리케이션(예로서, 도 4a의 402)으로부터의 그리고/또는 자동차 견적 액션(예로서, 도 4a의 422)을 수행하는 데 사용되는 정보에 대응하는 하나 이상의 액션 파라미터를 포함하는 자동차 견적 액션 정의로부터의 컨텍스트 정보(예로서, 도 4a의 406)에 기초하여 자동차 견적 액션 컨텍스트(444)를 식별할 수 있다. 자동차 견적 액션 콘텐츠(444)는 자동차 모델, 모델 연식, 위치, 거래 정보, 자동차 옵션 등과 같이 자동차 견적 액션을 수행하는 데 사용되는 정보를 포함할 수 있다. 작업 실행 컴포넌트(470)는 소셜 네트워크 애플리케이션(예로서, 도 4a의 402)으로부터의 그리고/또는 스포츠카 모델 (X) 엔티티를 설명하는 정보에 대응하는 하나 이상의 엔티티 파라미터를 포함하는 자동차 엔티티 정의로부터의 컨텍스트 정보(예로서, 도 4a의 406)에 기초하여 스포츠카 모델 (X) 엔티티를 정의하는 자동차 엔티티 컨텍스트(446)를 식별할 수 있다.
작업 실행 컴포넌트(470)는 (예로서, 운영 체제 통신 모델을 이용하여) 자동차 견적 액션 컨텍스트(444) 및/또는 자동차 엔티티 컨텍스트(446)를 자동차 중개인 애플리케이션(426)으로 전송(448)할 수 있으며, 따라서 자동차 중개인 애플리케이션(426)은 자동차 견적 액션 컨텍스트(444) 및/또는 자동차 엔티티 컨텍스트(446)에 따라 런칭될 수 있다. 예를 들어, 자동차 중개인 애플리케이션(426)은 자동차 견적 액션 컨텍스트(444) 및/또는 자동차 모델(452)인 스포츠카 모델 (X), 모델 연식(454)인 2013 및/또는 위치(456)인 현재 사용자 위치와 같은 자동차 엔티티 컨텍스트(446)로부터의 적어도 일부 정보로 채워질 수 있는 자동차 견적 형태로 개방될 수 있다(예로서, 사용자 장치의 현재 (예로서, GPS) 위치와 같이 자동차 중개인 애플리케이션을 호스트하는 사용자 장치와 관련된 보조 데이터가 자동차 견적 형태를 채우기 위한 값으로 사용될 수 있다). 일례에서, 자동차 중개인 애플리케이션(426)은 집중 보기 상태(예로서, 풀 스크린 등)로 런칭될 수 있다. 다른 예에서, 자동차 중개인 애플리케이션(426)은 현재 애플리케이션과 나란히 표시되는 오버레이 인터페이스(예로서, 쉐어 참과 같은 운영 체제 사용자 인터페이스) 내에 런칭될 수 있다. 이러한 방식으로, 사용자는 예를 들어 적절한 기능에 대한 과도한 검색 및/또는 중복 정보의 수동 입력 없이 스포츠카 모델 (X)에 대한 자동차 견적을 효율적으로 획득할 수 있다.
일례에서, 시스템(440)은 분석 컴포넌트(458)를 포함할 수 있다. 분석 컴포넌트(458)는 엔티티 액션 로그(460)를 유지하도록 구성될 수 있다. 분석 컴포넌트(458)는 자동차 중개인 애플리케이션(426)의 런칭에 기초하여 엔티티 액션 로그(460) 내의 엔트리를 생성할 수 있다. 예를 들어, 엔트리는 작업을 완료하기 위해 타겟 애플리케이션에 의해 엔티티에 대해 액션이 수행되었다(예를 들어, 자동차 중개인 애플리케이션(426)이 스포츠카 모델 (X) 엔티티에 대해 자동차 견적 액션을 수행하였다)는 것을 명시할 수 있다. 엔티티 액션 로그(460)는 액션이 선택된 횟수, 액션을 수행하기 위해 애플리케이션이 런칭된 횟수 등과 같은 다양한 정보 및/또는 규준을 포함할 수 있다. 엔티티 액션 로그(460)는 제삼자 애플리케이션(예로서, 제삼자 애플리케이션의 개발자)에 노출될 수 있으며, 제삼자 애플리케이션은 제삼자 애플리케이션이 컨텍스트 인식 작업 완료를 위한 타겟 애플리케이션으로서 사용되는 것을 가능하게 할 수 있는 데이터 계약을 생성하기 위해 작업 실행 컴포넌트(470)에 등록될 수 있다.
컨텍스트 인식 작업 실행을 위한 타겟 애플리케이션을 등록하는 실시예가 도 5에 예시적인 방법(500)에 의해 도시된다. 502에서, 방법이 시작된다. 504에서, 타겟 애플리케이션과의 데이터 계약(예로서, 타겟 애플리케이션과, 작업 완료를 용이하게 하기 위해 컨텍스트 관련 상태로 타겟 애플리케이션을 런칭하도록 구성되는 작업 실행 컴포넌트 사이의 데이터 계약)을 설정하기 위한 등록 요청이 수신될 수 있다. 등록 요청은 타겟 애플리케이션에 의해 지원되는 엔티티 및/또는 액션(예로서, 식사 애플리케이션에 의해 엔티티에 대해 수행될 수 있는 액션)을 포함할 수 있다. 506에서, 타겟 애플리케이션과의 데이터 계약이 생성된다. 데이터 계약은 타겟 애플리케이션이 엔티티에 대해 액션을 수행할 수 있다는 것을 명시할 수 있다.
508에서, 엔티티에 대한 엔티티 정의가 유지될 수 있다. 엔티티 정의는 엔티티를 정의하는 하나 이상의 엔티티 파라미터를 포함할 수 있다(예로서, 식당 엔티티 정의는 식당 이름 파라미터, 위치 파라미터, 가격 등급 파라미터 등을 포함할 수 있다). 예를 들어, 엔티티 파라미터는 액션이 엔티티에 대해 수행될 수 있다(예를 들어, 테이블 예약 액션이 식당 엔티티에 대해 수행될 수 있다)는 것을 명시할 수 있다. 510에서, 액션에 대한 액션 정의가 유지될 수 있다. 액션 정의는 액션을 정의하는 하나 이상의 액션 파라미터를 포함할 수 있다. 예를 들어, 액션 파라미터는 액션을 수행하는 데 사용되는 정보(예로서, 테이블 예약 액션을 위한 식당 위치)를 명시할 수 있다. 이러한 방식으로, 데이터 계약, 엔티티 정의 및/또는 액션 정의는 엔티티, 엔티티에 대해 수행될 수 있는 액션 및/또는 엔티티에 대해 액션을 수행할 수 있는 타겟 애플리케이션을 식별하는 데 사용될 수 있다.
일례에서, 식당 엔티티와 같은 엔티티는 맵핑 애플리케이션과 같은 현재 애플리케이션의 콘텐츠 내에서 식별될 수 있다. 엔티티 정의 내의 적어도 하나의 엔티티 파라미터에 대한 값들은 엔티티 컨텍스트를 생성하기 위하여 현재 애플리케이션으로부터 도출되는 엔티티의 컨텍스트 정보에 기초하여 명시될 수 있다. 예를 들어, (예로서, 맵핑 애플리케이션의 콘텐츠로부터 추출되는) 멕시칸 칸티나는 식당 엔티티 정의 내의 식당 이름 엔티티 파라미터에 대한 값으로서 명시될 수 있다. 엔티티에 대해 수행될 수 있는 테이블 예약 액션과 같은 액션이 노출될 수 있다. 액션의 선택에 응답하여, 액션 정의 내의 적어도 하나의 액션 파라미터에 대한 값들이 액션 컨텍스트를 생성하기 위해 현재 애플리케이션으로부터 도출되는 컨텍스트 정보에 기초하여 명시될 수 있다. 예를 들어, (예로서, 맵핑 애플리케이션 내에 표시된 현재 위치로부터 도출되는) 다운타운이 테이블 예약 액션 정의 내의 위치 액션 파라미터에 대한 값으로서 명시될 수 있다. 엔티티에 대해 액션을 수행할 수 있는 식사 애플리케이션과 같은 타겟 애플리케이션이 제공될 수 있다. 타겟 애플리케이션의 선택에 응답하여, 엔티티 컨텍스트 및/또는 액션 컨텍스트가 타겟 애플리케이션으로 전송될 수 있으며, 따라서 타겟 애플리케이션은 작업을 완료하기 위해 엔티티 컨텍스트 및/또는 액션 컨텍스트에 따라 런칭될 수 있다(예로서, 식사 애플리케이션은 컨텍스트 관련 예약 형태로 런칭될 수 있다). 512에서, 방법이 종료된다. 개시되는 발명에 대한 변형들이 구상된다는 것을 이해할 것이다. 예를 들어, 도 5의 508 및/또는 510은 일부 실시예들에서 옵션일 수 있다.
또 다른 실시예는 본 명세서에서 제공되는 기술들 중 하나 이상을 구현하도록 구성되는 프로세서 실행 가능 명령어들을 포함하는 컴퓨터 판독 가능 매체를 포함한다. 이러한 방식들로 창안될 수 있는 예시적인 컴퓨터 판독 가능 매체가 도 6에 도시되며, 구현(600)은 컴퓨터 판독 가능 데이터(614)가 인코딩되는 컴퓨터 판독 가능 매체(616)(예로서, CD-R, DVD-R, 또는 하드 디스크 드라이브의 플래터(platter))를 포함한다. 게다가, 이러한 컴퓨터 판독 가능 데이터(614)는 본 명세서에서 설명되는 원리들 중 하나 이상에 따라 동작하도록 구성되는 컴퓨터 명령어들(612)의 세트를 포함한다. 하나의 그러한 실시예(600)에서, 프로세서 실행 가능 컴퓨터 명령어들(612)은 예를 들어 도 1의 예시적인 방법(100)의 적어도 일부 및/또는 도 5의 예시적인 방법(500)의 적어도 일부와 같은 방법(610)을 수행하도록 구성될 수 있다. 다른 그러한 실시예에서, 프로세서 실행 가능 명령어들(612)은 예를 들어 도 2의 예시적인 시스템(200)의 적어도 일부, 도 3a의 예시적인 시스템(300)의 적어도 일부, 도 3b의 예시적인 시스템(340)의 적어도 일부, 도 4a의 예시적인 시스템(400)의 적어도 일부 및/또는 도 4b의 예시적인 시스템(440)의 적어도 일부와 같은 시스템을 구현하도록 구성될 수 있다. 본 명세서에서 제공되는 기술들에 따라 동작하도록 구성되는 많은 그러한 컴퓨터 판독 가능 매체가 이 분야의 통상의 기술자들에 의해 창안될 수 있다.
본 발명은 구조적 특징들 및/또는 방법 단계들에 고유한 언어로 설명되었지만, 첨부된 청구항들에서 정의되는 발명은 전술한 특정 특징들 또는 단계들로 반드시 한정되지는 않는다는 것을 이해해야 한다. 오히려, 전술한 특정 특징들 및 단계들은 청구항들을 구현하는 예시적인 형태들로서 개시된다.
본원에서 사용되는 바와 같이, 용어 "컴포넌트", "모듈", "시스템", "인터페이스" 등은 일반적으로 컴퓨터 관련 엔티티, 즉, 하드웨어, 하드웨어와 소프트웨어의 조합, 소프트웨어 또는 실행중인 소프트웨어를 지칭하는 것을 의도한다. 예를 들어, 컴포넌트는 프로세서 상에서 실행되는 프로세스, 프로세서, 객체, 실행 파일, 실행 스레드, 프로그램 및/또는 컴퓨터일 수 있지만, 그에 한정되지 않는다. 예를 들어, 제어기 상에서 실행되는 애플리케이션 및 제어기 양자는 컴포넌트일 수 있다. 하나 이상의 컴포넌트가 프로세스 및/또는 실행 스레드 내에 상주할 수 있으며, 하나의 컴포넌트가 하나의 컴퓨터 상에 국지화되고/되거나 둘 이상의 컴퓨터 사이에 분산될 수 있다.
더구나, 청구 발명은 개시되는 발명을 구현하도록 컴퓨터를 제어하기 위한 소프트웨어, 펌웨어, 하드웨어 또는 이들의 임의 조합을 생성하기 위해 표준 프로그래밍 및/또는 엔지니어링 기술들을 이용하는 방법, 장치 또는 제조물로서 구현될 수 있다. 본 명세서에서 사용되는 바와 같은 용어 "제조물"은 임의의 컴퓨터 판독 가능 장치, 반송파 또는 매체로부터 액세스 가능한 컴퓨터 프로그램을 포함하는 것을 의도한다. 물론, 이 분야의 기술자들은 청구 발명의 범위 또는 사상으로부터 벗어나지 않고서 이러한 구성에 대해 많은 변경이 이루어질 수 있다는 것을 인식할 것이다.
도 7 및 아래의 설명은 본 명세서에서 설명되는 항목들 중 하나 이상의 항목의 실시예들을 구현하기 위한 적절한 컴퓨팅 환경의 간단한 일반 설명을 제공한다. 도 7의 동작 환경은 적절한 동작 환경의 일례일 뿐이며, 동작 환경의 이용 또는 기능의 범위에 관한 임의의 제한을 암시하는 것을 의도하지 않는다. 예시적인 컴퓨팅 장치들은 개인용 컴퓨터, 서버 컴퓨터, 핸드헬드 또는 랩탑 장치, (이동 전화, 개인 휴대 단말기(PDA), 미디어 플레이어 등과 같은) 이동 장치, 멀티프로세서 시스템, 소비자 전자 장치, 미니 컴퓨터, 메인프레임 컴퓨터, 위의 시스템들 또는 장치들 중 임의의 것을 포함하는 분산 컴퓨팅 환경 등을 포함하지만 이에 한정되지 않는다.
요구되지는 않지만, 실시예들은 "컴퓨터 판독 가능 명령어들"이 하나 이상의 컴퓨팅 장치에 의해 실행되는 일반적인 문맥에서 설명된다. 컴퓨터 판독 가능 명령어들은 (후술하는) 컴퓨터 판독 가능 매체들을 통해 배포될 수 있다. 컴퓨터 판독 가능 명령어들은 특정 작업들을 수행하거나 특정 추상 데이터 타입들을 구현하는 함수, 객체, 애플리케이션 프로그래밍 인터페이스(API), 데이터 구조 등과 같은 프로그램 모듈들로서 구현될 수 있다. 통상적으로, 컴퓨터 판독 가능 명령어들의 기능은 다양한 환경들에서 필요에 따라 결합 또는 분산될 수 있다.
도 7은 본 명세서에서 제공되는 하나 이상의 실시예를 구현하도록 구성되는 컴퓨팅 장치(712)를 포함하는 시스템(710)의 일례를 나타낸다. 일 구성에서, 컴퓨팅 장치(712)는 적어도 하나의 처리 유닛(716) 및 메모리(718)를 포함한다. 컴퓨팅 장치의 정확한 구성 및 타입에 따라, 메모리(718)는 (예를 들어, RAM과 같은) 휘발성, (예를 들어, ROM, 플래시 메모리 등과 같은) 비휘발성 또는 이 둘의 소정 조합일 수 있다. 이러한 구성은 도 7에 점선(714)에 의해 도시된다.
다른 실시예들에서, 장치(712)는 추가적인 특징들 및/또는 기능을 포함할 수 있다. 예를 들어, 장치(712)는 자기 저장 장치, 광학 저장 장치 등을 포함하지만 이에 한정되지 않는 (예로서, 이동식 및/또는 비이동식) 추가적인 저장 장치도 포함할 수 있다. 그러한 추가적인 저장 장치는 도 7에 저장 장치(720)에 의해 도시된다. 일 실시예에서, 본 명세서에서 제공되는 하나 이상의 실시예를 구현하기 위한 컴퓨터 판독 가능 명령어들은 저장 장치(720) 내에 존재할 수 있다. 저장 장치(720)는 운영 체제, 애플리케이션 프로그램 등을 구현하기 위한 다른 컴퓨터 판독 가능 명령어들도 저장할 수 있다. 컴퓨터 판독 가능 명령어들은 예를 들어 처리 유닛(716)에 의한 실행을 위해 메모리(718) 내에 로딩될 수 있다.
본 명세서에서 사용되는 바와 같은 용어 "컴퓨터 판독 가능 매체"는 컴퓨터 저장 매체를 포함한다. 컴퓨터 저장 매체는 컴퓨터 판독 가능 명령어들 또는 다른 데이터와 같은 정보의 저장을 위한 임의의 방법 또는 기술로 구현되는 휘발성 및 비휘발성, 이동식 및 비이동식 매체를 포함한다. 메모리(718) 및 저장 장치(720)는 컴퓨터 저장 매체의 예들이다. 컴퓨터 저장 매체는 RAM, ROM, EEPROM, 플래시 메모리 또는 다른 메모리 기술, CD-ROM, 디지털 다기능 디스크(DVD) 또는 광학 저장 장치, 자기 카세트, 자기 테이프, 자기 디스크 저장 장치 또는 다른 자기 저장 장치, 또는 원하는 정보를 저장하는 데 사용될 수 있고 장치(712)에 의해 액세스될 수 있는 임의의 다른 매체를 포함하지만 이에 한정되지 않는다. 임의의 그러한 컴퓨터 저장 매체는 장치(712)의 일부일 수 있다.
장치(712)는 장치(712)가 다른 장치들과 통신하는 것을 가능하게 하는 통신 접속(들)(726)도 포함할 수 있다. 통신 접속(들)(726)은 모뎀, 네트워크 인터페이스 카드(NIC), 통합 네트워크 인터페이스, 무선 주파수 송신기/수신기, 적외선 포트, USB 접속 또는 컴퓨팅 장치(712)를 다른 컴퓨팅 장치들에 접속하기 위한 다른 인터페이스들을 포함할 수 있지만, 이에 한정되지 않는다. 통신 접속(들)(726)은 유선 접속 또는 무선 접속을 포함할 수 있다. 통신 접속(들)(726)은 통신 매체를 송신 및/또는 수신할 수 있다.
용어 "컴퓨터 판독 가능 매체"는 통신 매체를 포함할 수 있다. 통신 매체는 통상적으로 반송파 또는 다른 전송 메커니즘과 같은 "피변조 데이터 신호" 내에 컴퓨터 판독 가능 명령어들 또는 다른 데이터를 구현하며, 임의의 정보 전달 매체를 포함한다. 용어 "피변조 데이터 신호"는 신호 내에 정보를 인코딩하는 방식으로 신호의 특성들 중 하나 이상이 설정 또는 변경된 신호를 포함할 수 있다.
장치(712)는 키보드, 마우스, 펜, 음성 입력 장치, 터치 입력 장치, 적외선 카메라, 비디오 입력 장치 및/또는 임의의 다른 입력 장치와 같은 입력 장치(들)(724)를 포함할 수 있다. 하나 이상의 디스플레이, 스피커, 프린터 및/또는 임의의 다른 출력 장치와 같은 출력 장치(들)(722)도 장치(712) 내에 포함될 수 있다. 입력 장치(들)(724) 및 출력 장치(들)(722)는 유선 접속, 무선 접속 또는 이들의 임의 조합을 통해 장치(712)에 접속될 수 있다. 일 실시예에서, 다른 컴퓨팅 장치로부터의 입력 장치 또는 출력 장치가 컴퓨팅 장치(712)에 대한 입력 장치(들)(724) 또는 출력 장치(들)(722)로서 사용될 수 있다.
컴퓨팅 장치(712)의 컴포넌트들은 버스와 같은 다양한 상호접속들에 의해 접속될 수 있다. 그러한 상호접속들은 주변 컴포넌트 상호접속(PCI), 예로서 PCI 익스프레스, 유니버설 직렬 버스(USB), 파이어와이어(IEEE 1394), 광학 버스 구조 등을 포함할 수 있다. 다른 실시예에서, 컴퓨팅 장치(712)의 컴포넌트들은 네트워크에 의해 상호접속될 수 있다. 예를 들어, 메모리(718)는 네트워크에 의해 상호접속된 상이한 물리 위치들 내에 위치하는 다수의 물리 메모리 유닛을 포함할 수 있다.
이 분야의 기술자들은 컴퓨터 판독 가능 명령어들을 저장하는 데 사용되는 저장 장치들이 네트워크를 통해 분산될 수 있다는 것을 인식할 것이다. 예를 들어, 네트워크(728)를 통해 액세스 가능한 컴퓨팅 장치(730)가 본 명세서에서 제공되는 하나 이상의 실시예를 구현하기 위한 컴퓨터 판독 가능 명령어들을 저장할 수 있다. 컴퓨팅 장치(712)는 컴퓨팅 장치(730)에 액세스하여, 실행을 위해 컴퓨터 판독 가능 명령어들의 일부 또는 전부를 다운로드할 수 있다. 대안으로서, 컴퓨팅 장치(712)는 필요에 따라 컴퓨터 판독 가능 명령어들을 다운로드할 수 있거나, 일부 명령어들은 컴퓨팅 장치(712)에서, 일부는 컴퓨팅 장치(730)에서 실행될 수 있다.
본 명세서에서는 실시예들의 다양한 동작들이 제공된다. 일 실시예에서, 설명되는 동작들 중 하나 이상은 컴퓨팅 장치에 의해 실행되는 경우에 컴퓨팅 장치로 하여금 설명되는 동작들을 수행하게 하는, 하나 이상의 컴퓨터 판독 가능 매체 상에 저장되는 컴퓨터 판독 가능 명령어들을 구성할 수 있다. 동작들의 일부 또는 전부가 설명되는 순서는 이러한 동작들이 반드시 순서에 의존한다는 것을 의미하는 것으로 해석되지 않아야 한다. 본 설명의 이익을 갖는 이 분야의 기술자는 대안 순서를 인식할 것이다. 또한, 모든 동작들이 본 명세서에서 설명되는 각각의 실시예 내에 반드시 존재하지는 않는다는 것을 이해할 것이다.
더욱이, 본 명세서에서 용어 "예시적인"은 실례, 사례 또는 예시로서의 사용을 의미하는 데 사용된다. 본 명세서에서 "예시적인" 것으로서 설명되는 임의의 양태 또는 설계는 다른 양태들 또는 설계들보다 유리한 것으로서 반드시 해석되지는 않아야 한다. 오히려, 예시적인이라는 용어의 사용은 개념들을 구체적인 방식으로 설명하는 것을 의도한다. 본원에서 사용되는 바와 같이, 용어 "또는"은 배타적인 "또는"이 아니라 포함의 "또는"을 의미하는 것을 의도한다. 즉, 달리 명시되거나 문맥상 명확하지 않는 한, "X가 A 또는 B를 이용한다"는 임의의 자연적인 포함적 순열들을 의미하는 것을 의도한다. 즉, X가 A를 이용하거나, X가 B를 이용하거나, X가 A 및 B 양자를 이용하는 경우, "X가 A 또는 B를 이용한다"가 임의의 위의 예에서 충족된다. 게다가, 본원 및 첨부된 청구항들에서 사용되는 바와 같은 단수형 용어는 단수 형태와 관련되는 것으로 달리 명시되거나 문맥으로부터 명백하지 않는 한은 일반적으로 "하나 이상"을 의미하는 것으로 해석될 수 있다. 또한, A 및 B 중 적어도 하나 등은 일반적으로 A 또는 B 또는 A 및 B 양자를 의미한다.
또한, 본 개시 내용은 하나 이상의 구현과 관련하여 도시되고 설명되었지만, 이 분야의 다른 기술자들에게는 본 명세서 및 첨부 도면들의 검토 및 이해에 기초하여 균등한 변경들 및 수정들이 떠오를 것이다. 본 개시 내용은 모든 그러한 수정들 및 변경들을 포함하며, 아래의 청구항들의 범위에 의해서만 한정된다. 전술한 컴포넌트들(예로서, 요소들, 자원들 등)에 의해 수행되는 다양한 기능들과 특히 관련하여, 그러한 컴포넌트들을 설명하는 데 사용되는 용어들은 달리 지시되지 않는 한은 본 명세서에서 설명되는 본 개시 내용의 예시적인 구현들에서 기능을 수행하는 개시되는 구조와 구조적으로 균등하지는 않더라도 (예로서, 기능적으로 균등한) 설명되는 컴포넌트의 명시된 기능을 수행하는 임의의 컴포넌트에 대응하는 것을 의도한다. 게다가, 본 개시 내용의 특정 특징이 여러 구현 중 하나의 구현에만 관련하여 개시되었을 수 있지만, 그러한 특징은 임의의 주어진 또는 특정 응용을 위해 바람직하거나 유리할 수 있는 바와 같이 다른 구현들의 하나 이상의 다른 특징과 결합될 수 있다. 더구나, 용어 "포함한다", "구비하는", "갖는다", "함께" 또는 이들의 변형들이 상세한 설명 또는 청구항들에서 사용되는 한도에서, 그러한 용어들은 용어 "포함하는"과 유사한 방식으로 포괄적인 것을 의도한다.

Claims (20)

  1. 애플리케이션간 통신을 통해 작업 완료(task completion)를 용이하게 하기 위한 시스템으로서,
    적어도 하나의 처리 유닛과,
    명령어를 포함하는 적어도 하나의 메모리를 포함하되,
    상기 명령어는 상기 적어도 하나의 처리 유닛에 의해 실행될 때 상기 시스템으로 하여금,
    제 1 애플리케이션의 콘텐츠를 파싱하여 엔티티를 식별 - 상기 엔티티는 비즈니스 이름 및 비즈니스 위치와 관련되고, 상기 엔티티는 제 1 비즈니스 엔티티 또는 제 2 비즈니스 엔티티임 - 하게 하고,
    상기 엔티티와 관련된 액션을 판단 - 상기 액션은 상기 엔티티가 상기 제 1 비즈니스 엔티티인지 또는 상기 제 2 비즈니스 엔티티인지 여부에 기초하여 상이함 - 하게 하고,
    상기 엔티티와 관련된 상기 액션을 수행할 수 있는 하나 이상의 타겟 애플리케이션을 표시되게 하고,
    상기 하나 이상의 타겟 애플리케이션 중 타겟 애플리케이션의 선택을 수신하는 것에 응답하여, 엔티티 컨텍스트 정보 및 액션 컨텍스트 정보를 상기 제 1 애플리케이션으로부터 상기 액션을 수행하기 위한 상기 선택된 타겟 애플리케이션으로 전송하게 하는
    시스템.
  2. 제1항에 있어서,
    상기 명령어는 실행될 때 또한 상기 시스템으로 하여금,
    상기 엔티티와 관련된 상기 엔티티 컨텍스트 정보 및 상기 액션과 관련된 상기 액션 컨텍스트 정보에 기초하여 작업을 완수하기 위한 사용자 의도를 판단하게 하는
    시스템.
  3. 제1항에 있어서,
    상기 액션은 상기 제 1 애플리케이션 내에 삽입되는
    시스템.
  4. 제1항에 있어서,
    상기 명령어는 실행될 때 또한 상기 시스템으로 하여금,
    상기 엔티티에 기초하여 상기 액션을 동적으로 결정하고,
    상기 액션의 표시를 하게 하는
    시스템.
  5. 제1항에 있어서,
    상기 제 1 애플리케이션 및 상기 선택된 타겟 애플리케이션 중 적어도 하나는 웹 브라우저, 다운로드가능한 마켓플레이스 애플리케이션, 클라우드 애플리케이션 및 로컬로 설치된 애플리케이션 중 적어도 하나를 포함하는
    시스템.
  6. 제1항에 있어서,
    상기 명령어는 실행될 때 또한 상기 시스템으로 하여금,
    상기 하나 이상의 타겟 애플리케이션이 상기 액션 및 상기 엔티티를 지원한다는 것을 명시하는 데이터 계약에 기초하여 상기 하나 이상의 타겟 애플리케이션이 상기 액션을 수행할 수 있음을 판단하게 하는
    시스템.
  7. 제1항에 있어서,
    상기 명령어는 실행될 때 또한 상기 시스템으로 하여금,
    상기 선택된 타겟 애플리케이션이 상기 제 1 애플리케이션과 나란히 표시되는 오버레이 인터페이스 내에서 런칭하게 하는
    시스템.
  8. 제1항에 있어서,
    상기 명령어는 실행될 때 또한 상기 시스템으로 하여금,
    상기 엔티티 컨텍스트 정보 및 상기 액션 컨텍스트 정보를 상기 선택된 타겟 애플리케이션으로 전송하기 위해 운영 체제 통신 모델을 이용하게 하는
    시스템.
  9. 제1항에 있어서,
    상기 명령어는 실행될 때 또한 상기 시스템으로 하여금,
    상기 액션이 상기 선택된 타겟 애플리케이션에 의해 상기 엔티티에 수행되었음을 명시하는 엔트리를 엔티티 액션 로그 내에 생성하게 하고,
    상기 엔티티 액션 로그를 제 3자 애플리케이션에 노출하게 하는
    시스템.
  10. 제1항에 있어서,
    상기 명령어는 실행될 때 또한 상기 시스템으로 하여금,
    제 3자 애플리케이션이 상기 엔티티에 대한 상기 액션의 수행을 지원한다는 것을 명시하는 데이터 계약을 생성하게 하는
    시스템.
  11. 제1항에 있어서,
    상기 명령어는 실행될 때 또한 상기 시스템으로 하여금,
    상기 선택된 타겟 애플리케이션과 관련된 백 명령 (back command)을 수신하게 하고,
    상기 선택된 타겟 애플리케이션의 표시를 상기 하나 이상의 타겟 애플리케이션을 포함하는 작업 인터페이스 및 상기 제 1 애플리케이션 중 적어도 하나로 전이시키는
    시스템.
  12. 제1항에 있어서,
    상기 선택된 타겟 애플리케이션은 두 개의 데이터 계약과 관련되고, 상기 두 개의 데이터 계약은 상기 액션에 대한 지원을 명시하는 제 1 데이터 계약 및 상기 엔티티에 대한 지원을 명시하는 제 2 데이터 계약을 포함하는
    시스템.
  13. 제1항에 있어서,
    상기 명령어는 실행될 때 또한 상기 시스템으로 하여금,
    상기 엔티티 컨텍스트 정보를 생성하기 위해 사용되는 상기 엔티티에 대한 엔티티 정의를 생성 - 상기 엔티티 정의는 상기 엔티티를 정의하는 하나 이상의 엔티티 파라미터를 포함하고, 적어도 하나의 엔티티 파라미터는 상기 액션이 상기 엔티티에 수행될 수 있다는 것을 명시함 - 하게 하고,
    상기 액션 컨텍스트 정보를 생성하기 위해 사용되는 상기 액션에 대한 액션 정의를 생성 - 상기 액션 정의는 상기 액션을 정의하는 하나 이상의 액션 파라미터를 포함하고, 적어도 하나의 액션 파라미터는 상기 액션을 수행하기 위해 사용되는 정보를 명시함 - 하게 하는
    시스템.
  14. 애플리케이션간 통신을 통해 작업 완료를 용이하게 하기 위한 방법으로서,
    제 1 애플리케이션의 콘텐츠를 파싱하여 엔티티를 식별하는 - 상기 엔티티는 비즈니스 이름 및 비즈니스 위치와 관련되고, 상기 엔티티는 제 1 비즈니스 엔티티 또는 제 2 비즈니스 엔티티임 - 단계와,
    상기 엔티티와 관련된 액션을 판단하는 - 상기 액션은 상기 엔티티가 상기 제 1 비즈니스 엔티티인지 또는 상기 제 2 비즈니스 엔티티인지 여부에 기초하여 상이함 - 단계와,
    상기 엔티티와 관련된 상기 액션을 수행할 수 있는 하나 이상의 타겟 애플리케이션이 표시되게 하는 단계와,
    상기 하나 이상의 타겟 애플리케이션 중 타겟 애플리케이션의 선택을 수신하는 것에 응답하여, 엔티티 컨텍스트 정보 및 액션 컨텍스트 정보를 상기 제 1 애플리케이션으로부터 상기 선택된 타겟 애플리케이션으로 전송하는 단계를 포함하는
    방법.
  15. 제14항에 있어서,
    상기 선택된 타겟 애플리케이션이 상기 액션 및 상기 엔티티를 지원한다는 것을 명시하는 상기 선택된 타겟 애플리케이션과의 데이터 계약에 기초하여 상기 선택된 타겟 애플리케이션이 상기 엔티티에 상기 액션을 수행할 수 있음을 판단하는 단계를 더 포함하는
    방법.
  16. 제14항에 있어서,
    상기 하나 이상의 타겟 애플리케이션이 선택되는 회수를 포함하는 분석 데이터를 포함하는 규준 로그 (metrics log)를 유지하는 단계를 더 포함하는
    방법.
  17. 제14항에 있어서,
    상기 엔티티 컨텍스트 정보 및 상기 액션 컨텍스트 정보를 상기 선택된 타겟 애플리케이션으로 전송하기 위해 운영 체제 통신 모델을 이용하는 단계를 더 포함하는
    방법.
  18. 제14항에 있어서,
    상기 선택된 타겟 애플리케이션이 상기 엔티티에 상기 액션을 수행하는 것에 응답하여, 상기 액션이 상기 선택된 타겟 애플리케이션에 의해 상기 엔티티에 수행되었음을 명시하는 엔트리를 엔티티 액션 로그 내에 생성하는 단계를 더 포함하는
    방법.
  19. 컨텍스트 인식 작업 실행을 위한 타겟 애플리케이션을 등록하는 방법으로서,
    타겟 애플리케이션과 데이터 계약을 수립하기 위한 등록 요청을 수신하는 - 상기 등록 요청은 상기 타겟 애플리케이션에 의해 지원되는 엔티티 및 액션을 포함함 - 단계와,
    상기 타겟 애플리케이션과의 상기 데이터 계약을 생성하는 - 상기 데이터 계약은 상기 타겟 애플리케이션이 상기 엔티티에 상기 액션을 수행할 수 있다는 것을 명시함 - 단계와,
    상기 엔티티에 대한 엔티티 정의를 유지하는 - 상기 엔티티는 제 1 비즈니스 엔티티 또는 제 2 비즈니스 엔티티이고, 상기 엔티티 정의는 상기 엔티티를 정의하는 복수의 엔티티 파라미터를 포함하며, 상기 복수의 엔티티 파라미터는 비즈니스 이름, 비즈니스 위치 및 상기 엔티티에 수행될 수 있는 상기 액션을 포함함 - 단계와,
    상기 액션에 대한 액션 정의를 유지하는 - 상기 액션은 상기 엔티티가 상기 제 1 비즈니스 엔티티인지 또는 상기 제 2 비즈니스 엔티티인지 여부에 기초하여 상이하고, 상기 액션 정의는 상기 액션을 정의하는 하나 이상의 액션 파라미터를 포함하며, 적어도 하나의 액션 파라미터는 상기 액션을 수행하기 위한 정보를 명시함 - 단계와,
    상기 엔티티와 관련된 상기 액션을 수행할 수 있는 하나 이상의 타겟 애플리케이션이 표시되게 하는 단계와,
    상기 하나 이상의 타겟 애플리케이션 중 타겟 애플리케이션의 선택을 수신하는 것에 응답하여, 상기 선택된 타겟 애플리케이션 내에서 채워진 액션 아이템 (populated action item)의 표시를 하게 하는 - 상기 채워진 액션 아이템은 상기 엔티티 정의에 대응하는 엔티티 컨텍스트 정보로 채워짐- 단계를 포함하는
    방법.
  20. 제19항에 있어서,
    상기 선택된 타겟 애플리케이션이 상기 엔티티 컨텍스트 정보 및 액션 컨텍스트에 따라 런칭되도록 상기 엔티티 컨텍스트 정보 및 상기 액션 컨텍스트를 상기 선택된 타겟 애플리케이션에 전송하는 단계를 더 포함하는
    방법.
KR1020207023304A 2012-12-13 2013-12-13 애플리케이션간 통신을 통한 작업 완료 기법 KR102251597B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/713,375 2012-12-13
US13/713,375 US10528385B2 (en) 2012-12-13 2012-12-13 Task completion through inter-application communication
PCT/US2013/075182 WO2014093929A1 (en) 2012-12-13 2013-12-13 Task completion through inter-application communication

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
KR1020157015552A Division KR102146592B1 (ko) 2012-12-13 2013-12-13 애플리케이션간 통신을 통한 작업 완료 기법

Publications (2)

Publication Number Publication Date
KR20200099619A true KR20200099619A (ko) 2020-08-24
KR102251597B1 KR102251597B1 (ko) 2021-05-12

Family

ID=49956361

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020157015552A KR102146592B1 (ko) 2012-12-13 2013-12-13 애플리케이션간 통신을 통한 작업 완료 기법
KR1020207023304A KR102251597B1 (ko) 2012-12-13 2013-12-13 애플리케이션간 통신을 통한 작업 완료 기법

Family Applications Before (1)

Application Number Title Priority Date Filing Date
KR1020157015552A KR102146592B1 (ko) 2012-12-13 2013-12-13 애플리케이션간 통신을 통한 작업 완료 기법

Country Status (7)

Country Link
US (3) US10528385B2 (ko)
EP (1) EP2932385A1 (ko)
JP (1) JP6263199B2 (ko)
KR (2) KR102146592B1 (ko)
CN (2) CN104919424B (ko)
HK (1) HK1215081A1 (ko)
WO (1) WO2014093929A1 (ko)

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9313162B2 (en) 2012-12-13 2016-04-12 Microsoft Technology Licensing, Llc Task completion in email using third party app
US10013496B2 (en) * 2014-06-24 2018-07-03 Google Llc Indexing actions for resources
US10511501B2 (en) * 2014-11-06 2019-12-17 Shimadzu Corporation Analyzing device system and program for the system
US10192549B2 (en) 2014-11-28 2019-01-29 Microsoft Technology Licensing, Llc Extending digital personal assistant action providers
US10762143B2 (en) * 2015-02-13 2020-09-01 Microsoft Technology Licensing, Llc Extension of third party application functionality for intent determination
US10078482B2 (en) * 2015-11-25 2018-09-18 Samsung Electronics Co., Ltd. Managing display of information on multiple devices based on context for a user task
ITUB20159753A1 (it) * 2015-12-30 2017-06-30 Qayzen Srl Sistema per l?esecuzione integrata ed interoperativa di applicazioni diverse ed indipendenti
US10980941B2 (en) 2016-03-31 2021-04-20 Dexcom, Inc. Methods for providing an alert or an alarm to a user of a mobile communications device
CN107291744A (zh) 2016-03-31 2017-10-24 阿里巴巴集团控股有限公司 确定及运用应用程序之间的关系关联的方法及装置
US20170289338A1 (en) * 2016-03-31 2017-10-05 Microsoft Technology Licensing, Llc Enabling stateful dynamic links in mobile applications
US10409876B2 (en) * 2016-05-26 2019-09-10 Microsoft Technology Licensing, Llc. Intelligent capture, storage, and retrieval of information for task completion
US10929782B2 (en) * 2016-06-11 2021-02-23 Apple Inc. Integrating restaurant reservation services into a navigation application
US10503767B2 (en) * 2016-09-13 2019-12-10 Microsoft Technology Licensing, Llc Computerized natural language query intent dispatching
US10733553B2 (en) * 2016-09-15 2020-08-04 Microsoft Technology Licensing, Llc Action item extraction for work item creation
US10853747B2 (en) * 2016-10-03 2020-12-01 Google Llc Selection of computational agent for task performance
US11663535B2 (en) 2016-10-03 2023-05-30 Google Llc Multi computational agent performance of tasks
US10311856B2 (en) 2016-10-03 2019-06-04 Google Llc Synthesized voice selection for computational agents
US20180129994A1 (en) 2016-11-06 2018-05-10 Microsoft Technology Licensing, Llc Efficiency enhancements in task management applications
US10565274B2 (en) * 2017-06-30 2020-02-18 Microsoft Technology Licensing, Llc Multi-application user interest memory management
US11410075B2 (en) * 2018-01-15 2022-08-09 Microsoft Technology Licensing, Llc Contextually-aware recommendations for assisting users with task completion
JP2022514646A (ja) 2018-12-19 2022-02-14 デックスコム・インコーポレーテッド 断続的監視

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080126961A1 (en) * 2006-11-06 2008-05-29 Yahoo! Inc. Context server for associating information based on context
US20120117058A1 (en) * 2010-11-08 2012-05-10 Microsoft Corporation Presenting actions and providers associated with entities
US20120144281A1 (en) * 2010-12-01 2012-06-07 Microsoft Corporation Automated task completion by flowing context
US20120173520A1 (en) * 2010-12-30 2012-07-05 Su-Lin Wu System and method for providing contextual actions on a search results page
US20120179706A1 (en) * 2011-01-06 2012-07-12 Mitel Networks Corporation Contextual application launch via search query
KR20120120316A (ko) * 2010-01-18 2012-11-01 애플 인크. 지능형 자동화 어시스턴트

Family Cites Families (144)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
NL289310A (ko) 1963-02-21
US6951019B1 (en) 1992-09-30 2005-09-27 Apple Computer, Inc. Execution control for processor tasks
US5394549A (en) 1992-12-17 1995-02-28 International Business Machines Corporation Task spawning responsive to relational database conditions and operations
US5878258A (en) 1996-05-06 1999-03-02 Merrill Lynch, Pierce, Fenner & Smith Seamless application interface manager
JP3936749B2 (ja) 1998-04-16 2007-06-27 クリエイター・リミテッド 対話型玩具
JP2000029945A (ja) 1998-07-08 2000-01-28 Nec Corp スケジュール管理システム及びそのスケジュール管理方法並びにその制御プログラムを記録した記録媒体
US8041604B1 (en) 1999-03-16 2011-10-18 Studebaker & Brackett PC Method of embedding advertisements in communication
US7035901B1 (en) 1999-12-06 2006-04-25 Global Media Online, Inc. SMTP server, POP server, mail server, mail processing system and web server
US6993559B2 (en) 2000-02-14 2006-01-31 Bigbow.Com, Inc. System, method, apparatus and computer program product for operating a web site by electronic mail
US6898622B1 (en) 2000-05-04 2005-05-24 Bellsouth Intellectual Property Corp. Method for composing packages of electronic mail attachments
AU2001278148A1 (en) 2000-08-01 2002-02-13 Hrl Laboratories, Llc Apparatus and method for context-sensitive dynamic information service
JP2003345764A (ja) 2002-05-27 2003-12-05 Hitachi Ltd 備忘録端末及び備忘録管理方法
US7016855B2 (en) 2002-05-31 2006-03-21 Motorola, Inc. Method and apparatus for managing a task list using location based filtering
US20040059712A1 (en) 2002-09-24 2004-03-25 Dean Jeffrey A. Serving advertisements using information associated with e-mail
US8311890B2 (en) 2002-11-01 2012-11-13 Google Inc. Method and system for dynamic textual ad distribution via email
US8561069B2 (en) 2002-12-19 2013-10-15 Fujitsu Limited Task computing
US7543237B2 (en) 2003-03-19 2009-06-02 Accenture Global Servicecs Gmbh Dynamic collaboration assistant
US9256753B2 (en) 2003-06-11 2016-02-09 Microsoft Technology Licensing, Llc Method and apparatus for protecting regions of an electronic document
US9715678B2 (en) 2003-06-26 2017-07-25 Microsoft Technology Licensing, Llc Side-by-side shared calendars
US7245483B2 (en) 2003-07-18 2007-07-17 Satori Labs, Inc. Integrated personal information management system
US7730182B2 (en) * 2003-08-25 2010-06-01 Microsoft Corporation System and method for integrating management of components of a resource
GB0321213D0 (en) 2003-09-10 2003-10-08 British Telecomm Diary management method and system
US20050108074A1 (en) 2003-11-14 2005-05-19 Bloechl Peter E. Method and system for prioritization of task items
US20050132010A1 (en) 2003-12-12 2005-06-16 International Business Machines Corporation Scheduled electronic mail deletions
US7363294B2 (en) 2003-12-19 2008-04-22 Fuji Xerox Co., Ltd. Indexing for contextual revisitation and digest generation
US7349920B1 (en) 2004-02-13 2008-03-25 Microsoft Corporation Simultaneous display of multiple calendar systems
US7496500B2 (en) 2004-03-01 2009-02-24 Microsoft Corporation Systems and methods that determine intent of data and respond to the data based on the intent
CN101006425A (zh) * 2004-03-10 2007-07-25 汉德马克公司 数据访问架构
US8224639B2 (en) 2004-03-29 2012-07-17 Sony Computer Entertainment Inc. Methods and apparatus for achieving thermal management using processing task scheduling
US20050262449A1 (en) * 2004-05-03 2005-11-24 Microsoft Corporation Online service switching and customizations
US20050268306A1 (en) 2004-05-25 2005-12-01 Anspach Mark S Method and system for presenting actions associated with a managed object in a task context
US20050267770A1 (en) 2004-05-26 2005-12-01 International Business Machines Corporation Methods and apparatus for performing task management based on user context
US8640035B2 (en) 2004-06-24 2014-01-28 Oracle America, Inc. Identity based user interface
US7685414B1 (en) 2004-08-27 2010-03-23 Voltage Security, Inc. Subscription management service for secure messaging system
US8185427B2 (en) 2004-09-22 2012-05-22 Samsung Electronics Co., Ltd. Method and system for presenting user tasks for the control of electronic devices
US20060069599A1 (en) 2004-09-29 2006-03-30 Microsoft Corporation Workflow tasks in a collaborative application
US7603381B2 (en) * 2004-09-30 2009-10-13 Microsoft Corporation Contextual action publishing
US7747966B2 (en) 2004-09-30 2010-06-29 Microsoft Corporation User interface for providing task management and calendar information
US7788589B2 (en) 2004-09-30 2010-08-31 Microsoft Corporation Method and system for improved electronic task flagging and management
US20060149677A1 (en) 2005-01-06 2006-07-06 Microsoft Corporation Contextual ad processing on local machine
US8069422B2 (en) 2005-01-10 2011-11-29 Samsung Electronics, Co., Ltd. Contextual task recommendation system and method for determining user's context and suggesting tasks
US7233229B2 (en) 2005-03-01 2007-06-19 Microsoft Corporation Actionable communication reminders
EP3217285B1 (en) 2005-03-10 2021-04-28 Xilinx, Inc. Transmitting data
FI20055111A0 (fi) 2005-03-11 2005-03-11 Nokia Corp Informaation muodostaminen elektronisen laitteen kalanterisovellukselle
US7817796B1 (en) 2005-04-27 2010-10-19 Avaya Inc. Coordinating work assignments for contact center agents
WO2007052285A2 (en) * 2005-07-22 2007-05-10 Yogesh Chunilal Rathod Universal knowledge management and desktop search system
US20080086640A1 (en) 2005-07-28 2008-04-10 Jmj Software, Llc Systems, methods and apparatus of an email client
US20070027732A1 (en) 2005-07-28 2007-02-01 Accu-Spatial, Llc Context-sensitive, location-dependent information delivery at a construction site
US20070157105A1 (en) 2006-01-04 2007-07-05 Stephen Owens Network user database for a sidebar
US8185944B2 (en) 2006-02-28 2012-05-22 The Boeing Company High-assurance file-driven content filtering for secure network server
US8744885B2 (en) 2006-03-28 2014-06-03 Snowflake Itm, Inc. Task based organizational management system and method
US20080005108A1 (en) 2006-06-28 2008-01-03 Microsoft Corporation Message mining to enhance ranking of documents for retrieval
US7548895B2 (en) 2006-06-30 2009-06-16 Microsoft Corporation Communication-prompted user assistance
US20080005168A1 (en) 2006-06-30 2008-01-03 Microsoft Corporation Managing family information
US8219920B2 (en) 2006-08-04 2012-07-10 Apple Inc. Methods and systems for managing to do items or notes or electronic messages
US20100169176A1 (en) 2006-09-14 2010-07-01 Bhavin Turakhia Method for tracking user behavior and to display advertisements
MX2009007397A (es) 2007-01-09 2010-03-22 Spinvox Ltd Detección de llamadas no contestadas para proporcionar a la parte que llama la opción para dictar alternativamente un mensaje de texto para suministrarlo a la parte llamada.
US20080256056A1 (en) 2007-04-10 2008-10-16 Yahoo! Inc. System for building a data structure representing a network of users and advertisers
US9292807B2 (en) 2007-05-10 2016-03-22 Microsoft Technology Licensing, Llc Recommending actions based on context
JP2009026138A (ja) 2007-07-20 2009-02-05 Toshiba Corp 情報通知装置、方法およびプログラム
US8645182B2 (en) 2007-10-02 2014-02-04 International Business Machines Corporation Integrated calendar and task scheduler
US8146104B2 (en) 2007-10-09 2012-03-27 International Business Machines Corporation System and method for programmatically generating to-do list and creating notification between calendar and other applications
US20090111425A1 (en) 2007-10-26 2009-04-30 Sony Eriscsson Mobile Communications Ab Device and method for category based collaboration and control for mobile communications devices
US20090239552A1 (en) 2008-03-24 2009-09-24 Yahoo! Inc. Location-based opportunistic recommendations
US20090254824A1 (en) * 2008-04-08 2009-10-08 Gurvinder Singh Distribution Of Context Aware Content And Interactable Advertisements
US8219115B1 (en) 2008-05-12 2012-07-10 Google Inc. Location based reminders
CN102105876B (zh) 2008-07-25 2014-02-19 日本电气株式会社 电子粘签系统
WO2010014853A1 (en) * 2008-07-30 2010-02-04 Michael Zimmerman Data-oriented user interface for mobile device
US8201176B2 (en) 2008-08-06 2012-06-12 International Business Machines Corporation Detecting the starting and ending of a task when thread pooling is employed
US8504001B2 (en) 2008-08-12 2013-08-06 Apple Inc. Unified settings for multiple account types
US8560371B2 (en) 2008-09-26 2013-10-15 Microsoft Corporation Suggesting things to do during time slots in a schedule
JP4990258B2 (ja) 2008-11-14 2012-08-01 株式会社日立製作所 支援情報提示装置、支援情報提示方法及び支援情報提示プログラム
US8434053B2 (en) 2008-11-26 2013-04-30 Red Hat, Inc. Package review process workflow
US20100257015A1 (en) 2009-04-01 2010-10-07 National Information Solutions Cooperative, Inc. Graphical client interface resource and work management scheduler
US9008631B2 (en) 2009-05-01 2015-04-14 T-Mobile Usa, Inc. Providing context information during voice communications between mobile devices, such as providing visual media
US20100287320A1 (en) 2009-05-06 2010-11-11 Lsi Corporation Interprocessor Communication Architecture
US10241644B2 (en) 2011-06-03 2019-03-26 Apple Inc. Actionable reminder entries
US10706373B2 (en) 2011-06-03 2020-07-07 Apple Inc. Performing actions associated with task items that represent tasks to perform
US8626133B2 (en) 2009-08-19 2014-01-07 Cisco Technology, Inc. Matching a location of a contact with a task location
NZ581850A (en) 2009-08-27 2011-12-22 Eyemagnet Ltd Informational content scheduling system and method
US9460422B2 (en) 2009-11-20 2016-10-04 Sears Brands, L.L.C. Systems and methods for managing to-do list task items to automatically suggest and add purchasing items via a computer network
TWI588760B (zh) 2009-11-30 2017-06-21 萬國商業機器公司 關聯連絡資訊之工作管理系統及其方法
US20110145823A1 (en) 2009-12-10 2011-06-16 The Go Daddy Group, Inc. Task management engine
US8543527B2 (en) * 2010-01-08 2013-09-24 Oracle International Corporation Method and system for implementing definable actions
JP5667219B2 (ja) 2010-03-08 2015-02-12 ヴイエムウェア インクVMware, Inc. 仮想化環境におけるタスクベースのアクセス制御
US9356790B2 (en) 2010-05-04 2016-05-31 Qwest Communications International Inc. Multi-user integrated task list
US8904274B2 (en) 2010-05-14 2014-12-02 Xerox Corporation In-situ mobile application suggestions and multi-application updates through context specific analytics
US20110313803A1 (en) 2010-06-22 2011-12-22 Microsoft Corporation Social Task Lists
US8381088B2 (en) 2010-06-22 2013-02-19 Microsoft Corporation Flagging, capturing and generating task list items
US8375320B2 (en) 2010-06-22 2013-02-12 Microsoft Corporation Context-based task generation
JP5655392B2 (ja) 2010-06-23 2015-01-21 富士ゼロックス株式会社 印刷画像処理装置及びプログラム
US8854318B2 (en) 2010-09-01 2014-10-07 Nokia Corporation Mode switching
US9805022B2 (en) 2010-12-09 2017-10-31 Apple Inc. Generation of topic-based language models for an app search engine
JP5799512B2 (ja) 2011-01-31 2015-10-28 ソニー株式会社 情報処理装置、および情報処理方法、並びにプログラム
AU2012220669A1 (en) * 2011-02-22 2013-05-02 Visa International Service Association Universal electronic payment apparatuses, methods and systems
US9026942B2 (en) * 2011-02-25 2015-05-05 Cbs Interactive Inc. Song lyric processing with user interaction
US20120221384A1 (en) * 2011-02-28 2012-08-30 Qualcomm Innovation Center, Inc. System, method, and apparatus for organizing and distributing apps
US9262057B2 (en) * 2011-03-11 2016-02-16 Microsoft Techology Licensing, Llc Providing item specific functionality via service-assisted applications
US8766793B2 (en) 2011-03-25 2014-07-01 Microsoft Corporation Contextually-appropriate task reminders
US20120253916A1 (en) 2011-04-01 2012-10-04 Yahoo! Inc. Delivering ad-initiated emails to a user's visual email inbox to provide access to content
US20120278120A1 (en) 2011-04-29 2012-11-01 Siemens Product Lifecycle Management Software Inc. Cross-schedule dependencies using proxy tasks
US8949275B1 (en) 2011-04-29 2015-02-03 Google Inc. Inter-application to do list management
US8943514B2 (en) * 2011-04-30 2015-01-27 Samsung Electronics Co., Ltd. Middle partners
US8762360B2 (en) * 2011-05-06 2014-06-24 Microsoft Corporation Integrating applications within search results
US8818994B2 (en) * 2011-06-27 2014-08-26 Bmc Software, Inc. Mobile service context
US20130006689A1 (en) 2011-06-29 2013-01-03 Foliovision S.R.O. Methods, software, and systems for maintaining a single hierarchy of tasks across multiple projects and/or multiple task management tools
CN102253860A (zh) 2011-07-13 2011-11-23 深圳市万兴软件有限公司 一种异步操作方法及异步操作管理装置
US10192176B2 (en) 2011-10-11 2019-01-29 Microsoft Technology Licensing, Llc Motivation of task completion and personalization of tasks and lists
US8812416B2 (en) * 2011-11-08 2014-08-19 Nokia Corporation Predictive service for third party application developers
US8930473B2 (en) * 2012-02-20 2015-01-06 Powerinbox, Inc Application platform for electronic mail
US9811850B2 (en) 2012-04-08 2017-11-07 Microsoft Technology Licensing, Llc User task completion via open market of actions and/or providers
US20130275429A1 (en) 2012-04-12 2013-10-17 Graham York System and method for enabling contextual recommendations and collaboration within content
US8751493B2 (en) * 2012-04-23 2014-06-10 Google Inc. Associating a file type with an application in a network storage service
US9658872B1 (en) 2012-05-03 2017-05-23 Juniper Networks, Inc. Maintaining user identity associated with access to network resources using virtual machines
US10417037B2 (en) 2012-05-15 2019-09-17 Apple Inc. Systems and methods for integrating third party services with a digital assistant
US20130311285A1 (en) 2012-05-18 2013-11-21 Microsoft Corporation Apps in advertisements
US9111291B2 (en) 2012-06-19 2015-08-18 Yahoo! Inc. System and method for providing sponsored applications in email
US20130346981A1 (en) 2012-06-21 2013-12-26 Sony Network Entertainment International Llc Task management application for mobile devices
US20130346247A1 (en) * 2012-06-22 2013-12-26 Cullen E. Bash Recommending Options Based on Sustainability Metrics
US8990143B2 (en) 2012-06-29 2015-03-24 Intel Corporation Application-provided context for potential action prediction
US9626637B2 (en) 2012-09-18 2017-04-18 Salesforce.Com, Inc. Method and system for managing business deals
US20140082521A1 (en) 2012-09-20 2014-03-20 Handle, Inc. Email and task management services and user interface
US9477945B2 (en) 2012-09-27 2016-10-25 Oracle International Corporation Task-centered context management
US9313162B2 (en) 2012-12-13 2016-04-12 Microsoft Technology Licensing, Llc Task completion in email using third party app
US20140173602A1 (en) 2012-12-14 2014-06-19 Microsoft Corporation Matching Opportunity to Context
CN105190666A (zh) 2013-03-15 2015-12-23 A·普拉卡什 用于促进集成行为支持的系统与方法
US10535043B2 (en) 2013-06-10 2020-01-14 Microsoft Technology Licensing, Llc Navigating a calendar
US9483565B2 (en) 2013-06-27 2016-11-01 Google Inc. Associating a task with a user based on user selection of a query suggestion
US20150095268A1 (en) 2013-10-02 2015-04-02 Apple Inc. Intelligent multi-user task planning
US20150120577A1 (en) 2013-10-04 2015-04-30 Clique Intelligence Systems and methods for enterprise management using contextual graphs
US9706007B2 (en) 2013-10-17 2017-07-11 Blue Syntax Consulting LLC System and method for querying disparate data sources in real time
US20150118672A1 (en) 2013-10-24 2015-04-30 Google Inc. System and method for learning management
WO2015127404A1 (en) 2014-02-24 2015-08-27 Microsoft Technology Licensing, Llc Unified presentation of contextually connected information to improve user efficiency and interaction performance
US20150269508A1 (en) 2014-03-18 2015-09-24 Mckesson Financial Holdings Method And Apparatus For Configuring A Task List
US9911088B2 (en) 2014-05-01 2018-03-06 Microsoft Technology Licensing, Llc Optimizing task recommendations in context-aware mobile crowdsourcing
US20160086116A1 (en) 2014-07-27 2016-03-24 Supriya Rao Method and system of an automatically managed calendar and contextual task list
US20160071064A1 (en) 2014-09-06 2016-03-10 Sugarcrm Inc. Context driven task creation and management
US9832149B2 (en) 2014-09-30 2017-11-28 Microsoft Technology Licensing, Llc Treatment of cloud-based and local attachments in communication applications
US9811791B2 (en) 2014-12-23 2017-11-07 Sap Se Personalized work planning based on self-optimizing role-based crowd-sourced information
US10872111B2 (en) 2015-01-14 2020-12-22 Lenovo Enterprise Solutions (Singapore) Pte. Ltd User generated data based map search
US10824636B2 (en) 2015-05-27 2020-11-03 Kaseya International Limited Mechanisms for querying disparate data storage systems
US20160379175A1 (en) 2015-06-23 2016-12-29 Mayukh Bhattacharya System and Method for Automated Optimized Personal Task Scheduling and Targeted Advertising
US10607498B2 (en) 2015-12-31 2020-03-31 Dropbox, Inc. Releasing assignments to students
US20180129994A1 (en) 2016-11-06 2018-05-10 Microsoft Technology Licensing, Llc Efficiency enhancements in task management applications

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080126961A1 (en) * 2006-11-06 2008-05-29 Yahoo! Inc. Context server for associating information based on context
KR20120120316A (ko) * 2010-01-18 2012-11-01 애플 인크. 지능형 자동화 어시스턴트
US20120117058A1 (en) * 2010-11-08 2012-05-10 Microsoft Corporation Presenting actions and providers associated with entities
US20120144281A1 (en) * 2010-12-01 2012-06-07 Microsoft Corporation Automated task completion by flowing context
US20120173520A1 (en) * 2010-12-30 2012-07-05 Su-Lin Wu System and method for providing contextual actions on a search results page
US20120179706A1 (en) * 2011-01-06 2012-07-12 Mitel Networks Corporation Contextual application launch via search query

Also Published As

Publication number Publication date
CN110083458B (zh) 2023-11-28
EP2932385A1 (en) 2015-10-21
HK1215081A1 (zh) 2016-08-12
US20200065139A1 (en) 2020-02-27
US20220269529A1 (en) 2022-08-25
CN110083458A (zh) 2019-08-02
JP2016506568A (ja) 2016-03-03
KR20150095672A (ko) 2015-08-21
US20140173625A1 (en) 2014-06-19
KR102146592B1 (ko) 2020-08-20
US10528385B2 (en) 2020-01-07
CN104919424B (zh) 2019-01-11
CN104919424A (zh) 2015-09-16
KR102251597B1 (ko) 2021-05-12
JP6263199B2 (ja) 2018-01-17
US11347540B2 (en) 2022-05-31
WO2014093929A1 (en) 2014-06-19

Similar Documents

Publication Publication Date Title
KR102251597B1 (ko) 애플리케이션간 통신을 통한 작업 완료 기법
US10846153B2 (en) Bot creation with workflow development system
US9558275B2 (en) Action broker
US20150278370A1 (en) Task completion for natural language input
US20120124061A1 (en) Rich Search Over and Deep Integration with Applications
KR20160138424A (ko) 언어 모델 맞춤화를 위한 플렉서블 스키마 제공 기법
US20140195663A1 (en) Method and System for Providing Cloud-Based Common Distribution Applications
EP2779582B1 (en) Automatic mobile application discovery and integration in a mobile telecommunication device
KR20140047579A (ko) 크로스 플랫폼 서비스 통지
CN109313668B (zh) 构建会话理解系统的系统和方法
US20130290851A1 (en) User interface web services
CN106415499B (zh) 应用实现的上下文切换
US20180335909A1 (en) Using sections for customization of applications across platforms
US20150113499A1 (en) Runtime support for modeled customizations
US20150113498A1 (en) Modeling customizations to a computer system without modifying base elements
US20150248227A1 (en) Configurable reusable controls
CN117992107A (zh) 一种应用程序获取系统以及方法
KR20120032963A (ko) 자동차용 앱스토어 서비스 시스템 및 방법

Legal Events

Date Code Title Description
A107 Divisional application of patent
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant