KR20110086064A - 소셜 접속을 이용한 텍스트 명확화 - Google Patents

소셜 접속을 이용한 텍스트 명확화 Download PDF

Info

Publication number
KR20110086064A
KR20110086064A KR1020117011220A KR20117011220A KR20110086064A KR 20110086064 A KR20110086064 A KR 20110086064A KR 1020117011220 A KR1020117011220 A KR 1020117011220A KR 20117011220 A KR20117011220 A KR 20117011220A KR 20110086064 A KR20110086064 A KR 20110086064A
Authority
KR
South Korea
Prior art keywords
user
dictionary
social network
data
word
Prior art date
Application number
KR1020117011220A
Other languages
English (en)
Other versions
KR101606229B1 (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 KR20110086064A publication Critical patent/KR20110086064A/ko
Application granted granted Critical
Publication of KR101606229B1 publication Critical patent/KR101606229B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/332Query formulation
    • G06F16/3322Query formulation using system suggestions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/36Creation of semantic tools, e.g. ontology or thesauri
    • G06F16/374Thesaurus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/02Input arrangements using manually operated switches, e.g. using keyboards or dials
    • G06F3/023Arrangements for converting discrete items of information into a coded form, e.g. arrangements for interpreting keyboard generated codes as alphanumeric codes, operand codes or instruction codes
    • G06F3/0233Character input methods
    • G06F3/0237Character input methods using prediction or retrieval techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/274Converting codes to words; Guess-ahead of partial word inputs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/10Office automation; Time management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Business, Economics & Management (AREA)
  • General Engineering & Computer Science (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Human Resources & Organizations (AREA)
  • Strategic Management (AREA)
  • Data Mining & Analysis (AREA)
  • Computational Linguistics (AREA)
  • Quality & Reliability (AREA)
  • Marketing (AREA)
  • Tourism & Hospitality (AREA)
  • Operations Research (AREA)
  • Economics (AREA)
  • General Business, Economics & Management (AREA)
  • Databases & Information Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Artificial Intelligence (AREA)
  • Health & Medical Sciences (AREA)
  • Human Computer Interaction (AREA)
  • Mathematical Physics (AREA)
  • Machine Translation (AREA)
  • Information Transfer Between Computers (AREA)
  • Telephonic Communication Services (AREA)
  • Document Processing Apparatus (AREA)

Abstract

본 명세서의 주제는 특히 컴퓨터 구현 방법에서 구현될 수 있는데, 이 방법은, 사용자와 연관된 컴퓨팅 장치를 위한 사전(dictionary)을 제공하라는 요구를 수신하고, 사용자를 위한 소셜 네트워크의 회원과 관련한 단어 사용 정보(word usage information)를 식별하고, 소셜 네트워크의 상기 회원과 관련한 단어 사용 정보를 이용해 사용자를 위한 사전을 발생하는 것을 포함한다.

Description

소셜 접속을 이용한 텍스트 명확화{TEXTUAL DISAMBIGUATION USING SOCIAL CONNECTIONS}
본 출원은 "TEXTUAL DISAMBIGUATION USING SOCIAL CONNECTIONS"이라는 명칭으로 2008년 10월 17일에 출원된 미국 출원 번호 제12/253,791호를 우선권 주장하며, 그 내용은 본 원에서 참조로 이용한다.
본 문서는 컴퓨팅 장치의 사용자에 의해 입력된 텍스트(text)를 명확화(disambiguating)하는 시스템 및 기술을 설명한다.
사람들은 이메일을 타이핑(typing)하거나 검색 질의를 제출하거나 전자 서식을 기입하거나 혹은 그 밖의 방식으로 컴퓨팅 장치에 텍스트를 입력하는데 많은 시간을 소비한다. 특정 상황에서 이러한 텍스트 입력을 지원하는 특정 기술이 개발되었다. 예를 들면, 사용자가 몇 개의 문자(characters)를 타이프하면 시스템은 경험에 근거한 추측을 통해 가능성 있는 자동 완성 텍스트 엔트리(auto-complete text entries)를 제안할 수 있고, 결국 사용자는 장황한 엔트리내의 모든 문자를 타이프할 필요가 없다. 또한, 이동 장치는 종종 각각의 키가 다수의 문자를 표현하는 제한된 키보드를 구비하므로, 사용자가 몇 개의 키를 누른 후, 시스템은 사용자가 타이프하려고 의도했던 각각의 키와 관련한 글자를 추론할 수 있다. 이런 방식으로, 이 시스템은 (만일 키를 누르지 않으면 모호할 수 있으므로) 키 누름으로부터 적절한 단어나 단어군(group of words)을 선택할 수 있다.
이미 입력된 문자와 관련한 자동 완성의 형태이든, 각각의 키 누름이 다수 문자를 표현할 수 있을 때 적절한 문자를 결정하든, 혹은 이 둘의 조합이든 간에 입력의 명확화는 종종 사전(dictionary)에 의존한다. 특히, 이와 관련한 사전은 다수의 텍스트 용어 및/또는 어구(phrase)와 함께, 이 용어 또는 어구가 타이핑 입력된 표현에서 나타나는 빈도와 관련한 표시(indication)를 포함할 수 있을 것이다. 모호한 사용자 입력에 대한 응답으로 용어를 제안 혹은 선택할 때, 가장 자주 이용되는 용어는 다른 용어들보다 우선권이 주어질 것이다. 예를 들어, 만약 사용자가 B와 A를 입력하면, 사용자는 BALL이나 BASEBALL을 입력하려 했을 수도 있고 혹은 많은 다른 용어들을 입력하려 했을 수도 있다. 만약 사용자의 컴퓨팅 장치의 사전이 BALL이 BASEBALL보다 더 인기있는 용어라고 표시하면, 사용자가 두 개의 문자를 입력한 이후에 타이핑을 멈출 경우, 입력되는 디폴트 용어로 BALL이 제공될 수도 있다. 이와 비슷한 방식으로, 만약 사용자가 전화기 키패드상의 2 키를 두 번 누르면, 사용자는 BALL이나 BASEBALL을 다시 타이핑하려 했을 수도 있고, 혹은 어쩌면 ACT, ACTION, ABDICATE 같은 용어를 타이핑하려 했을 수도 있다. 사전에서 각각의 용어의 인기도(popularity)는 많은 가능성 있는 용어들 중에서 어떤 것이 사용자에게 제안 또는 선택될지를 제어할 것이다.
본 명세서는 사용자에 의해 예컨대 데스크톱 컴퓨터나 스마트폰 같은 컴퓨팅 장치로 제공된 텍스트 입력을 명확화하기 위한 시스템 및 기술을 설명한다. 일반적으로, 사용자를 위한 소셜 네트워크가 분석되고, 해당 소셜 네트워크의 사용자들 사이에서 용어의 인기도가 사용자 입력 텍스트를 명확화하기 위한 사전 데이터를 생성하는데 이용된다. 이 이론은 사용자의 친구들이 자주 이용하는 용어를 사용자도 더 많이 이용할 것이라는 것이다. 예를 들면, 만약 10대 청소년이 소셜 네트워킹 웹 사이트상에서 친구로 다양한 사용자를 식별했다면, 이 친구들의 페이지의 콘텐츠 및 다른 유사 콘텐츠는 사용자와 관련한 용어의 인기도를 결정하기 위해 분석될 수도 있다. 예를 들면 이러한 사용자는 그들의 통신 등에서 특정 형태의 비속어(slang)를 훨씬 더 많이 사용할 수도 있는데, 이러한 비속어는 광범위한 인구 전체에 걸쳐 보다 일반적인 용어 사용량(usage)을 전제로 하는 사전에 의해 채택될 수 없는 것이다.
일반적인 제 1 양상에서, 컴퓨터로 구현되는 방법이 설명된다. 이 방법은, 사용자와 연관된 컴퓨팅 장치를 위한 사전을 제공하라는 요구를 수신하고, 이 사용자를 위한 소셜 네트워크의 회원과 관련한 단어 사용량 정보를 식별하고, 이러한 소셜 네트워크의 회원과 관련한 단어 사용량 정보를 이용해 사용자를 위한 사전을 생성하는 것을 포함한다.
일반적인 제 2 양상에서, 실행시 어떤 동작들을 수행하는 명령어들이 기록 및 저장되어 있는 기록가능형 저장 매체(recordable storage medium)가 설명된다. 이 기록가능형 저장 매체는 사용자와 연관된 컴퓨팅 장치를 위한 사전을 제공하라는 요구를 수신하고, 이 사용자를 위한 소셜 네트워크의 회원과 관련한 단어 사용량 정보를 식별하고, 이러한 소셜 네트워크의 회원과 관련한 단어 사용량 정보를 이용해 사용자를 위한 사전을 생성하는 것을 포함한다.
일반적인 제 3 양상에서, 컴퓨터 구현의 텍스트 명확화 시스템이 설명된다. 이 시스템은 사용자와 연관된 소셜 네트워크의 회원에 의한 단어 사용량을 반영한 데이터를 생성하기 위한 소셜 네트워크 인터페이스와, 사용자에 의한 텍스트 입력을 명확화하는데 이용하도록 포맷(formatted)된 사전 데이터를 생성하기 위해 이 소셜 네트워크의 회원의 단어 사용량을 반영한 데이터를 이용하도록 프로그램된 사전 빌더(dictionary builder)와, 사용자에 의해 입력된 텍스트를 명확화하기 위해 사전 데이터를 이용하도록 프로그램된 자동 완성 모듈을 포함한다.
일반적인 또 다른 양상에서, 컴퓨터 구현의 시스템이 설명된다. 이 시스템은 사용자와 관련한 식별자(identifier)를 이용하여 사용자의 소셜 네트워크의 회원에 의한 단어 사용량을 반영한 데이터를 생성하는 소셜 네트워크 인터페이스와, 사용자에 특정되지 않은 일반적인 단어의 사용량을 반영하는 마스터 사전 데이터(master dictionary data)를 저장하는 메모리와, 사용자에 의한 텍스트 입력을 명확화하기 위해 상기 마스터 사전과의 이용을 위한 사전 데이터 내에 병합되도록 사용량 데이터를 처리하는 수단을 포함한다.
하나 이상의 실시예의 세부 사항들은 이후의 설명과 첨부 도면에 제시되었다. 다른 특징 목적 및 이점들은 설명과 도면, 그리고 특허청구의 범위로부터 명확해질 것이다.
컴퓨팅 장치의 사용자에 의해 입력된 텍스트를 명확화하는 시스템 및 기술이 제공될 수 있다.
도 1은 단어 사용량 정보를 이용하여 입력 명확화를 위한 사전 데이터를 생성하기 위해 소셜 네트워크에서 소셜 접속관계(social connection)가 이용될 수 있는 방식을 보여주는 개략도이다.
도 2a 및 도 2b는 소셜 네트워킹 데이터를 이용하여 사용자 사전을 갱신하는 예시의 프로세서를 보여주는 흐름도이다.
도 3a 및 도 3b는 클라이언트와 서버 사이의 상호 작용의 예를 도시하는 순차도이다.
도 4a는 사용자 입력을 명확화하기 위한 사전을 갱신하는 시스템의 개략도이다.
도 4b는 컴퓨팅 장치에 데이터를 입력하는 사용자에게 명확화를 제공하는 시스템의 개략도이다.
도 5는 본 원에서 설명되는 자동 크로핑(automatic cropping)의 실시예를 구현하는 예시적인 이동 장치의 개략적 표현이다.
도 6은 도 5의 장치의 내부 구조를 예시하는 블록도이다.
도 7은 도 3의 장치에 의해 이용되는 운영체제의 예시적인 성분을 예시하는 블록도이다.
도 8은 도 5의 운영체제 커널(operating system kernel)에 의해 구현되는 예시적인 프로세서를 예시하는 블록도이다.
도 9는 본 원에서 설명되는 기술을 구현하는데 이용될 수 있는 컴퓨터 장치 및 이동 컴퓨터 장치의 예를 도시한다.
여러 도면에서 동일한 참조 부호는 유사한 성분을 나타낸다.
도 1은 단어 사용량 정보를 이용하는 입력 명확화를 위한 사전 데이터를 생성하는데 소셜 네트워크의 소셜 접속관계(social connection)가 이용될 수 있는 방식을 보여주는 개략도이다. 이 도면은 시스템(100)을 도시하는데, 이 시스템에는 다수의 상이한 사용자(102, 110, 114)가 웹 사이트를 통한 개인적인 유대관계인 친구로서, 그리고 친구의 친구로서 소셜 네트워크내에 접속되어 있다. 소셜 네트워크의 각 회원은 그들과 연관된 다양한 형태의 텍스트 콘텐츠, 예를 들면, 정보를 게시하는 페이지(112), 자신과 관련한 특징들을 기재한 프로파일 페이지(116)를 가질 수 있을 것이며, 다른 콘텐츠, 예를 들면, 여러 회원들간 통신의 텍스트 메시지 로그나 토의 페이지를 가질 수도 있을 것이다. 이러한 정보원(source)의 각각은 그룹내 회원들에 의한 전형적인 사용량을 반영할 것이고, 따라서 그룹내 회원들이 장래에 채용할 것 같은 사용량도 반영할 것이다. 그 결과, 이 정보원들은 예를 들면 이후에 상술하는 다양한 방식으로 이용되어, 용어나 어구를 사용자에게 제안할 때 컴퓨팅 장치에 의해 이용되는 사전 데이터를 제공할 것이다.
도 1을 더 자세히 참조하면, 사용자(102)는 다수의 엔트리(multiple entry)(106)를 포함하는 사전(104)과 연관되어 있는 것으로 도시되어 있다. 이 엔트리는 특별한 단어 혹은 어구(phrase)일 수도 있고, 또는 다른 적절한 형태를 취할 수도 있다. 각각의 단어는 시스템(100)이 사용자가 장래에 채용할 단어일 것으로 판단하는 어떤 단어를 나타낸다. 이 예에서, 단어들은 0.01~0.09의 정규화 스케일로 가장 일반적인 것을 상부에 두고 가장 덜 일반적인 것인 하부에 위치하도록 정렬 및 도시되어 있다. 일반적으로, 명확화 사전에서 용어들은 트리 구조(tree structure)로 정렬되는 대신에, 단어의 각각의 연속 문자나 혹은 키패드의 각각의 키를 나타내는 트리를 통해서 각각의 노드가 단계적으로 내려오도록 되어 있다. 이때 각각의 용어는 단어 사용량 정보(예컨대 트리내에서 자신의 개별적인 위치에서의 가중치)를 가질 것이다. 예를 들어, 전형적인 전화기 키패드와 관련한 트리 구조는 뿌리 노드(root node)로부터 나온 8개 지로(branch)를 가질 수 있고(왜냐하면 비록 하나 이상의 추가 지로가 알파벳이 아닌 문자로 포함될 수 있더라도 글자는 2-9 키 위에 디스플레이되므로), 각 노드에서는 다음 레벨에 다른 8개의 지로를 가질 수 있다. 결국, 사용자가 키패드상에서 키를 누르는 동안 불가능한 해답은 제거되도록 트리가 통과될 수도 있다. 마찬가지로 다른 적절한 메커니즘이 단어나 어구를 배열하고 그들의 사용 가능성을 나타내는데 이용될 수 있다. 사전(104)의 특별한 배열이 일반적으로 중요한 것은 아니다.
비록 이 예에서는 표현의 명확성을 위해 각각의 단어가 단일 점수를 갖더라도, 더 복잡한 득점 기술이 이용될 수도 있다. 예를 들어, 어떤 용어가 콘텍스트에 의존적인 점수를 가질 수도 있으므로, 사용자(102)가 다른 단어를 타이프치는 경우보다 사용자가 그저 "sunny"라고 타이프치는 경우에 "day"와 관련한 점수가 더 높을 수도 있다.
각각의 단어와 연관된 점수는 일반적으로 사용자(102)가 그 단어나 어구를 장래에 입력할 가능성과 관련하여 단어나 어구의 예측된 인기도를 나타낸다. 이런 데이터는, 일반적인 시스템에서 예컨대 다수의 책 또는 함께하는 사람들 전체에 대한 이메일처럼 방대한 문서 뭉치를 분석하고, 그 문서 뭉치에서 이용되는 다양한 단어들의 빈도를 식별하여, 그 발생 빈도에 근거하여 정규화된 방식으로 그 단어에 등급을 매김으로써 취할 수 있다. 이때 이 점수는 예컨대 사용자(102)의 임시보관함 및/또는 받은 편지함 속의 이메일, 사용자(102)와 관련한 컴퓨팅 장치에 저장된 문서들, 혹은 사용자(102)와 연관된 사용자 계정의 서버상에 저장된 문서들처럼 사용자(102)에게 특정인 문서들을 검토함으로써 조정될 것이다.
이 예에서, 각각의 용어(예컨대 단어 또는 어구)의 등급은 소셜 네트워크의 접속관계와 선택적으로 연관될 수도 있다. 도시된 예에서 사용자(102)는 소셜 네트워크에서 두 개의 차수(degree)의 접속관계를 갖는 것으로 도시되어 있다. 사용자(102)의 1차(first degree) 접속(110)은 그들과 연관된 문서(112)를 갖는 것으로 도시되어 있다. 사용자(102)는 또한 하나 이상의 연관 문서(116)를 갖는 사용자(114)와 2차 접속을 갖는 것으로 도시되어 있다.
문서들(112, 116)은 다양한 형태를 취할 수 있으며, 예를 들면, 오르컷(ORKUT), 마이스페이스(MYSPACE), 페이스북(FACEBOOK) 같은 소셜 네트워킹 사이트상의 전형적인 프로파일 페이지를 포함할 수도 있다. 프로파일 페이지에 부가된 추가 페이지로서 사용자가 제출하는 다른 페이지들이 포함될 수도 있다. 또한, 예컨대 사용자들(102, 110, 114) 사이의 텍스트 메시지 세션의 트랜스크립트(transcript)처럼 사용자(110, 114)에 의한 다른 통신이 검사될 수도 있다. 따라서, 예를 들면, 시스템(100)은 다양한 문서들(112, 116)을 분석하여 이 문서들(112, 116)의 단어와 어구의 사용 빈도를 결정할 수 있다. 만약 사용자가 10대 청소년이라면, 예컨대 OMG("Oh my God!"), "like", "totally", "sick", 그리고 다른 이러한 비속어 용어들처럼 표준 영어 사용의 고찰에서는 나타나지 않는 많은 어구들을 분석에 의해 식별할 수 있을 것이다.
시스템(100)은 추가로 혹은 선택적으로 사용자(110, 116)의 각각과 연관된 사전들을 분석할 수도 있다. 이 사전들은 각각의 사용자(102, 110, 114)와 연관된 클라이언트 장치에 저장될 수도 있고, 이 사전의 사본들은 하나 이상의 서버 장치를 포함할 수 있는 중앙 서버에 저장될 수도 있다. 다양한 사용자들 사이의 소셜 접속관계가 사전(104)의 단어와 관련한 점수에 영향을 미치는 다양한 방식으로 이용될 수 있을 것이다. 일 예로서, 시스템(100)은 소셜 네트워크내의 모든 혹은 일부 문서들(112, 116)을 분석하여, 문서내의 단어 혹은 어구에 대한 빈도 분포를 생성할 것이다. 다음, 시스템내의 그 위치에 따라서 단어들에는 가중치가 제공될 것이다. 예를 들어, 사용자의 기호 음식이 블루베리라는 것을 나타내는 프로파일 페이지내의 단어는 송출 텍스트 메시지내의 단어보다 더 낮은 가중치를 받거나 혹은 하향조정된 점수를 받을 수 있는데, 왜냐하면, 사용자(110)가 아마도 장래에 통신 세션에서 프로파일 페이지내의 단어보다는 송출 텍스트 메시지내의 단어를 훨씬 더 많이 사용할 가능성이 있기 때문으로, 더 나아가 그 친구들도 통신시에 이와 유사한 단어 및 어구를 사용한다는 가정하에 사용자(102)도 아마 이 용어를 더 많이 사용할 가능성이 있기 때문이다.
또한, 사용자(102)와 관련한 소셜 네트워크의 제 1 레벨의 사용자들(110)의 기여도(contribution)는 사용자(114)처럼 소원한(distant) 사용자의 기여도보다 더 무겁게 가중될 수 있다. 일 예로, 순환 처리법이 이용되어 각 사용자의 사전의 단어와 관련한 점수들이 소셜 네트워크내의 그 다음 인접한 이웃들과 관련한 점수와 평균될 수도 있다. 결국, 예를 들어, 제 1 반복에서, 사용자(114)의 점수는 도면에서 두 명의 상위 사용자(110)와 관련한 사전으로 부분적으로 보내지고, 이후 이 점수의 부분들이 다음 사이클에서 사전(104)에 간접적으로 보내질 수도 있다. 각각의 사용자의 점수는 자신의 원래 점수에 대해 어느 정도 최고 점수를 고정시키기 위해 인위적으로 가중치가 제공될 수도 있고, 이로써 수많은 반복 이후에 모든 사용자는 똑같은 사전을 갖지 않는다. 이런 방식으로 사전(104)은 사용자(102)의 실제 사용량을 가장 강하게 반영할 수 있고, 사용자(110)의 사용량은 다소 덜, 그리고 사용자(114)의 사용량은 훨씬 덜 반영할 수 있다. 이때 특별한 구현으로, 특별한 사용자의 사용량의 가중치가 소셜 네트워크내의 중앙 사용자로부터 거리가 멀어짐에 따라 지수함수적으로 감소하거나 그와 유사한 방식으로 감소할 수도 있다.
또한, 사용자(102)와 사용자(110, 114)에 의한 사용량으로부터 제공되는 득점이 다른 전통적인 득점 기술과 섞일 수도 있다. 예를 들면, 방대한 공개 문서 뭉치로부터 발생된 전형적인 사전이 득점의 기본으로서 이용된 다음, 이것이 사용자(102)의 사용량 데이터 및 사용자(110, 114)의 사용량 데이터와 조합될 수도 있다. 사전, 예컨대 사전(104)내의 단어와 어구에 등급을 매기는 신호들의 다른 조합들이 채용될 수도 있다.
일단 소셜 네트워크로부터 신규 엔트리와 값들이 사용자(102)의 사전(104)에 통합되면, 사전(104)은 사용자에 의해 입력된 텍스트에 대한 명확화를 제공하는데 이용될 것이다. 명확화는 사용자(102)의 입력에 근거하여 사용자(102)에게 대안적인 선택권을 제공할 수 있다. 예를 들면, 2-2-7을 입력한 사용자는 "Carla"라는 단어나 혹은 "baseball"이라는 단어를 완성하고자 할 수 있다. 사전의 엔트리가 그 문자들에 따라 계층적으로 조합될 수 있고, 따라서 사용자가 타이핑할수록 사용자가 누르지 않은 키에 대응하는 해답이 잠재적인 해답 집합들 중에서 좁혀질 것이다. 이후 나머지 후보 해답들이 사전(104)내의 그들 점수에 따른 순서로 사용자에게 제공될 수도 있다. 이러한 명확화는, 이미 눌려진 키를 통해 사용자의 의도를 추론할 것이 시스템에게 요구되는 상황인 제한된 키보드 상황과, 이미 행해진 엔트리[엔트리는 (사용자가 일반 키보드를 가진 경우) 확실할 수도 있고 모호할 수도 있음]로부터 시스템이 추정하는 것을 필요로 하는 상황인 텍스트 입력 완성 상황 모두와 관련해 발생할 수 있다. 사용자가 계속 키를 눌러갈수록, 각각의 키가 눌려진 이후에 제안되는 해답들은 유사한 방식으로 갱신되면서 가능성 있는 해답들의 집합을 더욱 좁혀갈 수 있다.
몇몇 실시예에서, 사용자(102)는 특별한 단어가 디스플레이되는 것을 원하지 않음을 자신의 장치에 신호할 수 있다. 반대로, 사용자는 텍스트 입력 박스 아래에 드롭 다운(drop down)으로 디스플레이되는 리스트로부터 단어를 선택할 수 있고, 그러면 사용자의 장치는 선택된 단어를 이용해 입력을 완성할 수 있을 것이다.
만약 사용자(102)가 다른 것 위에 있는 한 단어를 선정하면, 이러한 선택은 사전(104)내의 두 엔트리의 값에 영향을 미칠 수 있다. 몇몇 실시예에서, 하나의 엔트리(선택된 엔트리)는 자신의 연관 값을 증가시킬 수 있다. 마찬가지로, 다른 엔트리는 자신의 연관 값을 감소시킬 수 있다. 사용자(102)의 이러한 결정은 사전(104)내의 다수 엔트리(106)와 연관된 값들에 영향을 미치지 않을 수도 있다.
사전내의 용어의 등급은 전술한 내용에 덧붙여서 혹은 전술한 내용이 아닌 소셜 네트워킹 기반 메커니즘에 의존할 수 있다. 예를 들어, 사전내의 용어와 값들을 연관시키는 프로세스는 회원의 인기도 혹은 특별한 회원과 다른 회원 사이의 접속회수를 결정함으로써 발생할 수도 있다. 예를 들어, 만약 마이스페이스(MYSPACE)에서 2백만 이상의 1차 접속을 갖는 가장 인기있는 회원인 Tila Tequila가 자신의 사전에 높은 값과 연관된 "MTV"를 갖는다면, 그녀에게 링크된 접속자들은, 20개의 1차 접속을 갖는 어떤 친구가 동일한 값과 연관된 "MTV"를 갖는 경우보다 더 높은 값과 연관된 "MTV"를 가질 수 있다.
마찬가지로, 엔트리와 연관된 값은 사용자(102)와의 접속 차수에 따라서 좌우될 수 있다. 예를 들어, 만약 사용자(102)가 1차 접속(110)과 공동인 엔트리를 갖는다면, 이 단어와 연관된 값은, 사용자(102)가 2차 접속(114)과 공동인 엔트리를 가질 때보다 더 증가할 수 있다. 비슷하게, 예컨대 사용자(102)의 프로파일에 입력된 공유 그룹, 네트워크, 학교, 음악이나 비디오처럼 사용자들 사이의 공통성(commonality)과 접속관계의 프로파일은 그들 각각의 사전에 공유된 단어와 연관된 값의 증가를 결정할 수 있다. 다른 실시예에서, 사전들의 단어와 연관된 값들의 증가는 회원들이 소셜 네트워크 내에서 갖는 연락처의 분량에 의존할 수 있다. 예를 들어, 만약 회원이 자신의 친구들이나 접속관계들중 하나와 관련한 블로그를 읽고 주석을 달거나, 혹은 접속 월(connection's wall)을 쓰면, 사용자의 사전내의 접속관계 사전에서 단어와 연관된 값이 증가할 수 있다.
사용자(102)가 수작업으로 자신의 사전(104)에서 용어를 삭제 혹은 변경하는 것이 허용될 수도 있다. 몇몇 실시예에서, 사용자는 사전에 액세스하여 엔트리와 관련한 값을 변경할 수 있다. 예를 들어, 만약 사용자(102)가 "Grey's Anatomy"를 좋아하지 않는다면, 이 사용자는 자신의 소셜 네트워크의 많은 회원이 그들의 소셜 네트워킹 페이지에서 그 용어를 많이 참조한다는 이유만으로 자신의 사전에 나타나는 그 프로그램과 관련한 용어의 값을 최하위로 설정하도록 변경할 수 있다.
또한 사전은 공유될 수 있다. 예를 들어, 기업은 자신의 고용인들의 페이지로부터 데이터를 이용해 구축된 공통 사전을 유지할 수 있을 것이다. 따라서 이러한 공유 사전은 고용인들이 예컨대 그 기업내의 사람들의 특별한 약어(acronym)나 이름처럼 회사의 고유한 구성을 고려한 텍스트 명확화에 언제든지 액세스할 수 있게 할 것이다. 선택적으로, 사전들은 특별한 소셜 네트워크와 관련해 생성될 수도 있고, 그 네트워크의 각 회원에 대해 텍스트 입력 명확화를 제공하도록 될 수도 있는데, 이때 초기 사전은 그 그룹내의 개별적인 사용량을 더 잘 반영하도록 다소간 변경될 수도 있다.
또한 사용자(102)는 다수의 사전을 가질 수 있다. 예를 들어, 사용자는 공개 사전을 가질 수 있고, 따라서 소셜 네트워크내의 모든 사전은 사용자의 공개 사전, 비공개 사전 및 준 비공개 사전(semi-private dictionary)(예컨대 제 1 레벨 친구들만 액세스할 수 있음)에 대해 영향을 주고받을 수 있다. 사용자(102)는 또한 애플리케이션 특정 사전(application-specific dictionary)을 가질 수도 있다. 예를 들어 사용자가 이메일을 타이핑하고 있을 때, 이들은 LOL이나 OMG 같은 용어를 타이프할 가능성이 훨씬 많고, 그러므로 이런 용어들은 사용자가 이메일을 이용할 때 더 높은 순위를 가질 것이다. 반대로, 사용자가 서치(search)를 실행할 때에는 이런 용어들을 결코 사용하지 않을 것이고, 따라서 예컨대 특별한 서치 엔진에 명령된 최근 서치 활동을 고려한 사전처럼 보다 포괄적인(사용자 특정이 아닌) 사전이 이런 상황에서는 사용됨으로써, 사용자는 최근에 다른 사용자에게 인기있는 서치 용어인 해당 용어들을 제안된 용어 리스트의 최상부에서 볼 가능성이 있다.
도 2a는 소셜 네트워킹 데이터를 이용하는 사용자 사전을 갱신하는 프로세스(200)의 일 예를 도시하는 흐름도이다. 프로세스(200)는 일반적으로 사용자의 식별정보(user's identification)를 수신하고, 사용자의 소셜 접속관계를 식별하고, 사용자의 키워드(user's keyword)를 산출하고, 용어에 가중치를 적용하며, 사용자에게 속한 사전을 갱신하는 것을 수반한다. 일반적으로, 프로세스(200)는 사용자와 관련한 소셜 접속관계를 결정하고, 사용자와 그들의 소셜 네트워크 회원들에 의해 사용되는 단어들을 식별하며, 사용자와 그들의 소셜 네트워크 회원들이 해당 단어를 사용하는 빈도에 근거하여 해당 단어에 가중치를 적용하고, 그에 따라 사용자의 명확화 사전을 갱신하는 것을 수반한다.
초기 단계에서, 프로세스(200)는 사용자의 식별정보를 수신한다(202). 예를 들어, 사용자는 자신의 식별정보를 서버에 보내기 위해 소셜 네트워킹 사이트로 신호를 보낼 수 있다. 식별정보는 다양한 방법으로 얻을 수 있는데, 예컨대 사용자의 컴퓨팅 장치상의 쿠키로부터 식별정보를 얻거나, 사용자가 사용자 이름과 패스워드를 제공하거나, 혹은 다른 공지의 메커니즘으로부터 얻을 수 있을 것이다.
이후, 프로세스(200)는 사용자의 소셜 네트워크 접속관계를 식별한다. 예를 들어, 소셜 네트워킹 서버는 누가 사용자와 1차 접속관계인지에 관한 데이터를 "친구" 리스트로 저장할 수 있다. 또한 소셜 네트워킹 서버는 사용자가 예컨대 사용자의 학급친구인 회원이나 사용자와 공통 관심사를 갖는 회원, 혹은 사용자와 공통 그룹(들)내의 다른 회원일 수 있는 다른 소셜 네트워킹 회원과 공통인 링크에 관한 데이터를 저장할 수 있다.
다음, 프로세스(200)는 사용자의 키워드를 산출한다(206). 이러한 키워드는 사용자의 콘텐츠(예컨대 이메일이나 사용자가 주고받은 텍스트메시지, 혹은 사용자와 관련한 소셜 네트워크 프로파일 페이지 같은 웹 페이지 등)에 나타나는 단어 혹은 어구일 수도 있고, 또는 사용자의 소셜 네트워크와 관련한 통신이나 페이지상의 콘텐츠처럼 사용자와 연관될 수 있는 다른 단어나 어구일 수도 있다. 예를 들어, 사용자의 친구들도 각자 그들 자신의 키워드를 가질 수 있다. 사용자의 친구들이 식별된 이후에, 각 친구의 키워드가 결정될 수 있고 사용자의 키워드와 비교될 수 있다. 몇몇 실시예에서, 사용자도 동일한 키워드를 갖는지 결정하기 이전에 동일한 키워드를 갖는 다수의 친구들이 존재하는지를 결정하기 위해 친구의 키워드는 서로 비교될 수 있다.
이후, 가중치가 사용자의 키워드에 적용(208)되는데, 이 가중치는 키워드를 식별하는 프로세서의 일부로서 적용될 수도 있다. 일 예로, 각각의 사용자는 예컨대 모든 영어 사용자에게 일반적으로 적용될 수 있는 사전처럼 단순히 일반적인 그룹 사전인 디폴트 사전으로 시작할 수도 있다. 예를 들어, 디폴트 사전은 방대한 공개 서류 뭉치나 혹은 특별한 조직의 서류의 단어 사용 빈도를 분석함으로써 생산할 수 있다. 이 디폴트 사전의 단어는 서류 뭉치에서 상위 X에 존재하는 단어들(여기에서 X는 사전을 저장하는데 이용 가능한 공간에 의해 결정될 수 있음)일 수 있는데, 서류 뭉치 속에서의 상대적인 출현 빈도를 반영한 가중치와 함께이다. 전술한 것처럼, 가중치는 다른 단어와 조합하여 단어의 출현 빈도를 반영할 수도 있다. 다음, 사용자와 관련한 특별한 서류(예컨대 텍스트 메시지, 이메일 및 웹 페이지)가 분석될 수 있을 것이고, 이 서류내의 단어들은 디폴트 사전에 추가되고/되거나 디폴트 사전의 단어의 가중치를 변경할 수도 있다. 사용자의 개인 파일에 단어가 존재함으로써 생성된 가중치는 일반적인 사용량으로부터 생긴 가중치보다 훨씬 더 클 수 있을 것인데, 왜냐하면 사용자가 자신의 초기 사용량 패턴의 일부를 반복할 것으로 추정되기 때문이다. 이후, 가중치는 전술한 방식처럼 사용자의 1차 소셜 네트워크내의 다른 사용자의 사전을 둘러봄으로써 더욱 재정비될 수 있으며, 따라서 첫번째 사용자의 사용량이 단어의 점수에 가장 큰 영향을 미치고, 친구의 사용량은 덜 영향을 미쳐서 소셜 네트워크에서 사용자로부터 멀어지는 친구일수록 그에 의한 사용량의 영향은 점점 줄어든다. 몇몇 실시예에서, 가중치는 표준 언어 사전과 비교될 수 있다. 예를 들어, 만약 사용자의 소셜 네트워크가 "their"라는 단어를 "thier"로 적는 사례가 있다면, 영어 사전의 "their"라는 단어의 오기에 근거하여 표준 영어 사전에 대한 가중치가 재정비될 수 있다.
단계(210)에서, 사용자에게 속한 사전이 갱신된다. 이러한 갱신은, 예컨대 서치 엔진 같은 정보원으로부터 (즉, 서치 질의에서 최근에 이용된 용어를 제공함으로써) 입수된 신규 키워드의 추가와, 사전내의 기존 혹은 신규 단어에 대한 가중치 변경을 수반할 것이다.
또한, 사용자의 사전이 주기적으로 혹은 지속적으로 갱신될 수도 있다. 예를 들어, 사용자가 텍스트 메시지를 타이핑하거나 서치 질의를 제출할 때마다, 제출하는 용어가 사용자의 사전에 추가될 수도 있고, 혹은 사용자가 이 용어를 곧 다시 반복할 가능성이 있다는 가정하에 용어의 순위는 극적으로 증가될 수 있다. 또한, 시스템은 소셜 네트워크내의 다른 사용자를 위한 사전 데이터에 예정에 따라(예를 들면, 매일 밤) 액세스하여, 네트워크의 모든 사용자와 관련한 사전을 갱신할 수도 있다. 이렇게 갱신된 사전 데이터는 시스템에 저장될 수 있고, 선택적으로 사전이 원거리 장치상에 저장되는 시스템에서는, 다음에 사용자가 자신의 원거리 장치에 로그 온 할 때에 사전 데이터가 동기화될 수 있을 것이다.
이런 식으로, 프로세스(200)는 사용자의 소셜 네트워크의 회원에 대한 데이터도 고려함으로써 명확화 사전이 사용자에 맞게 만들어지는 일 예를 제공한다. 이런 데이터는 특별히 유용한데, 이것이 많은 사람에 대한 일반적인 사용량 데이터보다 훨씬 더 많이 해당 사용자에게 특정되기 때문으로, 이런 데이터는 사용자 단독의 사용량 데이터보다 더 방대하고 상세하다. 결과적으로, 사실상 사용자의 사전에 대한 자동 갱신이 제공될 수 있어서, 사용자가 자신의 친구들과 신호를 다시 진행하면서 이미 이용중이었던 신규 단어를 사용하기 시작할 때에는 이미 데이터가 사전에 존재한다.
도 2b는 소셜 네트워킹 데이터로 사용자 사전을 갱신하는 프로세스(218)의 일 예를 도시하는 흐름도이다. 이 프로세스(218)는 컴퓨팅 장치에 서지 질의를 입력하고 있는 사용자에게 자동 텍스트 완성 기능(predictive textual completion)을 제공하는 일 예를 보여준다. 사용자에게 보이는 자동 완성 정보(predictive information)는 사용자의 소셜 네트워크의 회원에 의한 단어 사용량에 부분적으로 근거하여 선택된다.
초기 단계에서, 프로세스(218)는 질의를 수신한다(220). 예를 들어, 사용자는 서치 엔진, 다시 말해서 범용 웹 서치 엔진 같은 서치 엔진이나 혹은 소셜 네트워킹 웹 사이트용 서치 툴(search tool) 같은 전용 서치 엔진에 질의를 제출할 수 있다. 이러한 제출이나 다른 제출은, 사용자의 컴퓨팅 장치에 입력되는 텍스트를 위해 텍스트 명확화의 정확도를 개선하는 데이터를 명시적이든 암시적이든 제공해달라고 사용자 원함을 시스템에게 나타내줄 것이다.
이후, 프로세스(218)는 사용자가 유효한지를 결정한다(222). 다시 말해서, 시스템이 다수의 회원에 대해 정보를 저장할 수 있는데, 이 프로세스(218)는 사용자가 이런 회원이라는 것을 확인할 수도 있다. 예를 들면, 사용자는 사이트에 수작업으로 로깅(logging)하거나 혹은 자신의 컴퓨터가 자동으로 정보를 서버로 전송함으로써 쿠키나 다른 유사 메커니즘으로부터 자신의 패스워드를 소셜 네트워킹 서버나 다른 형태의 서버로 전송할 수 있다.
일단 프로세스(218)가 사용자가 유효하다고 확인하면, 이 프로세스(218)는 사용자와 연관된 소셜 정보를 식별한다(226). 예를 들면, 서버 시스템은 예컨대 사용자의 프로파일, 사용자의 사전, 사용자의 블로그, 사용자의 소셜 접속관계, 그리고 사용자의 그룹 같은 사용자 특정의 소셜 정보를 저장할 수 있다. 다른 실시예에서, 소셜 정보 일부 혹은 모두가 사용자 장치에 저장될 수 있고, 사본들은 사용자 장치와 서버 시스템 사이에 저장될 수 있고, 이 사용자 장치와 서버 시스템 사이에서 동기화될 수 있다.
사용자에 대한 소셜 정보가 식별되면서, 프로세서(218)는 소셜 네트워크와 관련한 키워드를 결정한다(228). 예를 들어, 소셜 네트워킹 서버는 사용자에게 소셜 접속된 사람들에 대응하는 문서들(예컨대 웹 페이지, 이메일 혹은 텍스트 메시지)에서 단어를 검색할 수 있다. 이러한 키워드는 만약 이들이 기존에 사전에 존재하지 않는다면 사용자의 사전에 추가될 수도 있다.
키워드의 리스트가 편집된 이후에, 비록 가중치가 키워드의 식별과 동시에 발생하더라도 프로세스(218)는 각각의 키워드와 연관된 가중치를 결정한다(230)(그리고 사전에 이미 있는 용어들은 적용된 가중치를 변경할 수도 있다). 예를 들어 숫자로 나타낸 값이 키워드에 대해 배정될 수 있다. 전술하였듯이, 각 키워드와 연관된 값을 결정하는데 다양한 실시예가 이용될 수 있다.
다음, 프로세스(218)는 예컨대 사용자 사전으로 사용하기 위해 키워드와 연관 가중치를 식별함으로써, 사전을 위한 용어 분류와 관련한 데이터를 반송한다(232). 그 후 프로세스(218)는 신규 소셜 데이터로 사전을 갱신한다(234). 예를 들어, 서버는 사용자의 소셜 접속관계를 이용해 산출된 신규 데이터를 이용하여 사용자 사전을 편집할 수 있다.
사용자의 사전이 편집 완료되면, 프로세스(218)는 사전의 갱신을 유발했던 원본 입력 다음의 사용자 입력을 수신한다(236). 예를 들어, 사용자는 명확화된 입력이라고 생각하는 숫자들을 입력할 수 있다. 예를 들면, 사용자가 숫자 키패드에서 2-2-7을 입력하면, 애플리케이션은 각 숫자에 글자를 배정할 수 있는데, 예를 들면 숫자 키패드의 숫자 2에 대해 A, B 혹은 C를 배정할 수 있다. 또한 사용자는 QWERTY 키보드를 이용해 글자를 입력할 수 있다. 마찬가지로, 스타일러스에 의해 입력된 형상에 근거하여 글자를 결정할 수 있는 프로그램에서는 사용자가 스타일러스로 글자를 입력할 수 있다. 이후에 논의될 또 다른 실시예에서는 애플리케이션이 발화어(spoken word)를 사용자 입력으로 사용할 수 있다.
다음, 프로세스(218)는 사전으로 사용자 입력을 명확화한다. 명확화는, 예를 들면, 사용자에 의한 엔트리와 부합하는 사전에서 모든 후보 용어를 식별한 후, 각각의 가능성 있는 후보에 등급을 매김으로써 발생할 수 있을 것이다. 이러한 명확화는 사용자가 신규 문자를 입력할 때마다 유사한 방식으로 갱신될 수 있다.
명확화는 서로 다른 장치들에서 발생할 수도 있다. 예를 들어, 명확화 서버가 사전을 이용하여 입력을 명확화할 수 있고, 사용자의 컴퓨팅 장치로 갱신 정보를 전송하여, 제안된 단어 리스트가 사용자에게 신속하게 나타나게 할 수도 있다. 또한 명확화는 사용자의 컴퓨팅 장치에서 부분적으로 일어날 수 있는데, 이것은 응답 시간을 단축시키지만 어떤 환경에서는 사전의 사이즈를 제한할 가능성도 있다. 예를 들어, 사용자의 장치는 사용자가 자신의 장치에 최근에 입력한 단어를 추적하여(사전 정의된 시간이 지나면 이 단어를 철회할 수도 있음), 이런 단어를 제안된 단어 자동 완성의 드롭 다운 리스트의 상부에 제공할 수도 있는 반면에, 리스트내의 나머지 단어들은 서버에서 명확화 사전을 이용해 제공될 수도 있다.
단계(240)에서, 프로세스(218)는 자동 완성을 디스플레이할 수 있다. 예를 들어, 언급했듯이, 애플리케이션은 사용자의 사전으로부터 키워드 리스트를 그 연관 값의 순서로 디스플레이할 수 있으며, 이때의 디스플레이는 사용자가 현재 타이핑하고 있는 영역 바로 아래 혹은 바로 위에 이루어진다. 다른 실시예에서는, 애플리케이션이 최고 연관값을 갖는 키워드를 디스플레이할 수 있는데, 이때의 디스플레이는 사용자가 현재 타이핑하고 있는 텍스트박스 건너 우측에 이루어진다.
단계(242)에서, 프로세스(218)는 제안된 완성 기능이 사용자에 의해 수락되었는지 결정한다(242). 예를 들어, 사용자는 제안된 완성 기능을 (예컨대 엔터를 누르거나 마우스 버튼을 클릭함으로써) 명료하게 수락할 수 있다. 다른 실시예에서는, 제안된 완성 기능이 암시적으로 수락될 수 있는데, 예를 들면, 사용자가 특정 단어의 타이핑을 끝냈음을 나타내기 위해 스페이스를 타이핑함으로써 암시적으로 수락될 수 있다.
만약 사용자가 제안된 완성 기능을 수락하고 싶지 않다면, 사용자는 간단히 모든 제안들을 무시하고 계속 타이핑칠 수 있다. 또한 사용자는 삭제 키를 눌러 자신의 타이핑에서 한 개 문자를 거슬러갈 수 있으므로, 이렇게 새로 더 짧아진 입력 문자열과 관련하여 제안되는 해답도 디스플레이할 수 있어야 한다. 사용자가 제안된 완성 기능을 수락하고 싶지 않은 상황에서는, 사용자가 신규로 제안된 완성 기능을 수락할 때까지 혹은 사용자가 사전내의 어떠한 키워드와도 부합하지 않는 단어를 입력할 때까지 프로세스(218)는 단계(236)로 복귀한다.
일단 사용자가 자동 완성 기능이나 제안된 완성 기능을 수락하거나, 혹은 신규 단어를 입력하면, 프로세스(218)는 신규 데이터로 사전을 갱신한다(244). 예를 들어, 수락된 자동 완성 기능은 키워드와 연관된 값을 상수만큼 증가시킬 수 있다. 예를 들어, 사용자가 선택한 용어와 관련한 상대적인 가중치는 사용자의 사전에서 증가될 수 있고/있거나 이 선택된 용어는 사용자가 최근에 입력한 별개의 용어 그룹에 추가될 수 있는데, 이때 해당 그룹은 제안된 완성 기능과 관련한 약간 나중의 리스트의 상부에 위치될 수 있을 것이다. 이러한 리스트는 감쇠 시간(time decay)과 연관될 수도 있어서, 사용자에 의해 사용된 용어들은, 사용자가 이들을 한 번 사용한 뒤 다시 사용하지 않을 경우에, 리스트의 상부에서 사라진다.
일 실시예에서, 사용자는 사용자 장치에 데이터를 입력하는데 발화어(spoken words)를 사용할 수 있다. 사용자가 각각의 소리를 어떤 단어와 연관시키는지 결정함에 있어 명확화는 애플리케이션을 도울 수 있다. 사용자는 자신의 장치에 발화어를 계속 입력함으로써 자동 완성 기능을 암시적으로 수락할 수 있다. 또한 사용자는 "yes" 혹은 "correct" 같은 음성 명령어를 통해 자동 완성 기능을 명시적으로 수락할 수 있다. 다른 실시예에서, 사용자는 키패드나 마우스 동작처럼 비언어적인 수단을 통해 단어를 수락할 수도 있다.
도 3a는 클라이언트(302)와 서버(304) 사이의 상호 작용(300)의 예를 도시하는 순차도(sequence diagram)이다. 여기에 도시된 프로세스는 도 2a에 도시된 것과 비슷한데, 클라이언트 및 서버 시스템이 컴퓨터 사용자에게 명확화 정보를 제공함에 있어 상호 작용할 수 있으며, 사용자가 속한 소셜 네트워크의 회원에 의한 단어 사용량을 이용해 명확화 정보를 갱신할 수 있는 예시의 방식을 더 명확하게 보여준다. 일반적으로, 전술한 상호 작용은, 클라이언트가 서버에게 사전 정보를 요구하는 것과, 서버가 소셜 네트워크내의 사용자 접속관계에 근거하여 사전 정보를 검색하는 것과, 서버가 사전과 관련한 클라이언트에게 갱신을 제공하는 것을 수반한다. 클라이언트는 갱신된 사전을 이용해 단어 완성 명확화를 개선할 수 있다.
도면에서, 클라이언트(302)는 처음에 사전, 예컨대 사용자의 개인용 사전을 액세스하라는 요구를 서버(304)에게 전송한다(306). 다음, 서버(304)는 소셜 네트워크내에서의 사용자의 접속관계를 식별하고(308), 이 접속관계에 근거해 키워드를 산출한다(310). 몇몇 실시예에서, 서버(304)는 각각의 사람들의 데이터를 통해 서치를 수행함으로써 사용자에게 소셜 접속된 사람들과 관련한 키워드를 결정할 수 있다. 예를 들어, 소셜 네트워크의 회원은 프로파일을 가질 수 있고, 서버(304)는 키워드를 결정하기 위해 이 프로파일의 텍스트나 다른 데이터를 자세히 살피며 분석할 수 있다.
다음, 서버(304)는 키워드에 근거하여 용어에 가중치를 적용하고(312), 신규 사전 데이터나 추가 사전 데이터를 생성하며, 이 신규 사전 데이터를 클라이언트에게 전송한다.
서버(304)는 키워드를 결정할 수 있고, 여러 가지 요인을 이용해 각각의 키워드에게 가중치를 적용할 수 있다(312). 예를 들면, 서버(304)는 단어가 입수되는 사용자의 소셜 네트워크 회원과 사용자 사이의 이격 정도(degree of separation)에 근거하여 용어에 가중치를 적용할 수 있다. 또한 가중치는 사용자가 갖는 친구의 수에 근거할 수도 있는데, 이것은 선택 사항일 수도 있다. 마찬가지로, 가중치는 사용자와 연관된 데이터와 친구의 데이터 사이의 유사성에 근거할 수도 있다. 또한 가중치는 그들의 접속관계 데이터에서 동일한 키워드를 갖는 친구들의 수에 근거할 수 있다.
다음, 서버(304)는 가중화된 용어를 가져와서 이 정보를 사전 데이터로 포맷하고, 이 사전 데이터를 클라이언트(302)에게 전송한다(314). 클라이언트(302)는 이 신규 사전 데이터를 이용하여 사용자 사전을 갱신할 수 있다(316). 예를 들어, 클라이언트(302)는 자신에게 이미 저장되어 있는 기존의 사전에 신규 사전 데이터를 추가할 수 있다. 몇몇 실시예에서, 신규 용어는 이전 사전에 추가될 수 있다. 다른 실시예에서는, 신규 사전 데이터가 이전 사전을 대체할 수 있다. 또 다른 실시예에서는, 클라이언트(302)가 서버로부터 원본 사전에 이미 존재했던 해당 용어에 새로운 가중치를 적용할 수 있다. 다른 실시예에서, 사전은 서버(304)에 계속 남아있을 수 있고, 데이터는 클라이언트(302)와 서버(304) 사이에서 사용자 유형으로 전달될 수도 있어서, 클라이언트(302)에 의해 제안된 단어 선택안으로서 제시된다.
도 3b는 클라이언트(348)와 명확화 서버(350)와 소셜 서버(352) 사이의 상호 작용(320)의 예를 도시하는 순차도(sequence diagram)이다. 이 예에서, 서로 다른 전문화된 서버 그룹 사이의 특별한 상호 작용은 명확화 엔진과 소셜 데이터를 공유하는 시스템을 구현하는 일 예를 제공하는 것으로 도시되어 있다. 특히, 소셜 서버(352)는 일반적인 소셜 네트워킹 시스템의 일부일 수 있으며, 애플리케이션 프로그래밍 인터페이스(API)를 통해 명확화 서버(350)와 통신할 수도 있으므로, 명확화 서버는 사용자와 관련한 명확화 사전을 개발 및 갱신함에 있어서 사용자의 소셜 네트워크와 이 네트워크 회원에 의한 단어 사용량의 정보를 얻을 수 있다. 이런 방식으로, 사용자가 시스템에 텍스트를 입력하는 프로세스중일 때 명확화 서버(350)는 더 쉽게 그리고 더 정확하게 사용자의 의도를 예측할 수 있다.
예시의 프로세스에서, 클라이언트(348)는 초기에 사전 데이터와 관련한 요구를 명확화 서버(350)에 전송한다(322). 명확화 서버(350)는 예컨대 클라이언트(348)에 저장된 쿠키로부터의 정보에 의해 클라이언트(348)와 연관된 사용자를 식별한다(324). 이후, 명확화 서버(350)는 소셜 서버(352)로부터 소셜 정보를 요구한다(326). 명확화 서버는 클라이언트(348)를 이용하고 있는 사용자에게 제공될 사전 데이터를 개발 또는 갱신하는 방대한 프로세스의 일부로서 동작한다. 예를 들어, 명확화 서버(350)는 명확화 사전에서 단어 혹은 어구에 등급을 매길 때 예컨대 온라인 뉴스 정보원에서의 단어 사용량, 최근 서치 엔진에서 대중의 질의에서의 단어 사용량, 사용자 자신에 의한 단어 사용량처럼 다수의 요인을 고려할 수 있다. 소셜 서버(352)에 요구를 제기하는 것은 또 다른 메커니즘일 수도 있는데, 이런 메커니즘에 의하면 클라이언트(348)의 사용자에 의해 가능한 장래의 사용량을 반영하는 데이터를 취득할 수 있을 것이다.
이후, 소셜 서버(352)는 클라이언트(348)의 사용자와 관련하여 소셜 네트워크를 식별하고(328), 사용자의 소셜 네트워크의 회원과 연관된 문서를 분석함으로써 소셜 네트워크에 대한 키워드를 결정하며(330), 키워드에 대해 가중치를 결정(332)한 뒤, 이 소셜 데이터를 명확화 서버(350)에 반송한다(334). 소셜 네트워크의 사용자들의 사생활을 보호하기 위해 데이터는 다양한 형태로 취해질 수 있다. 예를 들면, 반송된 데이터가 단어와 이 단어와 연관된 순위 정보만을 포함할 수도 있고, 결과적으로 명확화 서버(350)는 소셜 네트워크의 여러 회원들중 누가 사용했던 단어인지 알 수 없게 할 수 있을 것이다. 또한, 소셜 서버(352)는 사용자의 소셜 네트워크의 회원들의 식별정보들에 대해 비밀을 유지할 수 있을 것이다.
다음, 명확화 서버(350)는 커스텀 사용량 데이터(custom usage data)를 이전의 명확화 사전과 통합한다(336). 예를 들어, 이전의 사전은 일반적인 영어로 이루어지는 사용자의 일반적인 사용량에 근거하여 단어와 어구에 등급을 매긴 범용 사전일 것이다. 커스텀 사용량 데이터는, 사용자의 소셜 네트워크 회원들에 의한 사용량 이력을 반영한 데이터를 포함하도록 사전에 대해 다양하게 갱신된 정보를 포함할 수 있다. 커스텀 사용량 데이터를 통합한 이후, 명확화 서버(350)는 신규 사전 데이터를 클라이언트(348)로 전송한다(338). 도면에 도시된 실시예에서, 클라이언트(348)는 사전을 갱신하고, 사용자로부터 입력을 수신하고, 자동 완성 기능을 디스플레이한다(344). 이런 식으로, 현재 서치 질의를 입력하고 있는 일반 사용자에 의해 추론되는 대로, 뉴스에서 최근 이벤트로 결정되는 대로, 그리고 사용자의 소셜 모임에 의한 단어 및 어구의 사용량으로 결정되는 대로 클라이언트 장치는 자신의 사용자에게 사용자 자신의 사용량에 좀 더 부합하는 텍스트 엔트리 자동 완성 기능을 제공할 수 있다.
클라이언트(348)는 자동으로 명확화 서버에게 사전 데이터를 요구할 수 있다(322). 예를 들어, 클라이언트(348)는 사용자가 클라이언트(348)의 특정 애플리케이션을 열 때마다 요구를 전송할 수 있다. 다른 실시예에서, 사용자는 자신의 컴퓨팅 장치에 사전 데이터를 갱신하라는 요구를 전송할 수 있다. 반대로, 클라이언트(348)가 예컨대 일 단위로, 주 단위로 혹은 월 단위로 주기적으로 사전 데이터에 대해 요구를 전송할 수도 있다.
도 4a는 사용자 입력을 명확화하는 사전을 갱신하는 시스템(400)의 개략도이다. 일반적으로, 시스템(400)은 명확화 사전(들)을 생성 혹은 갱신하는데 이용되는 정보 형태의 소셜 접속관계를 소셜 네트워크의 회원인 여러 사용자가 입수하는 것을 허용한다.
사용자는 예컨대 셀폰(402), 랩탑 컴퓨터(410), 스마트폰(412) 같은 다양한 메커니즘으로 시스템과 상호 작용할 수 있다. 셀폰(402)은 제약이 있는 키보드를 포함하므로, 사용자가 키를 누를 때 시스템이 사용자가 입력하고자 하는 특정 문자를 결정할 수 없다. 따라서 이러한 엔트리에는 명확화가 도움이 될 것이다. 반대로, 랩탑 컴퓨터(410)와 스마트폰(412)은 완전 QWERTY 키보드를 가질 것이지만, 사용자가 단어 또는 어구의 일부만을 입력했을 때에는 사용자의 텍스트 엔트리가 모호할 수 있을 것이다. 이러한 상황에서 사용자의 텍스트 엔트리의 명확화는 사용자가 입력 프로세스중에 있는 단어를 완성시킴으로써 도움이 될 것이다.
명확화 서버(406)는 여러 원거리 장치상에서 사용자에 의해 입력되는 텍스트를 명확화하는 것을 도울 것이다. 서버(406)는 예를 들면 명확화 사전을 위한 데이터 그 자체를 장치에 제공할 수도 있고, 혹은 제안된 텍스트 엔트리 완성 기능을 사용자가 타이핑할 때에 네트워크(404) 건너 제공할 수도 있다. 명확화 서버(406)는 하나 이상의 서버를 포함할 수도 있고, 서치 엔진처럼 시스템의 일부일 수도 있으며, 이를 통해 사용자가 서치 질의를 페이지에 입력하는 것처럼 텍스트를 입력할 때 웹 페이지에 제안(suggestion)이 디스플레이된다. 비슷한 방식으로, 사용자는 텍스트를 툴 바의 서치 박스에 타이프할 수 있고, 툴바 애플리케이션은 명확화 서버(406)와 상호 동작하여 사용자가 타이프할 때 제안된 해답을 디스플레이할 수 있을 것이다.
이 예에서, 명확화 사전은 또한 소셜 서버(408)의 그룹과 통신하는데, 이 그룹은 명확화 서버(406)와 동일한 도메인(domain)의 일부일 수도 있고, 다른 도메인으로부터 유래한 것일 수도 있다. 전술한 바와 같이, 그리고 명확화 서버(406)와 소션 서버(408) 사이에 화살표로 대략 도시한 바와 같이, 명확화 서버는 사용자와 관련한 사전 데이터를 생성하는 프로세스에서 사용자의 소셜 네트워크에 대한 정보를 찾는다. 예를 들어, 명확화 사전은 소셜 서버(408)에게 사용자에 대한 식별정보를 보내고, 명확화 사전이 데이터를 합법적으로 요구하는 것임을 나타내는 자격증도 보낸다. 그러면, 소셜 서버는 사용자의 소셜 네트워크와 연관된 문서에서 단어를 식별하고 이 단어들에 가중치를 부여함에 있어서 전술한 것과 같은 동작들을 수행할 것이다. 이후, 소셜 서버(408)는 식별된 단어("a", "the", "and" 등등의 일반적인 단어는 제거하고)와 그 용어에 연관된 가중치로 이루어진 리스트를 명확화 서버(406)에게 되돌려 줄 것이다. 이렇게 반송된 정보는 사용자의 명확화 사전으로 만들어져서, 명확화 서버(406) 및/또는 장치(402, 410, 412)에 저장될 것이다.
도 4b는 컴퓨팅 장치에 데이터를 입력하고 있는 사용자에게 명확화를 제공하는 시스템(420)의 개략도이다. 이 시스템(420)은 시스템(400)과 유사하지만, 이 예에서는 특정 명확화 서버(426)에 초점을 맞추었다.
다시, 시스템(400)처럼 시스템(420)도 인터넷 같은 네트워크(424)를 통해 다수의 서버에 전자적으로 액세스할 수 있는 컴퓨터(422) 같은 원거리 장치를 포함한다. 웹 서치 서비스 같은 이러한 서비스는, 텍스트 엔트리를 신속하게 하면서 에러는 더 줄여주기 위해 사용자에 의한 텍스트 엔트리를 명확화하는 서비스에 의해 강화될 수 있다. 이 예에서, 명확화 서비스는 명확화 서버(426)에 의해 제공된다.
서버(426)는 사용자가 장치에 타이프할 때 예컨대 컴퓨터(422) 같은 사용자의 원거리 장치에게 명확화를 제공할 수 있는 다수의 성분을 포함한다. 예를 들어, 자동 완성 모듈(434)은 사용자가 타이핑하고 있는 것에 대한 정보를 수신하고, 사용자의 장치에 자동 완성 기능과 관련한 데이터를 반송한다. 모듈(434)은 사용자가 입력한 문자가 각각의 노드를 구성하는 트리 구조를 횡단하면서 동작할 수 있으며, 텍스트 엔트리에 대한 해답은 현재 노드 아래에 있는 트리내의 모든 단어들이다. 또한, 워드와 관련한 각각의 엔트리는, 사용자가 타이핑할 때 사용자에게 보여질 자동 완성 엔트리 리스트내에서 이 단어가 다른 가능성 있는 해답과 비교해 어떻게 디스플레이될 것인지를 결정하는 가중치를 포함할 수도 있다. 이러한 구조는 하나의 큰 문서 전체에서의 단어 사용량을 반영하는 마스터 사전(436)처럼 하나 이상의 사전으로 저장될 수도 있고, 사전이 전술한 방법으로 커스터마이즈(customized)되기 이전에 사용자와 관련한 시작 사전으로 이용될 수도 있다. 사용자 데이터(440)는 시스템내 여러 사용자와 연관된 다수의 파라미터를 차례로 저장하고, 각각의 사용자와 관련한 커스텀 사전 데이터도 저장할 수 있다. 커스텀 사전 데이터는 마스터 사전(436) 대신 이용될 수도 있고, 혹은 마스터 사전(436)을 강화하기 위해 이용될 수도 있다.
이러한 커스텀 사전은 사전 빌더(432)에 의해 구성될 수 있다. 사전 빌더는 사용자와 관련한 커스텀 사전을 구축함에 있어서 다수의 상이한 정보원에 의존할 것이고, 이때 정보원은 사용자가 가까운 장래에 타이프할 가능성이 있는 단어 혹은 어구를 반영하도록 선택된다. 일 예로, 최근의 신문 및 잡지 기사 같은 현재 이벤트 데이터(442)가 그 기사에서 사용되는 단어와, 그 단어의 사용 빈도를 결정하기 위해 분석될 수 있다. 이러한 "새로운(fresh)" 콘텐츠는 사용자가 서치를 실행할 때 자신의 장치에 타이프할 가능성이 있는 현 이벤트들의 쟁점들을 어느 정도 짐작으로 반영한다. 마찬가지로, 특히 엔트리가 확대되고 있는 트렌드일 경우, 컴퓨터(422)의 사용자가 다른 사람에 의해 만들어진 엔트리를 반복할 가능성이 어느 정도 있다는 가정하에, 사용자가 서치 엔진에 제출한 질의 용어를 식별하기 위해 질의 로그(query log)(438)도 분석될 수 있다.
또한 사전 빌더는 소셜 네트워크 데이터(430)처럼 외부 데이터 정보원에 의존할 수도 있다. 도면에는 소셜 네트워크 인터페이스(433)가 도시되어 있는데, 이것은 소셜 서버 그룹으로부터 단어 사용량을 반영하는 정보와 관련한 요구를 만들도록 프로그램된다. 이 요구는 공통 API에 따르는데, 이것은 명확화 서버(426)가 사용자의 식별정보만을 처리하여 식별할 것을 요구한다. 소셜 서버는 전술한 것과 같은 프로세스를 실행할 수 있는데, 사용자의 소셜 네트워크(430)와 관계있는 데이터, 예컨대 사용자의 명확화 사전에 추가되도록 포맷된 데이터를 반송시킬 수 있고, 이때 데이터는 사용자의 소셜 네트워크에 의한 사용량을 반영한다. 짐작하건대, 친구들에 의한 사용이 사용자에 의한 장래의 단어 사용을 최소한 어느 정도 자동 완성할 것이다.
이런 식으로, 시스템(420)은 사용자에게 커스터마이즈된 텍스트 엔트리 지원을 제공할 수 있다. 커스터마이제이션(customization)은 최근 뉴스 기사와 서치 질의처럼 시간적인 정보를 다루지만, 사회적인 것을 목표로 할 수도 있어서 다른 가능한 방법들보다 훨씬 더 정확한 명확화를 제공할 수 있다.
일부 실시예에서, 텍스트 명확화는 컴퓨터(422)로부터 데이터를 이용하여 생성할 것이다. 예를 들어, 사용자는 컴퓨터(422)상에 저장된 단어 처리 문서, 인스턴트 메시지, 영화, 연락처, 달력 아이템 같은 파일을 가질 수 있다. 이러한 아이템에 포함된 데이터는 데이터가 컴퓨터(422)와 명확화 서버(426) 사이에 공유될 때(예컨대 컴퓨터(422)가 명확화 서버(426)와 동기화될 때) 명확화 서버(426)에 추가 데이터를 제공할 것이다. 일 예로, 만약 달력이 "Smantha's Birthday" 아이템을 포함하는 경우, 용어 "Samantha's" 와 "Birthday"가 사용자 데이터(440)에 추가될 것이다. 마찬가지로, 사용자의 브라우징 이력도 데이터로서 이용될 수 있다. 예를 들어, 만약 사용자의 캐시된(cached) 데이터가 espn.com baseball 파일을 포함하면, 텍스트, 이미지 혹은 파일명에서 단어 "baseball"의 사용은 사전 빌더(432)에 의해 이용될 수 있다. 또한 데이터가 예컨대 이동 장치, 미디어 플레이어 혹은 다른 컴퓨터 같은 다른 클라이언트 장치로부터 제공될 수도 있다.
마찬가지로, 네트워크(424)에 연결된 다른 서버도 사용자 데이터(440)에 추가 데이터를 제공할 수 있다. 예를 들어, 이메일 계정이나 인스턴트 메시징 계정 처럼, 사용자는 명확화 서버(426)나 소셜 서버(428)에 독립적이면서 정보를 저장할 수 있는 서버상에 계정을 가질 수 있다. 이러한 독립적인 서버로부터의 데이터는 사용자 데이터(440)내에서 명확화 서버(426)의 데이터와 동기화될 수 있다. 몇몇 실시예에서, 사용자는 명확화 서버(426)에 더 많은 데이터를 제공하기 위해 여러 서버에 계정을 추가할 수 있을 것이다. 일 예로, 사용자는 명확화 서버(426)에 야후 이메일 계정과 AOL 인스턴트 메신저 계정을 링크할 수 있을 것이다. 데이터는 서버와 클라이언트 장치를 포함한 다수의 정보원으로부터 제공될 것이다. 예를 들어, 이동 장치와 독립적인 서버로부터의 사용자 계정은 둘 다 사용자 데이터(440)에 데이터를 제공할 것이다.
지금부터 도 5를 참조하면, 소셜 명확화 사전을 구현하는 예시적인 장치(500)의 외관이 예시되어 있다. 간단히 말해서, 특히 이 장치(500)는 이동 장치의 사용자의 요구시 소셜 명확화 사전을 액세스 및 갱신하도록 구성된 프로세서를 포함한다.
보다 구체적으로, 이 장치(500)의 하드웨어 환경을 살펴보면, 텍스트, 이미지 및 비디오를 사용자에게 디스플레이하는 디스플레이(501)와, 텍스트 데이터와 사용자 커맨드를 장치(500)에 입력하기 위한 키보드(502)와, 디스플레이(501)상에 디스플레이된 객체를 포인팅(pointing), 선택 및 조정하는 포인팅 장치(504)와, 안테나(505)와, 네트워크 접속(506)과, 카메라(507)와, 마이크로폰(509)과 스피커(510)를 포함하고 있다. 비록 이 장치(500)가 외부 안테나를 도시하고 있지만, 장치(500)는 사용자에게 보이지 않는 내부 안테나를 포함할 수도 있다.
디스플레이(501)는, 장치(500)에 의해 이용되는 소프트웨어 애플리케이션과 장치(500)를 운영하는데 이용되는 운영체제 프로그램을 위한 사용자 인터페이스를 구성하는 비디오, 그래픽, 이미지 및 텍스트를 디스플레이한다. 디스플레이(501)에 디스플레이될 가능성이 있는 요소들중에서, 신규 메시지의 존재를 사용자에게 알려주는 신규 메일 인디케이터(new mail indicator)(511), 전화 통화가 수신, 착신 혹은 발신되고 있음을 알려주는 활성 통화 인디케이터(active call indicator)(512), 데이터를 전송 및 수신하기 위해 장치(500)에 의해 현재 이용되고 있는 데이터 표준을 알려주는 데이터 표준 인디케이터(514), 예컨대 신호 세기 바(signal strength bar)를 이용하여 안테나(505)를 통해 수신되는 신호의 세기 측정치를 알려주는 신호 세기 인디케이터(515), 남아있는 배터리 수명의 측정치를 알려주는 배터리 수명 인디케이터(516), 혹은 현재 시간을 출력하는 클록(517)이 도시되어 있다.
또한 디스플레이(501)는 사용자가 이용 가능한 여러 애플리케이션을 나타내는 애플리케이션 아이콘을 도시하는데, 예를 들면, 웹 브라우저 애플리케이션 아이콘(519), 전화 애플리케이션 아이콘(520), 서치 애플리케이션 아이콘(521), 연락처 애플리케이션 아이콘(522), 지도 애플리케이션 아이콘(524), 이메일 애플리케이션 아이콘(525), 혹은 다른 애플리케이션 아이콘 등을 도시한다. 일 실시예에서, 디스플레이(501)는 16비트 혹은 그 이상의 컬러가 가능한 QVGA TFT LCD(quater video graphics array thin film transister liquid crystal display)이다.
사용자는 소셜 명확화 사전을 제공하는 애플리케이션과 운영체제를 동작 및 제어하기 위한 커맨드와 데이터를 입력하기 위해 키보드(혹은 키패드)(502)를 이용한다. 키보드(502)는, 예컨대 단독 선택되었을 때는 영숫자 문자 "Q"와 "W"와 연관되지만 키(529)와 조합되어 눌려졌을 때에는 문자 "*"와 "1"과 연관되는 키(526, 527)처럼 영숫자 문자와 연관된 표준 키보드 버튼이나 키를 포함한다. 또한 단일 키는 운영체제나 이 운영체제에 의해 호출된 애플리케이션의 상태에 근거하여 특수 문자 또는 미분류 기능(unlabeled function)을 포함한 기능들과 연관될 수도 있다. 예를 들어, 애플리케이션이 숫자 문자의 입력을 요구하면, 키(527)의 단독 선택은 "1"이 입력되도록 만든다.
전통적으로 영숫자 키패드와 연관된 키와 함께, 키보드(502)는 다른 특수 기능 키도 포함하는데, 예를 들면, 수신된 통화가 응답되도록 하거나 신규 통화가 발신되도록 하는 통화 설정 키(530), 메뉴가 디스플레이(501)에 나타나도록 하는 드롭 다운 메뉴 키(532), 이전에 액세스된 네트워크 어드레스로 다시 액세스되도록 하는 역행 네비게이션 키(backward navigation key)(534), 활성 웹 페이지가 즐겨찾는 사이트의 북마크 폴더에 위치되도록 하거나 북마크 폴더가 나타나도록 하는 즐겨찾기 키(535), 장치(500)에서 호출된 애플리케이션이 사전 정의된 네트워크 어드레스를 찾아가게(navigate) 하는 홈 페이지 키(536), 또는 다중 방식 네비게이션, 애플리케이션 선택 및 전력/음량 제어를 제공하는 다른 키들이 포함될 수 있다.
장치(500) 및 이 장치(500)에서 호출된 애플리케이션과 관련한 제어 및 상호작용 부분으로서 디스플레이(501)상에 디스플레이된 그래픽과 텍스트 객체를 선택 및 제어하기 위해 사용자는 포인팅 장치(504)를 이용한다. 포인팅 장치(504)는 어떤 적절한 유형의 포인팅 장치로서, 디스플레이(501)나 다른 입력 장치와 조합하여 구현되는 조이스틱, 트랙볼, 터치패드, 카메라, 음성 입력 장치, 터치 스크린 장치일 수 있다.
외부 안테나이든 내부 안테나이든 안테나(505)는 점대점 무선통신(point to-point radio communication), 무선 LAN 통신, 혹은 위치 결정을 구현하는 RF 신호의 송수신에 이용되는 방향성 혹은 전방향성 안테나이다. 안테나(505)는 SMR(Specialized Mobile Radio), 셀룰라, 혹은 PCS(Personal Communication Service) 주파수 대역을 이용하여 점대점 무선 통신을 용이하게 할 수 있으며, 수치 혹은 데이터 표준을 이용하여 데이터의 전송을 구현할 수 있다. 예를 들어, 안테나(505)는 여러 가지 기술을 이용하여 데이터가 장치(500)와 기지국 사이에 전송되는 것을 허용할 것인데, 예컨대 이런 기술로는 WiBro, WiMAX, 5GPP LTE(Long Term Evolution), UMB(Ultra Mobile Broadband), HIPERMAN(High Performance Radio Metropolitan Network), iBurst 혹은 HC-SDMA(High Capacity Spatial Division Multiple Access), HSOPA(High Speed OFDM Packet Access), HSPA(High Speed Packet Access), HSPA Evolution, HSPA+, HSUPA(High Speed Upload Packet Access), HSDPA(High Speed Downlink Packet Access), GAN(Generic Access Network), TD-SCDMA(Time Division-Synchronous Code Division Multiple Access), EVDO(Evolution-Data Optimised, 혹은 Evolution-Data Only), TD-CDMA(Time Division-Code Division Multiple Access), FOMA(Freedom Of Mobile Multimedia Access), UMTS(Universal Mobile Telecommunications System), W-CDMA(Wideband Code Division Multiple Access), EDGE(Enhanced Data rates for GSM Evolution), EGPRS(Enhanced GPRS), CDMA-2000(Code Division Multiple Access-2000), Widen(Wideband Integrated Dispatch Enhanced Network), HSCSD(High Speed Circuit-Switched Data), GPRS(General Packet Radio Service), PHS(Personal Handy-Phone System), CSD(Circuit Switched Data), PDC(Personal Digital Cellular), CDMAone, D-AMPS(Digital Advanced Mobile Phone System), IDEN(Integrated Digital Enhanced Network), GSM(Global System for Mobile communications), DataTAC, Mobitex, CDPD(Cellular Digital Packet Data), Hicap, AMPS(Advanced Mobile Phone System), NMP(Nordic Mobile Phone), ARP(Autoradiopuhelin), PALM(Autotel 혹은 Public Automated Land Mobile), MTD(Mobiletelefonisystem D), OLT(Offentlig Landmobil Telefoni), AMTS(Advanced Mobile Telephone System), IMTS(Improved Mobile Telephone Service), MTS(Mobile Telephone Service), PTT(Push-To-Talk) 또는 그 밖의 기술들이 있다. W-CDMA, HSUPA, GSM, GPRS 및 EDGE 네트워크를 통한 통신이 예를 들면 QUALCOMM RTR6285TM 송수신기 및 PM7540TM 전력 관리 회로와 함께 QUALCOMM MSM7200 칩셋을 이용하여 발생할 수도 있다.
무선 혹은 유선 컴퓨터 네트워크 접속부(506)는 모뎀 접속부, 이더넷(Ethernet)을 포함하는 LAN 접속부나 혹은 DSL(digital subscriber line) 같은 WAN 접속부, 케이블 고속 인터넷 접속부, 다이얼-업 접속부, T-1 회선, T-3 회선, 광섬유 접속부, 혹은 위성 접속부일 수도 있다. 네트워크 접속부(506)는 LAN 네트워크, 기업 혹은 정부 WAN 네트워크, 인터넷, 전화망 혹은 다른 네트워크에 접속할 수 있다. 네트워크 접속부(506)는 유선 혹은 무선 커넥터를 이용한다. 예시적인 무선 커넥터는, 예를 들면, IrDA(INFRARED DATA ASSOCIATION) 무선 커넥터, WiFi 무선 커넥터, 무선 광 커넥터, IEEE 표준 802.11 무선 커넥터, BLUETOOTH 무선 커넥터(예컨대, BLUETOOTH 버전 1.2 혹은 5.0 커넥터), NFC(near field communications) 커넥터, OFDM(orthogonal frequency division multiplexing) UWB(ultra wide band) 무선 커넥터, TM-UWB(time-modulated ultra wide band) 무선 커넥터, 혹은 그 밖의 무선 커넥터를 포함한다. 예시적인 유선 커넥터는, 예를 들면, IEEE-1394 FIREWIRE 커넥터, USB(Universal Serial Bus) 커넥터(미니-B USB 인터페이스 커넥터도 포함), 시리얼 포트 커넥터, 병렬 포트 커넥터 혹은 그 밖의 유선 커넥터를 포함한다. 또다른 실시예에서는, 네트워크 접속부(506)와 안테나(505)의 기능들이 단일 성분으로 통합된다.
카메라(507)는 장치(500)가 디지털 이미지를 캡쳐할 수 있도록 하며, 스캐너, 디지털 스틸 카메라, 디지털 비디오 카메라, 그 밖의 디지털 입력 장치일 수도 있다. 일 실시예에서, 카메라(507)는 CMOS를 활용하는 5메가 픽셀(MP) 카메라이다.
마이크로폰(509)은 장치(500)가 음향을 캡쳐할 수 있게 하며, 전방향성 마이크로폰, 단방향성 마이크로폰, 양방향성 마이크로폰, 집음 마이크로폰(shotgun microphone)이거나, 혹은 음향을 전기 신호로 변환하는 다른 유형의 장치일 수 있다. 마이크로폰(509)은, 예를 들면 전화 통화 동안 사용자가 장치(500)를 통해 다른 사용자에게 말하는 중일 때, 사용자에 의해 발생된 음향을 캡쳐하는데 이용될 수도 있다. 반대로, 스피커(510)는 장치가 전기 신호를 예컨대 전화 애플리케이션 프로그램에 의해 발생된 다른 사용자의 목소리나 신호음 애플리케이션 프로그램에서 발생된 신호음 같은 음향으로 변환하는 것을 허용한다. 또한, 비록 도 5에서는 장치(500)가 핸드헬드 장치(handheld device)로 예시되어 있지만, 또다른 구현에서는 이 장치(500)가 랩탑, 워크스테이션, 중형 컴퓨터, 메인프레임, 내장 시스템, 전화기, 데스크탑 PC, 태블릿 컴퓨터, PDA 혹은 그 밖의 유형의 컴퓨팅 장치일 수도 있다.
도 6은 장치(500)의 내부 아키텍처(600)를 예시하는 블록도이다. 이 아키텍처는, 운영체제나 애플리케이션을 포함하는 컴퓨터 명령어가 처리되는 CPU(601)와, 통신 인터페이스와 디스플레이(501)상에 비디오 그래픽, 이미지 및 텍스트를 표현하는 처리 기능을 제공하고, 내장형 제어 세트(예컨대 버튼, 텍스트 및 리스트)를 제공하며, 다양한 스크린 사이즈를 지원하는 디스플레이 인터페이스(602)와, 키보드(502)에게 통신 인터페이스를 제공하는 키보드 인터페이스(604)와, 포인팅 장치(504)에게 통신 인터페이스를 제공하는 포인팅 장치 인터페이스(605)와, 안테나(505)에게 통신 인터페이스를 제공하는 안테나 인터페이스(606)와, 컴퓨터 네트워크 접속부(506)를 통해 네트워크에 통신 인터페이스를 제공하는 네트워크 접속 인터페이스(607)와, 카메라(507)로부터 디지털 이미지를 캡쳐하는 처리 기능들과 통신 인터페이스를 제공하는 카메라 인터페이스(609)와, 마이크로폰(509)을 이용하여 음향을 전기 신호로 변환하고, 스피커(510)를 통해 전기 신호를 음향으로 변환하기 위한 통신 인터페이스를 제공하는 음향 인터페이스와, CPU(601)에 의한 처리를 위해 컴퓨터 명령어와 데이터가 휘발성 메모리 장치에 저장되는 RAM(610)과, 예컨대 기본 입출력(I/O), 시동, 혹은 키보드(502)로부터 키 타격(keystroke)의 수신 같은 기본 시스템 기능과 관련한 불변 하위 레벨 시스템 코드(invariant low-level system code) 혹은 데이터가 비휘발성 메모리 장치에 저장되는 ROM(611)과, 운영체제(613), 애플리케이션 프로그램(615)(예컨대 웹 브라우저 애플리케이션, 위젯 엔진 및/또는 필요하다면 다른 애플리케이션을 포함함), 그리고 데이터 파일(619)이 저장되는 저장 매체(612) 또는 그 밖의 적절한 유형의 메모리(예컨대 RAM, ROM, PROM, EPROM, EEPROM, 자기 디스크, 광학 디스크, 플로피 디스크, 하드 디스크, 제거가능형 카트리지, 플래시 드라이브)와, 실제 세상이나 장치(500)의 상대적 위치 혹은 지리학적 위치를 제공하는 네비게이션 모듈(617)과, 전력 성분에세 적절한 교류(AC) 혹은 직류(DC)를 제공하는 전력공급원(619)과, 장치(500)가 전화망을 통해 음향을 송수신할 수 있게 하는 텔레포니 서브시스템(telephony subsystem)(620)을 포함한다. 이러한 구성 장치들과 CPU(601)는 버스(621)를 통해 서로 통신한다.
CPU(601)는 많은 컴퓨터 프로세서들중 하나일 수 있다. 한 가지 구성의 예로, 컴퓨터 CPU(601)는 하나 이상의 처리 유닛이다. RAM(610)은 컴퓨터 버스(621)와 인터페이스하여, 운영체제 애플리케이션 프로그램 같은 소프트웨어 프로그램과 장치 드라이브의 실행 동안에 CPU(601)에 대해 신속한 RAM 저장을 제공한다. 더 구체적으로, 소프트웨어 프로그램을 실행하기 위해 CPU(601)는 컴퓨터 실행 가능한 프로세서 단계들을 저장 매체(612)나 다른 미디어로부터 RAM(610)의 필드에 로드한다. 데이터는 RAM(610)에 저장되는데, 이 데이터는 실행 동안에 컴퓨터 CPU(601)에 의해 액세스된다. 예시적인 한 가지 구성에서, 장치(500)는 최소 128MB RAM과 256MB 플래시 메모리를 포함한다.
저장 매체(612)는 그 자체적으로 예컨대 RAID(redundant array of independent disk), 플로피 디스크 드라이브, 플래시메모리, USB 플래시 드라이브, 외부 하드 디스크, 썸 드라이브(thumb drive), 펜 드라이브, 키 드라이브, HD-DVD 광 디스크 드라이브, 내부 하드 디스크 드라이브, Blu-Ray 광 디스크 드라이브, 혹은 HDDS(Holographic Digital Data Storage) 광 디스크 드라이브, 외부 미니 DIMM(dual in-line memory module) SDRAM, 혹은 외부 마이크로 DIMM SDRAM 같은 다수의 물리적 드라이브 유닛을 포함할 수도 있다. 이러한 컴퓨터 판독 가능 저장 매체는, 장치(500)로부터 데이터를 빼오거나 장치(500)에 데이터를 업로드하기 위해 이 장치(500)가 컴퓨터 실행 가능 프로세스 단계, 애플리케이션 프로그램, 그리고 제거 가능형 및 고정형 메모리 매체에 저장된 내용에 액세스할 수 있게 한다.
컴퓨터 프로그램 제품은 저장 매체(612) 즉 기계 판독 가능 저장 매체에 실체적(tangibly)으로 구현된다. 이 컴퓨터 프로그램 제품은 기계에 의해 판독될 때 데이터 처리 장치가 이동 장치에 이미지 데이터를 저장하도록 동작하는 명령어를 포함한다. 몇몇 실시예에서, 이 컴퓨터 프로그램 제품은 소셜 명확화 사전을 발생하는 명령어를 포함한다.
운영체제(613)는 LINUX 기반 운영체제일 수도 있으며, 예컨대 GOOGLE 이동 장치 플랫폼, APPLE MAC OS X, MICROSOFT WINDOWS NT/WINDOWS 2000/WINDOWS XP/WINDOWS MOBILE, 다양한 UNIX-부류의 운영체제, 혹은 컴퓨터나 매립형 시스템을 위한 독점 운영체제(proprietary operating system)일 수도 있다. 운영체제(613)와 관련한 애플리케이션 개발 플랫폼 혹은 프레임 워크는 BREW(BINARY RUNTIME ENVIRONMENT FOR WIRELESS), JAVA Platform, Micro Edition (JAVA ME) 혹은 JAVA2 Platform, SUN MICROSYSTEMS JAVASCRIPT 프로그래밍 언어를 이용하는 Micro Edition (J2ME), PYTHONTM, FLASH LITE 혹은 MICROSOFT.NET Compact, 혹은 다른 적절한 환경일 수도 있다.
이 장치는 운영체제(613)와, 예컨대 이메일, 인스턴트 메시지, 비디오 서비스 애플리케이션, 지도 애플리케이션 단어 처리, 스프레드시트, 프리젠테이션, 게임, 지도제작, 웹 브라우징, JAVASCRIPT 엔진, 혹은 다른 애플리케이션 같은 애플리케이션 프로그램(615)과 관련하여 컴퓨터 실행 가능 코드를 저장한다. 예를 들어, 하나의 실시예는 사용자가 GOOGLE GMAIL 이메일 애플리케이션, GOOGLE TALK 인스턴트 메시징 애플리케이션, YOUTUBE 비디오 서비스 애플리케이션, GOOGLE MAPS 혹은 GOOGLE EARTH 지도제작 애플리케이션 혹은 GOOGLE PICASA 이미징 편집 및 프리젠테이션 애플리케이션에 액세스하는 것을 허용할 것이다. 또한 애플리케이션 프로그램(615)은 위젯(widget) 혹은 가젯(gadget) 엔진을 포함할 수도 있는데, 예컨대 TAFRI 위젯 엔진, WINDOWS SIDEBAR 가젯 엔진이나 KAPSULES 가젯 엔진 같은 MICROSOFT 가젯 엔진, KONFABULTOR 위젯 엔진 같은 YAHOO! 위젯 엔진, APPLE DASHBOARD 위젯 엔진, GOOGLE 가젯 엔진, KLIPFOLIO 위젯 엔진, OPERA 위젯 엔진, WIDSETS 위젯 엔진, 독점 위젯이나 가젯 엔진, 혹은 물리적으로 인스파이어드된 애플릿(phisically-inspired applet)을 위한 호스트 시스템 소프트웨어를 데스크탑에 제공하는 다른 위젯이나 가젯 엔진을 포함할 수도 있다.
전술한 실시예를 이용하여 소셜 명확화 사전을 제공하는 것이 가능하지만, 본 개시물에 따른 기능들을 동적 링크 라이브러리(DLL)로, 또는 예컨대 FOXFIRE 웹 브라우저, APPLE SAFARI 웹 브라우저 혹은 MICROSOFT INTERNET EXPLORER 웹 브라우저처럼 인터넷 웹 브라우저 같은 다른 애플리케이션 프로그램에 대한 플러그-인으로 구현하는 것도 가능하다.
네비게이션 모듈(621)은 예컨대 GPS(Global Positioning System) 신호, GLONASS(GLObal NAvigation Satellite System), 갈릴레오 위치 결정 시스템(Galileo positioning system), 베이도우 위성 네비게이션 및 위치 결정 시스템( Beidou Satellite Navigation and Positioning System), 관성 네비게이션 시스템(inertial navigation system), 추측 항법 시스템(dead reckoning system)을 이용함으로써 장치의 절대적인 혹은 상대적인 위치를 결정할 수 있고, 또는 어드레스, 인터넷 프로토콜(IP) 어드레스, 혹은 데이터베이스의 위치 정보에 액세스함으로써도 장치의 절대적인 혹은 상대적인 위치를 결정할 수 있다. 또한 네비게이션 모듈(621)은 예컨대 하나 이상의 가속도계를 이용함으로써 장치(500)의 각도 변위, 방향, 속도를 측정하는데 이용될 수도 있다.
도 7은 장치(700)에 의해 이용되는 운영체제(713)의 성분들의 일 예를 예시하는 블록도로서,이것은 운영체제(713)가 구글 이동 장치 플랫폼인 경우이다. 운영체제(713)는 연관된 전화기 애플리케이션이 응답하고, 다루기 힘든 애플리케이션이 운영체제의 결함(fault)(혹은 "충돌(crash)")을 유발하지 않는다고 보장하는 동안 다수의 프로세스를 호출한다. 태스크 전환을 이용하여, 운영체제(713)는 각각의 연관된 애플리케이션의 상태에 손실을 입히지 않으면서 전화 통화 상태에서 애플리케이션 전환을 허용한다. 운영체제(713)는 애플리케이션 프레임워크를 이용하여, 성분들의 재사용을 권장할 수도 있고, 포인팅 장치와 키보드 입력을 조합하고 회전을 허용함으로써 확장 가능한 사용자의 경험을 제공할 수도 있다. 따라서, 운영체제는 개선된 표준 웹 브라우저를 이용하는 동안에 풍부한 그래픽 시스템과 미디어 경험을 제공할 수 있다.
운영체제(713)는 일반적으로 6개의 성분, 커널(700), 라이브러리(701), 운영체제 런타임(702), 애플리케이션 라이브러리(704), 시스템 서비스(705), 애플리케이션(706)으로 조직될 수 있다. 커널(700)은 운영체제(713) 같은 소프트웨어와 애플리케이션 프로그램(715)이 디스플레이 인터페이스(702)를 통해 디스플레이(501)와 상호 작용하게 해주는 디스플레이 드라이버(707)와, 소프트웨어가 카메라(507)와 상호 작용하게 해주는 카메라 드라이버(709)와, BLUETOOTH 드라이버(710)와, M-System 드라이버(711)와, 바인더(binder)(IPC) 드라이버(712)와, USB 드라이버(714)와, 소프트웨어가 키보드 인터페이스(704)를 통해 키패드(502)와 상호 작용하게 해주는 키패드 드라이버(715)와, WiFi 드라이버(716)와, 소프트웨어가 음향 인터페이스(709)을 통해 마이크로폰(509) 및 스피커(510)와 상호 작용하게 해주는 오디오 드라이버(717)와, 소프트웨어가 전력 공급원(719)과 상호 작용하여 전력 공급원을 관리하게 해주는 전력 관리 성분(719)을 포함한다.
일 실시예로, LINUX 기반 운영체제를 위한 BlueZ BLUETOOTH 스택(stack)에 기반하여 구현될 수 있는 BLUETOOTH 드라이버는 헤드셋 및 핸즈프리 장치, 다이얼-업 네트워킹(dial-up networking), PAN(personal area networking), 혹은 (예컨대 A2DP(Advanced Auto Distribution Profile)나 AVRCP(Audio/Video Remote Control Profile)에 의한) 오디오 스트리밍를 위한 프로파일 지원을 제공한다. BLUETOOTH 드라이버는 스캐닝, 페어링/언페어링(pairing and unpairing) 및 서비스 질의를 위해 JAVA 바인딩(binding)을 제공한다.
라이브러리(701)는 효율적인 JAVA API 층(efficient Application Programming Interface layer)을 이용하여 (예컨대 MPEG-4, H.264, MP3(MPEG-1 Audio Layer-3), AAC(Advanced Audio Coding), AMR(Adaptive Multi-Rate), JPEG(Joing Photographic Experts Group) 등과 같은) 표준 비디오, 오디오 및 정지 프레임 포맷을 지원하는 미디어 프레임워크(720)와, 서피스 매니저(surface manager)(721)와, 2D 애플리케이션 드로잉을 위한 간단한 그래픽 라이브러(SGL; simple graphic library)(722)와, 게임 및 3D 랜더링을 위한 임베디드 시스템용 개방형 그래픽 라이브러리(OpenGL ES; Open Graphics Library for Embedded System)(724)와, C 표준 라이브러리(LIBC; C standard library)(725)와, LIBWEBCORE 라이브러리(726)와, 프리타입 라이브러리(Free Type library)(727)와, SSL(729)와, SQLite 라이브러리(730)를 포함한다.
일반적으로 MIDP(Mobile Information Device Profile) 런타임을 구성하는 운영체제 런타임(702)은 코어 JAVA 라이브러리(731)와 댈빅 가상 머신(Dalvik virtual machine)(732)을 포함한다. 그래픽 랜더링과 관련하여, 시스템와이드 컴포저(system-wide composer)는 그 구성을 위해 OpenGL ES(724)와 2D 하드웨어 가속기를 이용하여 서피스와 프레임 버퍼를 관리하고 윈도우 전환을 처리한다.
댈빅 가상 머신(732)는 임베디드 환경으로 이용될 수 있는데, 그 이유는 이 머신이 런타임 메모리를 매우 효율적으로 사용하고 CPU 최적화된 바이트코드 인터프리터를 구현하며 장치마다 다수의 가상 머신 프로세스를 지원하기 때문이다. 메모리를 줄이기 위해 공유 상수 풀(constant pool)을, 교차 프로세스 공유를 개선하기 위해 읽기 전용 구조를, 구문분석 시간(parse time)을 줄이기 위해 고정폭 명령어를 이용하여, 커스텀 파일 포맷(.DEX)이 런타임 효율적으로 설계됨으로써, 설치된 애플리케이션은 빌드 시간에 맞는 커스텀 파일로 번역될 수 있다. 연관된 바이트코드는 신속한 분석을 위해 설계되는데, 그 이유는 스택 기반 명령어 대신에 레지스트 기반 명령어가 메모리와 디스페치 오버헤드를 줄이고, 고정폭 명령어를 이용하여 구문분석을 단순화하며, 16비트 코드 유닛이 판독을 최소화하기 때문이다.
애플리케이션 라이브러리(704)는 뷰 시스템(view system)(734), 공급원 매니저(735), 콘텐츠 프로바이더(737)를 포함한다. 이 시스템 서비스(705)는 상태 바(739)와, 애플리케이션 런처(application launcher)(740)와, 설치된 모든 애플리케이션에 대한 정보를 갖고 있는 패키지 매니저(741)와, 텔레포니 서브시스템(720)에 애플리케이션 레벨 JAVA 인터페이스를 제공하는 텔레포니 매니저(742)와, 모든 애플리케이션이 상태 바와 온-스크린 통지에 액세스하도록 해주는 통지 매니저(744)(notification mansger)와, 다수의 윈도우를 갖는 다수의 애플리케이션이 디스플레이(501)를 공유하도록 해주는 윈도우 매니저(745)와, 별개의 프로세스에서 각각의 애플리케이션을 실행하고 애플리케이션 라이프 사이클을 관리하며 교차 애플리케이션 이력을 보유하는 활동 매니저(746)(activity manager)를 포함한다.
일반적으로 MIDP 애플리케이션을 구성하는 애플리케이션(706)은 홈 애플리케이션(747)과, 다이어러 애플리케이션(749)(dialer application)과, 연락처 애플리케이션(750)과, 브라우저 애플리케이션(751)과, 소셜 명확화 사전 애플리케이션(752)을 포함한다.
텔레포니 매니저(742)는 이벤트 통지(예컨대 전화 상태, 네트워크 상태, SIM 상태 혹은 음성메일 상태)를 제공하고, 상태 정보(예컨대 네트워크 정보, SIM 정보 혹은 음성메일 존재유무)에 액세스할 수 있게 해주며, 통화를 개시하고, 통화 상태를 질의 및 제어한다. 브라우저 애플리케이션(751)은 네비게이션 기능을 포함해 완전 데스크탑 환경 매니저에 웹 페이지를 표현한다. 더욱이, 브라우저애플리케이션(751)은 단일 컬럼, 소형 스크린 랜더링을 허용하고, 다른 애플리케이션에 HTML 뷰의 임베딩(embedding)을 제공한다.
도 8은 운영체제 커널(514)에 의해 구현되는 예시적인 프로세스를 보여주는 블록도이다. 일반적으로, 애플리케이션과 시스템 서비스는 독립적인 프로세스에서 작동하는데, 이때 활동 매니저(746)는 독립적인 프로세스에서 각각의 애플리케이션을 실행하고 애플리케이션 라이프 사이클을 관리한다. 비록 많은 활동이나 서비스가 동일한 프로세스에서 작동할 수 있을지라도 애플리케이션은 각자의 프로세스에서 실행된다. 프로세스는 애플리케이션의 성분을 실행할 필요가 있을 때 시작 및 정지되고, 프로세스는 공급원을 복구하기 위해 종료될 수도 있다. 각각의 애플리케이션은 자신의 프로세스에 배정되는데, 그때 이름은 애플리케이션의 패키지 이름을 갖게 되며, 애플리케이션의 각 부분들이 다른 프로세스 이름으로 배정되는 것도 가능하다.
비록 다이어러 애플리케이션(821)과 연관된 프로세스처럼 애플리케이션 프로세스가 영구적일 수 있더라도, 예컨대 서피스 매니저(816), 윈도우 매니저(814) 혹은 활동 매니저(810) 같은 영구 코어 시스템 서비스는 시스템 프로세스에 의해 관리된다. 운영체제 커널(514)에 의해 구현되는 프로세스는 일반적으로 시스템 서비스 프로세스(801), 다이어러 프로세스(802), 브라우저 프로세스(804), 지도 프로세스(805)로 분류될 수 있다. 이 시스템 서비스 프로세스(801)는 상태 바(739)와 연관된 상태 바 프로세스(806)와, 애플리케이션 런처(740)와 연관된 애플리케이션 런처 프로세스(807)와, 패키지 매니저(741)와 연관된 패키지 매니저 프로세스(809)와, 활동 매니저(746)와 연관된 활동 매니저 프로세스(810)와, 그래픽에 대한 액세스를 제공하는 공급원 매니저와 연관된 공급원 매니저 프로세스(811)와, XML 레이아웃 디스크립션(XML layout description)과, 통지 매니저(744)와 연관된 통지 매니저 프로세스(812)와, 윈도우 매니저(745)와 연관된 윈도우 매니저 프로세스(814)와, 코어 JAVA 라이브러리(731)와 연관된 코어 JAVA 라이브러리 프로세스(815)와, 서피스 매니저(721)와 연관된 서피스 매니저 프로세스(816)와, 댈빅 가상 머신(732)과 연관된 댈빅 가상 머신 프로세스(817)와, LIBC 라이브러리(725)와 연관된 LIBC 프로세스(819)와, 소셜 명확화 사전 애플리케이션(752)과 연관된 소셜 명확화 사전 프로세스(820)를 포함한다.
다이어러 프로세스(802)는 다이어러 애플리케이션(749)과 다이어러 애플리케이션 프로세스(821)과, 텔레포니 매니저(742)와 연관된 텔레포니 매니저 프로세스(822)와, 코어 JAVA 라이브러리(731)와 연관된 코어 JAVA 라이브러리 프로세스(824)와, 댈빅 가상 머신(732)과 연관된 댈빅 가상 머신 프로세스(817)와, LIBC 라이브러리(725)와 연관된 LIBC 프로세스(826)를 포함한다. 브라우저 프로세스(804)는 브라우저 애플리케이션(751)과 연관된 브라우저 애플리케이션 프로세스(827)와, 코어 JAVA 라이브러리(731)와 연관된 코어 JAVA 라이브러리 프로세스(829)와, 댈빅 가상 머신(732)과 연관된 댈빅 가상 머신 프로세스(830)와, LIBWEBCORE 라이브러리(726)와 연관된 LIBWEBCORE 라이브러리 프로세스(831)와, LIBC 라이브러리(725)와 연관된 LIBC 프로세스(832)를 포함한다.
지도 프로세스(805)는 지도 애플리케이션 프로세스(834)와, 코어 JAVA 라이브러리 프로세스(835)와, 댈빅 가상 머신 프로세스(836)와, LIBC 라이브러리 프로세스(837)를 포함한다. 특히, 예컨대 댈빅 가상 머신 프로세스 같은 몇몇 프로세스들은 하나 이상의 시스템 서비스 프로세스(801), 다이어러 프로세스(802), 브라우저 프로세스(804) 및 지도 프로세스(805)내에 존재할 수 있다.
도 9는 전술한 기술과 이용될 수 있는 일반적인 컴퓨터 장치(900)와 일반적인 이동 컴퓨터 장치(950)의 일 예를 도시한다. 컴퓨팅 장치(900)는 다양한 형태의 디지털 컴퓨터, 예컨대 랩탑, 데스크탑, 워크스테이션, PDA, 서버, 블레이드 서버, 메인프레임, 그리고 다른 적절한 컴퓨터를 나타내는 것이다. 컴퓨팅 장치(950)은 다양한 형태의 이동 장치, 예컨대 PDA, 셀룰러 폰, 스마트폰 및 그와 유사한 컴퓨팅 장치를 나타내는 것이다. 여기에 도시된 성분들, 그 접속 및 관계, 그리고 그들 기능들은 단지 예시를 위한 것으로, 이것이 본 원에서 설명 및/또는 청구하는 발명의 실시를 제한하는 것은 아니다.
컴퓨팅 장치(900)는 프로세스(902)와, 메모리(904)와, 저장 장치(906)와, 메모리(904) 및 고속 확장 포트(910)에 접속하고 있는 고속 인터페이스(908)와, 저속 버스(914)와 저장 장치(906)에 접속하고 있는 저속 인터페이스(912)를 포함한다. 성분들(902, 904, 906, 908, 910, 912)의 각각은 다양한 버스를 이용하여 서로 접속되어 있으며, 공통 머더보드에 탑재되거나 다른 적절한 방식으로 장착될 수도 있다. 프로세서(902)는 컴퓨팅 장치(900)내에서 실행을 위한 명령어를 처리할 수 있는데, 이런 명령어로는, 예컨대 고속 인터페이스(908)에 접속된 디스플레이(916)처럼 외부 입력/출력 장치상에 GUI를 위한 그래픽 정보를 디스플레이하기 위해 메모리(904)나 저장 장치(906)에 저장된 명령어를 들 수 있다. 다른 실시예에서, 다수의 프로세스 및/또는 다수의 버스가 적절히 다수의 메모리 및 메모리 형태와 함께 이용될 수 있다. 또한, 다수의 컴퓨팅 장치(900)는 각각의 장치가 필수 동작의 부분들을 제공하도록 연결(예컨대 서버 뱅크, 블레이드 서버 그룹, 혹은 다중 프로세서 시스템)될 수도 있다.
메모리(904)는 컴퓨팅 장치(900)내에서 정보를 저장한다. 일 실시예로, 메모리(904)는 휘발성 메모리 유닛(들)이다. 다른 실시예에서는, 이 메모리(904)가 비휘발성 메모리 유닛(들)이다. 또한 메모리(904)는 에컨대 자기 혹은 광 디스크처럼 다른 형태의 컴퓨터-판독가능 매체일 수도 있다.
저장 장치(906)는 컴퓨팅 장치(900)에게 대용량 저장장치를 제공할 수 있다. 일 실시예로, 저장 장치(906)는 컴퓨터 판독가능 매체이거나 이런 매체를 포함할 수도 있는데, 예를 들면, 저장 영역 네트워크 내의 장치들이나 다른 구성도 포함하여 플로피 디스크 장치, 하드 디스크 장치, 광 디스크 장치, 혹은 테이프 장치, 플래시 메모리나 그와 유사한 다른 고형 메모리 장치, 혹은 장치 어레이일 수 있다. 컴퓨터 프로그램 제품은 정보 캐리어에 실체적으로 구현될 수 있다. 또한, 컴퓨터 프로그램 제품은 명령어를 담고 있는데, 이 명령어들이 실행되면, 전술한 것과 같은 하나 이상의 방법을 수행할 것이다. 정보 캐리어는 컴퓨터 혹은 머신 판독가능 매체로, 예컨대 메모리(904), 저장 장치(906), 프로세서(902)상의 메모리 또는 전파된 신호(propagated signal)이다.
고속 콘트롤러(908)는 컴퓨팅 장치(900)와 관련한 대역폭-집중 동작(bandwidth-intensive operation)을 관리하고, 반면에 저속 콘트롤러(912)는 더 약한 대역폭 집중 동작을 관리한다. 기능의 배정은 단지 예시를 위한 것이다. 일 실시예에서, 고속 콘트롤러(908)는 (예컨대 그래픽 프로세서 또는 가속기를 통해) 메모리(904), 디스플레이(916)에 접속되고, 그리고 다양한 확장 카드(도시 안 함)를 수용할 수 있는 고속 확장 포트(910)에도 접속된다. 일 실시예에서, 저속 콘트롤러(912)는 저장 장치(906)와 저속 확장 포트(914)에 접속된다. 다양한 통신 포트(예컨대 USB, 블루투스, 이더넷, 무선 이더넷)를 포함하는 저속 확장 포트는 하나 이상의 입력/출력 장치에 접속할 수 있는데, 예를 들면, 키보드, 포인팅 장치, 스캐너, 혹은 스위치나 라우터 같은 네트워킹 장치에 네트워크 어댑터를 통해 접속할 수 있다.
컴퓨팅 장치(900)는 도시된 바와 같이 다수의 상이한 형태로 구현될 수 있다. 예를 들면, 이것은 표준 서버(920)로 구현될 수도 있고, 또는 이런 서버 그룹에서 여러 차례 구현될 수도 있다. 또한, 이것은 랙 서버 시스템(924)의 일부로 구현될 수도 있다. 그리고, 이것은 랩탑 컴퓨터(922) 같은 개인용 컴퓨터에 구현될 수도 있다. 선택적으로, 컴퓨팅 장치(900)의 성분들이 장치(950)처럼 이동 장치(도시 안 됨)의 다른 성분들과 조합될 수도 있다. 이런 장치들의 각각은 하나 이상의 컴퓨팅 장치(900, 950)를 포함할 수 있고, 전체 시스템은 서로 통신하는 다수의 컴퓨팅 장치(900, 950)로 구성될 수 있다.
컴퓨팅 장치(950)는 무엇보다도 프로세서(952), 메모리(964), 디스플레이(954) 같은 입력/출력 장치, 통신 인터페이스(966), 송수신기(968)를 포함한다. 또한 장치(950)에는 마이크로드라이브나 다른 장치 같은 저장 장치가 제공되어 추가의 저장 장치를 제공할 수도 있다. 각각의 성분들(950, 952, 964, 966, 968)은 다양한 버스를 이용해 서로 접속되고, 이 성분들중 일부는 공통 머더보드에 탑재되거나 다른 적절한 방식으로 탑재될 수 있다.
프로세서(952)는 메모리(964)에 저장된 명령어를 포함해서 컴퓨팅 장치(950)내의 명령어도 실행할 수 있다. 프로세서는, 독립적이고 다수인 아날로그 및 디지털 프로세서를 포함하는 칩들의 칩셋으로 구현될 수 있다. 프로세서는, 예를 들면, 사용자 인터페이스의 제어, 장치(950)에 의해 실행되는 애플리케이션들, 장치(950)에 의한 무선 통신처럼 장치(950)의 다른 성분들의 조정을 허용할 수도 있다.
프로세서(952)는 제어 인터페이스(958)와, 디스플레이(954)에 접속된 디스플레이 인터페이스(956)를 통해 사용자와 통신할 수 있다. 디스플레이(954)는 예를 들어 TFT LCD 혹은 OLED 디스플레이일 수 있고, 또는 다른 적절한 디스플레이 기술일 수도 있다. 디스플레이 인터페이스(956)는 사용자에게 그래픽 및 다른 정보를 제공하기 위해 디스플레이(954)를 구동하기에 적합한 회로를 포함할 것이다. 제어 인터페이스(9580는 사용자로부터 커맨드를 수신하고, 이것을 프로세서(952)에 제출하기 위해 변환할 것이다. 또한, 외부 인터페이스(962)가 프로세스(952)와 통신하도록 제공되어, 장치(950)가 다른 장치들과 근거리 통신할 수 있게 할 것이다. 외부 인터페이스(962)는, 예를 들면, 몇몇 실시에에서는 유선 통신을, 다른 실시예에서는 무선 통신을 허용할 것이고, 다수의 인터페이스가 이용될 수도 있다.
메모리(964)는 컴퓨팅 장치(950) 내부에 정보를 저장한다. 메모리(964)는 하나 이상의 컴퓨터 판독가능 매체 혹은 미디어, 휘발성 메모리 유닛(들), 비휘발성 메모리 유닛(들)으로 구현될 수 있다. 또한 확장 메모리(974)도 장치(950)에 제공되어 확장 인터페이스(972)를 통해 연결될 수 있는데, 이것은 예를 들면, SIMM(Single In Line Memory Module) 카드 인터페이스를 포함할 수 있다. 이러한 확장 메모리(974)는 장치(950)에 대해 추가의 저장 공간을 제공할 수 있고, 장치(950)와 관련한 애플리케이션이나 다른 정보를 저장할 수 있다. 구체적으로, 확장 메모리(974)는 전술한 프로세스를 수행하거나 보충하는 명령어를 포함할 수 있고, 보안 정보도 포함할 수 있다. 따라서, 예를 들면, 확장 메모리(974)가 장치(950)에 대해 보안 모듈로 제공될 수도 있고, 장치(950)의 보안 사용을 허용하는 명령어로 프로그램될 수도 있다. 또한, 예컨대 해킹당하지 않는 방식으로 SIMM 카드상의 정보를 식별하는 역할을 하는 추가의 정보와 함께 보안 애플리케이션이 SIMM 카드를 통해 제공될 수도 있다.
메모리는 예를 들어 이후에 설명되듯이 플래시 메모리 및/또는 NVRAM 메모리를 포함할 수 있다. 일 실시예에서, 컴퓨터 프로그램 제품은 정보 캐리어에 실체적으로 구현된다. 컴퓨터 프로그램 재품은 명령어를 포함하는데, 이 명령어들은 실행시 전술한 것과 같은 하나 이상의 방법을 수행한다. 정보 캐리어는 컴퓨터 혹은 기계 판독가능 매체로, 예컨대 메모리(964), 확장 메모리(974), 프로세서(952)상의 메모리, 혹은 송수신기(968)나 외부 인터페이스(962)를 통해 수신될 수 있는 전파된 신호일 수 있다.
장치(950)는 통신 인터페이스(966)를 통해 무선으로 통신할 수 있는데, 이것은 필요하다면 디지털 신호 처리 회로를 포함할 수도 있다. 통신 인터페이스(966)는 다양한 모드 혹은 프로토콜 상태의 통신을 허용하는데, 특히 예를 들면, GSM 음성통화, SMS, EMS, 혹은 MMS 메시징, CDMA, TDMA, PDC, WCDMA, CDMA2000, 혹은 GPRS를 허용할 수 있다. 이러한 통신은 무선 주파수 송수신기(968)를 통해 발생할 수 있다. 또한, 단거리 통신도 Bluetooth, WiFi, 혹은 다른 이런 송수신기(도시 안 됨)를 이용하여 발생할 수 있을 것이다. 그리고, GPS 수신기 모듈(970)은 추가의 네비게이션 및 위치 관련 무선 데이터를 장치(950)에 제공할 수 있고, 이 데이터는 장치(950)상에서 실행중인 애플리케이션에 의해 적절히 이용될 것이다.
또한, 장치(950)는 오디오 코덱(960)을 이용하여 청취가능하게 통신할 수도 있는데, 이 오디오 코덱(960)은 사용자로부터 발화어를 수신하여 이용가능한 디지털 정보로 변환한다. 마찬가지로 오디오 코덱(960)은 사용자를 위해 예컨대 장치(950)의 핸드셋내의 스피커를 통해 가청 음향을 발생할 수도 있다. 이러한 음향은 음성 전화 통화로부터의 음향을 포함할 수도 있고, 기록된 음향(예컨대 음성 메시지, 음악 파일 등)을 포함할 수도 있으며, 장치(950)상에서 동작하고 있는 애플리케이션에 의해 발생된 음향을 포함할 수도 있다.
컴퓨팅 장치(950)는 도시된 바와 같이 다수의 상이한 형태로 구현될 수 있다. 예를 들어, 이것은 셀룰러 전화기(980)로 구현될 수도 있다. 도한 이것은 스마트폰(982), PDA, 혹은 다른 유사한 이동 장치의 일부로 구현될 수도 있다.
전술한 시스템과 기술의 다양한 실시예는 디지털 전자 회로, 집적회로, 전용 ASICs, 컴퓨터 하드웨어, 펌웨어, 소프트웨어 및/또는 이들의 조합으로 실현될 수 있다. 이러한 다양한 실시예들은, 적어도 하나의 프로그램 가능 프로세서를 포함하는 전용 혹은 범용 프로그램 가능 시스템에서 실행 가능하거나 해석가능한 하나 이상의 컴퓨터 프로그램으로 구현될 수 있는데, 이때 프로그램 가능 프로세서는 저장 시스템, 적어도 하나의 입력 장치 및 적어도 하나의 출력 장치와 데이터 및 명령어를 송수신하도록 접속되어 있다.
이러한 컴퓨터 프로그램(프로그램, 소프트웨어, 소프트웨어 애플리케이션 혹은 코드로 불림)은 프로그램 가능 프로세서를 위한 기계 명령어를 포함하고, 고 수준 프로시저 및/또는 객체 지향 프로그래밍 언어로 구현될 수 있으며, 어셈블리/기계 언어로도 구현될 수 있다. 본 원에서 이용되듯이, "기계 판독가능 매체", "컴퓨터 판독가능 매체"라는 용어는, 기계 명령어 및/또는 데이터를 프로그램 가능 프로세서로 제공하는데 이용되는 어떤 컴퓨터 프로그램 제품, 장치 및/또는 소자(예컨대 자기 디스크, 광 디스크, 메모리, PLDs)를 말하는 것으로, 기계 판독가능 신호로 기계 명령어를 수신하는 기계 판독가능 매체도 포함하는 것이다. "기계 판독가능 신호"라는 용어는 기계 명령어 및/또는 데이터를 프로그램 가능 프로세서에 제공하는데 이용되는 어떤 신호를 말한다.
사용자와의 상호 작용을 제공하기 위해, 전술한 시스템 및 기술은, 사용자에게 정보를 디스플레이하는 디스플레이 장치(예컨대 CRT 혹은 LCD 모니터)와, 사용자가 컴퓨터에 입력을 제공할 수 있게 하는 키보드 및 포인팅 장치(예컨대 마우스 또는 트랙볼)를 구비하는 컴퓨터상에서 구현될 수 있다. 다른 종류의 장치들도 사용자와의 상호 작용을 제공하도록 이용될 수 있으며, 더불어 예를 들면, 사용자에게 제공되는 피드백은 어떤 형태의 감각적 피드백(예컨대 시각적 피드백, 오디오 피드백, 혹은 촉각적 피드백)일 수 있고, 사용자로부터의 입력은 음향적, 언어적, 혹은 촉각적 입력을 포함한 모든 형태로 수신될 수 있다.
전술한 시스템과 기술은 컴퓨팅 시스템에서 구현될 수 있는데, 이 컴퓨팅 시스템은 백 엔드 성분(예컨대 데이터 서버로서)을 포함하거나, 또는 미들웨어 성분(예컨대 애플리케이션 서버)을 포함하거나, 또는 프론트 엔트 성분(예컨대 사용자가 전술한 시스템 및 기술의 실시예와 상호 작용할 수 있도록 해주는 그래픽 사용자 인터페이스나 웹 브라우저를 구비하는 클라이언트 컴퓨터)을 포함한다. 이 시스템의 성분들은 어떤 형태나 수단의 디지털 데이터 통신(예컨대 통신 네트워크)에 의해 상호 접속될 수 있다. 통신 네트워크의 예로서, LAN, WAN 및 인터넷이 있다.
컴퓨팅 시스템은 클라이언트와 서버를 포함할 수 있다. 클라이언트와 서버는 일반적으로 서로 떨어져 있으며, 전형적으로 통신 네트워크를 통해 상호 작용한다. 클라이언트와 서버의 관계는, 각각의 컴퓨터상에서 실행중이면서 서로 클라이언트-서버 관계를 갖는 컴퓨터 프로그램에 의해서 발생한다.
다수의 실시예들이 설명되었다. 그렇기는 하지만, 본 발명의 사상과 범주를 벗어나지 않으면서 다양한 변형이 가해질 수 있음을 이해할 것이다. 예를 들어, 소셜 명확화 사전은 다양한 애플리케이션 내의 단어 완성을 위해 이용될 수 있다. 또한, 소셜 관계의 개인들과 관련한 사용 데이터가 입력 데이터의 명확화뿐만 아니라 다른 목적으로 이용될 수도 있다. 그러므로, 다른 실시예들은 다음의 특허청구범위의 범주내에 있다.
302: 클라이언트, 304: 서버, 348: 클라이언트
350: 명확화 서버, 352: 소셜 서버, 406: 명확화 서버
408: 소셜 서버, 428: 소셜 서버,
430: 소셜 네트워크 데이터, 426: 명확화 서버,
433: 소셜 네트워크 인터페이스, 432: 사전 빌더
434: 자동 완성 모듈, 436: 마스터 사전, 438: 질의 로그
440: 사용자 데이터, 442: 현재 이벤트,
602: 디스플레이 인터페이스, 604: 키보드 인터페이스,
605: 포인팅 장치 인터페이스, 606: 안테나 인터페이스,
607: 네트워크 접속 인터페이스, 608: 카메라 인터페이스,
609: 음향 인터페이스, 610: 주 메모리, 612: 저장 매체
614: 운영체제, 615: 애플리케이션 프로그램
616: 데이터 파일, 617: 네비게이션 모듈,
619: 전력공급원, 620: 텔레포니 서브시스템,
621: 버스, 705: 시스템 서비스, 739: 상태 바
741: 패키지 매니저, 744: 통지 매니저, 746: 활동 매니저
740: App 런처, 742: 텔레포니 매니저,
745: 윈도우 매니저, 706: 애플리케이션들, 747: 홈
749: 다이어러, 750: 콘텐츠, 752: 사전
751: 브라우저, 704: 애플리케이션 라이브러리들,
734: 뷰 시스템, 735: 공급원 매니저,
737: 콘텐츠 프로바이더, 701: 라이브러리
720: 미디어 프레임워크, 721: 서피스 매니저, 727: 프리타입
702: 안드로이드 런타임, 731: 코어 자바 라이브러리,
732: 댈빅 가상 머신, 707: 디스플레이 드라이버,
709: 카메라 드라이버, 715: 키패드 드라이버, 700: Linux 커널
710: BLUETOOTH 드라이버, 716: WiFi 드라이버,
711: M-시스템 드라이버, 717: 오디오 드라이버,
712: 바인더(IPC) 드라이버, 719: 전력 관리, 714: USB 드라이버
801: 시스템 서비스 프로세스, 806: 상태 바, 810: 활동 매니저
814: 윈도우 매니저, 816: 서피스 매니저, 807: App 런처
811: 공급원 매니저, 815: 코어 자바 라이브러리
817: 댈빅 가상 머신, 820: 명확화 사전, 809:패키지 매니저
812: 통지 매니저, 802: 다이어러 프로세스, 821: 다이어러
822: 텔레포니 매니저, 824: 코어 자바 라이브러리
825: 댈빅 가상 머신, 804: 브라우저 프로세스, 827: 브라우저
829: 코어 자바 라이브러리, 830: 댈빅 가상 머신, 805:지도 프로세스
834: 지도, 835: 코어 자바 라이브러리
836: 댈빅 가상 머신, 800: Linux 커널

Claims (21)

  1. 컴퓨터 구현의 방법에 있어서,
    사용자와 연관된 컴퓨팅 장치를 위한 사전(dictionary)을 제공하라는 요구를 수신하는 단계와,
    상기 사용자를 위한 소셜 네트워크의 회원과 관련한 단어 사용량 정보를 식별하는 단계와,
    상기 소셜 네트워크의 상기 회원과 관련한 상기 단어 사용량 정보를 이용해 상기 사용자를 위한 사전을 생성하는 단계
    를 포함하는, 컴퓨터 구현 방법.
  2. 제 1 항에 있어서,
    수신된 상기 사전을 제공하라는 요구는, 커스터마이즈된 명확화 사전(customized diamdiguation dictionary)에 대한 급행 사용자 요구(express user request)를 포함하는 것인, 컴퓨터 구현 방법.
  3. 제 2 항에 있어서,
    표준 언어 사전과 비교해 상기 단어 사용량 정보에 가중치를 적용하는 단계를 더 포함하는, 컴퓨터 구현 방법.
  4. 제 1 항에 있어서,
    상기 소셜 네트워크의 상기 회원들과 관련한 상기 단어 사용량 정보를 식별하는 단계는, 상기 소셜 네트워크에서 상기 사용자와 접속된 상기 회원들을 식별하는 단계와, 상기 식별된 회원들에 의해 생성된 문서에서 단어 사용량을 분석하는 단계를 포함하는 것인, 컴퓨터 구현 방법.
  5. 제 1 항에 있어서,
    상기 소셜 네트워크의 상기 회원들과 관련한 상기 단어 사용량 정보를 식별하는 단계는, 상기 사전 데이터에 대한 요구를 소셜 네트워킹 시스템으로 전송하는 단계를 포함하는 것인, 컴퓨터 구현 방법.
  6. 제 1 항에 있어서,
    상기 소셜 네트워크의 상기 회원들과 관련한 상기 단어 사용량 정보를 식별하는 단계는, 상기 소셜 네트워크의 상기 회원에 의해 사용되는 단어에 가중치 정보를 적용하는 단계를 포함하는 것인, 컴퓨터 구현 방법.
  7. 제 6 항에 있어서,
    상기 가중치는 상기 소셜 네트워크의 상기 사용자로부터 멀리 떨어질수록 감소하는 것인, 컴퓨터 구현 방법.
  8. 제 1 항에 있어서,
    상기 사용자를 위한 상기 사전을 생성하는 단계는, 현재의 사전에 갱신된 정보를 제공하는 단계를 포함하는 것인, 컴퓨터 구현 방법.
  9. 제 1 항에 있어서,
    상기 사용자로부터 불명확한 텍스트 입력을 수신하는 단계와,
    상기 불명확한 텍스트 입력과 부합하는 제안된 용어들의 등급화된 리스트를 제공하기 위해 상기 사전을 이용하는 단계
    를 더 포함하는, 컴퓨터 구현 방법.
  10. 제 9 항에 있어서, 상기 텍스트 입력은 다중 문자와 각각 연관된 키(key)상에서 입력되기 때문에 불명확한 것인, 컴퓨터 구현 방법.
  11. 제 9 항에 있어서, 상기 텍스트 입력은 상기 사용자가 용어의 엔트리를 완성하지 않았기 때문에 불명확한 것인, 컴퓨터 구현 방법.
  12. 제 1 항에 있어서,
    상기 소셜 네트워크의 상기 회원들과 관련한 상기 단어 사용량 정보를 주기적으로 식별하는 단계와,
    상기 사전을 위한 갱신 정보를 생성하는 단계
    를 더 포함하는, 컴퓨터 구현 방법.
  13. 명령어가 기록되고 저장되어 있는 기록가능 저장 매체에 있어서,
    상기 명령어는 실행시에,
    사용자와 연관된 컴퓨팅 장치를 위한 사전을 제공하라는 요구를 수신하는 동작과,
    상기 사용자를 위한 소셜 네트워크의 회원과 관련한 단어 사용량 정보를 식별하는 동작과,
    상기 소셜 네트워크의 상기 회원과 관련한 상기 단어 사용량 정보를 이용해 상기 사용자를 위한 사전을 생성하는 동작
    을 포함한 동작들을 수행하는 것인, 기록가능 저장 매체.
  14. 제 13 항에 있어서,
    상기 소셜 네트워크의 상기 회원들과 관련한 상기 단어 사용량 정보를 식별하는 동작은, 상기 소셜 네트워크에서 상기 사용자와 접속된 상기 회원들을 식별하는 동작과, 상기 식별된 회원들에 의해 생성된 문서에서 단어 사용량을 분석하는 동작을 포함하는 것인, 기록가능 저장 매체.
  15. 제 13 항에 있어서,
    상기 소셜 네트워크의 상기 회원들과 관련한 상기 단어 사용량 정보를 식별하는 동작은, 상기 소셜 네트워크의 상기 회원에 의해 이용되는 단어에 가중치 정보를 적용하는 동작을 포함하고, 상기 가중치 정보와 함께 생성된 가중치는 상기 소셜 네트워크의 상기 사용자로부터 멀리 떨어질수록 감소하는 것인, 기록가능 저장 매체.
  16. 제 13 항에 있어서,
    실행시에, 상기 사용자로부터 수신된 불명확한 텍스트 입력에 부합하는 제안된 용어들의 등급화된 리스트를 제공하기 위해 상기 사전을 이용하는 동작을 또한 수행하는 명령어를 더 포함하는 것인, 기록가능 저장 매체.
  17. 제 13 항에 있어서,
    저장을 위해 상기 사전을 클라이언트 장치로 전송하는 동작을 더 포함하는, 기록가능 저장 매체.
  18. 컴퓨터 구현의 텍스트 명확화 시스템에 있어서,
    사용자와 연관된 소셜 네트워크의 회원에 의한 단어 사용량을 반영한 데이터를 생성하기 위한 소셜 네트워크 인터페이스와,
    상기 사용자에 의한 텍스트 입력을 명확화하는데 이용하도록 포맷(formatted)된 사전 데이터를 생성하기 위해 상기 소셜 네트워크의 상기 회원의 상기 단어 사용량을 반영한 상기 데이터를 이용하도록 프로그램된 사전 빌더(dictionary builder)와,
    상기 사용자에 의한 텍스트 입력을 명확화하기 위해 상기 사전 데이터를 이용하도록 프로그램된 자동 완성 모듈(prediction module)
    을 포함하는, 텍스트 명확화 시스템.
  19. 제 18 항에 있어서,
    상기 소셜 네트워크의 회원들에 의한 단어 사용량을 반영한 상기 데이터는, 상기 소셜 네트워크의 상기 사용자와 상기 회원 사이의 거리에 반비례하여 회원에 의한 사용량에 가중치를 주는 것인, 텍스트 명확화 시스템.
  20. 컴퓨터 구현 시스템에 있어서,
    사용자와 관련한 식별자를 이용하여, 상기 사용자의 소셜 네트워크의 회원에 의한 단어 사용량을 반영한 데이터를 생성하는 소셜 네트워크 인터페이스와,
    상기 사용자에 특정되지 않은 일반적인 단어 사용량을 반영하는 마스터 사전 데이터를 저장하는 메모리와,
    상기 사용자에 의한 텍스트 입력을 명확화하기 위해 상기 마스터 사전과의 이용을 위한 사전 데이터 내에 병합되도록 상기 사용자 사용량 데이터(user usage data)를 처리하는 수단
    을 포함하는, 컴퓨터 구현 시스템.
  21. 제 20 항에 있어서,
    컴퓨팅 장치상에서 상기 사용자에 의해 입력된 키스트로크(keystroke)를 명확화하는 수단
    을 더 포함하는, 컴퓨터 구현 시스템.
KR1020117011220A 2008-10-17 2009-10-16 소셜 접속을 이용한 텍스트 명확화 방법 및 시스템 KR101606229B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/253,791 2008-10-17
US12/253,791 US20100114887A1 (en) 2008-10-17 2008-10-17 Textual Disambiguation Using Social Connections

Publications (2)

Publication Number Publication Date
KR20110086064A true KR20110086064A (ko) 2011-07-27
KR101606229B1 KR101606229B1 (ko) 2016-03-24

Family

ID=42107271

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020117011220A KR101606229B1 (ko) 2008-10-17 2009-10-16 소셜 접속을 이용한 텍스트 명확화 방법 및 시스템

Country Status (6)

Country Link
US (1) US20100114887A1 (ko)
EP (1) EP2370894A4 (ko)
JP (1) JP2012506101A (ko)
KR (1) KR101606229B1 (ko)
CN (1) CN102301358B (ko)
WO (1) WO2010045549A2 (ko)

Families Citing this family (371)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8677377B2 (en) 2005-09-08 2014-03-18 Apple Inc. Method and apparatus for building an intelligent automated assistant
US9318108B2 (en) 2010-01-18 2016-04-19 Apple Inc. Intelligent automated assistant
US8930331B2 (en) 2007-02-21 2015-01-06 Palantir Technologies Providing unique views of data based on changes or rules
US10002189B2 (en) 2007-12-20 2018-06-19 Apple Inc. Method and apparatus for searching using an active ontology
US9330720B2 (en) 2008-01-03 2016-05-03 Apple Inc. Methods and apparatus for altering audio output signals
US20100030549A1 (en) 2008-07-31 2010-02-04 Lee Michael M Mobile device having human language translation capability with positional feedback
US8984390B2 (en) 2008-09-15 2015-03-17 Palantir Technologies, Inc. One-click sharing for screenshots and related documents
US8676904B2 (en) 2008-10-02 2014-03-18 Apple Inc. Electronic devices with voice command and contextual data processing capabilities
US8700072B2 (en) 2008-12-23 2014-04-15 At&T Mobility Ii Llc Scalable message fidelity
US8566403B2 (en) * 2008-12-23 2013-10-22 At&T Mobility Ii Llc Message content management system
US8081624B2 (en) * 2009-02-13 2011-12-20 The United States Of America As Represented By The United States Department Of Energy Communication devices for network-hopping communications and methods of network-hopping communications
US8423353B2 (en) * 2009-03-25 2013-04-16 Microsoft Corporation Sharable distributed dictionary for applications
US9836448B2 (en) * 2009-04-30 2017-12-05 Conversant Wireless Licensing S.A R.L. Text editing
US10255566B2 (en) 2011-06-03 2019-04-09 Apple Inc. Generating and processing task items that represent tasks to perform
TW201109948A (en) * 2009-09-01 2011-03-16 Inventec Corp Word interpretation displaying system for integrating different dictionary databases and method thereof
US8433762B1 (en) * 2009-11-20 2013-04-30 Facebook Inc. Generation of nickname dictionary based on analysis of user communications
US10276170B2 (en) 2010-01-18 2019-04-30 Apple Inc. Intelligent automated assistant
US8943145B1 (en) * 2010-02-08 2015-01-27 Intuit Inc. Customer support via social network
US8527496B2 (en) * 2010-02-11 2013-09-03 Facebook, Inc. Real time content searching in social network
US8682667B2 (en) 2010-02-25 2014-03-25 Apple Inc. User profiling for selecting user specific voice input processing information
WO2011160139A1 (en) 2010-06-18 2011-12-22 Sweetlabs, Inc. Systems and methods for integration of an application runtime environment into a user computing environment
US9626429B2 (en) 2010-11-10 2017-04-18 Nuance Communications, Inc. Text entry with word prediction, completion, or correction supplemented by search of shared corpus
US8738358B2 (en) * 2010-12-24 2014-05-27 Telefonaktiebolaget L M Ericsson (Publ) Messaging translation service application servers and methods for use in message translations
US20120215708A1 (en) * 2011-02-17 2012-08-23 Polk Jon Social community revolving around new music
US9262612B2 (en) 2011-03-21 2016-02-16 Apple Inc. Device access using voice authentication
US8538742B2 (en) 2011-05-20 2013-09-17 Google Inc. Feed translation for a social network
US10057736B2 (en) 2011-06-03 2018-08-21 Apple Inc. Active transport based notifications
US9092482B2 (en) 2013-03-14 2015-07-28 Palantir Technologies, Inc. Fair scheduling for mixed-query loads
US9547693B1 (en) 2011-06-23 2017-01-17 Palantir Technologies Inc. Periodic database search manager for multiple data sources
US8799240B2 (en) 2011-06-23 2014-08-05 Palantir Technologies, Inc. System and method for investigating large amounts of data
US9773283B2 (en) * 2011-06-24 2017-09-26 Facebook, Inc. Inferring topics from social networking system communications using social context
US9928484B2 (en) * 2011-06-24 2018-03-27 Facebook, Inc. Suggesting tags in status messages based on social context
US9779385B2 (en) * 2011-06-24 2017-10-03 Facebook, Inc. Inferring topics from social networking system communications
US20130024517A1 (en) * 2011-07-21 2013-01-24 Georgi Milev Apparatus, system and method for interfacing social networking application and provider
US9280532B2 (en) 2011-08-02 2016-03-08 Palantir Technologies, Inc. System and method for accessing rich objects via spreadsheets
US8732574B2 (en) 2011-08-25 2014-05-20 Palantir Technologies, Inc. System and method for parameterizing documents for automatic workflow generation
US8504542B2 (en) 2011-09-02 2013-08-06 Palantir Technologies, Inc. Multi-row transactions
US9785628B2 (en) 2011-09-29 2017-10-10 Microsoft Technology Licensing, Llc System, method and computer-readable storage device for providing cloud-based shared vocabulary/typing history for efficient social communication
US9223893B2 (en) * 2011-10-14 2015-12-29 Digimarc Corporation Updating social graph data using physical objects identified from images captured by smartphone
US9330083B2 (en) * 2012-02-14 2016-05-03 Facebook, Inc. Creating customized user dictionary
US9330082B2 (en) * 2012-02-14 2016-05-03 Facebook, Inc. User experience with customized user dictionary
US9235565B2 (en) * 2012-02-14 2016-01-12 Facebook, Inc. Blending customized user dictionaries
US10134385B2 (en) 2012-03-02 2018-11-20 Apple Inc. Systems and methods for name pronunciation
EP2660683A1 (en) * 2012-04-30 2013-11-06 BlackBerry Limited Methods and systems for a locally and temporally adaptive text prediction
US10417037B2 (en) 2012-05-15 2019-09-17 Apple Inc. Systems and methods for integrating third party services with a digital assistant
US9552414B2 (en) * 2012-05-22 2017-01-24 Quixey, Inc. Dynamic filtering in application search
US9721563B2 (en) 2012-06-08 2017-08-01 Apple Inc. Name recognition system
US9436687B2 (en) * 2012-07-09 2016-09-06 Facebook, Inc. Acquiring structured user data using composer interface having input fields corresponding to acquired structured data
US9686085B2 (en) * 2012-07-09 2017-06-20 Sqeeqee, Inc. Social network system and method
US10380606B2 (en) 2012-08-03 2019-08-13 Facebook, Inc. Negative signals for advertisement targeting
US8775917B2 (en) 2012-08-09 2014-07-08 Sweetlabs, Inc. Systems and methods for alert management
US8775925B2 (en) 2012-08-28 2014-07-08 Sweetlabs, Inc. Systems and methods for hosted applications
US9081757B2 (en) 2012-08-28 2015-07-14 Sweetlabs, Inc Systems and methods for tracking and updating hosted applications
US9069735B2 (en) 2012-10-15 2015-06-30 Sweetlabs, Inc. Systems and methods for integrated application platforms
US9348677B2 (en) 2012-10-22 2016-05-24 Palantir Technologies Inc. System and method for batch evaluation programs
US8965754B2 (en) 2012-11-20 2015-02-24 International Business Machines Corporation Text prediction using environment hints
CN103064530B (zh) * 2012-12-31 2017-03-08 华为技术有限公司 输入处理方法和装置
US20140208258A1 (en) * 2013-01-22 2014-07-24 Jenny Yuen Predictive Input Using Custom Dictionaries
US9123086B1 (en) 2013-01-31 2015-09-01 Palantir Technologies, Inc. Automatically generating event objects from images
WO2014124332A2 (en) 2013-02-07 2014-08-14 Apple Inc. Voice trigger for a digital assistant
US10013415B2 (en) * 2013-02-25 2018-07-03 Keypoint Technologies India Pvt. Ltd. Systems and methods for facilitating spotting of words and phrases
US9619046B2 (en) * 2013-02-27 2017-04-11 Facebook, Inc. Determining phrase objects based on received user input context information
US10652394B2 (en) 2013-03-14 2020-05-12 Apple Inc. System and method for processing voicemail
US9977779B2 (en) * 2013-03-14 2018-05-22 Apple Inc. Automatic supplementation of word correction dictionaries
US10140664B2 (en) 2013-03-14 2018-11-27 Palantir Technologies Inc. Resolving similar entities from a transaction database
US10037314B2 (en) 2013-03-14 2018-07-31 Palantir Technologies, Inc. Mobile reports
US8937619B2 (en) 2013-03-15 2015-01-20 Palantir Technologies Inc. Generating an object time series from data objects
US8818892B1 (en) 2013-03-15 2014-08-26 Palantir Technologies, Inc. Prioritizing data clusters with customizable scoring strategies
US10275778B1 (en) 2013-03-15 2019-04-30 Palantir Technologies Inc. Systems and user interfaces for dynamic and interactive investigation based on automatic malfeasance clustering of related data in various data structures
US8868486B2 (en) 2013-03-15 2014-10-21 Palantir Technologies Inc. Time-sensitive cube
US8909656B2 (en) 2013-03-15 2014-12-09 Palantir Technologies Inc. Filter chains with associated multipath views for exploring large data sets
US8917274B2 (en) 2013-03-15 2014-12-23 Palantir Technologies Inc. Event matrix based on integrated data
US8924388B2 (en) 2013-03-15 2014-12-30 Palantir Technologies Inc. Computer-implemented systems and methods for comparing and associating objects
US10748529B1 (en) 2013-03-15 2020-08-18 Apple Inc. Voice activated device for use with a voice-based digital assistant
US9965937B2 (en) 2013-03-15 2018-05-08 Palantir Technologies Inc. External malware data item clustering and analysis
US20160012132A1 (en) * 2013-03-18 2016-01-14 Nokia Technologies Oy Method and apparatus for querying resources thorough search field
US8799799B1 (en) 2013-05-07 2014-08-05 Palantir Technologies Inc. Interactive geospatial map
US10262029B1 (en) * 2013-05-15 2019-04-16 Google Llc Providing content to followers of entity feeds
US9552411B2 (en) * 2013-06-05 2017-01-24 Microsoft Technology Licensing, Llc Trending suggestions
WO2014197335A1 (en) 2013-06-08 2014-12-11 Apple Inc. Interpreting and acting upon commands that involve sharing information with remote devices
US10176167B2 (en) 2013-06-09 2019-01-08 Apple Inc. System and method for inferring user intent from speech inputs
KR101922663B1 (ko) 2013-06-09 2018-11-28 애플 인크. 디지털 어시스턴트의 둘 이상의 인스턴스들에 걸친 대화 지속성을 가능하게 하기 위한 디바이스, 방법 및 그래픽 사용자 인터페이스
US9262411B2 (en) * 2013-07-10 2016-02-16 International Business Machines Corporation Socially derived translation profiles to enhance translation quality of social content using a machine translation
JP6163266B2 (ja) 2013-08-06 2017-07-12 アップル インコーポレイテッド リモート機器からの作動に基づくスマート応答の自動作動
US9223773B2 (en) 2013-08-08 2015-12-29 Palatir Technologies Inc. Template system for custom document generation
US9335897B2 (en) 2013-08-08 2016-05-10 Palantir Technologies Inc. Long click display of a context menu
US8713467B1 (en) 2013-08-09 2014-04-29 Palantir Technologies, Inc. Context-sensitive views
US9898586B2 (en) 2013-09-06 2018-02-20 Mortara Instrument, Inc. Medical reporting system and method
US9785317B2 (en) 2013-09-24 2017-10-10 Palantir Technologies Inc. Presentation and analysis of user interaction data
US8938686B1 (en) 2013-10-03 2015-01-20 Palantir Technologies Inc. Systems and methods for analyzing performance of an entity
US8812960B1 (en) 2013-10-07 2014-08-19 Palantir Technologies Inc. Cohort-based presentation of user interaction data
US20150113072A1 (en) * 2013-10-17 2015-04-23 International Business Machines Corporation Messaging auto-correction using recipient feedback
US9116975B2 (en) 2013-10-18 2015-08-25 Palantir Technologies Inc. Systems and user interfaces for dynamic and interactive simultaneous querying of multiple data stores
US8924872B1 (en) 2013-10-18 2014-12-30 Palantir Technologies Inc. Overview user interface of emergency call data of a law enforcement agency
US9021384B1 (en) 2013-11-04 2015-04-28 Palantir Technologies Inc. Interactive vehicle information map
US9779722B2 (en) * 2013-11-05 2017-10-03 GM Global Technology Operations LLC System for adapting speech recognition vocabulary
US8868537B1 (en) 2013-11-11 2014-10-21 Palantir Technologies, Inc. Simple web search
US10296160B2 (en) 2013-12-06 2019-05-21 Apple Inc. Method for extracting salient dialog usage from live data
US9105000B1 (en) 2013-12-10 2015-08-11 Palantir Technologies Inc. Aggregating data from a plurality of data sources
US9727622B2 (en) 2013-12-16 2017-08-08 Palantir Technologies, Inc. Methods and systems for analyzing entity performance
US10579647B1 (en) 2013-12-16 2020-03-03 Palantir Technologies Inc. Methods and systems for analyzing entity performance
US9552615B2 (en) 2013-12-20 2017-01-24 Palantir Technologies Inc. Automated database analysis to detect malfeasance
US10356032B2 (en) 2013-12-26 2019-07-16 Palantir Technologies Inc. System and method for detecting confidential information emails
US9749440B2 (en) 2013-12-31 2017-08-29 Sweetlabs, Inc. Systems and methods for hosted application marketplaces
US8832832B1 (en) 2014-01-03 2014-09-09 Palantir Technologies Inc. IP reputation
US9043696B1 (en) 2014-01-03 2015-05-26 Palantir Technologies Inc. Systems and methods for visual definition of data associations
US9749432B2 (en) 2014-01-22 2017-08-29 International Business Machines Corporation Adjusting prominence of a participant profile in a social networking interface
US9009827B1 (en) 2014-02-20 2015-04-14 Palantir Technologies Inc. Security sharing system
US9483162B2 (en) 2014-02-20 2016-11-01 Palantir Technologies Inc. Relationship visualizations
US9727376B1 (en) 2014-03-04 2017-08-08 Palantir Technologies, Inc. Mobile tasks
US9485209B2 (en) 2014-03-17 2016-11-01 International Business Machines Corporation Marking of unfamiliar or ambiguous expressions in electronic messages
US8935201B1 (en) 2014-03-18 2015-01-13 Palantir Technologies Inc. Determining and extracting changed data from a data source
US9836580B2 (en) 2014-03-21 2017-12-05 Palantir Technologies Inc. Provider portal
US9367631B2 (en) * 2014-04-18 2016-06-14 Revolution Technologies, Inc. Dynamic directory and content communication
US9857958B2 (en) 2014-04-28 2018-01-02 Palantir Technologies Inc. Systems and user interfaces for dynamic and interactive access of, investigation of, and analysis of data objects stored in one or more databases
US9009171B1 (en) 2014-05-02 2015-04-14 Palantir Technologies Inc. Systems and methods for active column filtering
US10089098B2 (en) 2014-05-15 2018-10-02 Sweetlabs, Inc. Systems and methods for application installation platforms
US10019247B2 (en) 2014-05-15 2018-07-10 Sweetlabs, Inc. Systems and methods for application installation platforms
US9715875B2 (en) 2014-05-30 2017-07-25 Apple Inc. Reducing the need for manual start/end-pointing and trigger phrases
AU2015266863B2 (en) 2014-05-30 2018-03-15 Apple Inc. Multi-command single utterance input method
US10170123B2 (en) 2014-05-30 2019-01-01 Apple Inc. Intelligent assistant for home automation
US9430463B2 (en) 2014-05-30 2016-08-30 Apple Inc. Exemplar-based natural language processing
US9633004B2 (en) 2014-05-30 2017-04-25 Apple Inc. Better resolution when referencing to concepts
US9535974B1 (en) 2014-06-30 2017-01-03 Palantir Technologies Inc. Systems and methods for identifying key phrase clusters within documents
US9619557B2 (en) 2014-06-30 2017-04-11 Palantir Technologies, Inc. Systems and methods for key phrase characterization of documents
US10572496B1 (en) 2014-07-03 2020-02-25 Palantir Technologies Inc. Distributed workflow system and database with access controls for city resiliency
US9785773B2 (en) 2014-07-03 2017-10-10 Palantir Technologies Inc. Malware data item analysis
US9202249B1 (en) 2014-07-03 2015-12-01 Palantir Technologies Inc. Data item clustering and analysis
US9256664B2 (en) 2014-07-03 2016-02-09 Palantir Technologies Inc. System and method for news events detection and visualization
US20160026923A1 (en) 2014-07-22 2016-01-28 Palantir Technologies Inc. System and method for determining a propensity of entity to take a specified action
JP6041836B2 (ja) * 2014-07-30 2016-12-14 京セラドキュメントソリューションズ株式会社 画像処理装置および画像処理プログラム
US9419992B2 (en) 2014-08-13 2016-08-16 Palantir Technologies Inc. Unwanted tunneling alert system
US9454281B2 (en) 2014-09-03 2016-09-27 Palantir Technologies Inc. System for providing dynamic linked panels in user interface
US9818400B2 (en) 2014-09-11 2017-11-14 Apple Inc. Method and apparatus for discovering trending terms in speech requests
US9390086B2 (en) 2014-09-11 2016-07-12 Palantir Technologies Inc. Classification system with methodology for efficient verification
US10127911B2 (en) 2014-09-30 2018-11-13 Apple Inc. Speaker identification and unsupervised speaker adaptation techniques
US10074360B2 (en) 2014-09-30 2018-09-11 Apple Inc. Providing an indication of the suitability of speech recognition
US9668121B2 (en) 2014-09-30 2017-05-30 Apple Inc. Social reminders
US9767172B2 (en) 2014-10-03 2017-09-19 Palantir Technologies Inc. Data aggregation and analysis system
US9501851B2 (en) 2014-10-03 2016-11-22 Palantir Technologies Inc. Time-series analysis system
US9785328B2 (en) 2014-10-06 2017-10-10 Palantir Technologies Inc. Presentation of multivariate data on a graphical user interface of a computing system
CN106462579B (zh) 2014-10-15 2019-09-27 微软技术许可有限责任公司 为选定上下文构造词典
US9984133B2 (en) 2014-10-16 2018-05-29 Palantir Technologies Inc. Schematic and database linking system
US9229952B1 (en) 2014-11-05 2016-01-05 Palantir Technologies, Inc. History preserving data pipeline system and method
US9043894B1 (en) 2014-11-06 2015-05-26 Palantir Technologies Inc. Malicious software detection in a computing system
US10891690B1 (en) 2014-11-07 2021-01-12 Intuit Inc. Method and system for providing an interactive spending analysis display
US9483546B2 (en) 2014-12-15 2016-11-01 Palantir Technologies Inc. System and method for associating related records to common entities across multiple lists
US10362133B1 (en) 2014-12-22 2019-07-23 Palantir Technologies Inc. Communication data processing architecture
US9367872B1 (en) 2014-12-22 2016-06-14 Palantir Technologies Inc. Systems and user interfaces for dynamic and interactive investigation of bad actor behavior based on automatic clustering of related data in various data structures
US10552994B2 (en) 2014-12-22 2020-02-04 Palantir Technologies Inc. Systems and interactive user interfaces for dynamic retrieval, analysis, and triage of data items
US9348920B1 (en) * 2014-12-22 2016-05-24 Palantir Technologies Inc. Concept indexing among database of documents using machine learning techniques
US10452651B1 (en) 2014-12-23 2019-10-22 Palantir Technologies Inc. Searching charts
US9335911B1 (en) 2014-12-29 2016-05-10 Palantir Technologies Inc. Interactive user interface for dynamic data analysis exploration and query processing
US9817563B1 (en) 2014-12-29 2017-11-14 Palantir Technologies Inc. System and method of generating data points from one or more data stores of data items for chart creation and manipulation
US9870205B1 (en) 2014-12-29 2018-01-16 Palantir Technologies Inc. Storing logical units of program code generated using a dynamic programming notebook user interface
US10372879B2 (en) 2014-12-31 2019-08-06 Palantir Technologies Inc. Medical claims lead summary report generation
US11302426B1 (en) 2015-01-02 2022-04-12 Palantir Technologies Inc. Unified data interface and system
US10387834B2 (en) 2015-01-21 2019-08-20 Palantir Technologies Inc. Systems and methods for accessing and storing snapshots of a remote application in a document
US9727560B2 (en) 2015-02-25 2017-08-08 Palantir Technologies Inc. Systems and methods for organizing and identifying documents via hierarchies and dimensions of tags
US10152299B2 (en) 2015-03-06 2018-12-11 Apple Inc. Reducing response latency of intelligent automated assistants
US9721566B2 (en) 2015-03-08 2017-08-01 Apple Inc. Competing devices responding to voice triggers
US10567477B2 (en) 2015-03-08 2020-02-18 Apple Inc. Virtual assistant continuity
US9886953B2 (en) 2015-03-08 2018-02-06 Apple Inc. Virtual assistant activation
US9891808B2 (en) 2015-03-16 2018-02-13 Palantir Technologies Inc. Interactive user interfaces for location-based data analysis
US9886467B2 (en) 2015-03-19 2018-02-06 Plantir Technologies Inc. System and method for comparing and visualizing data entities and data entity series
US9716796B2 (en) 2015-04-17 2017-07-25 Microsoft Technology Licensing, Llc Managing communication events
US10103953B1 (en) 2015-05-12 2018-10-16 Palantir Technologies Inc. Methods and systems for analyzing entity performance
US10460227B2 (en) 2015-05-15 2019-10-29 Apple Inc. Virtual assistant in a communication session
US10083688B2 (en) 2015-05-27 2018-09-25 Apple Inc. Device voice control for selecting a displayed affordance
US9672257B2 (en) 2015-06-05 2017-06-06 Palantir Technologies Inc. Time-series data storage and processing database system
US9578173B2 (en) 2015-06-05 2017-02-21 Apple Inc. Virtual assistant aided communication with 3rd party service in a communication session
US11025565B2 (en) 2015-06-07 2021-06-01 Apple Inc. Personalized prediction of responses for instant messaging
US9384203B1 (en) 2015-06-09 2016-07-05 Palantir Technologies Inc. Systems and methods for indexing and aggregating data records
US10628834B1 (en) 2015-06-16 2020-04-21 Palantir Technologies Inc. Fraud lead detection system for efficiently processing database-stored data and automatically generating natural language explanatory information of system results for display in interactive user interfaces
US9407652B1 (en) 2015-06-26 2016-08-02 Palantir Technologies Inc. Network anomaly detection
US20160378747A1 (en) 2015-06-29 2016-12-29 Apple Inc. Virtual assistant for media playback
US9418337B1 (en) 2015-07-21 2016-08-16 Palantir Technologies Inc. Systems and models for data analytics
US9392008B1 (en) 2015-07-23 2016-07-12 Palantir Technologies Inc. Systems and methods for identifying information related to payment card breaches
US9454785B1 (en) 2015-07-30 2016-09-27 Palantir Technologies Inc. Systems and user interfaces for holistic, data-driven investigation of bad actor behavior based on clustering and scoring of related data
US9996595B2 (en) 2015-08-03 2018-06-12 Palantir Technologies, Inc. Providing full data provenance visualization for versioned datasets
US9456000B1 (en) 2015-08-06 2016-09-27 Palantir Technologies Inc. Systems, methods, user interfaces, and computer-readable media for investigating potential malicious communications
US10489391B1 (en) 2015-08-17 2019-11-26 Palantir Technologies Inc. Systems and methods for grouping and enriching data items accessed from one or more databases for presentation in a user interface
US9600146B2 (en) 2015-08-17 2017-03-21 Palantir Technologies Inc. Interactive geospatial map
US10102369B2 (en) 2015-08-19 2018-10-16 Palantir Technologies Inc. Checkout system executable code monitoring, and user account compromise determination system
US9537880B1 (en) 2015-08-19 2017-01-03 Palantir Technologies Inc. Anomalous network monitoring, user behavior detection and database system
US9671776B1 (en) 2015-08-20 2017-06-06 Palantir Technologies Inc. Quantifying, tracking, and anticipating risk at a manufacturing facility, taking deviation type and staffing conditions into account
US10853378B1 (en) 2015-08-25 2020-12-01 Palantir Technologies Inc. Electronic note management via a connected entity graph
US11150917B2 (en) 2015-08-26 2021-10-19 Palantir Technologies Inc. System for data aggregation and analysis of data from a plurality of data sources
US9485265B1 (en) 2015-08-28 2016-11-01 Palantir Technologies Inc. Malicious activity detection system capable of efficiently processing data accessed from databases and generating alerts for display in interactive user interfaces
US10706434B1 (en) 2015-09-01 2020-07-07 Palantir Technologies Inc. Methods and systems for determining location information
US9984428B2 (en) 2015-09-04 2018-05-29 Palantir Technologies Inc. Systems and methods for structuring data from unstructured electronic data files
US9639580B1 (en) 2015-09-04 2017-05-02 Palantir Technologies, Inc. Computer-implemented systems and methods for data management and visualization
US10747498B2 (en) 2015-09-08 2020-08-18 Apple Inc. Zero latency digital assistant
US10671428B2 (en) 2015-09-08 2020-06-02 Apple Inc. Distributed personal assistant
US9576015B1 (en) 2015-09-09 2017-02-21 Palantir Technologies, Inc. Domain-specific language for dataset transformations
US9454564B1 (en) 2015-09-09 2016-09-27 Palantir Technologies Inc. Data integrity checks
US10296617B1 (en) 2015-10-05 2019-05-21 Palantir Technologies Inc. Searches of highly structured data
US10044745B1 (en) 2015-10-12 2018-08-07 Palantir Technologies, Inc. Systems for computer network security risk assessment including user compromise analysis associated with a network of devices
US9424669B1 (en) 2015-10-21 2016-08-23 Palantir Technologies Inc. Generating graphical representations of event participation flow
US10613722B1 (en) 2015-10-27 2020-04-07 Palantir Technologies Inc. Distorting a graph on a computer display to improve the computer's ability to display the graph to, and interact with, a user
US10691473B2 (en) 2015-11-06 2020-06-23 Apple Inc. Intelligent automated assistant in a messaging environment
US10956666B2 (en) 2015-11-09 2021-03-23 Apple Inc. Unconventional virtual assistant interactions
US10223429B2 (en) 2015-12-01 2019-03-05 Palantir Technologies Inc. Entity data attribution using disparate data sets
US10049668B2 (en) 2015-12-02 2018-08-14 Apple Inc. Applying neural network language models to weighted finite state transducers for automatic speech recognition
US10706056B1 (en) 2015-12-02 2020-07-07 Palantir Technologies Inc. Audit log report generator
US9514414B1 (en) 2015-12-11 2016-12-06 Palantir Technologies Inc. Systems and methods for identifying and categorizing electronic documents through machine learning
US9760556B1 (en) 2015-12-11 2017-09-12 Palantir Technologies Inc. Systems and methods for annotating and linking electronic documents
US10114884B1 (en) 2015-12-16 2018-10-30 Palantir Technologies Inc. Systems and methods for attribute analysis of one or more databases
US9542446B1 (en) 2015-12-17 2017-01-10 Palantir Technologies, Inc. Automatic generation of composite datasets based on hierarchical fields
US10373099B1 (en) 2015-12-18 2019-08-06 Palantir Technologies Inc. Misalignment detection system for efficiently processing database-stored data and automatically generating misalignment information for display in interactive user interfaces
US10223066B2 (en) 2015-12-23 2019-03-05 Apple Inc. Proactive assistance based on dialog communication between devices
US10089289B2 (en) 2015-12-29 2018-10-02 Palantir Technologies Inc. Real-time document annotation
US10871878B1 (en) 2015-12-29 2020-12-22 Palantir Technologies Inc. System log analysis and object user interaction correlation system
US9823818B1 (en) 2015-12-29 2017-11-21 Palantir Technologies Inc. Systems and interactive user interfaces for automatic generation of temporal representation of data objects
US10268735B1 (en) 2015-12-29 2019-04-23 Palantir Technologies Inc. Graph based resolution of matching items in data sources
US9792020B1 (en) 2015-12-30 2017-10-17 Palantir Technologies Inc. Systems for collecting, aggregating, and storing data, generating interactive user interfaces for analyzing data, and generating alerts based upon collected data
US11086640B2 (en) * 2015-12-30 2021-08-10 Palantir Technologies Inc. Composite graphical interface with shareable data-objects
US9612723B1 (en) * 2015-12-30 2017-04-04 Palantir Technologies Inc. Composite graphical interface with shareable data-objects
US10698938B2 (en) 2016-03-18 2020-06-30 Palantir Technologies Inc. Systems and methods for organizing and identifying documents via hierarchies and dimensions of tags
US10650558B2 (en) 2016-04-04 2020-05-12 Palantir Technologies Inc. Techniques for displaying stack graphs
US9652139B1 (en) 2016-04-06 2017-05-16 Palantir Technologies Inc. Graphical representation of an output
US10068199B1 (en) 2016-05-13 2018-09-04 Palantir Technologies Inc. System to catalogue tracking data
US11227589B2 (en) 2016-06-06 2022-01-18 Apple Inc. Intelligent list reading
US10049663B2 (en) 2016-06-08 2018-08-14 Apple, Inc. Intelligent automated assistant for media exploration
US10586535B2 (en) 2016-06-10 2020-03-10 Apple Inc. Intelligent digital assistant in a multi-tasking environment
DK179415B1 (en) 2016-06-11 2018-06-14 Apple Inc Intelligent device arbitration and control
DK201670540A1 (en) 2016-06-11 2018-01-08 Apple Inc Application integration with a digital assistant
US10007674B2 (en) 2016-06-13 2018-06-26 Palantir Technologies Inc. Data revision control in large-scale data analytic systems
US10545975B1 (en) 2016-06-22 2020-01-28 Palantir Technologies Inc. Visual analysis of data using sequenced dataset reduction
US10909130B1 (en) 2016-07-01 2021-02-02 Palantir Technologies Inc. Graphical user interface for a database system
US10324609B2 (en) 2016-07-21 2019-06-18 Palantir Technologies Inc. System for providing dynamic linked panels in user interface
US10719188B2 (en) 2016-07-21 2020-07-21 Palantir Technologies Inc. Cached database and synchronization system for providing dynamic linked panels in user interface
US10503832B2 (en) * 2016-07-29 2019-12-10 Rovi Guides, Inc. Systems and methods for disambiguating a term based on static and temporal knowledge graphs
US9753935B1 (en) 2016-08-02 2017-09-05 Palantir Technologies Inc. Time-series data storage and processing database system
US10437840B1 (en) 2016-08-19 2019-10-08 Palantir Technologies Inc. Focused probabilistic entity resolution from multiple data sources
US9881066B1 (en) 2016-08-31 2018-01-30 Palantir Technologies, Inc. Systems, methods, user interfaces and algorithms for performing database analysis and search of information involving structured and/or semi-structured data
US10474753B2 (en) 2016-09-07 2019-11-12 Apple Inc. Language identification using recurrent neural networks
US10043516B2 (en) 2016-09-23 2018-08-07 Apple Inc. Intelligent automated assistant
US10552002B1 (en) 2016-09-27 2020-02-04 Palantir Technologies Inc. User interface based variable machine modeling
US10133588B1 (en) 2016-10-20 2018-11-20 Palantir Technologies Inc. Transforming instructions for collaborative updates
US10152306B2 (en) 2016-11-07 2018-12-11 Palantir Technologies Inc. Framework for developing and deploying applications
US10726507B1 (en) 2016-11-11 2020-07-28 Palantir Technologies Inc. Graphical representation of a complex task
US9842338B1 (en) 2016-11-21 2017-12-12 Palantir Technologies Inc. System to identify vulnerable card readers
US10318630B1 (en) 2016-11-21 2019-06-11 Palantir Technologies Inc. Analysis of large bodies of textual data
US11250425B1 (en) 2016-11-30 2022-02-15 Palantir Technologies Inc. Generating a statistic using electronic transaction data
US11281993B2 (en) 2016-12-05 2022-03-22 Apple Inc. Model and ensemble compression for metric learning
US9916307B1 (en) 2016-12-09 2018-03-13 International Business Machines Corporation Dynamic translation of idioms
US10055401B2 (en) 2016-12-09 2018-08-21 International Business Machines Corporation Identification and processing of idioms in an electronic environment
US10049108B2 (en) 2016-12-09 2018-08-14 International Business Machines Corporation Identification and translation of idioms
US10628428B1 (en) 2016-12-12 2020-04-21 Palantir Technologies Inc. Stack trace search
US10599663B1 (en) 2016-12-14 2020-03-24 Palantir Technologies Inc. Protected search
US10311074B1 (en) 2016-12-15 2019-06-04 Palantir Technologies Inc. Identification and compiling of information relating to an entity
US10089297B2 (en) * 2016-12-15 2018-10-02 Microsoft Technology Licensing, Llc Word order suggestion processing
US10884875B2 (en) 2016-12-15 2021-01-05 Palantir Technologies Inc. Incremental backup of computer data files
GB201621434D0 (en) 2016-12-16 2017-02-01 Palantir Technologies Inc Processing sensor logs
US9886525B1 (en) 2016-12-16 2018-02-06 Palantir Technologies Inc. Data item aggregate probability analysis system
US10249033B1 (en) 2016-12-20 2019-04-02 Palantir Technologies Inc. User interface for managing defects
US10621159B2 (en) 2016-12-20 2020-04-14 Palantir Technologies Inc. Multi-platform alerting system
US10223099B2 (en) 2016-12-21 2019-03-05 Palantir Technologies Inc. Systems and methods for peer-to-peer build sharing
US10728262B1 (en) 2016-12-21 2020-07-28 Palantir Technologies Inc. Context-aware network-based malicious activity warning systems
US10360238B1 (en) 2016-12-22 2019-07-23 Palantir Technologies Inc. Database systems and user interfaces for interactive data association, analysis, and presentation
US11373752B2 (en) 2016-12-22 2022-06-28 Palantir Technologies Inc. Detection of misuse of a benefit system
US10552436B2 (en) 2016-12-28 2020-02-04 Palantir Technologies Inc. Systems and methods for retrieving and processing data for display
US10721262B2 (en) 2016-12-28 2020-07-21 Palantir Technologies Inc. Resource-centric network cyber attack warning system
US10460602B1 (en) 2016-12-28 2019-10-29 Palantir Technologies Inc. Interactive vehicle information mapping system
US10289711B2 (en) 2017-01-04 2019-05-14 Palantir Technologies Inc. Integrated data analysis
US10216811B1 (en) 2017-01-05 2019-02-26 Palantir Technologies Inc. Collaborating using different object models
US10762471B1 (en) 2017-01-09 2020-09-01 Palantir Technologies Inc. Automating management of integrated workflows based on disparate subsidiary data sources
US11204787B2 (en) 2017-01-09 2021-12-21 Apple Inc. Application integration with a digital assistant
US10133621B1 (en) 2017-01-18 2018-11-20 Palantir Technologies Inc. Data analysis system to facilitate investigative process
US10509844B1 (en) 2017-01-19 2019-12-17 Palantir Technologies Inc. Network graph parser
US10515109B2 (en) 2017-02-15 2019-12-24 Palantir Technologies Inc. Real-time auditing of industrial equipment condition
US10581954B2 (en) 2017-03-29 2020-03-03 Palantir Technologies Inc. Metric collection and aggregation for distributed software services
US10866936B1 (en) 2017-03-29 2020-12-15 Palantir Technologies Inc. Model object management and storage system
US10475219B1 (en) 2017-03-30 2019-11-12 Palantir Technologies Inc. Multidimensional arc chart for visual comparison
US10133783B2 (en) 2017-04-11 2018-11-20 Palantir Technologies Inc. Systems and methods for constraint driven database searching
DK201770383A1 (en) 2017-05-09 2018-12-14 Apple Inc. USER INTERFACE FOR CORRECTING RECOGNITION ERRORS
US10563990B1 (en) 2017-05-09 2020-02-18 Palantir Technologies Inc. Event-based route planning
US10417266B2 (en) 2017-05-09 2019-09-17 Apple Inc. Context-aware ranking of intelligent response suggestions
US10726832B2 (en) 2017-05-11 2020-07-28 Apple Inc. Maintaining privacy of personal information
US10395654B2 (en) 2017-05-11 2019-08-27 Apple Inc. Text normalization based on a data-driven learning network
DK201770439A1 (en) 2017-05-11 2018-12-13 Apple Inc. Offline personal assistant
DK201770427A1 (en) 2017-05-12 2018-12-20 Apple Inc. LOW-LATENCY INTELLIGENT AUTOMATED ASSISTANT
DK179745B1 (en) 2017-05-12 2019-05-01 Apple Inc. SYNCHRONIZATION AND TASK DELEGATION OF A DIGITAL ASSISTANT
US11301477B2 (en) 2017-05-12 2022-04-12 Apple Inc. Feedback analysis of a digital assistant
DK179496B1 (en) 2017-05-12 2019-01-15 Apple Inc. USER-SPECIFIC Acoustic Models
DK201770432A1 (en) 2017-05-15 2018-12-21 Apple Inc. Hierarchical belief states for digital assistants
DK201770431A1 (en) 2017-05-15 2018-12-20 Apple Inc. Optimizing dialogue policy decisions for digital assistants using implicit feedback
US10403278B2 (en) 2017-05-16 2019-09-03 Apple Inc. Methods and systems for phonetic matching in digital assistant services
DK179549B1 (en) 2017-05-16 2019-02-12 Apple Inc. FAR-FIELD EXTENSION FOR DIGITAL ASSISTANT SERVICES
US10303715B2 (en) 2017-05-16 2019-05-28 Apple Inc. Intelligent automated assistant for media exploration
US20180336892A1 (en) 2017-05-16 2018-11-22 Apple Inc. Detecting a trigger of a digital assistant
US10311144B2 (en) 2017-05-16 2019-06-04 Apple Inc. Emoji word sense disambiguation
US10606872B1 (en) 2017-05-22 2020-03-31 Palantir Technologies Inc. Graphical user interface for a database system
US10896097B1 (en) 2017-05-25 2021-01-19 Palantir Technologies Inc. Approaches for backup and restoration of integrated databases
US10795749B1 (en) 2017-05-31 2020-10-06 Palantir Technologies Inc. Systems and methods for providing fault analysis user interface
GB201708818D0 (en) 2017-06-02 2017-07-19 Palantir Technologies Inc Systems and methods for retrieving and processing data
US10657328B2 (en) 2017-06-02 2020-05-19 Apple Inc. Multi-task recurrent neural network architecture for efficient morphology handling in neural language modeling
US10956406B2 (en) 2017-06-12 2021-03-23 Palantir Technologies Inc. Propagated deletion of database records and derived data
US10437807B1 (en) 2017-07-06 2019-10-08 Palantir Technologies Inc. Selecting backing stores based on data request
US11216762B1 (en) 2017-07-13 2022-01-04 Palantir Technologies Inc. Automated risk visualization using customer-centric data analysis
US10403011B1 (en) 2017-07-18 2019-09-03 Palantir Technologies Inc. Passing system with an interactive user interface
US10430444B1 (en) 2017-07-24 2019-10-01 Palantir Technologies Inc. Interactive geospatial map and geospatial visualization systems
US11263399B2 (en) * 2017-07-31 2022-03-01 Apple Inc. Correcting input based on user context
US11334552B2 (en) 2017-07-31 2022-05-17 Palantir Technologies Inc. Lightweight redundancy tool for performing transactions
US10417224B2 (en) 2017-08-14 2019-09-17 Palantir Technologies Inc. Time series database processing system
US10216695B1 (en) 2017-09-21 2019-02-26 Palantir Technologies Inc. Database system for time series data storage, processing, and analysis
US10445429B2 (en) 2017-09-21 2019-10-15 Apple Inc. Natural language understanding using vocabularies with compressed serialized tries
US10755051B2 (en) 2017-09-29 2020-08-25 Apple Inc. Rule-based natural language processing
US10636424B2 (en) 2017-11-30 2020-04-28 Apple Inc. Multi-turn canned dialog
US10614069B2 (en) 2017-12-01 2020-04-07 Palantir Technologies Inc. Workflow driven database partitioning
US11281726B2 (en) 2017-12-01 2022-03-22 Palantir Technologies Inc. System and methods for faster processor comparisons of visual graph features
US11016986B2 (en) 2017-12-04 2021-05-25 Palantir Technologies Inc. Query-based time-series data display and processing system
US10769171B1 (en) 2017-12-07 2020-09-08 Palantir Technologies Inc. Relationship analysis and mapping for interrelated multi-layered datasets
US11314721B1 (en) 2017-12-07 2022-04-26 Palantir Technologies Inc. User-interactive defect analysis for root cause
US10877984B1 (en) 2017-12-07 2020-12-29 Palantir Technologies Inc. Systems and methods for filtering and visualizing large scale datasets
US10929476B2 (en) 2017-12-14 2021-02-23 Palantir Technologies Inc. Systems and methods for visualizing and analyzing multi-dimensional data
US11475082B1 (en) 2017-12-15 2022-10-18 Palantir Technologies Inc. Systems and methods for context-based keyword searching
US11263382B1 (en) 2017-12-22 2022-03-01 Palantir Technologies Inc. Data normalization and irregularity detection system
US10733982B2 (en) 2018-01-08 2020-08-04 Apple Inc. Multi-directional dialog
US10733375B2 (en) 2018-01-31 2020-08-04 Apple Inc. Knowledge-based framework for improving natural language understanding
US10741176B2 (en) 2018-01-31 2020-08-11 International Business Machines Corporation Customizing responses to users in automated dialogue systems
US10430447B2 (en) 2018-01-31 2019-10-01 International Business Machines Corporation Predicting intent of a user from anomalous profile data
US10789959B2 (en) 2018-03-02 2020-09-29 Apple Inc. Training speaker recognition models for digital assistants
US11599369B1 (en) 2018-03-08 2023-03-07 Palantir Technologies Inc. Graphical user interface configuration system
US10592604B2 (en) 2018-03-12 2020-03-17 Apple Inc. Inverse text normalization for automatic speech recognition
US10818288B2 (en) 2018-03-26 2020-10-27 Apple Inc. Natural assistant interaction
US10909331B2 (en) 2018-03-30 2021-02-02 Apple Inc. Implicit identification of translation payload with neural machine translation
US10877654B1 (en) 2018-04-03 2020-12-29 Palantir Technologies Inc. Graphical user interfaces for optimizations
US10754822B1 (en) 2018-04-18 2020-08-25 Palantir Technologies Inc. Systems and methods for ontology migration
US10885021B1 (en) 2018-05-02 2021-01-05 Palantir Technologies Inc. Interactive interpreter and graphical user interface
EP3564765A1 (en) * 2018-05-04 2019-11-06 Schneider Electric Industries SAS Method for setting up a remote terminal unit for social networking
US11145294B2 (en) 2018-05-07 2021-10-12 Apple Inc. Intelligent automated assistant for delivering content from user experiences
US10928918B2 (en) 2018-05-07 2021-02-23 Apple Inc. Raise to speak
US10754946B1 (en) 2018-05-08 2020-08-25 Palantir Technologies Inc. Systems and methods for implementing a machine learning approach to modeling entity behavior
GB201807534D0 (en) 2018-05-09 2018-06-20 Palantir Technologies Inc Systems and methods for indexing and searching
US10685180B2 (en) * 2018-05-10 2020-06-16 International Business Machines Corporation Using remote words in data streams from remote devices to autocorrect input text
US10984780B2 (en) 2018-05-21 2021-04-20 Apple Inc. Global semantic word embeddings using bi-directional recurrent neural networks
US11386266B2 (en) 2018-06-01 2022-07-12 Apple Inc. Text correction
DK179822B1 (da) 2018-06-01 2019-07-12 Apple Inc. Voice interaction at a primary device to access call functionality of a companion device
US10892996B2 (en) 2018-06-01 2021-01-12 Apple Inc. Variable latency device coordination
DK201870355A1 (en) 2018-06-01 2019-12-16 Apple Inc. VIRTUAL ASSISTANT OPERATION IN MULTI-DEVICE ENVIRONMENTS
DK180639B1 (en) 2018-06-01 2021-11-04 Apple Inc DISABILITY OF ATTENTION-ATTENTIVE VIRTUAL ASSISTANT
US10504518B1 (en) 2018-06-03 2019-12-10 Apple Inc. Accelerated task performance
US11119630B1 (en) 2018-06-19 2021-09-14 Palantir Technologies Inc. Artificial intelligence assisted evaluations and user interface for same
US11205045B2 (en) * 2018-07-06 2021-12-21 International Business Machines Corporation Context-based autocompletion suggestion
US11126638B1 (en) 2018-09-13 2021-09-21 Palantir Technologies Inc. Data visualization and parsing system
US11010561B2 (en) 2018-09-27 2021-05-18 Apple Inc. Sentiment prediction from textual data
US11462215B2 (en) 2018-09-28 2022-10-04 Apple Inc. Multi-modal inputs for voice commands
US11170166B2 (en) 2018-09-28 2021-11-09 Apple Inc. Neural typographical error modeling via generative adversarial networks
US10839159B2 (en) 2018-09-28 2020-11-17 Apple Inc. Named entity normalization in a spoken dialog system
US11294928B1 (en) 2018-10-12 2022-04-05 Palantir Technologies Inc. System architecture for relating and linking data objects
US11475898B2 (en) 2018-10-26 2022-10-18 Apple Inc. Low-latency multi-speaker speech recognition
US11474987B1 (en) 2018-11-15 2022-10-18 Palantir Technologies Inc. Image analysis interface
US11638059B2 (en) 2019-01-04 2023-04-25 Apple Inc. Content playback on multiple devices
US11348573B2 (en) 2019-03-18 2022-05-31 Apple Inc. Multimodality in digital assistant systems
US11307752B2 (en) 2019-05-06 2022-04-19 Apple Inc. User configurable task triggers
DK201970509A1 (en) 2019-05-06 2021-01-15 Apple Inc Spoken notifications
US11423908B2 (en) 2019-05-06 2022-08-23 Apple Inc. Interpreting spoken requests
US11475884B2 (en) 2019-05-06 2022-10-18 Apple Inc. Reducing digital assistant latency when a language is incorrectly determined
US11140099B2 (en) 2019-05-21 2021-10-05 Apple Inc. Providing message response suggestions
DK201970511A1 (en) 2019-05-31 2021-02-15 Apple Inc Voice identification in digital assistant systems
US11289073B2 (en) 2019-05-31 2022-03-29 Apple Inc. Device text to speech
DK180129B1 (en) 2019-05-31 2020-06-02 Apple Inc. USER ACTIVITY SHORTCUT SUGGESTIONS
US11496600B2 (en) 2019-05-31 2022-11-08 Apple Inc. Remote execution of machine-learned models
US11360641B2 (en) 2019-06-01 2022-06-14 Apple Inc. Increasing the relevance of new available information
US10963640B2 (en) * 2019-06-28 2021-03-30 Microsoft Technology Licensing, Llc System and method for cooperative text recommendation acceptance in a user interface
US20200409474A1 (en) * 2019-06-28 2020-12-31 Microsoft Technology Licensing, Llc Acceptance of expected text suggestions
US11488406B2 (en) 2019-09-25 2022-11-01 Apple Inc. Text detection using global geometry estimators
KR20210052958A (ko) * 2019-11-01 2021-05-11 엘지전자 주식회사 인공 지능 서버
US11159458B1 (en) 2020-06-10 2021-10-26 Capital One Services, Llc Systems and methods for combining and summarizing emoji responses to generate a text reaction from the emoji responses

Family Cites Families (99)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4674112A (en) * 1985-09-06 1987-06-16 Board Of Regents, The University Of Texas System Character pattern recognition and communications apparatus
US4754474A (en) * 1985-10-21 1988-06-28 Feinson Roy W Interpretive tone telecommunication method and apparatus
EP0444358B1 (en) * 1990-02-27 1998-08-19 Oracle Corporation Dynamic optimization of a single relation access
KR950008022B1 (ko) * 1991-06-19 1995-07-24 가부시끼가이샤 히다찌세이사꾸쇼 문자처리방법 및 장치와 문자입력방법 및 장치
US5337347A (en) * 1992-06-25 1994-08-09 International Business Machines Corporation Method and system for progressive database search termination and dynamic information presentation utilizing telephone keypad input
JP3919237B2 (ja) * 1994-05-20 2007-05-23 キヤノン株式会社 画像記録再生装置、画像再生装置、及びその方法
US5537317A (en) * 1994-06-01 1996-07-16 Mitsubishi Electric Research Laboratories Inc. System for correcting grammer based parts on speech probability
US5799268A (en) * 1994-09-28 1998-08-25 Apple Computer, Inc. Method for extracting knowledge from online documentation and creating a glossary, index, help database or the like
WO1996010795A1 (en) * 1994-10-03 1996-04-11 Helfgott & Karas, P.C. A database accessing system
US5794050A (en) * 1995-01-04 1998-08-11 Intelligent Text Processing, Inc. Natural language understanding system
US5758145A (en) * 1995-02-24 1998-05-26 International Business Machines Corporation Method and apparatus for generating dynamic and hybrid sparse indices for workfiles used in SQL queries
US6070140A (en) * 1995-06-05 2000-05-30 Tran; Bao Q. Speech recognizer
WO1996041281A1 (en) * 1995-06-07 1996-12-19 International Language Engineering Corporation Machine assisted translation tools
US5818437A (en) * 1995-07-26 1998-10-06 Tegic Communications, Inc. Reduced keyboard disambiguating computer
ES2146408T3 (es) * 1995-07-26 2000-08-01 Tegic Communications Inc Sistema para la resolucion de ambiguedades de un teclado reducido.
US5634053A (en) * 1995-08-29 1997-05-27 Hughes Aircraft Company Federated information management (FIM) system and method for providing data site filtering and translation for heterogeneous databases
US5953073A (en) * 1996-07-29 1999-09-14 International Business Machines Corp. Method for relating indexing information associated with at least two indexing schemes to facilitate the play-back of user-specified digital video data and a video client incorporating the same
US5745894A (en) * 1996-08-09 1998-04-28 Digital Equipment Corporation Method for generating and searching a range-based index of word-locations
US5953541A (en) * 1997-01-24 1999-09-14 Tegic Communications, Inc. Disambiguating system for disambiguating ambiguous input sequences by displaying objects associated with the generated input sequences in the order of decreasing frequency of use
US6278992B1 (en) * 1997-03-19 2001-08-21 John Andrew Curtis Search engine using indexing method for storing and retrieving data
JP3143079B2 (ja) * 1997-05-30 2001-03-07 松下電器産業株式会社 辞書索引作成装置と文書検索装置
US5945925A (en) * 1997-05-30 1999-08-31 Budnovitch; William F. Light fixture with object detection system
JP2965010B2 (ja) * 1997-08-30 1999-10-18 日本電気株式会社 関連情報検索方法及び装置並びにプログラムを記録した機械読み取り可能な記録媒体
US6026411A (en) * 1997-11-06 2000-02-15 International Business Machines Corporation Method, apparatus, and computer program product for generating an image index and for internet searching and querying by image colors
US6377965B1 (en) * 1997-11-07 2002-04-23 Microsoft Corporation Automatic word completion system for partially entered data
KR100313462B1 (ko) * 1998-01-23 2001-12-31 윤종용 웹검색엔진에서검색된정보를지역적으로근접한순서대로표시하는방법
US6421675B1 (en) * 1998-03-16 2002-07-16 S. L. I. Systems, Inc. Search engine
GB2337611A (en) * 1998-05-20 1999-11-24 Sharp Kk Multilingual document retrieval system
US6144958A (en) * 1998-07-15 2000-11-07 Amazon.Com, Inc. System and method for correcting spelling errors in search queries
US6226635B1 (en) * 1998-08-14 2001-05-01 Microsoft Corporation Layered query management
US6370518B1 (en) * 1998-10-05 2002-04-09 Openwave Systems Inc. Method and apparatus for displaying a record from a structured database with minimum keystrokes
GB2347247A (en) * 1999-02-22 2000-08-30 Nokia Mobile Phones Ltd Communication terminal with predictive editor
US20020038308A1 (en) * 1999-05-27 2002-03-28 Michael Cappi System and method for creating a virtual data warehouse
US6421662B1 (en) * 1999-06-04 2002-07-16 Oracle Corporation Generating and implementing indexes based on criteria set forth in queries
US6453315B1 (en) * 1999-09-22 2002-09-17 Applied Semantics, Inc. Meaning-based information organization and retrieval
US6353820B1 (en) * 1999-09-29 2002-03-05 Bull Hn Information Systems Inc. Method and system for using dynamically generated code to perform index record retrieval in certain circumstances in a relational database manager
US6675165B1 (en) * 2000-02-28 2004-01-06 Barpoint.Com, Inc. Method for linking a billboard or signage to information on a global computer network through manual information input or a global positioning system
US7177798B2 (en) * 2000-04-07 2007-02-13 Rensselaer Polytechnic Institute Natural language interface using constrained intermediate dictionary of results
US6714905B1 (en) * 2000-05-02 2004-03-30 Iphrase.Com, Inc. Parsing ambiguous grammar
JP2001325252A (ja) * 2000-05-12 2001-11-22 Sony Corp 携帯端末及びその情報入力方法、辞書検索装置及び方法、媒体
US6529903B2 (en) * 2000-07-06 2003-03-04 Google, Inc. Methods and apparatus for using a modified index to provide search results in response to an ambiguous search query
US20020021311A1 (en) * 2000-08-14 2002-02-21 Approximatch Ltd. Data entry using a reduced keyboard
US6647383B1 (en) * 2000-09-01 2003-11-11 Lucent Technologies Inc. System and method for providing interactive dialogue and iterative search functions to find information
WO2002027592A1 (fr) * 2000-09-29 2002-04-04 Sony Corporation Systeme de gestion d'information faisant intervenir un agent
US7027987B1 (en) * 2001-02-07 2006-04-11 Google Inc. Voice interface for a search engine
GB0111012D0 (en) * 2001-05-04 2001-06-27 Nokia Corp A communication terminal having a predictive text editor application
US7620683B2 (en) * 2001-05-18 2009-11-17 Kabushiki Kaisha Square Enix Terminal device, information viewing method, information viewing method of information server system, and recording medium
US6947770B2 (en) * 2001-06-22 2005-09-20 Ericsson, Inc. Convenient dialing of names and numbers from a phone without alpha keypad
US20030035519A1 (en) * 2001-08-15 2003-02-20 Warmus James L. Methods and apparatus for accessing web content from a wireless telephone
US20030054830A1 (en) * 2001-09-04 2003-03-20 Zi Corporation Navigation system for mobile communication devices
US6961722B1 (en) * 2001-09-28 2005-11-01 America Online, Inc. Automated electronic dictionary
US6944609B2 (en) * 2001-10-18 2005-09-13 Lycos, Inc. Search results using editor feedback
NO316480B1 (no) * 2001-11-15 2004-01-26 Forinnova As Fremgangsmåte og system for tekstuell granskning og oppdagelse
US7149550B2 (en) * 2001-11-27 2006-12-12 Nokia Corporation Communication terminal having a text editor application with a word completion feature
US7565367B2 (en) * 2002-01-15 2009-07-21 Iac Search & Media, Inc. Enhanced popularity ranking
US6952691B2 (en) * 2002-02-01 2005-10-04 International Business Machines Corporation Method and system for searching a multi-lingual database
US20040205661A1 (en) 2002-05-23 2004-10-14 Gallemore James David System and method of reviewing and revising business documents
US7103854B2 (en) * 2002-06-27 2006-09-05 Tele Atlas North America, Inc. System and method for associating text and graphical views of map information
MXPA04012550A (es) * 2002-07-01 2005-04-19 Sony Ericsson Mobile Comm Ab Dar entrada a texto hacia un dispositivo de comunicaciones electronico.
US20040163032A1 (en) * 2002-12-17 2004-08-19 Jin Guo Ambiguity resolution for predictive text entry
GB2396529B (en) * 2002-12-20 2005-08-10 Motorola Inc Location-based mobile service provision
US20060142997A1 (en) * 2002-12-27 2006-06-29 Per Jakobsen Predictive text entry and data compression method for a mobile communication terminal
US7369988B1 (en) * 2003-02-24 2008-05-06 Sprint Spectrum L.P. Method and system for voice-enabled text entry
US7256769B2 (en) * 2003-02-24 2007-08-14 Zi Corporation Of Canada, Inc. System and method for text entry on a reduced keyboard
FI116168B (fi) * 2003-03-03 2005-09-30 Flextronics Odm Luxembourg Sa Datan syöttö
US7729913B1 (en) * 2003-03-18 2010-06-01 A9.Com, Inc. Generation and selection of voice recognition grammars for conducting database searches
US7395203B2 (en) * 2003-07-30 2008-07-01 Tegic Communications, Inc. System and method for disambiguating phonetic input
US8200865B2 (en) * 2003-09-11 2012-06-12 Eatoni Ergonomics, Inc. Efficient method and apparatus for text entry based on trigger sequences
GB2433002A (en) * 2003-09-25 2007-06-06 Canon Europa Nv Processing of Text Data involving an Ambiguous Keyboard and Method thereof.
US7240049B2 (en) * 2003-11-12 2007-07-03 Yahoo! Inc. Systems and methods for search query processing using trend analysis
US20050114312A1 (en) * 2003-11-26 2005-05-26 Microsoft Corporation Efficient string searches using numeric keypad
US20050188330A1 (en) * 2004-02-20 2005-08-25 Griffin Jason T. Predictive text input system for a mobile communication device
US7293019B2 (en) * 2004-03-02 2007-11-06 Microsoft Corporation Principles and methods for personalizing newsfeeds via an analysis of information novelty and dynamics
KR100682897B1 (ko) * 2004-11-09 2007-02-15 삼성전자주식회사 사전 업데이트 방법 및 그 장치
JP2007025980A (ja) * 2005-07-14 2007-02-01 Ricoh Co Ltd 情報指定システム、情報指定方法、サーバ装置、情報指定装置及び情報指定プログラム
US7779011B2 (en) * 2005-08-26 2010-08-17 Veveo, Inc. Method and system for dynamically processing ambiguous, reduced text search queries and highlighting results thereof
US7788266B2 (en) * 2005-08-26 2010-08-31 Veveo, Inc. Method and system for processing ambiguous, multi-term search queries
US7737999B2 (en) * 2005-08-26 2010-06-15 Veveo, Inc. User interface for visual cooperation between text input and display device
US20070100806A1 (en) * 2005-11-01 2007-05-03 Jorey Ramer Client libraries for mobile content
US9471925B2 (en) * 2005-09-14 2016-10-18 Millennial Media Llc Increasing mobile interactivity
US20070061211A1 (en) * 2005-09-14 2007-03-15 Jorey Ramer Preventing mobile communication facility click fraud
KR100643801B1 (ko) 2005-10-26 2006-11-10 엔에이치엔(주) 복수의 언어를 연동하는 자동완성 추천어 제공 시스템 및방법
US7647228B2 (en) * 2005-11-03 2010-01-12 Apptera, Inc. Method and apparatus for speech processing incorporating user intent
US7644054B2 (en) * 2005-11-23 2010-01-05 Veveo, Inc. System and method for finding desired results by incremental search using an ambiguous keypad with the input containing orthographic and typographic errors
US20070195063A1 (en) * 2006-02-21 2007-08-23 Wagner Paul T Alphanumeric data processing in a telephone
US7739280B2 (en) * 2006-03-06 2010-06-15 Veveo, Inc. Methods and systems for selecting and presenting content based on user preference information extracted from an aggregate preference signature
EP2911071A1 (en) * 2006-04-20 2015-08-26 Veveo, Inc. User interface methods and systems for selecting and presenting content based on user navigation and selection actions associated with the content
CN101079025B (zh) * 2006-06-19 2010-06-16 腾讯科技(深圳)有限公司 一种文档相关度计算系统和方法
US7536384B2 (en) * 2006-09-14 2009-05-19 Veveo, Inc. Methods and systems for dynamically rearranging search results into hierarchically organized concept clusters
US7979425B2 (en) * 2006-10-25 2011-07-12 Google Inc. Server-side match
US8135800B1 (en) * 2006-12-27 2012-03-13 Qurio Holdings, Inc. System and method for user classification based on social network aware content analysis
US8112402B2 (en) * 2007-02-26 2012-02-07 Microsoft Corporation Automatic disambiguation based on a reference resource
US8538743B2 (en) * 2007-03-21 2013-09-17 Nuance Communications, Inc. Disambiguating text that is to be converted to speech using configurable lexeme based rules
GB0710845D0 (en) * 2007-06-06 2007-07-18 Crisp Thinking Ltd Communication system
US7827165B2 (en) * 2007-09-17 2010-11-02 International Business Machines Corporation Providing a social network aware input dictionary
US8166168B2 (en) * 2007-12-17 2012-04-24 Yahoo! Inc. System and method for disambiguating non-unique identifiers using information obtained from disparate communication channels
US20090187401A1 (en) * 2008-01-17 2009-07-23 Thanh Vuong Handheld electronic device and associated method for obtaining new language objects for a temporary dictionary used by a disambiguation routine on the device
US20090299990A1 (en) * 2008-05-30 2009-12-03 Vidya Setlur Method, apparatus and computer program product for providing correlations between information from heterogenous sources
KR20100041145A (ko) * 2008-10-13 2010-04-22 삼성전자주식회사 쿼티 키패드를 갖는 휴대 단말기의 발신 방법 및 전화번호 저장 방법

Also Published As

Publication number Publication date
WO2010045549A2 (en) 2010-04-22
EP2370894A4 (en) 2018-01-03
EP2370894A2 (en) 2011-10-05
KR101606229B1 (ko) 2016-03-24
CN102301358B (zh) 2014-12-03
JP2012506101A (ja) 2012-03-08
CN102301358A (zh) 2011-12-28
US20100114887A1 (en) 2010-05-06
WO2010045549A3 (en) 2011-09-29

Similar Documents

Publication Publication Date Title
KR101606229B1 (ko) 소셜 접속을 이용한 텍스트 명확화 방법 및 시스템
US11461003B1 (en) User interface for presenting suggestions from a local search corpus
US9015616B2 (en) Search initiation
US9990052B2 (en) Intent-aware keyboard
US10747944B1 (en) Unified web and application framework
US8515751B2 (en) Selective feedback for text recognition systems
TWI492075B (zh) 在對話期間提供建議的方法,使用所述方法的電子裝置,以及電腦程式產品
US8775407B1 (en) Determining intent of text entry
JP5116772B2 (ja) 適応データベース
US20160006856A1 (en) Messaging application with in-application search functionality
US20140188889A1 (en) Predictive Selection and Parallel Execution of Applications and Services
CN113571058A (zh) 语音动作可发现性系统
US8462123B1 (en) Constrained keyboard organization
KR20130115985A (ko) 컨텍스트에 기반하여 선택된 컨텐츠 항목 제공
WO2009145988A1 (en) Techniques for input recognition and completion
US11907316B2 (en) Processor-implemented method, computing system and computer program for invoking a search
CN113826089A (zh) 对聊天机器人中的自然理解系统的具有到期指标的上下文反馈
KR102082023B1 (ko) 커스텀 rtf 커맨드를 사용하여 채팅 기능을 확장하는 기법
KR102691841B1 (ko) 검색 서비스를 제공하는 시스템 및 방법
US9996622B2 (en) Browser new tab page generation for enterprise environments
US10437887B1 (en) Determining intent of text entry
US20140289741A1 (en) Cooperation method, image processing device, and medium
CN110866153B (zh) 一种数据处理方法、装置和用于数据处理的装置

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant