KR102052033B1 - 다양한 구조화 방식들로 인스턴트 메시지들을 조직화하고 표시하기 위한 장치 및 방법 - Google Patents

다양한 구조화 방식들로 인스턴트 메시지들을 조직화하고 표시하기 위한 장치 및 방법 Download PDF

Info

Publication number
KR102052033B1
KR102052033B1 KR1020180066911A KR20180066911A KR102052033B1 KR 102052033 B1 KR102052033 B1 KR 102052033B1 KR 1020180066911 A KR1020180066911 A KR 1020180066911A KR 20180066911 A KR20180066911 A KR 20180066911A KR 102052033 B1 KR102052033 B1 KR 102052033B1
Authority
KR
South Korea
Prior art keywords
message
sentence
width
text
layout
Prior art date
Application number
KR1020180066911A
Other languages
English (en)
Inventor
김병진
Original Assignee
김병진
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 김병진 filed Critical 김병진
Priority to KR1020180066911A priority Critical patent/KR102052033B1/ko
Application granted granted Critical
Publication of KR102052033B1 publication Critical patent/KR102052033B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • G06Q50/30
    • 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
    • G06Q50/00Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
    • G06Q50/40Business processes related to the transportation industry
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/04Real-time or near real-time messaging, e.g. instant messaging [IM]

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Business, Economics & Management (AREA)
  • Tourism & Hospitality (AREA)
  • Human Computer Interaction (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Operations Research (AREA)
  • Health & Medical Sciences (AREA)
  • Economics (AREA)
  • General Health & Medical Sciences (AREA)
  • Human Resources & Organizations (AREA)
  • Marketing (AREA)
  • Primary Health Care (AREA)
  • Strategic Management (AREA)
  • General Business, Economics & Management (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

메시지들을 조직화하고 표시하기 위한 장치로서, 상기 장치는 프로세서를 포함하며, 상기 프로세서는, 상기 장치들 간에 교환되는 상기 메시지들을 구조화 방식으로 조직화하고 표시하기 위한 복수의 레이아웃 모드를 설정하고; 상기 복수의 레이아웃 모드 중에서 채팅 세션을 위한 하나의 레이아웃 모드를 결정하고; 상기 결정된 레이아웃 모드에서 상기 채팅 세션에 포함되는 메시지들을 디스플레이 상에 표시하고; 소정의 이벤트 발생시마다 디스플레이되는 모든 메시지들의 텍스트 박스 폭을 상기 구조화 방식으로 조정한다.

Description

다양한 구조화 방식들로 인스턴트 메시지들을 조직화하고 표시하기 위한 장치 및 방법 {DEVICE AND METHOD FOR ORGANIZING AND DISPLAYING INSTANT MESSAGES IN VARIOUS STRUCTURED FASHIONS}
본 발명은 다양한 구조화 방식들로 인스턴트 메시지들을 조직화하고 조직화된 인스턴트 메시지들을 디스플레이 상에 표시하기 위한 사용자 인터페이스를 제공하기 위한 장치 및 방법에 관한 것이다.
이 섹션에서의 설명은 본 발명과 관련된 배경 정보를 제공할 뿐이며 종래 기술을 구성하지 않는다.
사용자들이 인스턴트 메시징(instant messaging(이하, "IM"이라 함))을 통해 서로 교신할 때, 양 당사자는 다른 당사자가 보낸 송신한 질문 또는 소견에도 응답할 수 없는 경우가 있다. 본 발명자는 하나의 사용자가 다른 사용자에게 다수의 질문을 송신하고 다른 사용자가 이러한 질문들에 동시에 응답해야 할 수 있다는 점에 주목하였다. 이러한 일이 일어날 때, "응답자"는 어떤 질문에 송신자(들)가 응답받고 있는지를 설명해야 하는 정신적인 부담에 직면하며, 이것이 명확하게 설명되지 않았다면, 송신자(들)는 어떤 메시지가 송신자(들)가 송신한 질문에 대한 대답인지를 파악해야 하는 정신적인 부담에 직면한다. 본 발명자(들)는 둘보다 많은 사용자가 IM을 통해 서로 교신하는 경우 상황이 더 악화될 수 있다는 것을 직관적으로 경험했다. 본 발명자(들)는 복수의 사용자가 메시징 소프트웨어(또는 애플리케이션)를 통해 IM들을 송신하는 경우에 사용자가 IM을 통해 복수의 사용자에 대해 수신된 메시지들을 구별함에 있어서 혼란스럽거나 성가실 수 있고, 각각의 송신자 별로 누가 각각의 메시지들을 송신하는지를 식별하는 데에 부담을 느낄 수 있다는 것을 경험했다.
본 발명자(들)는 공지된 IM 소프트웨어 또는 공지된 IM 애플리케이션이 응답자와 송신자(들) 사이에서 교신되거나 교환되는 메시지들을 터치스크린 디스플레이 상에 사용자 친화적으로 디스플레이 하기 위한 어떠한 사용자 인터페이스도 제공하지 않는다는 점을 해결하고자 하며, 또한 각 메시지를 송신하는 송신자를 용이하게 식별하고 응답자의 메시지가 어떤 송신자의 메시지에 대한 응답인지를 파악하기 용이하도록 하여 보다 사용자 친화적인 환경을 제공하고자 한다.
본 발명의 일 양상에 따르면, 메시지들을 조직화하고 표시하기 위한 장치가 제공된다. 상기 장치는 프로세서를 포함하며, 상기 프로세서는, 상기 장치들 간에 교환되는 상기 메시지들을 구조화 방식으로 조직화하고 표시하기 위한 복수의 레이아웃 모드를 설정하고; 상기 복수의 레이아웃 모드 중에서 채팅 세션을 위한 하나의 레이아웃 모드를 결정하고; 상기 결정된 레이아웃 모드에서 상기 채팅 세션에 포함되는 메시지들을 디스플레이 상에 표시하고; 소정의 이벤트 발생시마다 디스플레이되는 모든 메시지들의 텍스트 박스 폭을 상기 구조화 방식으로 조정한다.
본 발명은 응답자와 송신자(들) 사이에서 교신되거나 교환되는 메시지들을 터치스크린 디스플레이 상에 사용자 친화적으로 디스플레이 하기 위한 사용자 인터페이스를 제공하며, 별도의 오퍼레이터 심벌 없이도 송신자와 수신자를 용이하게 식별할 수 있고 응답 메시지가 응답하고자 하는 대응 메시지 아래에 배치되어 계층 구조로 표시됨으로써 응답 메시지가 어떤 메시지에 대한 응답인지를 파악하기 용이하여 보다 사용자 친화적인 환경을 제공한다.
본 발명의 상기 및 다른 목적들, 특징들 및 이점들은 첨부된 도면들과 관련하여 이루어지는 발명의 상세한 설명으로부터 보다 명확해질 것이다.
도 1은 본 발명의 적어도 하나의 예시적인 실시예에 따른 장치의 개략적인 블록도이다.
도 2는 본 발명의 적어도 하나의 예시적인 실시예에 따른 장치의 터치스크린의 개략적인 블록도이다.
도 3은 본 발명의 적어도 하나의 다른 예시적인 실시예에 따른 장치의 개략적인 블록도이다.
도 4는 본 발명의 적어도 하나의 예시적인 실시예에 따른 장치 상의 애플리케이션의 메뉴에 대한 사용자 인터페이스들을 도시하는 예시적인 도면이다.
도 5는 4인의 그룹이 인스턴트 메시지들을 교환하고 있는 상황을 나타내는 예시적인 도면이다.
도 6은 본 발명의 적어도 하나의 예시적인 실시예에 따른 메시징 디스플레이를 나타내는 예시적인 도면이다.
도 7a-7i는 본 발명의 이론적 근거를 설명하는 예시적인 도면들을 도시한다.
도 8a는 고유 식별자들을 갖는 레이아웃을 도시하는 예시적인 도면이다.
도 8b는 주 키(primary key)를 나타내는 예시적인 도면이다.
도 9a 및 9b는 GFAL(Generalized Fixed Angle Layout)이라고 하는 "템플릿"을 도시하는 예시적인 도면들로 구성된다.
도 10a 및 10b는 GVAL(Generalized Varying Angle Layout)이라고 하는 "템플릿"을 도시하는 예시적인 도면들로 구성된다.
도 11a 및 11b는 GMAL(Generalized Mixed Angle Layout)이라고 하는 "템플릿"을 도시하는 예시적인 도면들로 구성된다.
도 12a 및 12b는 SWL-LR(Same Width Layout - Left to Right) 및 SWL-RL(Same Width Layout - Right to Left) 을 도시하는 예시적인 도면들로 구성된다.
도 12c는 각각 FAL-R(Fixed Angles Layout - Right Aligned), VAL-R(Varying Angle Layout - Right Aligned) 및 MAL-R(Mixed Angle Layout - Right Aligned)을 도시하는 예시적인 도면들로 구성된다.
도 12d는 각각 Fixed Angle Layout - Center Aligned (FAL-C), Varying Angle Layout - Center Aligned (VAL-C), 및 Mixed Angle Layout - Center Aligned (MAL-C)를 도시하는 예시적인 도면들로 구성된다.
도 12e는 각각 Fixed Angles Layout - Left Aligned (FAL-L), Varying Angle Layout - Left Aligned (VAL-L), 및 Mixed Angle Layout - Left Aligned (MAL-L)을 도시하는 예시적인 도면들로 구성된다.
도 13a 및 13b는 레이아웃 내의 모든 텍스트 박스 폭들을 결정하기 위해 착신 또는 발신 텍스트 메시지(들)를 처리하는 방법을 도시하는 흐름도들로 구성된다.
도 14는 다양한 Reference Width Equations (RWEs) 및 Reference Depth Equations (RDEs)를 도시하는 표이다.
도 15a는 SWL-LR 하에서의 사용자들 간의 인스턴트 메시징을 도시하는 예시적인 도면들로 구성된다.
도 15b는 FAL-R 하에서의 사용자들 간의 인스턴트 메시징을 도시하는 예시적인 도면들로 구성된다.
도 15c는 고정 회전 포인트(fixed rotation point) VAL-R 하에서의 사용자들 간의 인스턴트 메시징을 도시하는 예시적인 도면들로 구성된다.
도 15d는 부동 회전 포인트(floating rotation point) VAL-R 하에서의 사용자들 간의 인스턴트 메시징을 도시하는 예시적인 도면들로 구성된다.
도 15e는 고정 회전 포인트(fixed rotation point) MAL-R 하에서의 사용자들 간의 인스턴트 메시징을 도시하는 예시적인 도면들로 구성된다.
도 16a는 세로 모드 및 가로 모드에서의 레이아웃들을 도시하는 예시적인 도면들로 구성된다.
도 16b 및 16c는 장치가 세로 모드에서 가로 모드로 회전할 때 모든 텍스트 박스 폭들을 재조정하는 방법을 도시하는 흐름도들로 구성된다.
도 17a는 레이아웃 모드를 선택하는 방법을 도시하는 흐름도로 구성된다.
도 17b는 관련 파라미터들(정보)을 갖는 텍스트 메시지를 송신하는 방법을 도시하는 흐름도로 구성된다.
도 17c는 검출된 텍스트 메시지로부터 관련 파라미터들을 추출하는 방법을 도시하는 흐름도로 구성된다.
이하, 첨부된 도면들을 참조하여 본 발명의 예시적인 실시예들을 설명한다.
본 발명은 교환된 메시지들 중 더 이른 선행 메시지(들)를 고려하여 인스턴트 메시지들을 다양한 계층 구조화 방식들로 조직화하고, 조직화된 인스턴트 메시지들을 터치스크린 디스플레이 상에 다양한 방식들로 표시하기 위한 사용자 인터페이스를 제공하기 위한 장치 및 방법에 관한 것이다. 개시되는 실시예들은 사용자들이 인스턴트 메시징 소프트웨어(또는 애플리케이션)로 수신 또는 송신된 메시지들에 응답할 수 있게 하고, 구조화되고 일관된 방식으로 인스턴트 메시지들을 관리할 수 있게 하는 터치스크린 디스플레이들을 갖는 다기능 장치들에 관한 것이다.
도 1은 본 발명의 적어도 하나의 예시적인 실시예에 따른 장치의 개략적인 블록도이다. 장치(100)는 유선 또는 무선 네트워크(들)를 통해 인스턴트 메시지들을 송수신하기 위한 사용자 장치를 지칭하며, 예를 들어 모바일 휴대용 단말기, 멀티미디어 플레이어 장치, 내비게이션 장치, 교육용 장치, 게이밍 시스템, 제어 장치, 개인용 컴퓨터(PC), 랩탑 컴퓨터, 태블릿 PC, 개인 휴대 단말기(PDA) 등에 대응한다. 그러나, 장치(100)는 이에 한정되지 않으며, 유선 또는 무선 네트워크(들)를 통해 인스턴트 메시지들을 송수신할 수 있는 모든 장치들을 포함할 수 있다. 장치(100)는 텍스트 메시지들, 이미지 및 비디오 메시지들을 입력하고, 다른 사용자들에게 송신되고 및/또는 그들로부터 수신된 메시지들을 표시하도록 구성된 터치 감지 디스플레이(102)(이하, 터치스크린 또는 터치스크린 디스플레이라고 함)를 포함한다. 터치 감지 디스플레이(102)는 사용자의 모션들, 및 예를 들어 사용자의 손가락(들) 또는 스타일러스 펜에 의해 개시된 접촉(들)을 감지 및/또는 검출하기 위한 입력 패널을 갖춘 "터치스크린" 또는 "터치 감지 디스플레이 시스템"을 지칭한다. 장치(100)는 또한 메모리(104)(하나 이상의 비휘발성 컴퓨터 판독 가능 저장 매체를 포함할 수 있음), 메모리 제어기(106), 하나 이상의 프로세서(예를 들어, 마이크로프로세서 또는 CPU)(108), 주변 장치 인터페이스(110), RF 회로(112), 오디오 회로(114), 스피커(116), 마이크로폰(118), 근접 센서(120) 및 가속도계(122)를 포함한다. 장치(100)는 입/출력(I/O) 서브시스템(124), 다른 입력 또는 제어 장치들(126), 외부 포트(128) 및 하나 이상의 광 센서(도시되지 않음)를 포함한다. 이들 컴포넌트는 하나 이상의 통신 버스 또는 신호 라인(양방향 화살표로 표시됨)을 통해 통신한다. 장치(100)는 휴대용 다기능 장치의 예시적인 실시예이고, 장치는 도 1에 도시된 것보다 많거나 적은 컴포넌트로 구현되거나, 2개 이상의 컴포넌트를 결합하거나, 상이한 구성 또는 배열의 컴포넌트들로 구현된다. 도 1에 도시된 다양한 컴포넌트들은 하나 이상의 신호 처리 프로세서 및/또는 회로를 포함하는 하드웨어, 소프트웨어, 또는 하드웨어 및 소프트웨어 양자의 조합으로 구현된다. 장치(100)의 각각의 컴포넌트는 하나 이상의 프로세서 및/또는 주문형 집적 회로(ASIC)에 의해 구현되어 이하에 설명하는 특정 기능들을 수행한다.
도 2는 본 발명의 적어도 하나의 예시적인 실시예에 따른 다기능 장치의 터치스크린의 개략적인 블록도이다. 도 2를 참조하면, 터치스크린(102)은 장치(200)(즉, 도 1의 장치(100)와 동일한 장치)의 사용자 인터페이스(UI) 내에 하나 이상의 그래픽 및/또는 텍스트를 표시한다. 일부 실시예들은 물론, 후술하는 다른 실시예들에서, 사용자는 예를 들어 하나 이상의 손가락의 터치들(202)로 그래픽들과 접촉하거나 터치함으로써 미리 정의된 기능들과 관련된 하나 이상의 그래픽을 선택한다. 일부 실시예들에서, 사용자가 하나 이상의 그래픽과의 접촉을 끊을 때 하나 이상의 그래픽의 선택이 발생한다. 일부 실시예들에서, 다양한 타입의 접촉은 예를 들어 장치(200)의 터치스크린(102)(또는 다양한 모션들을 검출하기 위한 카메라 센서(도면들에 도시되지 않음))과 접촉을 행하는 손가락의 하나 이상의 탭, 하나 이상의 스와이프(좌에서 우로, 우에서 좌로, 위로 그리고/또는 아래로) 및/또는 롤링(우에서 좌로, 좌에서 우로, 위로 그리고/또는 아래로)과 같은 제스처를 포함한다. 일부 실시예들에서, 그래픽과의 우연한 접촉은 그래픽을 선택하지 않는다. 예를 들어, 애플리케이션 아이콘 위를 스와이핑하는 스와이프 제스처는 선택에 대응하는 제스처가 탭일 때 대응하는 애플리케이션을 선택하지 않는다.
장치(200)는 또한 "홈" 또는 메뉴 버튼(204) 및 제어 버튼(들)(206)과 같은 하나 이상의 물리적 버튼을 포함한다. 메뉴 버튼(204) 또는 제어 버튼(들)(206)은 메모리(104) 내에 로딩되고 그로부터 검색되고 장치(200) 상에서 실행되는 애플리케이션들의 세트 내의 임의의 애플리케이션을 내비게이션하는 데 사용된다. 이와 달리, 일부 실시예들에서는, 메뉴 버튼(204)이 물리적 버튼 대신 또는 추가로 터치스크린(102) 내의 그래픽 사용자 인터페이스(GUI) 내에 구현된 소프트 키로서 구현된다.
일 실시예에서, 장치(200)는 터치스크린(102), 메뉴 버튼(204), 제어 버튼(206), 장치를 파워 온/오프하고 장치를 잠그기 위한 푸시 버튼(208), 볼륨 조정 버튼(들)(210), 가입자 식별 모듈(SIM) 카드 슬롯(212), 헤드셋 잭(214), 외부 메모리 카드 슬롯(216) 및 도킹/충전 외부 포트(218)를 포함한다. 푸시 버튼(208)은 버튼을 누르고, 버튼을 누른 상태로 미리 정의된 시간 간격 동안 유지함으로써 장치 상에서 파워를 턴 온/오프하고; 버튼을 누르고, 미리 정의된 시간 간격이 경과하기 전에 버튼을 해제함으로써 장치를 잠그고/잠그거나; 장치의 잠금을 해제하거나 잠금 해제 프로세스를 시작하는 데 사용된다. 다른 실시예에서, 장치(100)는 마이크로폰(118)을 통해 일부 기능들의 활성화 또는 비활성화를 위한 구두 입력을 검출한다.
도 3은 본 발명의 적어도 하나의 다른 예시적인 실시예에 따른 장치의 개략적인 블록도이다. 도 3을 참조하면, 일부 실시예들에서, 장치(200)는 하나 이상의 프로세서(CPU)(300) 및 하나 이상의 네트워크 또는 다른 통신 인터페이스(302)를 포함한다. 장치(200)는 메모리(304)를 포함한다. 메모리는 DRAM, SRAM, DDR RAM 또는 다른 랜덤 액세스 고체 상태 메모리 장치들과 같은 고속 랜덤 액세스 메모리를 포함하며; 하나 이상의 자기 디스크 저장 장치, 광 디스크 저장 장치, 플래시 메모리 장치 또는 다른 비휘발성 고체 상태 저장 장치와 같은 비휘발성 메모리를 포함한다. 장치(200)는 일부 실시예들에서 터치스크린 디스플레이(102)인 디스플레이, 키보드 및/또는 마우스(또는 다른 포인팅 장치) 및 터치 패드로 구성된 입출력(I/O) 인터페이스(306)를 포함한다. 다기능 장치(200)에는 이들 컴포넌트를 상호 접속하기 위한 하나 이상의 통신 버스(308)가 존재한다. 통신 버스(308)는 시스템 컴포넌트들을 상호접속하고 이들 간의 통신을 제어하는 회로(때때로 칩셋이라고 함)를 포함한다.
도 4는 본 발명의 적어도 하나의 예시적인 실시예에 따른 장치 상의 애플리케이션들의 메뉴에 대한 사용자 인터페이스들을 도시하는 예시적인 도면이다. 사용자 인터페이스 실시예들과 유사하게, 사용자 인터페이스(400)는 다음의 요소들: 셀룰러 및 와이파이 신호들과 같은 무선 통신(들)을 위한 신호 강도 지시기(402), 시간(404), 배터리 상태 지시기(406), 및 장치와 관련된 다른 정보 또는 주식 시세 및 날씨와 같은 장치 또는 사용자 맞춤 정보, 또는 이들의 서브세트(또는 부분집합) 또는 수퍼세트(또는 상위집합)를 포함한다.
인터페이스(400)는 예를 들어 설정들(장치의 일반 설정), 사진들, 교통 정보, 수학 공식들, 게임들, 계산기들, 사전, 영화들, 메일, 카메라 등과 같은 애플리케이션들에 대한 아이콘들을 포함한다. 인터페이스(400)는 예를 들어 지정된 영역의 일기 예보 및 사용자에게 주식 시세 및 뉴스를 제공하는 주식 시장 정보 위젯과 같은 위젯들을 포함한다.
인터페이스(400)는 또한 예를 들어 전화, 텍스트, 인터넷 브라우저, 뮤직 플레이어 및 통화 변환기와 같은 다수의 자주 사용되는 아이콘들을 하이라이트하거나 그룹화한다.
도 5는 4인의 그룹(500; 나, 수퍼맨, 배트맨, 스파이더맨)이 인스턴트 메시지들(또는 텍스트 메시지들)을 교환하는 것을 도시하는 예시적인 도면이다. 동일한 세션에서 4명의 멤버 사이에서 인스턴트 메시지들을 교환하는 상황에서, 도 5에 도시된 바와 같이 텍스트 메시지들을 표시하는 방식은 수신자(들)(사용자(들))로 하여금 텍스트 메시지들을 구별(식별, 조직화 또는 분류)하게 하며, 어느 텍스트 메시지가 누구에게 가는지가 명확하지 않을 경우에는 양 당사자 인스턴트 메시징보다 훨씬 혼란스러울 수 있는데, 이는 도 5에 표시된 일반적인 방식에서는 텍스트 메시지들 각각이 누구에게서 시작되는지를 식별하거나 추적하기 위해 수신자(들)가 소정의 노력을 기울여야 하기 때문이다. 혼란을 피하기 위해, 사용자들은 예를 들어 미리 정의된 식별 또는 심벌(식별자 또는 연산자)(예를 들어, @ + 타겟 수신자)을 추가함으로써 그들이 누구에게 응답하고 있는지를 표시한다. 예를 들어, 도면부호 502, 504 및 506에서, 사용자들은 그들이 누구에게 응답하고 있는지를 나타내기 위해 오퍼레이터 심벌 @(at) 기호(즉, 특정 텍스트 메시지에 대한 타겟 수신자를 지정하는 연산자의 심벌)를 사용했다. 이것은 그룹의 멤버들로부터의 각각의 텍스트 메시지마다 오퍼레이터 심벌(즉, @) 및 타겟 수신자를 입력하기 위해 불필요한 시간을 필요로 하고 사용자들을 귀찮게 하기 때문에 사용자들에게 불편하며, 이러한 도 5의 시스템은 응답자들 및 수신자들에게 불필요한 정신적 부담을 준다.
도 6은 본 발명의 적어도 하나의 예시적인 실시예에 따른 메시징 디스플레이를 나타내는 예시적인 도면이다. 도 6에 도시된 바와 같이, 임의의 텍스트 메시지의 응답은 응답 텍스트 메시지를 사용자가 응답하고자 하는 대응하는 텍스트 메시지 아래에 배치함으로써 계층 구조로 표시된다. 텍스트 메시지의 응답은 들여쓰기와 함께 "타겟" 텍스트 메시지(예컨대, 도 6의 "Blue crab tonight? Anybody up for it?"의 발신 텍스트 메시지) 아래에 배치된다. 따라서, 동일한 양의 들여쓰기를 갖는 타겟 텍스트 메시지 아래의 모든 텍스트 메시지들은 타겟 텍스트 메시지에 대한 가장 관련된 응답들(즉, 타겟 텍스트 메시지(600)에 직접 의존하는 응답들(602, 604, 606 및 608))로서 그룹화된다. 예를 들어, 제1 텍스트 메시지(600)는 송신자(즉, 나; 아이언맨)로부터 개시된 발신 메시지이다. 텍스트 메시지들(602, 604, 606 및 608)은 모두 제1 텍스트 메시지(600)에 대한 응답들이고, 그에 직접 의존한다. 4개의 응답(즉, 텍스트 메시지들(602, 604, 606 및 608)은 제1 텍스트 메시지(600)와 직접 관련된다. 사용자는 4개의 텍스트 메시지가 텍스트 메시지(600)와 관련된 응답들임을 식별하는데, 이는 그들이 제1 텍스트 메시지(600)의 위치로부터 배열된 동일한 양의 들여쓰기들과 함께 텍스트 메시지(600) 아래 배치되기 때문이다. 또한, 사용자(즉, 나: 아이언맨)는 텍스트 메시지들(610, 612)이 텍스트 메시지(604)와 직접 관련된 응답들이며, 텍스트 메시지(600)와 관련되지도 그로부터 유래하지도 않는다는 것을 식별할 수 있다. 다시, 2개의 응답(610, 612)은 그와 같이 식별되는데, 이는 이 2개가 타겟 텍스트 메시지(604)의 위치로부터 배열된 동일한 양의 들여쓰기와 함께 타겟 텍스트 메시지(604) 아래 배치되기 때문이다.
따라서, 본 발명은 사용자의 교신을 구조화되고 조직화된 방식으로 제시하는 IM 표시 방법을 제공한다. 본 발명은 장치(100)에 대한 상기 제시와 터치스크린 디스플레이(102)를 통합하는 (기술적인 의미에서) 체계적으로 최적화된 방식을 제공한다.
사용자들의 그룹이 이미 존재하는 텍스트 메시지(들)에 응답할 수 있고, 교신이 계층적 방식으로 가시적으로 조직화되는 경우에, 이러한 시스템을 응답 메시징 시스템(RMS)이라고 부르기로 한다.
이하, 도 7a-7i에서, RMS의 아이디어 및 이론적 근거가 설명된다.
공지된 IM에서, 사용자의 텍스트 메시지들을 포함하는 텍스트 박스들의 크기는 텍스트 메시지가 짧을수록 텍스트 박스가 더 작고, 텍스트 메시지가 길수록 텍스트 박스가 더 크다는 점에서 최적화된다. 사용자들이 서로 송신하는 텍스트 메시지들은 분명히 무작위 길이들을 가지므로, 이러한 텍스트 메시지들은 상이한 크기의 텍스트 박스들 내에 표시된다. 이러한 특징이 존재하지 않는 경우에는, 모든 사용자들의 텍스트 메시지들은 그들의 텍스트 메시지들의 길이들에 관계없이 텍스트 박스 크기에서 동일한 폭을 각각 갖는 텍스트 박스들 내에 배치된다.
도 7a에 도시된 바와 같이, 장치(200)가 비교적 짧은 텍스트 메시지(예를 들어, 텍스트 메시지(700))를 표시할 때, 텍스트 메시지를 "감싸는" 텍스트 박스의 폭도 비교적 더 짧다. 장치(200)가 더 긴 텍스트 메시지(702)를 표시할 때, 텍스트 메시지를 감싸는 텍스트 박스의 폭도 증가한다. 또한, 텍스트 메시지가 소정 폭보다 길 경우 또는 길 때, 장치(200)는 텍스트 메시지를 다수의 (텍스트) 라인으로 분할하며, 텍스트 메시지(704) 및 텍스트 박스(706)의 폭은 일정하게 유지된다.
이제, 장치가 텍스트 박스들의 폭들을 그들의 관련성에 따라 조정하는 어떠한 메커니즘도 없이 구조화 방식으로 모든 텍스트 메시지들을 단순히 조직화하는 경우 또는 조직화할 때, 텍스트 메시지들은 도 7b에 예시적으로 표시된다. 도 7b에서, 모든 텍스트 메시지들은 구조화 방식으로 조직화되지만, 텍스트 박스들의 폭들은 임의적이고, 사용자들에게 양호한 판독성을 제공하지 못하며, 텍스트 박스들의 배치들은 무질서하게 보인다. 판독성을 높이고 조직화하기 위해, 모든 텍스트 박스들의 폭들은 도 7c에 도시된 바와 같이 조정된다.
도 7c의 텍스트 메시지들의 수집은 사용자들의 교신의 최종 결과이다. 그러나, 이것은 각각의 인스턴트 메시지(IM)가 어떻게 진행했는지를 나타내지 않는다.
도 7d는 이 포인트를 도시하는 동시에 RMS의 기본 특성을 도시한다. 도 7d의 ①에서, 사용자는 텍스트 메시지("ABC")를 수신한다. 도시된 바와 같이, 텍스트 박스는 텍스트를 "감싸며", 텍스트 박스의 폭은 텍스트 "ABC"의 실제 길이에 가깝다. 도 7d의 ②에서, 사용자는 제1 텍스트 메시지에 응답하는 더 긴 텍스트 메시지("ABCDE")를 수신한다. 제1 텍스트 메시지("ABC")의 텍스트 박스의 폭은 미리 정의된 특정 외관을 형성하도록 조정되었다는 점에 유의한다. 도 7d의 ③에서, 사용자는 제1 텍스트 메시지에 대한 다른 응답 텍스트 메시지("EDCBA")를 수신한다. 텍스트 메시지는 첫 번째 것에 대한 응답이기 때문에 제1 응답 아래에 배치된다. 도 7d의 ④에서, 사용자는 다른 더 긴 텍스트 메시지("ABCDEFGHIJKLMN")를 수신하며, 처음 3개의 텍스트 메시지의 텍스트 박스들의 폭들은 특정 외관을 형성하도록 조정되었다. 또한, 수신된 텍스트 메시지("ABCDEFGHIJKLMN")는 두 번째 것("ABCDEF")에 대한 응답이며, 그에 직접 의존한다. 도 7d의 ⑤에서, 최종 텍스트 메시지(즉, "ABCDEFGHIJKLMN")는 장치(또는 시스템)로부터 삭제되었다. 처음 2개의 텍스트 메시지의 텍스트 박스들의 폭들은 나머지 텍스트 박스들 중에서 텍스트 박스의 가장 긴 폭을 갖는 텍스트 박스의 폭과 같도록 조정(감소)되었다는 점에 유의한다.
도 7d는 RMS에서 텍스트 박스들의 폭들이 착신/발신 텍스트 메시지들의 텍스트 길이뿐만 아니라 임의의 기존 텍스트 메시지(들)의 삭제에 따라 변하는 것을 도시한다. 발신 또는 착신 텍스트 메시지의 길이는 임의적이기 때문에, 사용자가 텍스트 메시지를 송신/수신할 때마다 각각의 텍스트 박스에 대한 "우측" 텍스트 박스 폭을 계산하여 채팅 세션에서 현재 제시되는 메시지들을 검출하고 분석하는 절차가 수행된다(텍스트 메시지, 예를 들어 "ABC"의 길이는 임의의 양의 실수일 수 있으며, 단위는 픽셀, 문자 수, 밀리미터, 센티미터, 인치 등일 수 있다는 점에 유의한다). 따라서, RMS에서는, 사용자가 텍스트 메시지를 송신 또는 수신할 때마다, 장치(200)가 채팅 세션에 현재 참여하고 있는 다른 사용자들에게 송신하였거나 그들로부터 수신한 채팅 세션 동안의 모든 메시지들의 길이들을 사용하는 규칙들의 세트에 의해 모든 텍스트 박스들의 폭들이 조정된다. 또한, 텍스트 박스들의 폭들의 변경들은 사전 정의된 규칙들에 기초하여 수행되므로 텍스트 메시지들의 수집은 특정 외관을 갖도록 형성된다.
RMS에서, 극단적인 상황을 피하도록 텍스트 박스들의 폭들이 계산된다. 도 7e에 도시된 바와 같이, 텍스트 박스들 내의 공간들은 지나치게 중복된다. 반면, 도 7f에 도시된 바와 같이, 텍스트 박스들 내의 공간들은 지나치게 불충분하여, 사용자에게 "억눌리는" 느낌을 준다. 따라서, 텍스트 박스들의 폭들을 결정하는 절차(또는 절차들의 세트)는 중복 공간들과 불충분한 공간들 간의 균형을 유지하여 판독성과 조직화를 향상시키는 것을 목표로 한다.
현실적으로, 텍스트 박스들의 폭들은 장치(200)에 대한 물리적 한계가 있기 때문에 무한히 증가할 수 없다. 또한, 그들은 폭들이 0에 도달하는 포인트까지 감소할 수 없다. 따라서, 텍스트 박스의 최대 폭 및 최소 폭이 정의되며, 그들을 최대 폭들(max-widths) 및 최소 폭들(min-widths)이라고 한다. 텍스트 박스들의 폭들이 조정될 때, 미리 정의된 최대 폭들 및 미리 정의된 최소 폭들 내에서 각각의 텍스트 박스의 폭이 조정된다.
도 7g는 모든 텍스트 박스들의 폭들이 Mk d(k,d=0,1,2,...)로 표시되는 그들의 최대 폭들에 도달한 것을 도시한다.
도 7h는 모든 텍스트 박스들의 폭들이 mk d(k,d=0,1,2,...)로 표시되는 그들의 최소 폭들에 도달한 것을 도시한다. 최대 폭 및 최소 폭이 일반적으로 언급될 때는, 위첨자 d는 버려지고 Mk 및 mk로 표시된다. 최대 폭 및 최소 폭의 상세는 아래에서 설명된다.
도 7i는 도 7c에 도시된 IM에서 사용자들(즉, 도 7i의 사용자 A 내지 사용자 D)이 어떻게 교신했는지에 대한 예시적인 방법을 도시한다. 도 7i의 ①에서, 사용자, 즉 사용자 B는 사용자 A로부터 텍스트 메시지(710, 음영 텍스트 박스)를 수신한다. 도 7i의 ②에서, 사용자 B는 수신된 텍스트 메시지(710)(음영 텍스트 박스)에 응답하여 메시지(712)를 사용자 A에게 송신한다. 장치(200)는 텍스트 메시지(710) 및 수신된 메시지(712) 양자를 분석하고, 양 텍스트 박스의 폭들을 결정한다. 도시된 바와 같이, 사용자 A의 텍스트 메시지(710)의 텍스트 박스 폭은 수신된 메시지(712)의 폭에 따라 사전 정의된 폭을 갖도록 조정된다. 그리고 응답 텍스트 메시지(712)는 사용자 A의 텍스트 메시지(710) 아래에 배치된다. 도 7i의 ②에서 응답 텍스트 메시지(712)의 폭은 메시지 박스(즉, "Hi!")의 폭보다 작고, 양 텍스트 박스의 우측들은 정렬된다는 점에 유의한다. 도 7i의 ③에서, 사용자 B는 사용자 C로부터 텍스트 메시지(714, 음영 텍스트 박스)를 수신한다. 도시된 바와 같이, 사용자 A(710) 및 사용자 B(712)의 텍스트 메시지들의 텍스트 박스 폭은 증가하였고, 사용자 A의 텍스트 메시지에 대한 응답인 사용자 C의 텍스트 메시지(714)는 사용자 B의 텍스트 메시지(712) 아래에 배치된다. 도 7i의 ④에서, 사용자 B는 사용자 D로부터 텍스트 메시지(716, 음영 텍스트 박스)를 수신한다. 메시지(716)의 폭은 그 위에 배치된 메시지들(즉, "Hey, how are you doing?" 및 "I heard you went Washington DC. Did you like it?")과 동일하며, 이것은 텍스트 메시지들(712, 714 및 716)이 메시지(710)에 직접 응답하는 응답 텍스트 메시지들이라는 것을 나타낸다. 즉, 3개의 텍스트 메시지(712, 714 및 716) 모두는 제1 텍스트 메시지(즉, 메시지(710))와 직접 관련된다. 도 7i의 ⑤에서, 사용자 B는 사용자 A로부터 텍스트 메시지(712)의 응답인 텍스트 메시지(718, 음영 텍스트 박스)를 수신한다. 도 7i의 ⑥에서, 사용자 C는 사용자 A로부터 텍스트 메시지(714)의 응답인 텍스트 메시지(720, 음영 텍스트 박스)를 수신한다. 2개의 텍스트 메시지(718 및 720)는 그들의 "부모" 텍스트 메시지들에 비해 폭이 더 작고, 제1 텍스트 메시지보다 훨씬 작다는 점에 유의한다. 이것은 응답들의 상이한 "깊이들", 즉 계층적 관련성을 나타낸다. 도 7i의 ⑦에서, 사용자 A는 사용자 B로부터 텍스트 메시지(718)에 직접 응답하는 응답인 텍스트 메시지(722, 음영 텍스트 박스)를 수신한다. 도 7의 ⑧에서, 사용자 B는 사용자 A로부터 텍스트 메시지(722)에 직접 응답하는 응답인 텍스트 메시지(724, 음영 텍스트 박스)를 수신한다.
지금까지의 전반적인 설명은 사용자들이 텍스트 메시지들을 서로 송신/수신하는 상황에서 장치(200)가 착신 또는 발신 텍스트 메시지(들)를 검출할 때 발생하는 단일 이벤트마다 텍스트 박스들의 폭들을 어떻게 조정하는지를 설명하였다. 그러나, 장치(200)가 텍스트 메시지(즉, 장치(200)로부터의 발신 메시지 또는 장치(200)로의 착신 메시지 각각)를 식별하여 그의 올바른 위치에 배치하는 방법에 대한 핵심 아이디어는 설명되지 않았다. 핵심 아이디어는 제1 텍스트 메시지에 고유 식별자를 할당하고 제1 텍스트 메시지에 대한 임의의 응답들에 자연수들을 할당하는 것이다.
텍스트 메시지들의 그룹이 구조화되는 경우 또는 구조화될 때, 고유 숫자들이 각각의 텍스트 메시지에 할당된다. 제어기(106)는 각각의 메시지를 식별하기 위한 식별자(예를 들면, 숫자, 문자 또는 이들의 조합)를 생성하며, 숫자는 도 8a에 도시된 바와 같이 각각의 텍스트 메시지를 식별한다(식별자들은 내부적으로 할당되고 사용자들에게는 보이지 않는다는 점에 유의한다). 예를 들어, 제1 박스는 "x. 문장"("x. statement"), 문장 x(statement x) 또는 주 문장(main statement)을 나타낸다. "문장"이라는 용어는 각각 대응하는 텍스트 박스에 표시된 대응하는 텍스트 메시지에 대응한다. 여기서, 문장이라는 용어는 텍스트 메시지(이하, 단지 설명의 편의상 텍스트라고 함) 및 텍스트 박스를 포함한다. 도 8a의 각각의 문장은 대응하는 텍스트 및 대응하는 텍스트를 감싸는 텍스트 박스로 구성된다.
문장들의 그룹이 계층적 구조로 함께 그룹화되고, 각각의 문장에 식별자가 할당될 때, 그러한 문장들의 그룹을 레이아웃이라고 한다. 도 8a의 문장들의 그룹은 레이아웃으로 지칭된다.
도 8a에 도시된 레이아웃에서, 레이아웃은 주 문장 및 주 문장에 직접 또는 간접적으로 응답하는 응답들인 그의 관련된 자식(또는 하위) 문장들로 구성된다. 추가로 또는 대안으로, 제어기(106)는 w, x, y 및 z와 같은 상이한 식별자들을 지정하여 레이아웃의 각각의 주 문장을 각각 나타냄으로써 터치스크린(102) 상에 표시될 하나 이상의 다른 레이아웃을 생성할 수 있다.
주 문장의 자식 문장들은 문장 x.1, x.2 및 x.3이다. 문장 x.3은 자식 문장을 갖지 않으며, 문장 x.2는 하나의 자식 문장(문장 x.2.1)을 갖는다. 문장 x.1의 자식 문장은 문장 x.1.1이고, 문장 x.1.1의 자식 문장은 문장 x.1.1.1이고, 기타 등등이다. 그러나, 문장 x.1.1은 문장 x의 자식 문장이 아니다.
이와 달리, 문장 x.1, x.2 및 x.3의 부모 문장은 주 문장(문장 x)이다. 따라서, 문장 x.1.1의 부모 문장은 문장 x.1이며, 문장 x.1.1.1의 부모 문장은 문장 x.1.1이고, 기타 등등이다. 그러나, 문장 x는 문장 x.1.1의 부모 문장이 아니다.
주 문장을 제외한 임의의 문장들은 하위 문장으로 지칭된다. 문장 x.1.1, x.1.1.1 및 x.1.1.1.1은 문장 x.1의 하위 문장들이다. 문장 x.1.1도 문장 x.1의 자식 문장이라는 점에 유의한다. 문장 x.2는 하나의 하위 문장이자 자식 문장인 문장 x.2.1을 갖는다.
이와 달리, 문장 x, x.1, x.1.1, x.1.1.1은 문장 x.1.1.1.1의 상위 문장들이다. 문장 x.1.1.1은 또한 문장 x.1.1.1.1의 부모 문장이라는 점에 유의한다. 문장 x.2.1의 상위 문장은 문장 x 및 x.2이다. 문장 x.3의 상위 문장은 문장 x이다.
문장 x.1.1.1.1, x.2.1 및 x.3과 같이 어떠한 자식 문장도 없는 문장을 리프(leaf) 문장이라고 한다. 즉, 리프 문장들은 계층적 구조 내의 말단 문장들을 나타내며, 이들은 각 말단 문장의 개시 문장에서 유래한다. 리프 문장들은 문장들의 각 문장 분기(또는 브랜치)의 말단 문장들을 나타낸다. 예를 들어, 문장 x.1.1.1.1은 문장 x에서 유래하고 그로부터 개시되는 리프 문장이다. 문장 x.2.1은 문장 x.2 및 문장 x에서 유래하고 그로부터 개시되는 리프 문장이며, 문장 x.3은 문장 x에서 유래하고 그로부터 개시되는 리프 문장이다.
레이아웃에는 3개의 분기가 있다. 문장 x, x.1, x.1.1, x.1.1.1 및 x.1.1.1.1은 도 8a의 레이아웃의 제1 분기를 형성한다. 문장 x, x.2 및 x.2.1은 도 8a의 레이아웃의 제2 분기를 형성한다. 문장 x 및 x.3은 도 8a의 레이아웃의 제3 분기를 형성한다.
물리적으로, 자식 문장은 그의 부모 문장으로부터 유래되는 미리 정의된 들여쓰기와 함께 배치되고 배열된다. 착신 및 발신 문장들 간의 그들의 계층적 상관 관계들을 표시하기 위해 텍스트 박스들을 연결하여 이러한 들여쓰기를 강조하도록 구성된 도면 내의 수직 및 수평 라인들은 들여쓰기 라인들이라고 한다.
모든 문장들은 설명의 편의를 위해 본 출원에서 정의된 깊이를 갖는다. 즉, 문장의 깊이는 문장이 그의 부모 문장 및 주 문장의 미리 정의된 정렬로부터 얼마나 많이 떨어져 배치되고 배열되는지의 들여쓰기를 나타낸다. 예를 들어, 주 문장(또는 문장 x)이 깊이 0에 있다고 가정하면, 문장 x.1, x.2 및 x.3은 예를 들어 도 8a의 레이아웃에서 주 문장이 표시되고 배열되는 위치(또는 가상 정렬)로부터 깊이 1에 있다. 문장 x.1.1 및 x.2.1은 예를 들어 도 8a의 레이아웃에서 주 문장이 표시되고 배열되는 위치(또는 가상 정렬)로부터 깊이 2에 있다. 문장 x.1.1.1은 깊이 3에 있고, 문장 x.1.1.1.1은 최저 깊이인 깊이 4에 있다. 숫자가 높을수록 깊이가 더 낮고, 숫자가 낮을수록 깊이가 더 높다는 점에 유의한다. 따라서, 주 문장은 최고 깊이에 있는 반면, 문장 x.1.1.1.1은 최저 깊이에 있다.
최저 깊이는 문자 d로 표시된다. 깊이 d에 대한 한계가 있음에 유의한다. 이 한계는 D, 0≤d≤D로 표시된다. 예를 들어, 도 8a의 레이아웃에서 허용되는 최저 깊이가 4(D=4)로 설정될 때, 문장 x.1.1.1.1은 가장 낮은 가능한 깊이에 있고, 사용자는 문장, x.1.1.1.1에 응답하거나 그로부터 유래하는 응답을 더 행하는 것이 허용되지 않는다.
부모 문장으로부터 유래하는 자식 문장들의 수에 대한 한계(또는 제한)는 함수 M(·)으로 표현된다. 예를 들어, 어떤 레이아웃에서, 허용되는 최저 깊이의 문장이 4(D=4)인 경우, 그리고 임의의 문장이 "x.a1.a2.a3.a4"로 표현될 수 있다면, 한계는 다음과 같이 표현될 수 있다.
D=4인 경우, M(x)=4, M(a1)=3, M(a2)=5, M(a3)=2, M(a4)=0
이것(M(x)=4)은 주 문장이 최대 4개의 자식 문장을 가질 수 있고, 깊이 1의 임의의 문장이 최대 3개의 자식 문장을 가질 수 있고, 깊이 2의 임의의 문장이 최대 5개의 자식 문장을 가질 수 있고, 깊이 3의 임의의 문장이 최대 2개의 자식 문장을 가질 수 있다는 것을 의미한다. 허용되는 최저 깊이는 4(D=4)이므로, 깊이 4의 임의의 문장은 어떠한 자식 문장도 가질 수 없고, 따라서 M(a4)=0이라는 점에 유의한다.
설명되는 바와 같이, 각각의 문장에는 고유 식별자, 예를 들어 문장 x.2.1이 할당된다. 양의 정수가 점과 함께 각각의 문장에 순차적으로 할당된다는 점에 유의한다. 예를 들어, 문장이 자식 문장을 가질 때, 제1 자식 문장에 숫자 ".1"이 첨부되고, 제2 자식 문장에 ".2"가 첨부되고, 기타 등등이다. 각각의 문장은 다른 문장들과 구별할 수 있는 고유하고 독립적인 숫자를 갖는다. 숫자들 자체는 물론, 숫자를 식별자에 첨부하는 액션을 넘버링이라고 한다. 주 문장의 넘버링은 0인 것으로 가정한다. 즉, 내부적으로, 주 문장은 문장 x.0이다. 주 문장의 자식 문장들(문장 x.1, x.2 및 x.3)의 넘버링들은 1, 2 및 3이다. 문장 x.1.1.1.1의 넘버링은 1.1.1.1이다.
요컨대, 도 8a의 레이아웃에서는, 주 문장에 대한 7개의 자식 문장, 레이아웃 내의 3개의 분기, 및 3개의 리프 문장이 있다. 또한, 현재 최저 깊이 4의 문장은 문장 x.1.1.1.1이며, 허용되는 최저 깊이는 D이고, 함수 M(·)은 x.a1...ak(0≤k≤D)에 대해 정의된다. 마지막으로, 각각의 문장의 넘버링은 고유하게 할당된다.
문자 "x"는 시스템에서 중요한 역할을 한다. 이 문자는 내부적으로 주 문장을 고유하게 식별하는 역할을 한다. 사용자의 장치(예를 들어, 장치(200))가 응답 문장을 다른 사용자들의 장치로 송신하거나 그로부터 수신할 때, 수신 측 장치는 착신 문장을 식별하고, 대응하는 IM "포럼들" 또는 "그룹들"(예를 들어, 활성 채팅 세션들)에 수신된 단일 문장을 위치시켜서 해당 단일 문장이 여러 IM "포럼들" 또는 "그룹들" 중에 속하게 한다. 뿐만 아니라, "큰" 위치가 식별되면, 장치(200)는 레이아웃에서 올바른 위치를 찾기 위해 위치를 결정한다. 따라서, 문자 x는 식별자의 역할을 하며, 장치(200)는 넘버링을 이용해 그의 올바른 위치를 정확하게 찾을 수 있다. 문자 x는 예시적으로 사용자 ID, 주 문장의 생성 시간(바람직하게 밀리초 아래) 및 넘버링의 조합으로 구현된다.
도 8b는 아이디어를 도시한다. 도면에 도시된 바와 같이, 3개의 파라미터 - 사용자 ID, 송신(또는 수신) 일시 및 넘버링 -가 연결된다. 3개의 연결된 모든 파라미터를 주 키라고하며, 이 정보는 '식별자' 역할을 한다. 도면에 도시된 바와 같이, 송신 일시와 연결된 사용자 ID는 문자 'x'로 간단히 표시되는 ID로 지칭된다. 이제, x 및 넘버링은 모두 함께 본 발명의 간결한 설명을 위해 "주 키"로 표시된다.
사용자가 다른 사용자(들)에게 텍스트 메시지를 송신할 때, 주 키 및 다른 정보가 사용자(들)에게 송신된다. 예를 들어, 사용자 B가 사용자 A, 사용자 C 및 사용자 D에게 텍스트 메시지를 송신한다고 가정하면, 장치는 텍스트를 송신할 때, 송신 일시 및 넘버링 0과 연결되는 송신자의 ID도 송신한다(이 정보는 또한 사용자 B 장치에도 저장된다). 따라서, 다른 세 명의 사용자가 수신하는 주 키는 다음과 같다.
User B + 2016-Dec-28-13:13:01:03 + 0
이제, 사용자 A가 사용자 B로부터 수신된 문장에 응답하는 경우, 사용자 A의 장치는 현재 넘버링(0)을 1로 대체하고, 새로운 주 키가 다른 사용자들에게 송신된다. 사용자 A의 장치가 송신하는 주 키는 다음과 같다.
User B + 2016-Dec-28-13:13:01:03 + 1
4명의 사용자 모두의 장치는 동일한 ID와 송신일시를 갖는 텍스트 메시지를 발견하며, 이것이 기존 주 문장의 제1 자식 문장임을 확인한다. 여기서, 송신일시는 주 문장의 송신일시이다. 사용자 C가 사용자 A로부터 수신된 문장에 응답하는 경우, 사용자 C의 장치는 현재 넘버링 1을 1.1로 대체하고, 새로운 주 키가 다른 사용자들에게 송신된다. 사용자 C의 장치가 송신하는 주 키는 다음과 같다.
User B + 2016-Dec-28-13:13:01:03 + 1.1
도 7i의 간단한 도시로부터, 레이아웃은 단순히, 특정 형상을 유지하면서 레이아웃 내의 모든 텍스트 박스들의 폭들이 변하는 "템플릿" 또는 "쉘"이다. "템플릿"(레이아웃) 내의 텍스트 박스들의 폭들을 조정하는 절차가 있으며, 이는 나중에 상세히 설명된다. 이하에서는 다수의 "템플릿"이 설명된다.
도 9a 내지 도 11b는 후술하는 파라미터들(예를 들어, I1 및 I0 정렬, 포인트 P1 및 P0, Δ1 및 Δ0, wk, αk 및 βk, c1k 및 c0k 등)을 제어함으로써 착신 및 발신 문장들을 포함하는 텍스트 박스들의 예시적인 레이아웃들이다. 파라미터들은 제어기(106) 또는 프로세서(들)(108)에 의해 제어되고 결정된다.
도 9a는 본 발명의 적어도 하나의 예시적인 실시예에 따른 레이아웃의 예시적인 "템플릿"을 도시한다. 이 템플릿은 특정 방식으로 거동하는 레이아웃의 청사진이다. 이 레이아웃을 일반화된 고정 각도 레이아웃(Generalized Fixed Angle Layout)(이하, GFAL)이라고 한다.
도 9a에는, 수평 라인(900), 즉 베이스 라인과 교차하는 2개의 가상 라인 I1 및 I0이 있다. 라인 I1 및 I0은 정렬 라인들이다. 이들은 사용자가 볼 수 없는 가상 라인들(또는 버추얼 라인들)이다. 정렬 라인이 베이스 라인과 교차하는 포인트는 베이스 포인트로 나타낸다. 따라서, 포인트 P1은 정렬 라인 I1과 베이스 라인이 교차하는 포인트이고, 포인트 P0은 정렬 라인 I0과 베이스 라인이 교차하는 포인트이다. Δ1 및 Δ0은 정렬 라인 I1 및 I0와 베이스 라인 간의 각도들을 나타낸다. Δ1 및 Δ0을 정렬 각도들이라고 한다. 이 2개의 각도는 π>Δ1≥Δ0>0(π=180 °)인 고정 값들이다. 각도 Δ1은 Δ0 이상으로 설정된다.
도 9a에서, 직사각형 박스들은 텍스트 박스들이며, 그들은 정렬 라인 I1 및 I0 사이에 배치된다. 각각의 텍스트 박스의 폭(이하, 텍스트 박스 폭)은 wk, k=0, 1, 2,...,d로 표시된다. 따라서, w0은 주 문장(깊이 0)의 텍스트 박스 폭을 나타내고, w1은 깊이 1의 텍스트 박스 폭을 나타내고, 기타 등등이다. GFAL에서 Δ1≥Δ0의 제한은 다음을 의미한다.
w0≥w1≥w2≥...≥wd
따라서, 모든 텍스트 박스들은 깊이가 더 낮아짐에 따라 폭이 감소한다. 값 wd는 파라미터가 아니라 변수(variable)이다. wd는 현재 레이아웃에서 최저 깊이에서의 텍스트 박스 폭을 나타낸다. 문자 d는 표시된 문장들 중에서 가장 낮다는 점에서 가능 낮은 깊이를 나타낸다. 가장 중요한 것은 깊이 k에서의 모든 텍스트 박스 폭들이 동일하다는 것이다. 따라서, wk(k에서의 텍스트 박스 폭)는 깊이 k의 모든 문장들에 적용된다.
도 9a에 도시된 바와 같이, 깊이 k에서의 각각의 텍스트 박스의 높이(이하, 텍스트 박스 높이)는 디폴트 높이 h로 설정된다. 디폴트 높이는 텍스트 박스의 가능한 최소 높이이며, h보다 작게 설정되지 않는다. 이 설정에서, 레이아웃에서 모든 디폴트 높이들은 동일하다. 다수의 텍스트 라인을 갖는 텍스트 박스들이 존재할 수 있으며, 이는 텍스트 박스 높이가 h보다 크다는 것을 의미한다. 그러나, 도시된 템플릿은 모든 텍스트 박스 높이들이 디폴트 높이로 설정되는 경우에 텍스트 박스들이 어떻게 정렬되는지를 나타낸다.
텍스트 박스들 간의 수직 거리들은 γk(k=0, 1, 2,..., d-1, γ: 감마)로 표시된다. 값 γk는 깊이 k의 텍스트 박스의 중점(텍스트 박스의 측면 중심)에서 깊이 k + 1의 텍스트 박스의 중점까지의 거리를 나타낸다. 도 9a에서, γd는 정의되지 않는다. 깊이 k의 텍스트 박스 아래에 수직 거리 σk(σ: 시그마)가 존재한다. 따라서, σ0은 깊이 0의 텍스트 박스의 바닥 수직 거리를 나타낸다.
텍스트 박스의 좌측 중점으로부터 그의 부모 텍스트 박스의 좌측 중점까지의 수평 거리는 αk(k=0, 1, 2,...,d)로 표시된다. 여기서, α0=0이다. 또한, 텍스트 박스의 우측 중점에서 그의 부모 텍스트 박스의 우측 중점까지의 수평 거리는 βk(k=0, 1, 2,..., d)로 표시된다. 여기서, β0=0이다.
깊이 k의 텍스트 박스의 좌측 중점으로부터 정렬 라인 I1까지의 수평 거리는 c1k로 표시되고, 깊이 k의 텍스트 박스의 우측 중점으로부터 정렬 라인 I0까지의 수평 거리는 c0k로 표시된다. 제어기(106) 또는 프로세서(들)는 레이아웃의 2개의 측면에 볼록 또는 오목한 형상으로 텍스트 박스들을 표시하기 위해 이들 값(즉, 파라미터)을 조정 또는 설정한다. c1k=c0k=0 (k=1, 2,...,D)를 설정함으로써, 텍스트 박스들은 선형 정렬로 설정 또는 배열된다.
깊이 k의 문장의 텍스트 박스 폭이 결정될 때, 상이한 깊이에서의 다른 텍스트 박스 폭들은 깊이 k에서 결정된 텍스트 박스 폭에 기초하여 조정된다. 레이아웃의 전체 텍스트 박스 폭들은 절차(또는 알고리즘)에 따라 증가 또는 감소한다. GFAL에서는, 이런 경우마다, αk, βk, c1k 및 c0k의 값들이 일정하게 유지되면서 모든 텍스트 박스 폭들이 증가 또는 감소한다. 따라서, 레이아웃은 2개의 정렬 라인 I1 및 I0이 좌측 또는 우측으로 평행하게 시프트됨에 따라 다양한 선형 형상으로 변경되고 표시된다. 예를 들어, 텍스트 박스 폭들이 증가하는 경우에는 I1이 좌측으로 시프트되고, I0이 우측으로 시프트되며, 그리고 텍스트 박스 폭들이 감소하는 경우에는 I1이 우측으로 시프트되고, I0이 좌측으로 시프트된다.
도면에서, 정렬 라인 I1은 최대 정렬 라인 I1 fmax와 최소 정렬 라인 I1 fmin 사이에서 시프트된다는 점에 유의한다. 또한, 정렬 라인 I0은 최대 정렬 라인 I0 fmax와 최소 정렬 라인 I0 fmin 사이에서 시프트된다(위 첨자 fmax 및 fmin은 고정 각도 레이아웃 시스템에서 최대 및 최소를 나타낸다). 따라서, 정렬 라인 I1 및 I0이 각기 I1 fmax 및 I0 fmax와 일치하는 경우 또는 일치할 때, 레이아웃의 모든 텍스트 박스 폭들은 그들의 최대 폭들에 도달한다. 또한, 정렬 라인 I1 및 I0이 I1 fmin 및 I0 fmin과 일치하는 경우 또는 일치할 때, 레이아웃의 모든 텍스트 박스 폭들은 그들의 최소 폭들에 도달한다.
도면에서, 모든 텍스트 박스들의 텍스트 박스 높이들은 디폴트 높이에 있고, 정렬 라인들은 좌우 중점들(양 측면의 중심)을 통과한다. 어떠한 텍스트 박스들의 높이도 텍스트의 길이에 따라 디폴트 높이보다 크다. 그러나, 정렬 라인이 도시된 도 9a에서는, 텍스트 박스들의 높이들이 디폴트 높이에 있다.
도 9b는 c10, c00, c1d 및 c0d가 0으로 설정되는 여러 분기를 갖는 레이아웃을 도시한다. 도면에서는, 여러 정렬 라인이 있으며, 그들은 모두 서로 평행하다. 또한, 문장 x.1.1(902) 상에 도시된 바와 같이, 정렬 라인은 문장 x.1.1.1과 연결되는 직선을 형성하지 않는다. 설명된 바와 같이, 이러한 라인들은 텍스트 박스 높이가 디폴트 높이에 있다는 가정하에 도시된다. 따라서, 정렬 라인은 끊어지고, 원래의 라인과 평행한 다른 라인이 문장 x.1.1.1의 좌우측 중점을 통과한다. 전술한 바와 같이, wk는 깊이 k에서의 텍스트 박스 폭을 나타낸다. 수학적으로, 폭 wk는 wk가 k의 함수이고, 나머지는 파라미터들이라는 것을 강조하기 위해 다음과 같이 표현될 수 있다.
wk=f(k, R, n, d, αk, βk, c1k, c0k)
또는
wk=f(k|R, n, d, αk, βk, c1k, c0k)
파라미터 αk, βk, c1k 및 c0k가 내부적으로 설정되는 경우에는, 다음과 같이 간단히 쓸 수 있다.
wk=f(k, R, n, d) 또는 wk=f(k|R, n, d)
이제까지, R값은 음이 아닌 실수이고, n은 음이 아닌 정수로서, 공식들, 절차들 또는 알고리즘들의 세트를 사용하여 프로세서에 의해 결정되는 것으로 가정한다. 공식은 모든 텍스트 박스 폭들(wk, k=0, 1, 2, ... , d)이 하나의 실수 값과 지정된 깊이 k에 의해 결정된다는 것을 나타낸다. w0 ≥ w1 ≥ w2 ≥ ... ≥ wd 이므로, 함수 f(k, R, n, d)는 깊이가 높아질수록 증가한다.
도 10a는 본 발명의 적어도 하나의 예시적인 실시예에 따른 새로운 레이아웃의 예시적인 "템플릿"을 도시한다. 이 템플릿은 특정 방식으로 거동하는 레이아웃의 청사진이다. 이 레이아웃은 일반화된 가변 각도 레이아웃(Generalized Varying Angle Layout)(이하, GVAL)을 나타낸다.
도 10a에는, 수평 라인(1000), 즉 베이스 라인과 교차하는 2개의 가상 라인 I1 및 I0이 있다. I1 및 I0은 정렬 라인들을 나타낸다. 정렬 라인이 베이스 라인과 교차하는 포인트를 회전 포인트라고 한다. 따라서, 포인트 P는 정렬 라인 I1 및 I0과 베이스 라인이 교차하는 포인트이다. 2가지 타입의 회전 포인트, 즉 고정 회전 포인트 및 부동 회전 포인트가 있다. 이 두 회전 포인트는 나중에 설명한다. I1 및 I0은 정렬 라인들을 나타낸다. Δ1과 Δ0는 정렬 라인들과 베이스 라인 간의 정렬 각도들이다. 이 두 각도 중 어느 하나가 고정되거나, 이들 중 어느 것도 고정되지 않는다. 또한, π>Δ1≥Δ0 > 0(π=180°)이다.
도 10a에서, 직사각형 박스들은 텍스트 박스들이고, 정렬 라인 I1과 I0 사이에 배치된다. 텍스트 박스 폭은 wk, k=0, 1, 2, ..., d로 표시된다. 따라서, w0은 주 문장(깊이 0)의 텍스트 박스 폭을 나타내며, w1은 깊이 1의 텍스트 박스 폭을 나타내고, 기타 등등이다. GVAL에서, Δ1≥Δ0의 제한은 다음을 의미한다.
w0 ≥ w1 ≥ w2 ≥...≥ wd
따라서, 모든 텍스트 박스는 깊이가 낮아짐에 따라 폭이 감소한다. wd 값은 현재 레이아웃에서 최저 깊이에서의 텍스트 박스 폭을 나타낸다. 문자 d는 표시되는 문장들 중에서 가장 낮다는 점에서 최저 깊이를 나타낸다. 가장 중요한 것은 깊이 k에서의 모든 텍스트 박스 폭이 동일하다는 것이다. 따라서, wk(k에서의 텍스트 박스 폭)는 깊이 k의 모든 문장에 적용된다.
도 10a에 도시된 바와 같이, 깊이 k에서의 텍스트 박스 높이는 디폴트 높이 h로 설정된다. 디폴트 높이는 텍스트 박스의 가능한 최소 높이이며 h보다 작을 수 없다. 이 설정에서는 모든 디폴트 높이가 레이아웃에서 동일하다. 다수의 라인의 텍스트들을 갖는 텍스트 박스들이 존재할 수 있으며, 이는 텍스트 박스 높이가 h보다 크다는 것을 의미한다. 그러나, 도시된 템플릿은 모든 텍스트 박스 높이가 디폴트 높이로 설정된 경우 텍스트 박스들이 어떻게 정렬되는지를 나타낸다.
텍스트 박스들 간의 수직 거리들은 γk (k=0, 1, 2, ..., d-1, γ: 감마)로 표시된다. γk 값은 깊이 k의 텍스트 박스의 중점(텍스트 박스의 면 중심)에서 깊이 k + 1의 텍스트 박스의 중점까지의 거리를 나타낸다. 도 10a에서는 γd가 정의되지 않는다. 깊이 k의 텍스트 박스 아래에 수직 거리 σk(σ: 시그마)가 존재한다. 따라서, σ0은 깊이 0의 텍스트 박스의 바닥 수직 거리를 나타낸다.
텍스트 박스의 좌측 중점으로부터 그의 부모 텍스트 박스의 좌측 중점까지의 수평 거리는 αk(k=0, 1, 2, ..., d)로 표시된다. 여기서, α0=0이다. 또한, 텍스트 박스의 우측 중점에서 그의 부모 텍스트 박스의 우측 중점까지의 수평 거리는 βk(k=0, 1, 2, ..., d)로 표시된다. 여기서, β0=0이다. GFAL과 달리, GVAL에서는, αk 및 βk 값이 각각 Δ1 및 Δ0 값에 의존한다. 즉, αk와 βk가 각각 Δ1과 Δ0의 함수일 때, αk1)와 βk0)로 쓰는 것이 더 적합하다.
깊이 k의 텍스트 박스의 좌측 중점으로부터 정렬 라인 I1까지의 수평 거리는 c1k로 표시되고, 깊이 k의 텍스트 박스의 우측 중점으로부터 정렬 라인 I0까지의 수평 거리는 c0k로 표시된다. 도면에서, c10, c00, c1d 및 c0d는 0으로 설정된다. 이들 값(파라미터)을 조정함으로써, 텍스트 박스들이 레이아웃의 양측에 볼록 또는 오목 형상으로 표시된다. c1k=c0k=0 (k=1, 2, ..., D)을 설정함으로써, 텍스트 박스들은 선형 정렬로 설정되거나 배열된다. c1k와 c0k는 각각 고정되거나 Δ1과 Δ0의 함수이다. c1k와 c0k가 각각 Δ1과 Δ0의 함수일 때, c1k1)와 c0k0)으로 쓰는 것이 더 적합하다.
깊이 k의 문장의 텍스트 박스 폭이 결정될 때, 다른 깊이에서의 다른 텍스트 박스 폭들은 깊이 k에서 결정된 폭에 기초하여 조정된다. 레이아웃의 전체 텍스트 박스 폭들은 프로세서(들) 또는 제어기(106)에 의해 수행하는 절차(또는 알고리즘)에 따라 증가 또는 감소한다. GVAL에서는, 이것이 발생할 때마다, 모든 텍스트 박스 폭은 회전 포인트 P와 결정된 텍스트 박스 폭에 의해 형성된 각도들에 의해 결정된 Δ1 및 Δ0의 값들에 따라 증가 또는 감소한다. 따라서, 2개의 정렬 라인 I1 및 I0이 부채처럼 좌측 또는 우측으로 회전하는 경우에 2개의 정렬 라인 I1 및 I0을 좌측 또는 우측 방향으로 회전하도록 제어함으로써, 터치스크린(즉, 장치(200)의 디스플레이) 상에 텍스트 메시지들 각각의 텍스트 박스들을 표시하기 위한 레이아웃이 다양하게 변경될 수 있다. 즉, 프로세서(들) 또는 제어기(106)는 터치스크린 상의 사용자 접촉 또는 터치(즉, 2개의 정렬 라인 I1 및 I0 중 하나 또는 둘 모두)를 검출하여 2개의 정렬 라인 I1 및 I0을 좌측 또는 우측 방향으로 회전시킴으로써 레이아웃을 변경한다. 텍스트 박스 폭들이 증가하는 경우, I1은 좌측으로 회전하고, I0는 우측으로 회전하며, 텍스트 박스 폭들이 감소하는 경우에는 그 반대이다.
도면에서, 정렬 라인 I1은 최대 정렬 라인 I1 vmax와 최소 정렬 라인 I1 vmin 사이에서 회전한다는 점에 유의한다. 또한, 정렬 라인 I0은 최대 정렬 라인 I0 vmax와 최소 정렬 라인 I0 vmin(위 첨자 vmax 및 vmin은 가변 각도의 최대 및 최소를 나타냄) 사이에서 회전한다. 따라서, 정렬 라인 I1과 I0이 I1 vmax와 I0 vmax와 일치할 때, 레이아웃의 모든 텍스트 박스 폭이 그들의 최대 폭들에 도달한다. 또한, 정렬 라인 I1과 I0이 I1 vmin과 I0 vmin과 일치할 때, 레이아웃의 모든 텍스트 박스 폭이 그들의 최소 폭들에 도달한다.
도면에서, 모든 텍스트 박스의 텍스트 박스 높이들은 디폴트 높이에 있고, 정렬 라인들은 좌우 중점들(양측면의 중심)을 통과한다. 임의의 텍스트 박스들의 높이는 텍스트의 길이에 따라 디폴트 높이보다 크다. 그러나, 도 10a에서 정렬 라인을 그릴 때, 텍스트 박스들의 높이들은 디폴트 높이들에 있다.
도 10b는 여러 개의 분기(도 10b에서, 문장 x.1의 제1 분기, 문장 x.2의 제2 분기 및 문장 x.3의 제3 분기)를 갖는 레이아웃을 도시하며, 여기서 c10, c00, c1d 및 c0d는 0으로 설정된다. 도면에는, 여러 개의 정렬 라인이 있으며, 이들은 모두 서로 평행하다. 또한, 문장 x.1.1(1002) 상에 예시된 바와 같이, 정렬 라인은 문장 x.1.1.1을 연결하는 직선을 형성하지 않는다. 언급했듯이, 이들 라인은 텍스트 박스 높이가 디폴트 높이에 있다는 가정하에 그려진다. 따라서, 정렬 라인은 끊어지고, 원래의 것과 평행한 다른 하나가 문장 x.1.1.1의 좌측 및 우측 중점을 통과한다.
수학적으로, 폭 wk는 다음과 같이 함수 v(·)를 사용하여 표현될 수 있다.
wk=v(k, R, n, d, αk1), βk0), c1k1), c0k0))
또는 wk가 k의 함수이고 나머지는 파라미터들이라는 것을 강조하기 위해 다음과 같이 표현될 수 있다.
wk=v(k|R, n, d, αk1), βk0), c1k1), c0k0))
도 11a는 본 발명의 적어도 하나의 예시적인 실시예에 따른 새로운 레이아웃의 예시적인 "템플릿"을 도시한다. 이 템플릿은 특정 방식으로 거동하는 레이아웃의 청사진이다. 이 레이아웃은 일반화된 혼합 각도 레이아웃(Generalized Mixed Angle Layout)(이하, GMAL)을 나타낸다. 레이아웃의 이름으로부터, GMAL은 GFAL과 GVAL의 하이브리드이다.
이 레이아웃에서, 텍스트 박스 폭이 소정 폭보다 작을 때, 레이아웃은 GVAL로서 거동하고, 소정 폭을 초과할 때 GFAL로서 거동한다. 레이아웃이 GFAL로서 거동할 때, 레이아웃은 GFAL 모드에 있고, 레이아웃이 GVAL로서 거동할 때, 레이아웃은 GVAL 모드에 있다. 도면에는, 2개의 가상 라인 I1과 I0이 있다. I1과 I0을 정렬 라인이라고 한다. 다시 말하지만, 이들은 사용자가 볼 수 없는 가상 라인들이다.
레이아웃이 GVAL 모드에 있을 때, 2개의 정렬 라인 I1 및 I0은 최저 깊이 d의 문장의 좌측 중점 및 우측 중점에 대해 회전한다. 레이아웃이 GVAL 모드에 있을 때, 최저 깊이의 문장의 텍스트 박스 폭은 md d이다. 그 외에 경우에는, 레이아웃은 GFAL 모드에 있다. 레이아웃이 GVAL 모드에 있을 때, 좌측 회전 포인트를 P1 d로 나타내고, 우측 회전 포인트를 P0 d로 나타낸다. 2개의 정렬 라인 I1 및 I0의 중요한 위치들이 있으며, 이들 위치는 레이아웃의 모드를 정의한다. 정렬 라인 I1은 I1 vmin과 I1 vmax 사이에서 회전한다. 정렬 라인 I0은 I0 vmin과 I0 vmax 사이에서 회전한다. 이 두 세트의 각도 {I1 vmin, I1 vmax} 및 {I0 vmin, I0 vmax}는 레이아웃의 GVAL 부분을 정의한다. 정렬 라인 I1은 I1 fmin과 I1 fmax 사이에서 평행하게 시프트되고, 정렬 라인 I0은 I0 fmin과 I0 fmax 사이에서 평행하게 시프트된다. 이 두 세트의 라인 {I1 fmin, I1 fmax} 및 {I0 fmin, I0 fmax}는 레이아웃의 GFAL 부분을 정의한다. I1 fmin=I1 vmax 및 I0 fmin=I0 vmax임을 주목한다. 레이아웃이 GFAL 모드에 있을 때, 정렬 라인들은 고정되고, 베이스 라인(1100)과 교차한다.
GMAL은 GFAL과 GVAL의 혼합이기 때문에, 두 가지 타입의 최대 폭들 및 최소 폭들이 각각 존재한다. GFAL 부분에 대해 Mk d,f 및 mk d,f가 있다(위 첨자 f는 고정을 의미한다). 또한, GVAL 부분에 대해 Mk d,v 및 mk d,v가 있다(위 첨자 v는 변화를 의미한다). 이들 최대 폭 및 최소 폭은 이전에 설명한 정렬 위치들에 의해 결정된다.
최대 폭들을 사용하여, 최저 깊이의 문장의 텍스트 박스 폭은 m으로 설정된다(즉, wd=md d,v=Md d,v=m). (모든 k=0, 1, 2, ..., d에 대해) wk≤Mk d,v일 때, 레이아웃은 GVAL로서 거동한다. 이 조건이 유지되지 않을 때, 즉 wk>Mk d,v일 때, 레이아웃은 GFAL로서 거동한다. wk≤Mk d,v일 때, 2개의 가상 정렬 라인 I1 및 I0은 각각 최저 깊이 d의 텍스트 박스의 좌측 중점 및 우측 중점 주위를 회전한다. 정렬 위치 I1 vmin 및 I0 vmin은 레이아웃의 GVAL 부분의 최소 폭들을 결정하는 라인들(위치들)이다. 분명히, 정렬 위치 I1 vmax 및 I0 vmax는 레이아웃의 GVAL 부분의 최대 폭들을 결정하는 라인들이다. 따라서, 정렬 라인 I1은 I1 vmin과 I1 vmax 사이에서 회전하고, 정렬 라인 I0은 I0 vmin과 I0 vmax 사이에서 회전한다. 정렬 라인 I1과 I0이 I1 vmin과 I0 vmin과 일치하는 경우 또는 일치할 때, 이 폭은 Mk d,v를 정의하고, 정렬 라인 I1과 I0이 I1 vmax와 I0 vmax와 일치하는 경우 또는 일치할 때, 이 폭은 mk d,f를 정의한다. I1이 I1 vmax를 통과하는 경우 또는 통과할 때, 정렬 라인 I1은 GFAL로서 거동하고, I1은 회전하는 대신 평행하게 시프트되기 시작한다. I0이 I0 vmax를 통과하는 경우 또는 통과할 때, 정렬 라인 I0은 GFAL로서 거동하고, I0는 회전하는 대신 평행하게 시프트되기 시작한다. 따라서, I1 vmax는 I1 fmin과 동일하고, I0 vmax는 I0 fmin과 동일하다. 달리 말하면, mk d,f=Mk d,v이다. 마지막으로, I1과 I0의 평행하게 시프트될 때, 시프트를 제한하는 위치들은 I1 fmax와 I0 fmax이다. 2개의 정렬 라인 간의 거리는 Mk d,f를 정의한다.
도 11b는 여러 개의 분기를 갖는 레이아웃을 도시하며, 여기서 c10, c00, c1d 및 c0d는 0으로 설정된다. 도면에는, 여러 개의 정렬 라인이 있으며, 이들은 모두 서로 평행하다.
(모든 k=0, 1, 2, ..., D에 대해) c1k=c0k=0일 때, I1 및 I0을 사용하는 대신에, L1 및 L0을 사용하며, 이들은 선형 정렬 라인들이라고 한다. c1k와 c0k가 정렬이 매끄러운 볼록 곡선을 형성하도록 설정되면, Cv 1과 Cv 0을 사용하며, 이들은 볼록 정렬 곡선들이라고 한다. 정렬이 매끄러운 오목한 곡선을 형성하도록 c1k 및 c0k가 설정되면, Cc 1 및 Cc 0을 사용하며, 이들은 오목 정렬 곡선들이라고 한다.
3 가지 타입의 레이아웃, 즉 GFAL, GVAL 및 GMAL이 소개되었다. 모든 레이아웃에서, 텍스트 박스 폭은 고유한 방식으로 증가 및 감소한다. 이러한 일반화된 버전들로부터, 특수 사례들이 도출될 수 있다. 이러한 모든 특수한 사례에서, 모든 k=0, 1, 2, ..., D에 대해 c1k=c0k=0이다.
도출될 수 있는 무한히 많은 사례 중에 GFAL의 5개의 특수 사례(또는 서브세트)가 있다.
처음 2개는 SWL(Same Width Layout, 동일 폭 레이아웃)이라고 한다. 이들은 정렬 라인 L1 및 L0의 기울기가 서로 평행하도록(Δ10) 고정되는 사례들이다. 이 레이아웃에서, 모든 텍스트 박스 폭은 각각의 문장의 깊이에 관계없이 같은 폭이다. Δ10=Δ > π/2이면, 이 특수 사례의 레이아웃을 SWL-LR(동일 폭 레이아웃 - 좌에서 우로)이라고 한다. Δ10=Δ < π/2이면, 이 특수 사례의 레이아웃을 SWL-RL(동일 폭 레이아웃 - 우에서 좌로)이라고 한다. SWL-LR 및 SWL-RL은 모두 도 12a 및 12b에 도시되어 있다.
마지막 3개를 FAL(고정 각도 레이아웃)이라고 한다. L1만이 우측 또는 좌측으로 시프트되는 경우에 정렬 라인 L1의 기울기가 Δ1 > π/2이고 L0이 수직(Δ0=π/2)이도록 설정될 때, 레이아웃은 FAL-R(고정 각도 레이아웃 - 우측 정렬)이라고 한다. L1과 L0 모두가 좌측 또는 우측으로(서로 반대 방향으로) 시프트되는 경우에 정렬 라인 L1의 기울기가 Δ1>π/2가 되도록 설정되고, L0의 기울기가 Δ0<π/2(Δ1=π-Δ0)가 되도록 설정될 때, 레이아웃은 FAL-C(고정 각도 레이아웃 - 중심 정렬)라고 한다. L0만이 우측 또는 좌측으로 시프트되는 경우에 정렬 라인 L1이 수직(Δ1=π/2)이고, 정렬 라인 L0의 기울기가 Δ0<π/2가 되도록 설정될 때, 레이아웃은 FAL-L(고정 각도 레이아웃 - 좌측 정렬)이라고 한다. 도 12c, 도 12d 및 도 12e는 각각 FAL-R, FAL-C 및 FAL-L을 도시한다.
무한히 많은 사례 중 GVAL의 3개의 특수 사례(또는 서브세트)가 도출될 수 있다.
L1만이 시계 방향 또는 반시계 방향으로 회전하는 경우에 정렬 라인 L1의 기울기가 Δ1>π/2이고 L0이 수직(Δ0=π/2)이 되도록 설정될 때, 레이아웃은 VAL-R(가변 각도 레이아웃 - 우측 정렬)이라고 한다. L1과 L0이 모두 시계 방향 또는 반시계 방향으로(서로 반대 방향으로) 회전하는 경우에 정렬 라인 L1의 기울기가 Δ1>π/2가 되도록 설정되고, L0의 기울기가 Δ0<π/2(Δ1=π-Δ0)가 되도록 설정될 때, 레이아웃은 VAL-C(가변 각도 레이아웃- 중심 정렬)라고 한다. L0만이 시계 방향 또는 반시계 방향으로 회전하는 경우에 정렬 라인 L1이 수직(Δ1=π/2)이고, 정렬 라인 L0의 기울기가 Δ0 π/2가 되도록 설정될 때, 레이아웃은 VAL-L(가변 각도 레이아웃 - 좌측 정렬)이라고 한다. 도 12c, 도 12d 및 도 12e는 각각 VAL-R, VAL-C 및 VAL-L을 도시한다.
마지막으로, FAL 및 VAL을 조합함으로써 무한히 많은 사례 중에서 GMAL의 3개의 특수 사례(또는 서브세트)가 도출될 수 있다. 이들 특수 사례를 MAL-R, MAL-C 및 MAL-L이라고 한다. 도 12c, 도 12d 및 도 12e는 각각 MAL-R, MAL-C 및 MAL-L을 도시한다. FAL들, VAL들 및 MAL들의 정지 도면들은 동일하지만, 그들의 움직임들은 동일하지 않다는 점에 유의해야 한다.
SWL-RL, FAL-L, VAL-L 및 MAL-L은 히브리어 또는 아랍어와 같이 우측에서 좌측으로 쓰는 언어들에 특히 유용하다는 점에 유의한다.
요컨대, 구조화된 IM은 다음의 조건을 만족시킨다: (1) 제1 텍스트가 가장 큰 텍스트 박스 폭을 갖고; (2) 같은 깊이에서의 모든 텍스트 박스 폭은 동일하고; (3) 장치가 텍스트를 송신/수신할 때마다 모든 텍스트 박스 폭이 수정되고; (4) 깊이 k에서의 모든 텍스트 박스 폭 w에 대해, M0≥M1≥M2≥...≥Md 및 m0≥m1≥m2≥...≥md인 경우에 Mk≥wk≥mk이다(여기서, d 최저 깊이를 나타낸다). 이것은 (A) 모든 텍스트를 고유하게 넘버링하는 메커니즘, (B) 텍스트 박스들의 모든 폭을 조정하는 메커니즘, 및 (C) 텍스트를 그의 올바른(의도된) 위치에 배치하는 메커니즘이 있음을 의미한다. 따라서, RMS는 구조화된 IM과 이 모든 3개의 메커니즘으로 구성된다.
도 7a 내지 도 12e로부터, 간단한 예시들 및 다양한 템플릿들(GFAL, GVAL 및 GMAL)이 제공되었다. 그러나, 템플릿을 "구동"하는 메커니즘은 소개되지 않았다. 텍스트 박스 폭들을 조정하는 "메커니즘"은 텍스트 박스 폭 조정(이하, TWA)이라고 한다.
여기서 설명될 도 7i와 관련된 모든 동작은 도 1 내지 도 6에 도시된 다른 컴포넌트들을 통신 및 제어함으로써 적어도 제어기(106)(또는 프로세서(들)(108) 또는 이들 양자의 조합)에 의해 제어되고 수행된다. 간결한 설명의 목적으로, 제어기(106) 및/또는 프로세서(들)(108)에 의해 수행될 대응하는 동작들이 이후에 설명된다.
이제, TWA가 상세히 설명된다.
언급한 바와 같이, 제1 규칙은 모든 텍스트 박스 폭이 다음 규칙에 따른다는 것이다.
w0 ≥ w1 ≥ w2 ≥ ... ≥ wd
제2 규칙은 동일한 깊이에서의 모든 텍스트 박스 폭이 동일한 폭을 갖는다는 것이다. 즉, 다음과 같다.
wk 1=wk 2=wk 3=...=wk s
여기서, wk는 깊이 k에서의 텍스트 박스 폭을 나타내며, s는 동일한 깊이(깊이 k)의 상이한 문장들을 나타낸다. wk의 값은 최소 폭 mk와 최대 폭 Mk 사이(mk≤wk≤Mk)이어야 한다. 아래에서, 한 쌍의 용어가 정의된다.
착신 또는 발신 문장의 텍스트의 문자 길이는 텍스트 길이라고 한다. 텍스트 길이는 임의의 길이일 수 있다. 설명된 바와 같이, 텍스트 길이는 임의의 단위(예를 들어, 픽셀, 밀리미터, 센티미터, 인치, 문자 수 등)일 수 있다. 텍스트 길이는 mk보다 작고 Mk보다 클 수 있다. 장치가 깊이 k에서의 텍스트 박스 폭을 Mk와 같게 설정하고, 텍스트 길이가 Mk보다 큰 경우, 이것은 텍스트가 텍스트 박스 안의 다수의 라인에 나타나게 할 것이다. 또한, 텍스트 길이가 mk보다 작더라도 mk는 깊이 k에서 가능한 가장 작은 텍스트 박스 폭이므로, 텍스트는 텍스트 박스 폭이 mk인 경우에 텍스트 박스 안에 표시된다.
TWA에서, 장치가 착신 또는 발신 문장(즉, 텍스트 메시지)을 검출할 때마다, 장치는 레이아웃의 모든 텍스트 박스 폭을 조정하기 시작한다. 그렇게 하기 위해, 장치는 깊이 n에서의 "최상의" 또는 "최적화된" 텍스트 박스 폭을 선택한다. 위에서 언급한 제2 규칙에 의해, 이것은 깊이 n에서의 모든 텍스트 박스 폭이 이러한 새로 계산된 "최상의" 또는 "최적화된" 텍스트 박스 폭과 동일하게 한다. 또한, 이 "최상의" 또는 "최적화된" 텍스트 박스 폭이 깊이 n에서 결정되면, 깊이 0, 1, 2, ..., n-1, n + 1, ..., d에서의 나머지 텍스트 박스 폭이 결정될 수 있는데, 이는 GFAL, GVAL 및 GMAL이 기하학적 규칙들을 따르기 때문이다. 이 "최상의" 또는 "최적화된" 텍스트 박스 폭은 깊이 n에서의 기준 폭이라고 하며, R(n)(0≤n≤d)으로 표시된다.
R(n)이 알고리즘 또는 수학식에 의해 결정된다고 가정하면, 장치가 GFAL 상에서 동작하는 경우 또는 동작할 때, 나머지 텍스트 박스 폭은 간단한 선형 방정식을 사용하여 계산될 수 있고, 장치가 GVAL 상에서 동작한다면, 나머지 텍스트 박스의 폭은 간단한 삼각법 특성들을 사용하여 계산될 수 있다. GMAL의 경우, 장치는 레이아웃의 모드에 기초하여 나머지 텍스트 박스 폭을 계산한다.
아이디어의 흐름은 도 13a 및 도 13b에 상세히 도시된다.
도 13a는 TWA의 처리의 상세도를 도시한다. 흐름도의 상부에 표시된 것처럼, 장치는 텍스트 길이 tk s(이것은 깊이 k의 s 번째 문장의 텍스트 길이임)를 갖는 착신 또는 발신 문장을 검출한다. 검출 후, 다음 단계는 기준 폭과 기준 깊이를 발견하는 것이다. 기준 폭의 발견은 방정식으로 표현되는 두 단계를 포함한다. 기준 폭을 결정하는 이 방정식들의 세트를 기준 폭 방정식(Reference-Width Equation, RWE)이라고 한다. 기준 깊이를 결정하는 방정식(들)의 세트를 기준 깊이 방정식(Reference-Depth Equation, RDE)이라고 한다. 일반적으로, RWE는 두 단계로 나뉠 수 있다. 제1 단계는 동일한 깊이들에서의 텍스트 길이들의 풀로부터 값을 단순히 계산하는 것이다. 이 프로세스는 수학 함수로 표시되며, 인트라-깊이 방정식(인트라 DE)이라고 한다. 인트라 DE는 각각의 함수가 동일한 깊이에서의 텍스트 길이들을 입력으로 사용하는 함수들의 세트이다. 각각의 함수는 다음과 같이 표시된다.
Tk=fintra(tk 1, tk 2, tk 3, ..., tk s)
여기서, fintra(·)는 깊이 k에서의 모든(s개의) 텍스트 길이를 사용하는 함수이다. tk s는 깊이 k의 s 번째 텍스트 메시지의 텍스트 길이를 나타낸다. 이 함수의 결과는 숫자 값(음수가 아닌 실수)인 Tk이다. 인트라 DE는 k=0, 1, 2, ... d에 대한 모든 Tk 값을 계산한다. 따라서, 인트라 DE는 d+1개의 값 {T0, T1, T2, ..., Td}를 생성한다. 음수가 아닌 정수 k는 단지 0에서 d(d는 레이아웃에서 최저 깊이임)까지의 깊이를 나타내는 인덱스라는 점에 유의한다. 하나의 주 문장만이 존재할 수 있으며 이 때 T0=fintra(t0 1)이고, 따라서 깊이 1의 텍스트 메시지의 경우 T1=fintra(t1 1, t1 2, ..., t1 a)이고, 깊이 2의 텍스트 메시지의 경우 T2=fintra(t2 1, t2 2, ..., t2 b)이며, 나머지 깊이에 대해서도 마찬가지이다. 따라서, 모든 텍스트 길이에 인트라 DE가 적용된 후에는 {T0, T1, T2, ..., Td} 세트가 존재한다.
인트라 DE가 계산되면, 다음 단계는 인터-깊이 방정식(인터 DE)을 사용하여 기준 폭을 발견하는 것이다. 인트라 DE와 달리, 인터 DE는 값들의 세트 {T0, T1, T2, ..., Td}를 사용하는 단 하나의 함수로 구성된다. 인터 DE는 다음과 같이 표시된다.
R=finter(T1, T2, ..., Td).
여기서, finter(·)는 인트라 DE로부터의 모든 (d+1개의) 값을 사용하는 함수이다. 인터 DE의 결과는 R로 표시되며, 이는 기준 폭이다. 기준 폭이 결정되면, 기준 깊이 n이 결정된다. n=d(d는 최저 깊이임) 설정, n=0 설정, 기준 깊이의 무작위 선택 등과 같이 기준 깊이를 결정하는 여러 방법이 존재한다. 하나의 "합리적인" 방법은 기준 깊이를 인트라 DE의 결과로부터 최대 값을 제공하는 깊이로 설정하는 것이다. 수학적으로:
Tn=max{T0, T1, T2, ..., Td}가 되도록 n을 설정한다.
절차를 더 일반화하기 위해, RDE는 다음과 같이 표현된다.
n=fRDE(t0 1, t1 1,t1 2,...,t1 a, t2 1,t2 2,...,t2 b, t3 1,t3 2,...,t3 c, ..., td 1,td 2,...,td z)
또는
n=fRDE(레이아웃의 모든 텍스트 길이)
이 방정식은 기준 깊이 n이 레이아웃의 모든 텍스트 길이에 기초하여 결정된다는 것을 의미한다. 기준 폭과 기준 깊이가 계산되면, 결과는 R(n)으로 표시된다.
언급된 바와 같이, 제2 프로세스는 제1 프로세스로부터 결정된 기준 폭 R(n)이 깊이 n에서의 최소 폭과 최대 폭 사이에 있는지를 검사한다. 즉, mn≤R(n)≤Mn인지를 검사한다. 기준 폭이 mn보다 작은 경우, 기준 폭 R은 mn으로 조정된다. 한편, 기준 폭이 Mn보다 큰 경우, 기준 폭 R은 Mn으로 조정된다. 이 프로세스의 목적은 계산된 기준 폭이 허용된 범위에 있는 것을 보장하는 것이다. 이 프로세스를 수행하는 방정식을 최소-최대 조건 방정식(Min-Max Condition Equation, MCE)이라고 한다. 수학적으로, 이것은 간단히 다음과 같다.
R=min{Mn, max{mn, R}}
R(n)이 계산되면, 장치는 레이아웃의 나머지 텍스트 박스에 대한 텍스트 박스 폭을 결정한다. 동일한 깊이의 모든 텍스트 박스는 동일한 텍스트 박스 폭을 갖기 때문에, 장치는 d개의 텍스트 박스 폭만 결정한다. 즉, 깊이 n의 텍스트 박스 기준 폭 R(n)이 결정되면, 장치는 깊이 0, 1, 2, ..., n-1, n+1, ..., d의 텍스트 박스들에 대한 텍스트 박스 폭들을 결정한다. 이것은 제3 프로세스이며, 전파 기준 폭 방정식(Propagating Reference-width Equation, PRE)이라고 한다. PRE는 R, n 및 d를 파라미터로 하는 깊이 i의 함수이며, 다음과 같이 표시된다.
wi=fRDE(i|R, n, d)
여기서, i=0, 1, 2, ..., n-1, n+1, ..., d이다.
GFAL에서의 정렬 라인들은 평행하게 시프트되기 때문에, R(n)이 결정되면, 나머지 텍스트 박스 폭은 선형 방정식을 사용하여 계산될 수 있다. 반면, GVAL에서는 정렬 라인들이 회전하기 때문에, 나머지 텍스트 박스 폭은 삼각법 특성들을 사용하여 계산될 수 있다.
마지막으로, 마지막 프로세스는 텍스트 박스들 내에 텍스트들을 배치하고 텍스트 박스들을 그들의 올바른 위치들에 배치하는 것을 포함한다.
도 13a의 흐름도는 GFAL 및 GVAL에 대한 것이라는 점에 유의한다. 그러나, GMAL의 경우, 두 세트의 최대 폭 및 최소 폭 - Mk f, Mk v, mk f 및 mk v가 있으므로, 레이아웃 모드를 검사하는 추가 단계가 필요하다. 이것은 도 13b의 음영 박스(1300)에 도시된다. R(n)이 계산되면, 장치는 R(n)이 GVAL 모드의 최대 폭인 Mn v보다 큰지를 검사한다. R이 Mn v보다 크면, 장치는 레이아웃이 GFAL 모드에 있음을 확인하고, 다음을 검사한다.
R=min{Mn f, R}
한편, R이 Mn v 이하인 경우, 장치는 레이아웃이 GVAL 모드에 있음을 확인하고, 다음을 검사한다.
R=max{mn v, R}
장치는 레이아웃이 어떤 모드에 있는지를 포함하는 이러한 정보에 기초하여 PRE를 실행하고 나머지 텍스트 박스의 텍스트 박스 폭을 결정한다.
기준 폭 및 기준 깊이 R(n)을 결정하는 여러 상이한 종류의 RWE 및 RDE 방정식이 있다. 언급한 것처럼, R(n)을 결정하는 프로세스는 텍스트 길이들의 풀을 사용한다.
도 14는 "플러그인(plug-in)"으로서 사용될 수 있는 다양한 RWE 및 RDE를 도시한다. 여기서는 RWE 및 RDE의 예시 목적을 위해 상세한 설명이 제공된다.
도 14의 표의 제1 RWE는 최대들 중 최대(Maximum of Maximums, MoM)이다. 이름이 암시하듯이, 이 프로세스는 텍스트 길이가 가장 긴 것을 기준 폭으로 선택한다. 먼저, 인트라 DE에서, 동일한 깊이에서의 텍스트 길이들 중에서 가장 큰 텍스트 길이가 선택된다. 이것은 다음과 같이 표현되고:
Tk = max{tk 1, tk 2, tk 3, ...} (k=0, 1, 2, ..., d)
결과는 다음의 세트이다.
{T0, T1, T2, ..., Td}
이어서, 인터 DE는 위의 세트에서 가장 큰 것을 선택하며, 이는 다음과 같이 표현된다.
R= max{T0, T1, T2, ..., Td}
이제, 장치는 가장 큰 텍스트 길이가 나온 깊이를 선택하여 기준 깊이 n을 선택한다. 이것은 다음과 같이 표현된다:
Tn = max{T0, T1, T2, ..., Td}가 되도록 하는 n
여기서, 기준 폭은 R이고, 기준 깊이는 n이다.
도 14의 표의 제2 RWE는 최대들의 평균(Average of Maximums, AoM)이다. 이름이 암시하듯이, 이 프로세스는 각각의 깊이에서의 가장 큰 텍스트 길이를 선택한 다음 그들의 평균을 취한다. 이 평균은 기준 폭으로 선택된다. 먼저, 인트라 DE에서, 동일한 깊이에서의 텍스트 길이들 중에서 가장 큰 텍스트 길이가 선택된다. 이것은 다음과 같이 표현되며:
Tk = max{tk 1, tk 2, tk 3, ...} (k=0, 1, 2, ..., d)
결과는 다음의 세트이다.
{T0, T1, T2, ..., Td}
이어서, 인터 DE는 위의 세트의 평균을 계산하며, 이는 다음과 같이 표현된다.
R = (T0 + T1 + T2 +...+ Td)/(d + 1)
이제, 장치는 가장 큰 텍스트 길이가 나온 깊이를 기준 깊이 n으로 선택한다. 이것은 다음과 같이 표현된다:
Tn = max{T0, T1, T2, ..., Td}가 되도록 하는 n
여기서, 기준 폭은 R이고, 기준 깊이는 n이다.
도 14의 표의 제3 RWE는 최대들의 정규화(Normalization of Maximums, NoM)이다. 언급된 바와 같이, 임의의 텍스트 박스 폭은 그의 부모 문장의 텍스트 박스의 길이 이하이다. 모든 텍스트 박스 폭은 깊이 k에서의 최대 폭 Mk에 의해 제한되기 때문에, 임의의 텍스트 길이 tk를 그의 최대 길이 Mk로 정규화하는 것이 합리적이다. 예를 들어, t0=90, t1=90, M0=100 및 M1=90이고, 텍스트 길이들이 그들의 대응하는 최대 폭에 의해 정규화되는 경우, 결과는 다음과 같다.
t0/M0=0.9 및 t1/M1=1.0
이는 깊이 1에서의 텍스트 길이가 그의 허용된 최대 폭과 비교하여 깊이 0에서의 텍스트 길이보다 크다는 것을 의미한다. 이것이 정규화의 배경 아이디어이다. 먼저, 인트라 DE에서, 동일한 깊이에서의 텍스트 길이들 중에서 가장 큰 텍스트 길이가 선택된다. 이것은 다음과 같이 표현되며:
Tk = max{tk 1, tk 2, tk 3, ...} (k=0, 1, 2, ..., d)
결과는 다음의 세트이다.
{T0, T1, T2, ..., Td}
이어서, 인터 DE는 위의 세트에서 가장 큰 것을 선택하며, 각각의 값은 그의 대응하는 최대 폭에 의해 정규화되며, 이는 다음과 같이 표현된다.
N = max{T0/M0, T1/M1, T2/M2, ..., Td/Md}
정규화된 값들의 최대가 발견되면, 프로세스는 정규화를 "취소"하고, 이것은 다음과 같이 표현한다.
R = N·Mk
이제, 장치는 정규화된 텍스트 길이의 최대가 나온 깊이를 선택하여 기준 깊이 n을 선택한다. 이것은 다음과 같이 표현된다:
Tn = max{T0/M0, T1/M1, T2/M2, ..., Td/Md}이 되도록 하는 n
따라서, 기준 폭은 R이고, 기준 깊이는 n이다.
제4 RWE는 정규화된 최대치의 평균(Average of Normalized Maximums, AoNM)이다. 인트라 DE에서, 동일한 깊이에서의 텍스트 길이들 중에서 가장 큰 텍스트 길이가 선택되며 이를 T k 로 표현한다. 이어서 인터 DE는 위의 정규화된 최대치의 평균을 구하며 이 값을 N 으로 표현한다. N 을 구한 후, 장치는 가장 큰 정규화된 텍스트 길이인 max{T 0 /M 0 , T 1 /M 1 , T 2 /M 2 , ..., T d /M d }와 이 길이가 나온 깊이를 계산한다. 이제, 장치는 N 과 방금 계산된 깊이에서의 최대 길이를 곱한다. 따라서, 기준 폭 R은 다음과 같이 표현된다.
R=N·Mk
이제, 장치는 정규화된 텍스트 길이의 최대가 나온 깊이를 선택하여 기준 깊이 n을 선택한다. 이것은 다음과 같이 표현된다:
Tn/Mn=max{T0/M0, T1/M1, T2/M2, ..., Td/Md}이 되도록 하는 n
따라서, 기준 폭은 R이고, 기준 깊이는 n이다.
제5 RWE는 평균들의 최대이다. 이 프로세스는 최대들의 평균(AoM)과 반대되는 개념이다. 인트라 DE에서, 동일한 깊이에서의 텍스트 길이들의 평균을 구하며 이를 T k 로 표현한다. 이어서 인터 DE는 위의 값들 중에서 최대치를 구한다. 따라서, 기준 폭 R 은 앞서 언급한 최대치이고 기준 깊이는 T n =max{T 0 , T 1 , T 2 , ..., T d } 이 되도록 하는 n 이다.
제6 RWE는 평균들의 평균이다. 인트라 DE에서, 동일한 깊이에서의 텍스트 길이들의 평균을 구하며 이를 T k 로 표현한다. 이어서 인터 DE는 위의 값들 평균을 구한다. 따라서, 기준 폭 R 은 앞서 언급한 평균값이고 기준 깊이는 T n = max{T 0 , T 1 , T 2 , ..., T d } 이 되도록 하는 n 이다. 여기서 주목할 점은 인트라 DE에서는 동일한 깊이에서의 모든 텍스트 길이를 더한 후 해당 깊이에서의 텍스트 수로 나누었고 반면에 인터 DE에서는 인트라 DE에서 구한 값들을 더한 후 d+1로 나눴다는 점이다. 이는 d = 0 인 경우를 피하기 위함이다.
제7 RWE는 텍스트 길이들의 평균이다. 인트라 DE에서, 동일한 깊이에서의 텍스트 길이들의 평균을 구하며 이를 T k 로 표현한다. 이어서 인터 DE는 위의 값들 평균을 구한다. 따라서, 기준 폭 R 은 앞서 언급한 평균값이고 기준 깊이는 T n = max{T 0 , T 1 , T 2 , ..., T d } 이 되도록 하는 n 이다.
도 14의 마지막 RWE는 고정 텍스트 박스 폭(FTW)이라는 점에 유의한다. 이것은 착신 또는 발신 문장들의 크기에 관계없이 텍스트 박스 폭들이 모두 깊이 k에서의 그들 각각의 최대 폭들로 고정되는 사례이다.
이제, TWA가 상이한 레이아웃들에서 어떻게 적용되는지를 설명한다. 예시의 목적을 위해, 기준 폭 방정식에 대해 MoM이 사용된다.
도 15a는 TWA가 GFAL에서 적용된 후의 결과를 도시한다. 예를 들어, SWL-LR이 사용된다.
도 15a의 ①에서, 사용자(즉, 사용자 장치(200))는 사용자 A(즉, 사용자 A의 장치)로부터 문장을 수신하고, 그 문장이 주 문장이 된다. 수신된 문장의 텍스트 길이가 a(수치 값)이고, m보다 작고, 따라서 R(0)=m이 되는 것으로 가정한다.
도 15a의 ②에서, 사용자는 사용자 B로부터 문장을 수신하고, 이 문장은 주 문장의 자식 문장이 된다. 양 텍스트 길이가 a로 동일하고 m보다 작으므로, 따라서 어떤 문장이 기준 폭이 되는지는 중요하지 않은 것으로 가정한다. 여기서, 장치는 사용자 B의 문장을 기준 폭으로 선택하며, 따라서 R(1)=w1=m이다. 이는 텍스트 나머지 텍스트 박스 폭 w0=m이 되게 한다.
도 15a의 ③에서, 사용자는 사용자 C로부터 문장을 수신하고, 이 문장은 사용자 B로부터의 문장의 자식 문장이 된다. 수신된 문장의 텍스트 길이는 다른 것들과 동일하다고 가정한다. 장치는 사용자 C의 문장을 기준 폭으로 선택하며, 따라서 R(2)=w2=m이다. 이는 깊이 0과 1에서의 텍스트 박스 폭이 m이 되게 한다(w0=w1=m).
도 15a의 ④에서, 사용자는 사용자 D로부터 문장을 수신하고, 이 문장은 사용자 C로부터의 문장의 자식 문장이 되어 사용자 C로부터 수신된 문장의 아래에 배치된다. 수신된 문장의 텍스트 길이는 b와 같고 m보다 큰 것으로 가정한다. 장치는 사용자 D의 문장을 기준 폭으로 선택하며, 따라서 R(3)=b이다. 이는 깊이 0, 1 및 2에서의 나머지 텍스트 박스 폭이 b가 되게 한다(w0=w1=w2=B).
도 15a의 ⑤에서, 사용자는 사용자 D로부터의 문장의 자식 문장인, 사용자 E로부터의 문장을 수신하고, 이것은 사용자 D로부터 수신된 문장의 아래에 배치된다. 수신된 문장의 텍스트 길이는 m보다 작은 a인 것으로 가정한다. 장치는 여전히 사용자 D의 문장을 기준 폭으로 선택하며, 따라서 R(3)=b이다. 이는 깊이 0, 1, 2, 4에서의 텍스트 박스 폭이 b가 되게 한다(w0=w1=w2=w4=B).
도 15a의 ⑥에서, 사용자는 주 문장의 자식 문장인, 사용자 F로부터의 문장을 수신하고, 이것은 사용자 E로부터 수신된 문장 아래에 배치된다. 수신된 문장의 텍스트 길이는 b보다 큰 c라고 가정한다. 장치는 사용자 F의 문장을 기준 폭으로 선택하며, 따라서 R(1)=c이다. 이는 나머지 깊이에서의 텍스트 박스 폭이 c로 조정되게 한다(w0=w 2 =w 3 =w4=C).
마지막으로, 도 15a의 ⑦에서, 사용자는 사용자 F로부터의 문장의 자식 문장인, 사용자 G로부터의 문장을 수신하고, 이것은 사용자 F로부터 수신된 문장 아래에 배치된다. 수신된 문장의 텍스트 길이는 d와 같고 c와 M보다 큰 것으로 가정한다. M보다 큰 텍스트 박스 폭은 허용되지 않으므로, 장치는 사용자 G의 문장을 기준으로 하되, 따라서 R(2)=M이다. 이는 나머지 깊이에서의 텍스트 박스 폭이 M으로 조정되게 한다(w0=w1=w3=w4=w5=M).
이제, 레이아웃이 그의 가능한 최대 폭에 도달했음에 주목한다.
도 15b는 TWA가 GFAL에서 적용된 후의 결과를 도시한다. 예를 들어, FAL-R이 사용된다. mk d의 위 첨자 d는 mk d가 레이아웃에서 문장의 현재 최저 깊이에 어떻게 의존하는지를 설명하는 데 사용된다는 점에 유의한다. 또한, mdd=m이다.
도 15b의 ①에서, 사용자는 사용자 A로부터 문장을 수신하고, 그 문장은 주 문장이 된다. 수신된 문장의 텍스트 길이는 a(수치 값)이고 m보다 작고, 따라서 R(0)=m0 0이 되는 것으로 가정한다.
도 15b의 ②에서, 사용자는 사용자 B로부터 문장을 수신하고, 이 문장은 주 문장의 자식 문장이 된다. 양 텍스트 길이는 같은 길이이고, 따라서 어떤 문장이 기준 폭이 되는지는 중요하지 않은 것으로 가정한다. 그러나, 장치는 사용자 B의 문장을 기준 폭으로 선택하며, 따라서 R(1)=m1 1이 된다. 이는 텍스트 박스 폭 w0의 값이 m0 1가 되게 한다 (w0=m0 1). 깊이 0에서의 문장의 텍스트 박스 폭은 m0 1로 설정되고, 깊이 1에서의 문장의 텍스트 박스 폭은 m1 1로 설정된다는 점에 유의한다. 주 문장이 유일한 문장(최저 깊이가 0)이고 텍스트 길이가 m보다 작았을 때, 텍스트 박스 폭 w0은 m0 1보다 작은 m0 0과 동일하였다. 이제 최저 깊이가 1이므로, 깊이 0에서의 최소 폭은 m0 1(≠m0 0)으로 된다.
도 15b의 ③에서, 사용자는 사용자 C로부터 문장을 수신하고, 이 문장은 사용자 B로부터의 문장의 자식 문장이 된다. 수신된 문장의 텍스트 길이는 다른 것들과 동일하다고 가정한다. 장치는 사용자 C의 문장을 기준 폭으로 선택하며, 따라서 R(2)=m2 2가 된다. 이는 텍스트 박스 폭 w0=m0 2, w1=m1 2가 되게 한다. 최저 깊이가 2일 때의 각각의 깊이에 대한 최소 폭이 예시된다. 즉, m0 2> m0 1> m0 0 및 m1 2> m1 1이다.
도 15b의 ④에서, 사용자는 사용자 C로부터의 문장의 자식 문장으로 사용자 D로부터의 문장을 수신하고, 이것은 사용자 C로부터 수신된 문장 아래에 배치된다. 수신된 문장의 텍스트 길이는 b와 같고 m3 3보다 큰 것으로 가정한다. 장치는 사용자 D의 문장을 기준 폭으로 선택하며, 따라서 R(3)=b이 된다. 이는 텍스트 박스 폭 w0=3α+b, w1=2α+b 및 w2=α+b가 되게 한다. 최저 깊이가 3일 때의 각각의 깊이의 최소 폭이 예시된다. 즉, m0 3> m0 2> m0 1> m0 0, m1 3> m1 2> m1 1 및 m2 3> m2 2이다.
도 15b의 ⑤에서, 사용자는 사용자 D로부터의 문장의 자식 문장인 사용자 E로부터의 문장을 수신하고, 이것은 사용자 D로부터 수신된 문장 아래에 배치된다. 수신된 문장의 텍스트 길이는 a와 같고 m4 4보다 작은 것으로 가정한다. 장치는 다시 사용자 D의 문장을 기준 폭으로 선택하고, b는 m3 4보다 작으므로, 따라서 기준 폭 R(3)=m3 4로 된다. 이에 따라 텍스트 박스 폭은 w0=m0 4, w1=m1 4, w2=m2 4, w4=m4 4 로 조정된다.
도 15b의 ⑥에서, 사용자는 주 문장의 자식 문장인 사용자 F로부터의 문장을 수신하고, 이것은 사용자 E로부터 수신된 문장 아래에 배치된다. 수신된 문장의 텍스트 길이는 c와 동일하고 b보다 큰 것으로 가정한다. 장치는 사용자 F의 문장을 기준 폭으로 선택하며, 따라서 R(1)=C이다. 이것은 텍스트 박스 폭 w0=α+c, w2=c-α, w3=c-2α, w4=c-3α가 되게 한다.
마지막으로, 도 15b의 ⑦에서, 사용자는 사용자 F로부터의 문장의 자식 문장인 사용자 G로부터의 문장을 수신하고, 이것은 그 아래에 배치된다. 수신된 문장의 텍스트 길이가 d와 같고, 이는 c나 M2보다 크다고 가정한다. 장치는 사용자 G의 문장을 기준 폭으로 선택하며, 따라서 R(2)=M2이다. 이는 텍스트 박스 폭 w0=M0, w1=M1, w3=M 2 , w3=M3 및 w4=M4가 되게 한다. 최대 폭 Mk는 현재 최저 깊이 d에 의존하지 않는다는 점에 유의한다. 이때, 레이아웃이 그의 가능한 최대 폭에 도달했다.
이제, GVAL에 적용되는 TWA에 초점을 맞춘다. 두 가지 타입의 GVAL, 즉 고정 회전 포인트 GVAL과 부동 회전 포인트 GVAL이 있다. 앞서 언급했듯이, GVAL에서, 정렬 라인 I1 및 I0은 반시계 방향 또는 시계 방향으로 회전한다. 따라서, 이름이 암시하듯이, 고정 회전 포인트에서 회전 포인트는 고정되지만, 부동 회전 포인트에서 포인트는 송수신된 문장의 깊이가 낮아짐에 따라 아래로 시프트된다. 고정 회전 포인트 GVAL에서는 최소 폭 mk d만이 현재 최저 깊이 d에 의존하지만, 부동 회전 포인트 GVAL에서는 최대 폭 Mk d와 최소 폭 mk d 양자가 현재 최저 깊이 d에 의존한다.
도 15c는 TWA가 고정 포인트 GVAL에 적용된 후의 결과를 도시한다. 예를 들어, 고정 포인트 VAL-R이 사용된다. 이 예에서 회전 포인트는 7γ로 고정된다는 점에 유의한다.
도 15c의 ①에서, 사용자는 사용자 A로부터 문장을 수신하고, 문장은 주 문장이 된다. 수신된 문장의 텍스트 길이가 a(수치 값)이고 m보다 작고, 따라서 R(0)=m0 0이 되는 것으로 가정한다.
도 15c의 ②에서, 사용자는 사용자 B로부터 문장을 수신하고, 문장은 주 문장의 자식 문장이 된다. 양 텍스트 길이가 같은 길이이고, 따라서 어떤 문장이 기준 폭이 되는지는 중요하지 않은 것으로 가정한다. 그러나, 장치는 사용자 B의 문장을 기준 폭으로 선택하며, 따라서 R(1)=m1 1이 된다. 이는 텍스트 박스 폭 w0=m0 1이 되게 한다. 최저 깊이가 1이므로, 깊이 0에서의 최소 폭은 m0 1(≠m0 0)이다.
도 15c의 ③에서, 사용자는 사용자 C로부터 문장을 수신하고, 문장은 사용자 B로부터의 문장의 자식 문장이 된다. 수신된 문장의 텍스트 길이는 다른 것들과 동일하다고 가정한다. 장치는 사용자 C의 문장을 기준 폭으로 선택하며, 따라서 R(2)=m2 2가 된다. 이는 텍스트 박스 폭 w0=m0 2, w1=m1 2가 되게 한다. 최저 깊이가 2일 때의 각각의 깊이에 대한 최소 폭이 예시된다. 즉, m0 2>m0 1>m0 0 및 m1 2>m1 1이다.
도 15c의 ④에서, 사용자는 사용자 C로부터의 문장의 자식 문장인 사용자 D로부터의 다른 문장을 수신하고, 이것은 사용자 C로부터 수신된 문장 아래에 배치된다. 수신된 문장의 텍스트 길이가 b와 동일하고 m3 3보다 큰 것으로 가정한다. 장치는 사용자 D의 문장을 기준 폭으로 선택하며, 따라서 R(3)=b이다. 이는 깊이 0, 1, 2 및 3에서의 텍스트 박스 폭이 정렬 라인 L1과 L0 간의 길이와 같아지게 한다. 각각의 나머지 텍스트 박스 폭 w0, w1 및 w2는 삼각법 특성들을 사용하여 계산된다.
도 15c의 ⑤에서, 사용자는 사용자 D로부터의 문장의 자식 문장인 사용자 E로부터의 문장을 수신하고, 이것은 사용자 D로부터 수신된 문장 아래에 배치된다. 수신된 문장의 텍스트 길이는 a와 같고 m4 4보다 작은 것으로 가정하며, 텍스트 "DEFG"의 텍스트 길이(=b)가 m3 4 미만이라고 가정한다. 장치는 다시 사용자 D의 문장을 기준 폭으로 선택하지만, b는 m3 4보다 작으므로 R(3)=m3 4이다. 이는 텍스트 박스 폭 w0=M0 4, w1=m1 4, w2=m2 4, w3=m3 4 및 w4=m4 4가 되게 한다. 현재 최저 깊이가 4일 때의 각 텍스트 박스의 최소 폭들은 삼각법 특성들에 의해 미리 정해진다.
도 15c의 ⑥에서, 사용자는 주 문장의 자식 문장인 사용자 F로부터의 문장을 수신하고, 이것은 사용자 E로부터 수신된 문장 아래에 배치된다. 다른 정렬 라인(1500)인이 레이아웃에 그려진다. 이 새 정렬 라인의 회전 포인트는 (제1 회전 포인트가 사용자 B의 문장에서 5 단위 떨어져 있는 것처럼) 수신된 문장에서 5 단위 떨어져 있다. 수신된 문장의 텍스트 길이가 c와 같고 b보다 큰 것으로 가정한다. 장치는 사용자 F의 문장을 기준 폭으로 선택하며, 따라서 R(1)=C이다. 이는 나머지 깊이 0, 1, 2, 3, 4에서의 텍스트 박스 폭이 정렬 라인 L1과 L0 간의 길이와 같아지게 한다. 다시 한번, 각각의 나머지 텍스트 박스 폭은 삼각법 특성들에 의해 계산된다.
마지막으로, 도 15c의 ⑦에서, 사용자는 사용자 F로부터의 문장의 자식 문장인 사용자 G로부터의 문장을 수신하고, 이것은 그 아래에 배치된다. 수신된 문장의 텍스트 길이가 d와 같고 이는 c와 M2보다 크다고 가정한다. 장치는 사용자 G의 문장을 기준 폭으로 선택하며, 따라서 R(2)=M2가 된다. 이는 텍스트 박스 폭 w0=M0, w1=M1, w3=M3 및 w4=M4가 되게 한다. 레이아웃이 그의 가능한 최대 폭에 도달했음에 유의한다.
도 15d는 TWA가 부동 포인트 GVAL에 적용된 후의 결과를 도시한다. 이 예에서는 부동 포인트 VAL-R을 사용한다. 이 예에서 회전 포인트는 처음에 4γ에 위치한다는 점에 유의한다.
도 15d의 ①에서, 사용자는 사용자 A로부터 문장을 수신하고, 문장은 주 문장이 된다. 수신된 문장의 텍스트 길이가 a(수치 값)이고 m보다 작고, 따라서 R(0)=m0 0이 되는 것으로 가정한다.
도 15d의 ②에서, 사용자는 사용자 B로부터 문장을 수신하고, 문장은 주 문장의 자식 문장이 된다. 회전 포인트는 1 단위 아래로 이동하고 새로운 정렬을 형성한다. 양 텍스트 길이가 같은 길이이고, 따라서 어떤 문장이 기준 폭이 되는지는 중요하지 않은 것으로 가정한다. 그러나, 장치는 사용자 B의 문장을 기준 폭으로 선택하며, 따라서 R(1)=m1 1이 된다. 이는 텍스트 박스 폭 w0=m0 1이 되게 한다. 최저 깊이가 1이므로 깊이 0에서 최소 폭은 m0 1(> m0 0)이다.
도 15d의 ③에서, 사용자는 사용자 C로부터 문장을 수신하고, 문장은 사용자 B로부터의 문장의 자식 문장이 된다. 회전 포인트는 1 단위 아래로 이동하고 새로운 정렬을 형성한다. 수신된 문장의 텍스트 길이가 다른 것들과 동일하다고 가정한다. 장치는 사용자 C의 문장을 기준 폭으로 선택하며, 따라서 R(2)=m2 2가 된다. 이는 텍스트 박스 폭 w0=m0 2 및 w1=m1 2가 되게 한다. 최저 깊이가 2일 때의 각각의 깊이에 대한 최소 폭이 예시된다. 즉, m0 2>m0 1>m0 0 및 m1 2> m1 1이다.
도 15d의 ④에서, 사용자는 사용자 C로부터의 문장의 자식 문장인 사용자 D로부터의 다른 문장을 수신하고, 이것은 사용자 C로부터 수신된 문장의 아래에 배치된다. 회전 포인트가 1 단위 아래로 이동하고 새로운 정렬을 형성한다. 수신된 문장의 텍스트 길이가 b와 같고 m3 3보다 크다고 가정한다. 장치는 사용자 D의 문장을 기준 폭으로 선택하며, 따라서 R(3)=b가 된다. 이는 깊이 0, 1, 2 및 3에서의 텍스트 박스 폭이 정렬 라인 L1과 L0 간의 길이와 같아지게 한다. 각각의 나머지 텍스트 박스 폭 w0, w1 및 w2는 삼각법 특성들을 사용하여 계산된다.
도 15d의 ⑤에서, 사용자는 사용자 D로부터의 문장의 자식 문장인 사용자 E로부터의 문장을 수신하고, 이것은 사용자 D로부터 수신된 문장의 아래에 배치된다. 회전 포인트가 1 단위 아래로 이동하고 새로운 정렬을 형성한다. 수신된 문장의 텍스트 길이가 a와 같고 m4 4보다 작다고 가정하며, 텍스트 "DEFG"의 텍스트 길이(=b)가 m3 4 미만이라고 가정한다. 장치는 다시 사용자 D의 문장을 기준 폭으로 선택하지만, b는 m3 4보다 작으므로 R(3)=m3 4이다. 이는 텍스트 박스 폭 w0=m0 4, w1=m1 4, w2=m2 4 및 w4=m4 4가 되게 한다. 현재 최저 깊이가 4일 때의 각 텍스트 박스의 최소 폭들은 삼각법 특성들에 의해 미리 정해진다.
도 15d의 ⑥에서, 사용자는 주 문장의 자식 문장인 사용자 F로부터의 문장을 수신하고, 이것은 사용자 E로부터 수신된 문장의 아래에 배치된다. 문장이 새로운 최저 깊이에 있지 않으므로 회전 포인트가 아래로 이동하지 않는다. 그러나, 다른 정렬 라인(1502)이 레이아웃에 그려진다. 이 정렬 라인의 회전 포인트는 (제1 회전 포인트가 사용자 B의 문장에서 5 단위 떨어져 있는 것처럼) 수신된 문장에서 5γ만큼 떨어진다. 수신된 문장의 텍스트 길이가 c와 같고 b보다 큰 것으로 가정한다. 장치는 사용자 F의 문장을 기준 폭으로 선택하며, 따라서 R(1)=c이다. 이는 나머지 깊이 0, 2, 3, 4에서의 텍스트 박스 폭이 정렬 라인 L1과 L0 간의 길이와 같아지게 한다. 다시, 각각의 나머지 텍스트 박스 폭은 삼각법 특성들에 의해 계산된다.
마지막으로, 도 15d의 ⑦에서, 사용자는 사용자 F로부터의 문장의 자식 문장인 사용자 G로부터의 문장을 수신하고, 이것은 사용자 F로부터 수신된 문장 아래에 배치된다. 회전 포인트가 아래로 이동하지 않는다. 수신된 문장의 텍스트 길이가 d와 같고 c와 m2 4보다 큰 것으로 가정한다. 장치는 사용자 G의 문장을 기준 폭으로 선택하며, 따라서 R(2)=m2 4가 된다. 이는 나머지 텍스트 박스 폭 w0=m0 4, w1=m1 4, w3=m3 4, w4=m4 4가 되게 한다. 레이아웃이 그의 가능한 최대 폭에 도달했음을 유의한다.
또한, 사용자가 깊이 5의 새 문장을 수신하면, 최대 폭 Mi 5(i=1~5)는 Mj 4(j=1~4)와 다를 것이다. 깊이 d의 값에 관계없이 M0 5=M0 4임을 유의한다. 따라서, 일반적으로, Mk a≥Mk b가 되며, a> b> 0이다. 따라서, 부동 포인트 GVAL의 경우, 최대 폭 Mk d는 현재 최저 깊이 d에 의존한다.
도 15e는 TWA가 부동 포인트 GMAL에 적용된 후의 결과를 도시한다. 예를 들어, 부동 포인트 MAL-R을 사용한다. 이것은 부동 포인트 VAL-R이 MAL-R의 VAL 부분에 사용된다는 것을 의미한다.
도 15e의 ①에서, 사용자는 사용자 A로부터 문장을 수신하고, 문장은 주 문장이 된다. 수신된 문장의 텍스트 길이가 a(수치 값)이고 m보다 작고, 따라서 R(0)=m0 0이 되는 것으로 가정한다.
도 15e의 ②에서, 사용자는 사용자 B로부터 문장을 수신하고, 문장은 주 문장의 자식 문장이 된다. 회전 포인트는 이제 새 문장의 좌측 중점에 있으며 새 정렬을 형성한다. 양 텍스트 길이가 같은 길이이고, 따라서 어떤 문장이 기준 폭이 되는지는 중요하지 않은 것을 가정한다. 그러나, 장치는 사용자 B의 문장을 기준 폭으로 선택하며, 따라서 R(1)=m1 1이 된다. 이는 나머지 텍스트 박스 폭 w0=m0 1이 되게 한다. 양 텍스트의 텍스트 길이가 m0 1v 및 m1 1v보다 작기 때문에 레이아웃은 VAL-R 모드에 있다(위 첨자 v는 레이아웃이 VAL 모드에 있음을 나타낸다).
도 15e의 ③에서, 사용자는 사용자 C로부터 문장을 수신하고, 문장은 사용자 B로부터의 문장의 자식 문장이 된다. 회전 포인트는 이제 새로운 문장의 좌측 중점에 있고 새로운 정렬을 형성한다. 수신된 문장의 텍스트 길이가 다른 것들과 동일하다고 가정한다. 장치는 사용자 C의 문장을 기준 폭으로 선택하며, 따라서 R(2)=m2 2v이다. 이는 나머지 텍스트 박스 폭 w0=m0 2v 및 w1=m1 2v가 되게 한다. 모든 텍스트의 텍스트 길이가 m0 2v, m1 2v 및 m2 2v보다 작기 때문에 레이아웃은 여전히 VAL-R 모드에 있다.
도 15e의 ④에서, 사용자는 사용자 C로부터의 문장의 자식 문장인 사용자 D로부터의 다른 문장을 수신하고, 이것은 사용자 C로부터 수신된 문장 아래에 배치된다. 회전 포인트는 이제 새로운 문장의 좌측 중간에 있고, 새로운 정렬을 형성한다. 수신된 문장의 텍스트 길이가 b와 같고 m3 3v보다 큰 것으로 가정한다. 장치는 사용자 D의 문장을 기준 폭으로 선택하며, 따라서 R(3)=b가 된다. b가 m3 3v보다 크기 때문에 레이아웃은 FAL-R 모드로 변경된다는 점에 유의한다. 이는 나머지 텍스트 박스 폭 w0=3α+b, w1=2α+b 및 w2=α+b가 되게 한다.
도 15e의 ⑤에서, 사용자는 사용자 D로부터의 문장의 자식 문장인 사용자 E로부터의 문장을 수신하고, 이것은 사용자 D로부터 수신된 문장 아래에 배치된다. 수신된 문장의 텍스트 길이가 a와 같고, m4 4v보다 작다고 가정하며, 사용자 D로부터의 텍스트가 m3 4v보다 작다고 가정한다. 이는 레이아웃이 VAL-R 모드로 변경되게 하며, 회전 포인트는 사용자 E로부터의 문장의 좌측 중점에 배치된다. 장치는 다시 사용자 D의 문장을 기준 폭으로 선택하지만, b는 m3 4v보다 작으므로 R(3)=m3 4v가 된다. 이는 나머지 텍스트 박스 폭 w0=m0 4v, w1=m1 4v, w2=m2 4v 및 w4=m4 4v가 되게 한다.
도 15e의 ⑥에서, 사용자는 주 문장의 자식 문장인 사용자 F로부터의 문장을 수신하고, 이것은 사용자 E로부터 수신된 문장 아래에 배치된다. 수신된 문장의 텍스트 길이는 c와 동일하고 b보다 큰 것으로 가정한다. 따라서, 이것은 레이아웃이 FAL-R 모드로 변경되게 한다. 새 문장 아래에 빈 텍스트 박스가 있다는 점에 유의한다. 이러한 "보이지 않는" 텍스트 박스는 문장이 "가상" 문장에서 오는 선형 정렬 라인(1504)과 정렬됨을 예시하기 위한 것이다. 장치는 사용자 F의 문장을 기준 폭으로 선택하며, 따라서 R(1)=c 이다. 이것은 텍스트 박스 폭 w0=α+c, w2=c-α, w3=c-2α 및 w4=c-3α가 되게 한다.
마지막으로, 도 15e의 ⑦에서, 사용자는 사용자 F로부터의 문장의 자식 문장인 사용자 G로부터의 문장을 수신하고, 이것은 사용자 F로부터 수신된 문장의 아래에 배치된다. 수신된 문장의 텍스트 길이는 d와 같으며 c와 M2보다 큰 것으로 가정한다. 이것은 레이아웃이 여전히 FAL-R 모드에 있게 한다. 장치는 사용자 G의 문장을 기준 폭으로 선택하며, 따라서 R(2)=m2 4f가 된다. 이는 텍스트 박스 폭 w0=M0 4f, w1=m1 4f, w3=m3 4f 및 w4=M4 4f가 되게 한다. 레이아웃이 그의 가능한 최대 폭에 도달했음에 유의한다.
TWA는 여러 상황에서 실행가능하다.
제1 상황은 사용자가 그의 장치를 회전하는 경우이다. 대부분의 장치는 직사각형이며, 대부분 사용자들은 세로 모드로 장치를 사용한다고 가정할 수 있다. 그러나, 사용자는 가로 모드가 되도록 장치를 회전시킬 수 있다. 이것은 수평 공간이 증가하기 때문에 텍스트 박스 폭의 디폴트 최대 폭 및 최소 폭을 늘릴 수 있음을 의미한다. 이 프로세스를 회전시의 TWA(TWA upon Rotation, 이하 TWA-R)라고 한다.
제2 상황은 사용자가 다른 사용자와 문장을 주고 수신하는 경우이다. 이 경우, 새 문장의 텍스트 길이가 이미 존재하는 텍스트 길이들의 풀에 추가되고, 프로세스가 R(k)를 결정한다. 이 프로세스를 송수신시의 TWA(TWA upon Send and Receive이하 TWA-SR)라고 한다.
제3 상황은 사용자가 일부 문장을 표시하지 않기로 결정하는 경우이다. 이 경우, 프로세스는 R(k)를 다시 계산하고, 사용자가 표시되지 않은 것을 표시하기로 결정할 때 그의 원래 뷰로 다시 전환한다. 이 프로세스를 축소 및 확장시의 TWA(TWA upon Collapse and Expand, 이하 TWA-CE)라고 한다.
제4 상황은 사용자가 문장을 삭제하는 경우이다. 이 경우, 삭제된 문장의 텍스트 길이는 텍스트 길이 풀에서 제외되고, R(k)는 다시 계산된다. 이 프로세스를 삭제시의 TWA(TWA upon Delete, 이하 TWA-D)라고 한다.
마지막으로, 최종 상황은 사용자가 기존 문장을 수정하는 경우이다. 이 경우, 기존 텍스트를 수정하면 텍스트 길이에 영향을 줄 수 있으며, 프로세스가 R(k)를 다시 계산한다. 이 프로세스를 수정시의 TWA(TWA upon Modify, 이하 TWA-M)이라고 한다.
지금까지 설명된 바와 같이, TWA가 RMS에서 중요한 역할을 한다는 것을 알 수 있다. 이 메커니즘은 레이아웃을 동기화되고 일관되게 유지하며, 이는 RMS의 목적 중 하나이다.
이제, 회전시의 TWA(TWA-R)라는 특징을 설명한다. 지금까지는, 레이아웃이 세로 모드에 있는 물리적 스크린 상에 표시되는 것으로 가정했다. 사용자가 그의 장치를 가로 모드로 돌릴 때마다, 장치는 M 및 m의 다른 값에 기초하여 TWA를 다시 실행할 수 있다. 따라서, TWA-R에서, 회전이라는 용어는 세로 모드에서 가로 모드로 또는 그 반대로 전환하는 것을 의미한다. 장치는 회전시 TWA를 다시 실행하도록 설정될 수 있다.
도 16a는 2개의 상이한 보기 레이아웃을 도시하지만, 이들은 상이한 모드로 방금 표시된 동일한 장치 상의 동일한 레이아웃들이다. 숫자들은 각각의 문장(즉, 각각의 텍스트 메시지) 내의 텍스트의 텍스트 길이를 나타낸다는 점에 유의한다.
도 16a의 ①의 레이아웃은 세로 모드이며, 도 16a의 ②의 레이아웃은 가로 모드이다. 세로 모드의 M 및 m 의 값은 가로 모드의 M* 및 m*의 값보다 작기 때문에, 도 16a의 ②의 문장은 도 16a의 ①의 문장보다 넓다. 예를 들어, 문장(1600)의 텍스트 길이는 100이고, 세로 모드에서 텍스트는 3개의 라인으로 분할된다. 반면에, 1602에 표시된 바와 같이, 장치가 가로 모드일 때 텍스트는 하나의 라인에 잘 맞을 수 있다.
도 16b 및 도 16c는 도 13a 및 도 13b와 유사한 2개의 흐름도를 도시한다. 도 16b에서, 장치가 세로 모드에서 가로 모드로의 회전을 검출할 때마다, TWA의 프로세스는 상이한 최대 폭 Mn * 및 최소 폭 mn * 값으로 실행된다. 도 16c에서, 장치가가로 모드에서 세로 모드로의 회전을 검출할 때마다, TWA의 프로세스가 실행되지만, 상이한 최대 폭 Mn 및 최소 폭 mn 값으로 실행된다.
도 17a-17c는 본 발명의 도 1 내지 16c에 제시된 적어도 하나의 예시적인 실시예에 따른 다양한 구조화 방식으로 인스턴트 메시지들을 조직화하고 표시하는 흐름도들이다.
장치(200)는 I/O 인터페이스(306) 및 네트워크 통신 인터페이스(302)를 통해 복수의 사용자 장치(예를 들어, 채팅 세션 또는 그룹 멤버 전용으로 설정된 그룹 텍스트 모드에 참여하기 위한 사용자 장치 그룹)와 통신한다. 장치(200)가 예를 들어 채팅 세션에 참여하기 위해 그룹 멤버들의 장치들 사이에서 텍스트 메시지들(이미지 메시지들 및/또는 비디오 메시지들을 포함함)(이에 제한되지 않음)을 수신 및/또는 송신할 때, 장치(200)의 제어기(106)의 하나 이상의 프로세서는 계층 구조화 방식으로 디스플레이(예컨대, 터치스크린 디스플레이) 상에 메시지들을 조직화하고 표시하도록 구성된다. 그렇게 하기 위해, 본 발명은 도 8a 및 8b 및 도 9a-11b에서 언급된 바와 같이 메시지들(즉, 발신 메시지들 및 착신 메시지들)을 조직화하고 표시하는 데 사용될 파라미터들을 정의한다. 즉, 파라미터들(예로서, 도 8b의 사용자 ID, 송신 일시 및 넘버링)은 메시지들 각각이 주 메시지 또는 주 메시지로부터 유래하는 서브메시지인지를 식별하기 위한 정보와 관련된 파라미터들(이하, 단지 설명의 편의를 위해 "메시지 파라미터들"로 지칭됨)을 포함한다. 프로세서가 메시지(즉, 채팅 세션 동안의 발신 메시지 또는 착신 메시지)의 발생 이벤트를 검출할 때, 프로세서는 상기 메시지로부터 메시의 파라미터들을 추출하여, 메시지 파라미터들 중 각각의 파라미터를 분석함으로써 메시지가 주 메시지인지 또는 서브 메시지인지를 식별한다.
또한, 프로세서는 어떻게 계층 구조화 방식으로 메시지들을 조직화하거나 표시할지에 대한 정보를 포함하는 파라미터들(이하, 단지 설명의 편의상 "레이아웃 파라미터들"로 지칭됨)을 정의한다. 예를 들어, "레이아웃 파라미터들"은 하나 이상의 정렬 라인에 대한 파라미터들(예를 들어, 도 9a-11b의 제1 정렬 라인 l1 및 제2 정렬 라인 l0, 들여쓰기 파라미터(즉, 깊이 D와 d)), 각각의 정렬 라인 파라미터의 최대 폭 및 최소 폭, 기울기 파라미터들(예를 들어, 포인트 P1 및 P0은 물론, 각도 Δ1 및 Δ0)을 포함한다. 프로세서는 예를 들어 본 발명의 도 9a-11b에 도시된 바와 같이 메시지 파라미터들 및 레이아웃 파라미터들로 다양한 조합들을 설정함으로써 메시지들에 대한 다양한 레이아웃 모드들을 정의한다. 여기서, 간략한 설명을 위해, 메시지 파라미터들 및 레이아웃 파라미터들에 대한 각각의 파라미터는 도 9a-11b에서 예시적으로 전술한 바와 같이 여기에 통합된다.
도 17a는 장치(200)의 사용자가 채팅 세션 동안 교환된 발신 및 착신 메시지들을 조직화하고 표시하기를 원하는 다양한 레이아웃 모드 중에서 레이아웃 모드를 선택하고, 프로세서가 선택된 레이아웃 모드를 설정하는 흐름도를 도시한다(S1700).
언급한 바와 같이, 사용자가 제1 메시지(또는 주 문장)를 송신할 때마다, ID(사용자 ID 및 송신 일시) 및 넘버링이 실제 텍스트 메시지와 함께 송신된다. 제1 메시지의 경우, 넘버링은 단순히 0이며, 이것은 메시지가 제1 메시지임을 나타낸다. 그러나, 사용자가 제1 메시지(또는 임의의 서브 메시지)에 응답할 때, 장치(200)는 단지 새로운 넘버링을 생성하고 그것을 기존 ID에 첨부한다. 마지막으로, 이 새로운 정보가 다른 사용자(들)에게 송신된다.
도 17b는 다른 사용자(들)에게 메시지를 송신하는 방법을 도시하는 흐름도이다. 사용자는 제1 메시지를 송신하거나 기존 메시지에 응답한다(S1702). 전자의 경우, ID(사용자 ID + 메시지 생성 일시)와 넘버링이 생성된다. 후자의 경우, 사용자가 응답하고 있는 메시지에 기초하여, 새 넘버링만 생성된다. 또한, 다른 관련 파라미터들이 생성된다(S1704). 최종 단계에서, 상기 언급된 파라미터들은 저장되어 다른 사용자들(즉, 다른 사용자들의 장치들)에게 송신된다(S1706).
도 17c는 검출된 메시지를 처리하는 방법을 도시하는 흐름도이다. 메시지가 발생하면, 프로세서는 메시지를 검출하고, 프로세서는 메시지로부터 메시지 파라미터들을 추출하여, 추출된 메시지 파라미터들의 정보를 분석함으로써 메시지의 속성(또는 특성들), 즉 메시지가 제1 메시지 또는 제1 메시지에 대한 서브메시지인지를 식별한다(S1708). 프로세서는 발신 또는 착신 메시지가 순차적으로 발생할 때마다 기준 폭 및 기준 깊이를 결정한다(S1710). 프로세서는 레이아웃에서 기존 메시지(들)의 텍스트 박스의 모든 폭을 결정하고, 검색된 메시지의 텍스트 박스 폭을 결정한다. 그 다음, 프로세서는 레이아웃 내의 기존 텍스트 박스의 폭을 재조정한다(S1712). 마지막으로, 프로세서는 검출된 메시지를 포함하는 레이아웃을 계층 구조화 방식으로 재조직화한다(S1714).
프로세서는 선택된 레이아웃 모드에서 이전에 설정된 각각의 파라미터 및 결정된 기준 폭 및 기준 깊이에 기초하여 채팅 세션 동안 현재 발생하는 발신 또는 착신 메시지들을 조직화한다. 결정된 기준 폭 및 결정된 기준 깊이의 텍스트 박스 크기에 기초하여, 프로세서는 표시될 발신 또는 착신 메시지의 텍스트 박스 크기를 결정한다. 선택된 레이아웃 모드에 대해 이전에 설정된 레이아웃 파라미터들에 기초하여, 프로세서는 제1 정렬 라인 파라미터의 최대 폭 및 제2 정렬 라인 파라미터의 최소 폭, 들여쓰기 파라미터 및 기울기 파라미터들에서 설정되는 바와 같이 각각의 메시지의 텍스트 박스 크기(즉, 폭)가 결정되거나 조정되는 방식으로 계층 구조화 방식으로 메시지들을 표시한다.
예를 들어, 도 9a에서, 기울기 파라미터들이 고정될 때, 발신 또는 착신 메시지들의 텍스트 박스들은 제1 정렬 라인 파라미터 I1의 최대 및 최소 값들 및 제2 정렬 라인 파라미터 I0의 최대 폭 및 최소 폭에 의해 지정된 범위로 조직화되고 표시된다. 즉, 도 9a에서, 각각의 메시지의 텍스트 박스 폭은 제1 및 제2 정렬 파라미터 각각의 최대 폭 및 최소 폭에 지정된 범위로 조직화되고 표시되며, 그 범위는 또한 기울기 파라미터들에서 설정된 고정 각도(즉, 포인트 P1 및 P0, Δ1 및 Δ0)로 지정된다. 다른 예로서, 도 9b에서, 기울기 파라미터들이 고정될 때, 발신 또는 착신 메시지들의 텍스트 박스들은 제1 정렬 라인 파라미터 I1의 최대 폭 및 최소 폭 및 제2 정렬 라인 파라미터 I0의 최대 폭 및 최소 폭에 의해 지정된 범위로 조직화되고 표시된다. 즉, 도 9b에서, 각각의 메시지의 텍스트 박스 폭은 제1 및 제2 정렬 파라미터들의 값들에서 지정된 범위로 조직화되고 표시되며, 그 범위는 또한 기울기 파라미터들에서 설정된 고정 각도(즉, 포인트 P1 및 P0, △ 1 및 Δ0)로 지정된다. 또한, 도 9b에서, 프로세서는 이전 범위와 평행한 패밀리 범위 내에서 각각의 분기 메시지(또는 분류된 메시지들에 대한 부모 메시지)로부터 분류되거나 기인하는 메시지들을 조직화하고 표시하며, 그 패밀리 범위는 좌측 시프트된 정렬 라인 I1 및 우측 시프트된 정렬 라인 I0에 의해 설정된다.
예를 들어, 도 10a에서, 기울기 파라미터 포인트(Δ1 및 Δ0)가 다양하게 설정될 때, 발신 또는 착신 메시지들의 텍스트 박스들은 제1 정렬 라인 파라미터 I1의 최대 폭 및 최소 폭 및 제2 정렬 라인 파라미터 I0의 최대 폭 및 최소 폭에 의해 각도 변경된 범위로 조직화되고 표시되며, 제1 및 제2 정렬 라인들은 기울기 파라미터들에서 설정된 각도(즉, Δ1 및 Δ0)로 포인트 P의 중심에 각각의 기울기를 갖는다. 여기서, 프로세서는 미리 설정된 제1 및 제2 정렬 라인 파라미터들의 최대 폭 및 최소 폭 내에서 시계 방향 또는 반시계 방향으로 각각 회전하도록 제1 및 제2 정렬 라인들을 제어한다.
예시적인 실시예에서, 프로세서는 도 9a-9b에 도시된 바와 같이 좌측 또는 우측 방향으로 제1 및 제2 정렬 라인을 선형으로 시프트하여 각각의 메시지의 텍스트 박스 폭을 조정하거나 크기를 조절함으로써 다른 계층 구조화 방식으로 메시지들을 재조직화하고 표시한다.
다른 예시적인 실시예에서, 프로세서는 도 10a-11b에 도시된 바와 같이 제1 및 제2 정렬 라인을 시계 방향 또는 반시계 방향으로 각도 시프트하여 각각의 메시지의 텍스트 박스 폭을 조정하거나 크기를 조절함으로써 메시지들을 다른 계층 구조화 방식으로 재조직화하고 표시한다.
본 발명의 다양한 예시적인 실시예들이 예시의 목적을 위해 설명되었지만, 이 분야의 기술자는 첨부된 청구항들에 개시된 바와 같은 청구 발명의 범위 및 사상을 벗어나지 않고서 다양한 수정, 추가 및 대체가 가능하다는 것을 알 것이다. 따라서, 본 발명은 본 명세서에 개시된 실시예들로 한정되지 않는다. 청구 발명의 범위는 아래의 청구항들만이 아니라 그들의 등가물들에 의해 결정되어야 한다. 본 명세서 및 도면들에서 사용된 특정 용어들은 설명의 목적으로 사용되며, 본 발명에 대한 제한으로 간주되지 않아야 한다.

Claims (20)

  1. 메시지들을 조직화하고 표시하기 위한 장치로서, 상기 장치는 프로세서를 포함하며, 상기 프로세서는,
    상기 장치들 간에 교환되는 상기 메시지들을 구조화 방식으로 조직화하고 표시하기 위한 복수의 레이아웃 모드를 설정하고;
    상기 복수의 레이아웃 모드 중에서 채팅 세션을 위한 하나의 레이아웃 모드를 결정하고;
    상기 결정된 레이아웃 모드에서 상기 채팅 세션에 포함되는 메시지들을 디스플레이 상에 표시하고;
    소정의 이벤트 발생시마다 디스플레이되는 모든 메시지들의 텍스트 박스 폭을 상기 구조화 방식으로 조정하며,
    상기 구조화 방식은 임의의 메시지에서 분기하는 분기 메시지를 상기 임의의 메시지와는 다른 깊이를 가지도록 표시하는 계층적 구조화 방식이며,
    상기 계층적 구조화 방식에서 상기 메시지들은 깊이가 깊을 수록 텍스트 박스 폭이 작아지는,
    메시지 조직화 및 표시 장치.
  2. 청구항 1에 있어서,
    동일한 깊이를 가지는 메시지들을 해당 깊이에 대한 최대 및 최소 박스 폭 범위 내에서 동일한 텍스트 박스 폭을 가지는,
    메시지 조직화 및 표시 장치.
  3. 청구항 2에 있어서,
    상기 프로세서는, 상기 이벤트 발생시마다 상기 메시지들 중 하나의 기준 메시지를 결정하고, 결정된 기준 메시지에 근거하여 상기 모든 메시지들을 상기 계층적 구조화 방식으로 표시하는,
    메시지 조직화 및 표시 장치.
  4. 청구항 3에 있어서,
    상기 프로세서는, 상기 이벤트 발생시마다 상기 기준 메시지의 기준 폭과 기준 깊이를 결정하고, 결정된 기준 폭과 기준 깊이를 이용하여 나머지 메시지들의 텍스트 박스 폭을 조정하는,
    메시지 조직화 및 표시 장치.
  5. 청구항 4에 있어서,
    상기 프로세서는, 다음의 방정식들:
    (i) Tk=fintra(tk 1, tk 2, tk 3,..., tk s)
    - 여기서, tk 1, tk 2, tk 3,..., tk s는 k의 깊이를 갖는 각각의 메시지의 대응하는 텍스트 길이를 나타내고, k=0, 1, 2,...n-1, n, n+1,....d이고, d는 메시지의 텍스트 박스의 깊이를 나타내고, 상기 텍스트 박스의 상기 깊이는 상기 분기 메시지에 적용되는 들여쓰기들의 양을 나타내고, Tk는 k의 깊이를 갖는 메시지들에 대한 함수 fintra에 의해 계산되는 텍스트 길이의 값임 -; 및
    (ii) R=finter(T0, T1, T2,..., Td)
    - 여기서, R은 주 메시지 및 다른 메시지들에 대한 상기 기준 폭이고, 상기 기준 폭의 R은 T0, T1, T2,.., Td에 대한 함수 finter에 의해 계산되고, T0, T1, T2,.., Td는 각각 k의 깊이를 갖는 각각의 메시지의 대응하는 텍스트 길이를 나타냄 -
    를 이용하여 상기 기준 폭을 계산하고,
    상기 프로세서는 다음의 방정식
    (iii) n=fRDE(T0, T1, T2,..., Td)
    - 여기서, n은 상기 주 메시지 및 상기 다른 메시지들에 대한 상기 기준 깊이이고, 상기 기준 깊이의 n은 0 내지 d의 깊이로부터 상기 기준 깊이를 결정함으로써 함수 fRDE에 의해 계산되고, 상기 기준 깊이는 T0, T1, T2,.., Td에 각각 대응하는 메시지들의 깊이들 중에서 결정되도록 계산됨 -
    를 이용하여 상기 기준 깊이를 계산하며,
    상기 프로세서는 상기 결정된 레이아웃 모드에 따라 상기 메시지들을 표시하기 위해, 상기 결정된 기준 깊이에서의 텍스트 박스 폭을 상기 기준 폭 R로 설정함으로써, 상기 결정된 레이아웃 모드에 따라 상기 메시지들의 텍스트 박스 폭들을 조정하는,
    메시지 조직화 및 표시 장치.
  6. 청구항 5에 있어서,
    상기 기준 폭 및 기준 깊이를 결정하는 알고리즘은 MoM, AoM, NoM, AoNM, MoA, AoA, AoT 및 FTW 중 적어도 하나를 포함하는,
    메시지 조직화 및 표시 장치.
  7. 청구항 3에 있어서,
    상기 레이아웃 모드는 제 1 정렬 라인 파라미터와 제 2 정렬 라인 파라미터를 포함하는 레이아웃 파라미터에 의해 결정되며,
    상기 프로세서는 상기 제 1 정렬 라인 파라미터와 제 2 정렬 라인 파라미터에 따른 최대 폭 및 최소 폭으로 지정되는 범위 내에서 상기 메시지들을 표시하는,
    메시지 조직화 및 표시 장치.
  8. 청구항 7에 있어서,
    상기 범위는 기울기 파라미터들에 의해 설정되는 가변 각도들에서 더 지정되고,
    상기 기울기 파라미터들은 상기 레이아웃 파라미터들에 포함되며,
    상기 기울기 파라미터들은 상기 메시지들의 텍스트 박스 폭을 조정하는 데 사용될 하나 이상의 포인트 및 하나 이상의 각도에 관한 정보를 포함하는,
    메시지 조직화 및 표시 장치.
  9. 청구항 7에 있어서,
    상기 레이아웃 파라미터는 상기 제 1 정렬 라인 파라미터, 제 2 정렬 라인 파라미터, 기울기 파라미터 및 들여쓰기 파라미터를 포함하는,
    메시지 조직화 및 표시 장치.
  10. 청구항 7에 있어서,
    상기 프로세서는,
    상기 제1 및 제2 정렬 라인들을 좌측 또는 우측 방향으로 선형으로 시프트시켜 각 메시지들의 텍스트 박스 폭을 조정함으로써 상기 메시지들을 서로 다른 계층적 구조화 방식으로 재조직화하고;
    상기 재조직화된 메시지들을 표시하도록 더 구성되는,
    메시지 조직화 및 표시 장치.
  11. 청구항 7에 있어서,
    상기 프로세서는,
    상기 제1 및 제2 정렬 라인들을 시계 또는 반시계 방향으로 각도 시프트시켜 각 메시지들의 텍스트 박스 폭을 조정함으로써 상기 메시지들을 서로 다른 계층적 구조화 방식으로 재조직화하고;
    상기 재조직화된 메시지들을 표시하도록 더 구성되는,
    메시지 조직화 및 표시 장치.
  12. 청구항 7에 있어서,
    상기 레이아웃 모드는 고정 각도 레이아웃(FAL), 가변 각도 레이아웃(VAL), 및 혼합 각도 레이아웃(MAL) 중에서 선택되는,
    메시지 조직화 및 표시 장치.
  13. 청구항 12에 있어서,
    상기 고정 각도 레이아웃은 고정 각도 레이아웃 좌측 정렬(FAL-L), 고정 각도 레이아웃 중심 정렬(FAL-C), 고정 각도 레이아웃 우측 정렬(FAL-R)을 포함하는,
    메시지 조직화 및 표시 장치.
  14. 청구항 12에 있어서,
    상기 가변 각도 레이아웃은 가변 각도 레이아웃 좌측 정렬(VAL-L), 가변 각도 레이아웃 중심 정렬(VAL-C), 가변 각도 레이아웃 우측 정렬(VAL-R)을 포함하는,
    메시지 조직화 및 표시 장치.
  15. 청구항 12에 있어서,
    상기 가변 각도 레이아웃은 혼합 각도 레이아웃 좌측 정렬(MAL-L), 혼합 각도 레이아웃 중심 정렬(MAL-C), 혼합 각도 레이아웃 우측 정렬(MAL-R)을 포함하는,
    메시지 조직화 및 표시 장치.
  16. 청구항 7에 있어서,
    상기 레이아웃 모드는 동일 폭 레이아웃(SWL)인,
    메시지 조직화 및 표시 장치.
  17. 청구항 2에 있어서,
    상기 이벤트는 상기 장치의 회전, 적어도 하나의 메시지의 송신 또는 수신, 적어도 하나의 메시지의 축소 또는 확장, 적어도 하나의 메시지의 삭제, 적어도 하나의 메시지의 수정 중 적어도 하나를 포함하는,
    메시지 조직화 및 표시 장치.
  18. 청구항 2에 있어서,
    상기 프로세서는,
    상기 장치가 가로 모드인지 세로 모드인지를 결정하고,
    상기 메시지들을 이용하여 기준 메시지의 기준 폭과 기준 깊이를 결정하고,
    상기 결정된 기준 폭이 상기 기준 깊이에서의 최대 폭 또는 최소 폭을 벗어나는 경우 상기 기준 폭을 해당 최대 폭 또는 최소 폭으로 조정하고,
    상기 기준 메시지 이외의 메시지들의 폭을 계산하는,
    메시지 조직화 및 표시 장치.
  19. 청구항 18에 있어서,
    상기 프로세서는, 선형 방정식 또는 삼각법 특성을 이용하여 상기 기준 메시지 이외의 메시지들의 폭을 계산하는,
    메시지 조직화 및 표시 장치.
  20. 청구항 2에 있어서,
    상기 메시지들은 사용자 아이디, 송수신 일시 및 넘버링을 포함하는 메시지 파라미터를 포함하는,
    메시지 조직화 및 표시 장치.
KR1020180066911A 2018-06-11 2018-06-11 다양한 구조화 방식들로 인스턴트 메시지들을 조직화하고 표시하기 위한 장치 및 방법 KR102052033B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020180066911A KR102052033B1 (ko) 2018-06-11 2018-06-11 다양한 구조화 방식들로 인스턴트 메시지들을 조직화하고 표시하기 위한 장치 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180066911A KR102052033B1 (ko) 2018-06-11 2018-06-11 다양한 구조화 방식들로 인스턴트 메시지들을 조직화하고 표시하기 위한 장치 및 방법

Publications (1)

Publication Number Publication Date
KR102052033B1 true KR102052033B1 (ko) 2020-01-08

Family

ID=69154379

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180066911A KR102052033B1 (ko) 2018-06-11 2018-06-11 다양한 구조화 방식들로 인스턴트 메시지들을 조직화하고 표시하기 위한 장치 및 방법

Country Status (1)

Country Link
KR (1) KR102052033B1 (ko)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004030582A (ja) * 2002-04-30 2004-01-29 Toshiba Corp 構造化文書編集装置、構造化文書編集方法及びプログラム
JP2005507102A (ja) * 2001-05-02 2005-03-10 ビットストリーム インコーポレーティッド 可変スケール・ファクタにより縮小された情報媒体を表示するための方法、システム、及びプログラム
JP2009501370A (ja) * 2005-07-15 2009-01-15 シンク ソフトウェア ピーティーワイ リミテッド 自由テキスト・メッセージについて構造化データを提供する方法および装置
JP2011192286A (ja) * 2011-04-05 2011-09-29 Casio Computer Co Ltd 表示制御装置及びプログラム
JP2016164782A (ja) * 2015-03-03 2016-09-08 株式会社カカオ インスタントメッセージサービスを通じたシナリオエモーティコンの表示方法及びそのためのユーザ端末
KR20170058816A (ko) * 2015-11-18 2017-05-29 삼성전자주식회사 전자 장치 및 이의 제어 방법

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005507102A (ja) * 2001-05-02 2005-03-10 ビットストリーム インコーポレーティッド 可変スケール・ファクタにより縮小された情報媒体を表示するための方法、システム、及びプログラム
JP2004030582A (ja) * 2002-04-30 2004-01-29 Toshiba Corp 構造化文書編集装置、構造化文書編集方法及びプログラム
JP2009501370A (ja) * 2005-07-15 2009-01-15 シンク ソフトウェア ピーティーワイ リミテッド 自由テキスト・メッセージについて構造化データを提供する方法および装置
JP2011192286A (ja) * 2011-04-05 2011-09-29 Casio Computer Co Ltd 表示制御装置及びプログラム
JP2016164782A (ja) * 2015-03-03 2016-09-08 株式会社カカオ インスタントメッセージサービスを通じたシナリオエモーティコンの表示方法及びそのためのユーザ端末
KR20170058816A (ko) * 2015-11-18 2017-05-29 삼성전자주식회사 전자 장치 및 이의 제어 방법

Similar Documents

Publication Publication Date Title
US10664134B2 (en) Device and method for organizing and displaying instant messages in various structured fashions
US10728939B2 (en) Point-to-point ad hoc voice communications
RU2666236C2 (ru) Способ работы блока отображения и терминал, его обеспечивающий
KR20230117542A (ko) 사용자 단말 장치 및 이의 디스플레이 방법
EP2177978B1 (en) Mobile terminal comprising a virtual keypad
EP2138928B1 (en) Haptic effect provisioning for a mobile communication terminal
US20170083219A1 (en) Touchscreen Apparatus User Interface Processing Method and Touchscreen Apparatus
KR101405928B1 (ko) 이동 단말기의 키 신호 발생 방법 및 이동 단말기
US10540792B2 (en) Accessibility techniques for presentation of symbolic expressions
US9369820B2 (en) Mobile communication device and application interface switching method
EP4134808A1 (en) Provision of an open instance of an application
KR20140065075A (ko) 메시지 기반의 대화기능 운용방법 및 이를 지원하는 단말장치
WO2012088665A1 (zh) 对联系人进行处理的方法及移动终端
CN110109604B (zh) 一种应用界面显示方法及移动终端
JP2007272904A (ja) 画面表示項目を選択する端末機及び方法
KR20090102108A (ko) 터치스크린에서 화면 분할과 화면 표시장치 및 방법
EP3379392B1 (en) Force touch method and electronic device
WO2021238788A1 (zh) 图标整理方法、电子设备及存储介质
US20230081032A1 (en) Low-bandwidth and emergency communication user interfaces
KR20240051950A (ko) 커뮤니케이션들을 개시하기 위한 방법들 및 인터페이스들
KR20140062190A (ko) 패럴랙스 스크롤 기능을 가지는 모바일 장치 및 그 제어 방법
JP6919079B1 (ja) 表示装置
CN111258471B (zh) 一种对象的显示方法及电子设备
KR102052033B1 (ko) 다양한 구조화 방식들로 인스턴트 메시지들을 조직화하고 표시하기 위한 장치 및 방법
CN111158542A (zh) 消息查看方法及电子设备

Legal Events

Date Code Title Description
GRNT Written decision to grant