KR101831476B1 - 다이어그램들의 생성, 편집 및 내비게이션 기법 - Google Patents

다이어그램들의 생성, 편집 및 내비게이션 기법 Download PDF

Info

Publication number
KR101831476B1
KR101831476B1 KR1020137015498A KR20137015498A KR101831476B1 KR 101831476 B1 KR101831476 B1 KR 101831476B1 KR 1020137015498 A KR1020137015498 A KR 1020137015498A KR 20137015498 A KR20137015498 A KR 20137015498A KR 101831476 B1 KR101831476 B1 KR 101831476B1
Authority
KR
South Korea
Prior art keywords
user input
type
data
user
new
Prior art date
Application number
KR1020137015498A
Other languages
English (en)
Other versions
KR20140005180A (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 KR20140005180A publication Critical patent/KR20140005180A/ko
Application granted granted Critical
Publication of KR101831476B1 publication Critical patent/KR101831476B1/ko

Links

Images

Classifications

    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/10Requirements analysis; Specification techniques
    • 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/048Interaction techniques based on graphical user interfaces [GUI]
    • 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/14Digital output to display device ; Cooperation and interconnection of the display device with other functional units
    • 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
    • G06F9/453Help systems

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

본 발명은 공간적 의미를 가지는 데이터를 조직하는 것에 관한 것이다. 방법은 사용자 인터페이스에서 공간적으로 구조화되는 데이터의 표현을 사용자에게 디스플레이하는 단계를 포함한다. 사용자 입력은 컴퓨터 구현 사용자 인터페이스에서 하나 이상의 하드웨어 사용자 인터페이스 디바이스들을 통해 수신된다. 사용자 입력은 도메인 인지 불능이지만 공간 내포의미를 가진다. 사용자 인터페이스에서 디스플레이되는 미리 존재하는 구조화된 데이터에 기초하여, 도메인은 사용자 입력에 대해 결정된다. 결정된 도메인에 기초하여, 사용자 입력은 도메인 지정 응답으로 해석된다. 도메인 지정 응답은 복수의 도메인들에 걸쳐 공간 내포의미와 일치된다.

Description

다이어그램들의 생성, 편집 및 내비게이션 기법{CREATION, EDITING AND NAVIGATION OF DIAGRAMS}
컴퓨터들 및 컴퓨팅 시스템들은 현대 생활의 거의 모든 양태에 영향을 미치고 있다. 컴퓨터들은 일반적으로 작업, 레크리에이션, 건강, 수송, 엔터테인먼트, 가계 관리 등에 수반된다.
많은 컴퓨터들은 컴퓨터와의 직접적인 사용자 상호 작용에 의해 이용되도록 의도된다. 이와 같이, 컴퓨터들은 사용자 상호 작용을 용이하게 하기 위해 입력 하드웨어 및 소프트웨어 사용자 인터페이스들을 지닌다. 예를 들어, 현대의 범용 컴퓨터는 사용자가 데이터를 컴퓨터에 입력할 수 있도록 키보드, 마우스, 터치패드, 카메라 등을 포함할 수 있다. 게다가, 다양한 소프트웨어 사용자 인터페이스들이 이용 가능할 수 있다.
소프트웨어 사용자 인터페이스들의 예들은 그래픽 사용자 인터페이스들, 텍스트 명령 라인 기반 사용자 인터페이스, 기능 키 또는 핫 키 사용자 인터페이스들 등을 포함한다.
기존 또는 현재의 툴(tool)들을 이용하여 시스템 아키텍처 다이어그램들을 생성하는 것은 흔히 느리고 성가시다. 컨텐츠를 생성하기 위해, 사용자들은 마우스(예를 들어 노드들 및 링크들을 생성하는 것 등등을 위해), 키보드(예를 들어, 노드들 및 링크들을 명명하고, 노드들에 멤버들을 추가하는 것 등등을 위해), 그리고 다시 마우스로(예를 들어 다이어그램 내의 다른 노드들 및 링크들에 대하여 노드들 및 링크들의 튜닝 위치를 미세 조정하고 다수의 노드들 및 링크들을 재배열하여 새 노드들 및/또는 링크들의 추가를 수용하기 위해) 항상 마우스와 키보드 사이를 스위칭해야만 한다. 개발자의 경우, 이는 결과적으로 개발자가 설계를 분석할 때 항상 의식 흐름의 방해를 가져올 수 있다.
이 끊임없는 모드 스위칭에 대응하기 위해, 시스템들은 노드들 및 링크들을 생성하는 키보드 단축키들을 포함할 수 있다. 그러나, 종래의 시스템들은 이것이 비실용적이게 만든다. 우선, UML과 같은 복잡한 도메인들에서, 수반되는 상당한 수의 타입(type)들은 상기 타입들 모두에 대한 유의미 키보드 단축키들을 기억하는 것은 물론 생성하는 것도 어렵게 만든다. 둘째로, 레이아웃은 아키텍처 다이어그램들에서 정말로 중요하므로, 완전하게 자동화된 레이아웃들은 흔히 비실제적이다. 종래의 시스템들은 노드들 및 링크들의 포지셔닝(positioning)을 통해 사용자들에게 매우 미세하게 결정화된(grained) 제어를 제공함으로써 이를 해결한다. 그러나, 대부분의 경우들에서, 사용자들은 의미를 전달하기 위해 “위/아래”, “와 그룹화되는”, “의 옆에 있는”과 같은 명확한 관계들을 이용하여, 레이아웃에 대하여 광의로 생각하기를 원한다. 사용자가 세부화된 레이아웃을 미세 튜닝하는 기능은 단지 유용성이 적으며, 현재 시스템들에서 끊임 없는 모드 스위칭의 원인들 중 하나이다. 게다가, 이는 수기 판서(whiteboarding)로부터 더 복잡한 컴퓨터 구현 다이아그래밍 해법으로 이동하고자 원하는 사용자에 대한 적응성 블록커(adoption blocker)로서 확인되는 증거가 있다.
본원에서 청구되는 특허대상은 임의의 단점을 해결하거나 상술한 바와 같은 환경들에서만 동작하는 실시예들로 제한되지 않는다. 오히려, 배경부는 단지 본원에서 일부 실시예들이 실시될 수 있는 하나의 예시적인 기술 영역을 도시하기 위해서만 제공된다.
본원에 도시되는 하나의 하나의 실시예는 컴퓨팅 환경에서 실행되는 방법을 포함한다. 본 발명은 공간적으로 유의미한 데이터를 조직하는 행위들을 포함한다. 본 발명은 사용자 인터페이스에서 공간적으로 구조화된 데이터의 표현을 사용자에게 디스플레이하는 것을 포함한다. 사용자 입력은 컴퓨터 구현 사용자 인터페이스에서 하나 이상의 하드웨어 사용자 인터페이스 디바이스들을 통해 수신된다. 사용자 입력은 도메인을 인지하지 못하지만, 공간 내포의미(spatial connotation)를 가진다. 사용자 인터페이스에서 디스플레이되는 미리 존재하는 구조화된 데이터, 또는 이전의 사용자 동작들에 기초해서, 도메인은 사용자 입력에 대해 결정된다. 결정된 도메인에 기초해서, 사용자 입력은 도메인 지정 응답으로 해석된다. 도메인 지정 응답은 복수의 도메인들에 걸쳐 공간 내포의미와 일치한다.
이 요약은 상세한 설명에서 더 후술되는 간소화된 형태의 개념들의 선택을 도입하도록 제공된다. 이 요약은 청구되는 특허대상의 핵심 특징들 또는 필수적인 특징들을 식별하도록 의도되거나, 청구되는 특허 대상의 범위를 결정하기 위한 보조로서 이용되도록 의도되지 않는다.
추가 특징들 및 장점들은 다음의 설명에서 설명될 것이고, 부분적으로 설명으로부터 명백할 것이고, 또는 본원의 내용들의 실행에 의해 습득될 수 있다. 본 발명의 특징들 및 장점들은 특히 첨부된 청구항들에서 지적되는 기구들 및 결합들에 의해 실현되고 획득될 수 있다. 본 발명의 특징들은 다음의 설명 및 첨부된 청구항들로부터 더 완전하게 이해되거나, 또는 이후에 진술되는 바와 같은 본 발명의 실행에 의해 습득될 수 있다.
상기 언급된 그리고 다른 장점들 및 특징들이 획득될 수 있는 방식을 기술하기 위해, 간략하게 상술된 특허대상의 더 특정한 설명이 첨부 도면들에서 설명되는 특정한 실시예를 참조하여 제공될 것이다. 이 도면들이 단지 특정한 실시예들을 도시하고 따라서 범위에 있어서 제한하는 것으로 고려되지 않아야 한다는 점을 이해하면, 실시예들은 첨부 도면들의 이용을 통해 추가 특수사항 및 세부사항으로 기술되고 설명될 것이다:
도 1은 다양한 제스처들, 명령들, 및 다이어그램 도메인들의 테이블을 도시하는 도면;
도 2a는 클래스 다이어그램을 도시하는 도면;
도 2b는 유전학적 클래스를 클래스 다이어그램에 추가하는 것을 도시하는 도면;
도 3a는 활동도 다이어그램을 도시하는 도면;
도 3b는 동작을 활동도 다아아그램에 추가하는 것을 도시하는 도면;
도 4a는 활동도 다이어그램을 도시하는 도면;
도 4b는 활동도 다이어그램에서 요소 타입을 변경하는 부분들을 도시하는 도면;
도 4c는 활동도 다이어그램에서 요소 타입을 변경하는 부분들을 도시하는 도면;
도 4d는 활동도 다이어그램에서 요소 타입을 변경하는 부분들을 도시하는 도면;
도 4e는 활동도 다이어그램에서 요소 타입을 변경하는 부분들을 도시하는 도면;
도 5a는 활동도 다이어그램에서 링크를 생성하는 부분들을 도시하는 도면;
도 5b는 활동도 다이어그램에서 링크를 생성하는 부분들을 도시하는 도면;
도 5c는 활동도 다이어그램에서 링크를 생성하는 부분들을 도시하는 도면;
도 5d는 활동도 다이어그램에서 링크를 생성하는 부분들을 도시하는 도면;
도 6은 활동도 다아이그램을 내비게이팅하는 것을 도시하는 도면; 및
도 7은 공간적 의미를 가지는 데이터를 조직법의 방법을 도시하는 도면.
일부 실시예들은, 사용자가 세부적인 레이아웃을 처리하는 다이어그램의 작업을 중단하지 않고 상기 다이어그램들을 생성하는 플로우에 남는 것이 가능하도록, 도메인 및/또는 컨텍스트에 기초하여 더 스마트한 키보드 단축키들, 반자동 레이아웃 및 자동 제한적 안내 힌트들을 결합하는 것을 이용할 수 있다. 하나의 실시예 시스템은 사용자들에게 픽셀 대 픽셀 레이아웃을 관리하는 부담을 주지 않고, 현재 노드 위에, 아래에, 또는 내부와 같이, 의미론적 유의미 지점들에 새로운 노드들을 배치하는 일관된 방식을 상기 사용자에게 제공하는 명령들의 결합을 구현할 수 있다. 이는 명칭들 또는 시그니처들을 입력하면서 요소 타입들을 세팅하는 인텔리센스(IntelliSense)와 같은 규제된 컨텍스트 및/또는 도메인 지정 제한 안내와 결합되고, 이는 결과적으로 사용자가 세부적인 레이아웃을 처리하는 다이어그램의 작업을 중단하지 않고 상기 다이어그램들을 생성하는 플로우에 남도록 하는 시스템을 야기한다. 추가로 또는 대안으로, 실시예들은 자신들의 링크들을 통해 다이어그램들을 용이하게 내비게이팅하는 능력을 포함할 수 있다.
일부 실시예들은 다양한 제스처들을 통해 액세스 가능한 표준 지향성 명령들이 다이어그램 또는 현재의 요소의 위, 아래, 좌, 우 또는 내부에 다른 공간 구조화된 데이터에서 요소들을 생성하는데 이용될 수 있는 기능을 구현한다. 방향성 명령들은 명령들과 연관되는 방향들이 통상적으로 유의미하기 때문에 도메인에 관계 없이 동일하게 남을 수 있고, 예를 들어 요소의 어떤 타입이 디폴트에 의해 생성되는지를 결정하기 위해 도메인 지식(domain knowledge)과 결합될 수 있다.
일부 실시예들은 다이어그램들 및/또는 다른 공간적으로 구조화되는 데이터에 적용될 수 있다. 기재된 바와 같이, 실시예들은 예를 들어 UML 다이어그램들을 이용하여 시스템 아키텍처의 블루프린트를 생성하는데 이용될 수 있다. 실시예들은 흐름도 다이어그램들에 이용될 수 있다. 특히, 실시예들은 다이어그램들 내에 노드들 및 커넥터들을 배치하는데 이용될 수 있다. 실시예들은 물리적 객체 공간 레이아웃에 이용될 수 있다. 예를 들어, 실시예들은 물리적 객체들을 다른 기존 물리적 객체들에 관하여 도시하는데 이용될 수 있다. 실시예들은 데이터베이스 또는 다른 테이블들에 이용될 수 있다. 예를 들어, 실시예들은 데이터베이스 객체 종속성들 또는 관련성들을 규정하는데 이용될 수 있다.
언급된 바와 같이, 실시예들은 다양한 제스처들을 이용할 수 있는데, 여기서 제스처들은 도메인과 관계 없이 동일하다. 예를 들어, 일부 제스처들은 키보드 제스처들을 이용하여 구현될 수 있다. 예시 키보드 제스처들은 인 포커스 엔티티(in focus entity) 아래에 새 노드 또는 객체를 생성하는 “Enter”; 인 포커스 엔티티의 좌측에 새 객체를 생성하는 “Ctrl-L”; 인 포커스 엔티티의 우측에 새 객체를 생성하는 “Ctrl-R”; 인 포커스 엔티티 위에 새 객체를 생성하는 “Ctrl-U’; 및 인 포커스 엔티티의 내부에 객체를 생성하는 “Ctrl-N”을 포함할 수 있다. 명백하게, 키보드 제스처들(또는 후술되는 바와 같은 제스처들)은 “방향”과 유사한 의미가 있음에도 불구하고 상이한 도메인들에서 상이한 결과들을 발생시킬 것이다. 예를 들어, 자동차 케이스의 전자 회로 레이아웃을 설계하는데 있어서 Ctrl+U는 상기 차의 전방 헤드라이트들에 대한 직교 레이아웃으로 회로소자를 추가할 수 있고, 반면에 UML 클래스 다이어그램의 경우에 Ctrl+U는 베이스 클래스를 추가할 수 있다. 이 둘 모두의 경우들에서 다이어그램 요소들은 적절하게 정렬될 것이다. 하나의 공통성은 실시예들이 방향의 함의를 취하고, 이를 특정한 도메인에 적용하여, 사용자가 픽셀 대 픽셀 변화를 행해야 하는 것을 경감시키는 것이다.
대안의 실시예들에서, 마우스 제스처들이 이용될 수 있고, 여기서 제스처들은 도메인과 관계 없이 동일하다. 예시 마우스 제스처들은 인 포커스 엔티티 아래에 새 노드 또는 객체를 생성하는 하향 마우스 플릭(flick); 인 포커스 엔티티의 좌측에 새 객체를 생성하는 좌 마우스 플릭; 인 포커스 엔티티의 우측에 새 객체를 생성하는 우 마우스 플릭; 인 포커스 엔티티 위에 새 객체를 생성하는 상향 마우스 플릭; 및 인 포커스 엔티티의 내부에 객체를 생성하는 엔티티 주위의 적절한 원형의 움직임을 포함할 수 있다.
대안의 실시예들에서, 도메인과 관계 없이 제스처들이 동일한 터치패드 또는 터치 스크린 제스처들이 이용될 수 있다. 예시 터치패드 또는 터치 스크린 제스처들은 인 포커스 엔티티 아래에 새 노드 또는 객체를 생성하는 하향 터치 패드 또는 터치 스크린 플릭; 인 포커스 엔티티의 좌측에 새 객체를 생성하는 좌 터치패드 또는 터치 스크린 플릭; 인 포커스 엔티티의 우측에 새 객체를 생성하는 우 터치패드 또는 터치 스크린 플릭; 인 포커스 엔티티 위에 새 객체를 생성하는 상향 터치패드 또는 터치 스크린 플릭; 및 인 포커스 엔티티의 내부에 객체를 생성하는 엔티티 주위의 적절한 원형의 움직임을 포함할 수 있다.
대안의 실시예들에서, 도메인과 관계 없이 제스처들이 동일한 인간의 신체 추적 제스처들이 이용될 수 있다. 예를 들어, 컴퓨팅 시스템에 의해 추적될 수 있는 소형 제어기들의 이용과 같이, 팔 움직임들을 추적하기 위한 다양한 툴들이 존재한다. 제스처들은 가속도 센서 및/또는 적외선 움직임 추적기와 같이 제어기 추적 디바이스에 의해 감지되는 바와 같은 제어기의 움직임에 기초할 수 있다.
대안으로, 다른 컴퓨팅 시스템들은 카메라들을 이용하여 인간의 사지들(limb or extrimities)을 인식하고 이들의 움직임들을 추적할 수 있다. 예시 사지 움직임 제스처들은 인 포커스 엔티티 아래에 새 노드 또는 객체를 생성하는 하향 사지 플릭; 인 포커스 엔티티의 좌측에 새 객체를 생성하는 좌 사지 움직임 플릭; 인 포커스 엔티티의 우측에 새 객체를 생성하는 우 사지 움직임 플릭; 인 포커스 엔티티 위에 새 객체를 생성하는 상향 터치패드 또는 터치 스크린 플릭; 및 인 포커스 엔티티의 내부에 객체를 생성하는 엔티티 주위의 적절한 원형의 사지 움직임을 포함할 수 있다.
제스처들은 컴퓨팅 디바이스 내의 가속도 센서에 의해 감지되는 바에 따른 컴퓨터 디바이스의 움직임에 기초할 수 있다. 예를 들어, 많은 태블릿 컴퓨팅 디바이스들은 약 둘 이상의 축들을 중심으로 움직임의 속도 및 방향을 측정하는 가속도 센서를 포함한다. 태블릿을 레벨 위치로 역으로 경사지게 하는 것에 선행하여 태블릿을 상부의 상향으로 급작스럽게 경사지게 하는 것은 인 포커스 엔티티 아래에 새로운 노드 또는 객체를 생성하는데 이용될 수 있고; 레벨링에 선행하는 급작스런 좌 경사는 인 포커스 엔티티의 좌측에 새 객체를 생성하는데 이용될 수 있고; 레벨링에 선행하는 급작스런 우 경사는 인 포커스 엔티티의 우측에 새 객체를 생성하는데 이용될 수 있고; 레벨링에 선행하는 태블릿의 상부의 급작스런 하향은 인 포커스 엔티티 위에 객체를 생성하는데 이용될 수 있고; 테블릿을 흔들거나 어느 정도 원형으로 움직이는 것은 인 포커스 엔티티의 내부에 객체를 생성하는데 이용될 수 있다.
또 다른 실시예들은 객체 생성에 음성 명령들을 이용할 수 있다. 예를 들어, 하나의 비제한적인 예에서, 예시 음성 명령들은 인 포커스 엔티티 아래에 새 노드 또는 객체를 생성하는 “아래”; 인 포커스 엔티티의 좌측에 새 객체를 생성하는 “좌측”; 인 포커스 엔티티의 우측에 새 객체를 생성하는 “우측”; 인 포커스 엔티티 위에 새 객체를 생성하는 “위’; 및 인 포커스 엔티티의 내부에 객체를 생성하는 “추가”를 포함할 수 있다.
상술한 바와 같이, 명령들은 다수의 방식들로 인보킹(invoking)될 수 있다. 명령들이 장소 및 방향을 중심으로 명령들이 적절한 제스처들에 용이하게 매핑될 수 있는 마우스, 펜, 터치, 멀티-터치 또는 다른 명령 모드들이 가능한 시스템들에 집중하는 한, 이 명령 모드들은 도메인들을 교차할 수 있는 자연스런 제스처들을 생성하는데 충분히 적합하다. 예를 들어, 사용자는 손가락을 이용하여 형상으로부터 상향 플릭을 행하여 상기 형상 위에 관련된 형상을 생성하거나, 실제로 상기 활성 형상 대략 위의 장소에서 단지 노드를 그리는 제스처를 취할 수 있다.
상술한 바와 같이, 실시예들은 도메인 독립적인 명령들 또는 제스처들을 이용할 수 있고 이것들을 도메인 특정 방식으로 적용할 수 있다. 예를 들어, 도 1을 참조하면, 상이한 타입들의 다이어그램들을 예시하는 태블릿(100)이 도시되고, 엔티티들은 다이어그램 내에서 선택될 수 있고, 키보드 제스처들은 도메인에 독립적이며, 소정의 키보드 제스처를 이용하는 결과들에는 특정한 다이어그램 및 선택이 제공된다.
실시예들은 요소들이 생성될 때 상기 요소들의 정렬 및 간격을 미세 튜닝하는 반자동 레이아웃에 대한 기능을 더 포함하여, 발생할 수 있는 임의의 충돌을 해결할 수 있다. 사용자들은 그 후에 레이아웃을 수동으로 자유자재로 변경할 수 있으나, 시스템은 그렇게 할 필요성을 크게 줄일 수 있다. 이제 도 2를 참조하면, 이 기능의 예가 도시된다. 도 2a는 “동물” 클래스(202)를 도시한다. 유전학적 “고양이” 클래스(204)는 “IS-A” 관계를 통해 동물 클래스(202)와 관련된다. 사용자는 동물 클래스(202) 아래에 “개” 유전학적 클래스를 생성하고자 할 수 있다. 이를 행하기 위해, 사용자는 동물 클래스(202)에 초점을 맞춘 동물 클래스(202)를 선택할 수 있다. 도 2b에 도시된 바와 같이, 사용자들은 새 객체를 선택된 객체 아래에 위치시키라는 명령으로서 해석될 수 있는 “엔터” 키를 누르는 것과 같이, 동물 클래스(202) 아래에 새 클래스(206)를 생성하는 제스처를 실행할 수 있다. 그러므로, 클래스 다이어그램의 도메인으로 인해, 그리고 동물 클래스(202)를 선택한 상황에서, 새 유전학적 클래스(206)가 동물 클래스(202) 아래에 생성될 수 있다. 도 2b에 도시되는 바와 같이, 고양이 클래스(204)는 새 유전학적 클래스(206)에 대한 공간을 확보하기 위해 자동으로 이동될 수 있다.
특정한 형상이 이동될 수 없는 경우- 또는 제스처 자체가 단순한 범프(bump)가 아니고 오히려 추가될 필요가 있는 복잡한 형상들의 세트인 경우, 상기 형상들의 세트를 연결하는 에지(edge)들이 다양한 스타일들을 가지는 다양한 방식들로 라우팅될 수 있는 것을 보장하기 위해서, 실시예들은 에지들에 대해 지능적인 라우팅을 수행할 수 있다. 예를 들어, 실시예들은 스플라인(spline) 라우팅, 직교 라우팅 등을 구현할 수 있다.
추가로, 일부 실시예들은 증분적 레이아웃을 수행하도록 구현될 수 있다. 특히, 변화들이 점증하면서 발생할 것이고 그래프에 최소 세트의 변화들이 행해질 것이다. 이것은 일부 실시예들에서 사용자가 레이아웃을 상당이 안정적이라고 인지하도록 행해질 수 있다.
도 2b는 객체들이 이동되거나, 배치되거나, 또는 접속되어야 하는 장소를 만족시키는 어떠한 추가 입력도 없이 유일한 사용자 입력이 컨텍스트에 독립적인 명령(즉, 엔터 키를 누르는)을 이용하는 예를 도시한다. 실시예들은 이후에 사용자가 매우 원하면 자동 움직임으로부터의 움직임을 허용할 수 있다.
상기 예에서 도시된 바와 같이, 새로 생성되는 요소들에는 컨텍스트에 기초해서, 자동으로 타입이 제공될 수 있다. 예를 들어, 도 2a 및 도 2b에 도시된 예에서, 동물 클래스(204)가 선택되었기 때문에, 시스템은 제스처가 클래스 다이어그램의 도메인에서 클래스의 컨텍스트로 해석되어야만 한다는 것을 인지했다. 그러므로, 엔터를 누름으로써 유전학적 클래스(206)가 선택된 동물 클래스(202) 아래에 생성되도록 하였다. 이것은, 도메인에 기초하여 새 요소가 ‘타입’, ‘클래스’로 이루어질 수 있음을 나타낸다. 게다가, 실시예들은 원래의 요소 및 새 요소 사이의 관계를 추론할 뿐만 아니라 관계가 추가 관계임을 나타내기 위한 링크를 추가할 수 있다.
다양한 다른 특징들이 아래에서 더 상세하게 설명될 다른 실시예들에서 구현될 수 있다. 그러나, 사용자들이 단지 사용자들이 명칭을 키보드로부터 입력할 때 상기 명칭에 타입을 추가함으로써 요소들의 타입을 변경하도록 하는 그러한 특징들의 부분적인 열거는: 명칭들을 입력하는 동안 사용자들에게 타입들을 선택하는데 도움을 주는 인텔리센스 또는 연상기호들과 같은 안내 및 한정 입력 힌트들, 인텔리센스와 같은 안내 및 한정 입력 힌트들을 이용하는 링크 생성, 및 노드들을 생성하는 방식과 유사한 지속 방식을 이용하여 키보드로부터 자체의 링크들을 통하는 내비게이팅 다이어그램을 포함한다. 실시예들은 코드의 도메인에서 제스처들을 지능적으로 이용할 수 있게 하기 위해, 코드-특정 도메인들에 대한 커스텀 데이터베이스 백엔드(backend)를 이용하는 기능을 포함할 수 있다. 예를 들어, 제스처들은 표시되는 클래스들의 유전성, 방법들 사이의 다형성(polymorphism) 등에서 이용될 수 있다.
이제 다양한 예들이 설명될 것이다. 제 1 예는 자동 타입 시스템 및 증분적 레이아웃이 지원되는 요소들을 생성하기 위해 공간 컨텍스트를 가지는 도메인 인지 불능 명령들을 이용하는 것을 설명한다. 이 예에서, 컨텍스트는 노드들 및 링크들을 포함하여, 다이어그램을 생성하는 사용자를 포함한다. 이 특정한 예에서 UML 활동도 다이어그램이 설명되지만, 심지어 이 예는 임의의 노드 및 링크 다이어그램으로 일반화될 수 있다.
실시예들은 현재의 선택에 관해 의미론적으로 유의미한 장소들 내에 요소들을 생성하기 위해 키보드, 마우스로부터 그리고/또는 다른 제스처들로부터 액세스 가능한 표준 명령들의 세트를 포함할 수 있다. 예들로서, 의미론적으로 의미 있는 장소들은 현재 요소의 위, 아래, 좌, 우 또는 내부를 포함할 수 있으나 이로 제한되지 않는다. 실시예들은 소스 요소(예를 들어 선택되거나 인 포커스 요소) 및 다른 기존 요소들에 관한 제스처를 이용하여 명령의 인보킹에 의해 생성되는 새 요소를 레이아웃하는 기능을 포함할 수 있다. 실시예들은 도메인 및 특정 컨텍스트에 의해 구동되는 요소에 타입을 자동으로 할당할 수 있다.
실시예들은 사용자 명령들이 도메인에 관계 없이 동일하게 유지되는 곳에서 구현될 수 있는데, 왜냐하면 방향들이 각각의 도메인에서 항상 일정한 것은 아닐지라도 일반적으로 유의미하기 때문이다. 이 방식으로 사용자는 상당한 수의 도메인들에 걸쳐 유사한 임무들을 지속적인 방식으로 수행한다. 상술한 바와 같이 도 1은 명령들 및 제스처들의 표준 세트가 상이한 도메인들에 걸쳐 유사한 임무들을 수행하는데 이용될 수 있는 경우를 도시한다.
도 3a는 하나의 예시 시나리오의 일부분들을 도시한다. 도 3a에서, 사용자는 정규 툴박스를 이용하여 노드(302)를 생성할 수 있다. 본원에서 도시된 예들에서, 노드는 단일 노드, 노드들의 세트, 자(child) 노드들의 세트를 지니는 컨테이너, 자체 내에 각각의 방법에 대한 행들을 지니는 클래스 형상인 구획 형상과 같은 복합 형상, 상기 것들의 결합 등일 수 있다. 툴박스는 사용자에게 제공되는 사용자 인터페이스 요소들을 포함할 수 있고, 여기서 사용자는 사용자 인터페이스와 상호 작용하기 위해 마우스들 및 키보드들과 같은 하드웨어 디바이스들과 상호 작용할 수 있다. 사용자는 예를 들어 노드(302)에 대하여 다이어그램 타입 및 요소 타입을 선택하는 것이 가능할 수 있다. 사용자는 현재 플로우 내에서 원래의 노드(302) 바로 아래에 다음 노드를 생성하고자 원할 수 있다. 도 3a는 사용자가 상호 작용할 수 있는 하나의 사용자 인터페이스 뷰(view)를 도시한다. 도시된 예에서, 사용자는 노드들 주위의 네 제어지점들(304-1, 304-2, 304-3, 및 304-4)을 보며, 제어지점은 각각 방향을 지시한다. 도시된 예에서, 사용자는 하향으로 지시하는 제어지점(304-4) 위에 마우스 포인터(306)를 호버링(hovering)한다. 툴 팁(308)은 사용자에게 사용자가 제어지점을 클릭하는 대신 엔터 키를 이용할 수 있음을 알린다. 본 예에서, 제어지점(304-1) 상에서의 호버링은 툴 팁으로 하여금 사용자에게 “Ctrl-R”을 누름으로써 새 동작이 생성될 수 있음을 표시하게 할 수 있다. 제어지점(304-2) 상에서의 호버링은 툴 팁으로 하여금 사용자에게 “Ctrl-U”를 누름으로써 새 동작이 생성될 수 있음을 표시하도록 할 수 있다. 제어지점(304-3) 상에서의 호버링은 툴 팁으로 하여금 사용자에게 “Ctrl-L”을 누름으로써 새 동작이 생성될 수 있음을 표시하게 할 수 있다. 사용자는 제어지점들 위에서 호버링할 필요가 없을 수도 있고, 오히려 제스처들이 무엇을 할 것인지를 이미 인지할 수도 있다. 더욱이, 터치 스크린들, 마우스들, 모션 감지 시스템들 등과 같은 다른 인터페이스들에 있어서, 툴 팁은 인터페이스 환경에 종속되는 상이한 제스처들을 표시할 수 있다.
본 예에서는, 사용자가 엔터를 누르고, 새 노드(310)가 도 3b에 도시된 바와 같은 접속 관계로 또는 접속 관계 없이 생성된다. 어떤 타입의 요소 및 관계가 생성되는지는 다이어그램의 유형, 제스처가 시작했던 장소, 제스처가 시작했던 노드, 명령의 방향, 및/또는 사용자 선호도 및/또는 최근 활동으로부터 도출된다. 이 예에서, 도메인은 활동도 다이어그램으로, 따라서 새 노드(310)에 대한 디폴트 요소는 동작이다. 동작들이 가장 흔히 제어 플로우들에 의해 접속되므로, 제어 플로우가 자동으로 생성된다. 제어 플로우는 새 요소를 지시하고 있는데, 왜냐하면 활동도 다이어그램들에서의 가장 흔한 플로우 방향은 하향이기 때문이다. 대안의 실시예에서, 이 경우에 방향을 결정짓는 하나의 방식은 플로우가 항상 기존 노드로부터 새로 생성되는 노드로 진행되는 것일 수 있다. 그러므로, 디폴트 링크 방향이 또한 도메인, 선택, 제스처 등에 의해 결정되는 실시예들이 구현될 수 있다.
일부 실시예들에서, 일단 노드 또는 링크가 배치되면, 사용자는 매우 쉬운 방식을 제공받아 링크의 방향 또는 타입을 변경할 수 있다. 예를 들어, 사용자가 스마트 태그 등을 이용 또는 변경하는 것이 가능할 수 있다.
다양한 실시예들에서, 요소 노드(310)의 자동 배치의 장소는 다양한 요인들에 의해 결정될 수 있다. 예를 들어, 배치는 명령의 방향에 의해 결정될 수 있다. 자동 정렬 및 공간 배치에 대한 추가 고려사항들은 다이어그램 타입 및 이의 도메인 및/또는 사용자 선호도들에 기초할 수 있는 레이아웃 엔진에서의 제한들에 기초할 수 있다. 사용자 선호도는 사용자 세팅들에서 미리 지정될 수 있다. 대안으로, 사용자 선호도들은 과거의 사용자 상호 작용에 기초하여 추론될 수 있다. 자동 레이아웃은 사용자가 레이아웃을 수동으로 규정해야 없앨 수 있다. 그러나, 실시예들은 사용자가 자동 레이아웃을 이용하여 배치되는 요소들의 배치를 더 수정 또는 “트위크(tweak)”하는 것이 가능한 기능을 포함할 수 있다.
실시예들은 이전의 시스템들과 구별되는 다양한 새 특징들을 가질 수 있다. 특히, 실시예들은 컨텐츠 및 다이어그램 타입들을 교차하는 명령들 및 제스처들의 지속적인 세트를 구현할 수 있다. 실시예들은 도메인, 목표, 방향, 사용자 선호도 등에 기초하여, 어떤 요소들을 생성할지 그리고 이들의 타입들을 결정하는 자동 시스템을 포함할 수 있어서, 상기 시스템이 다수의 도메인들에 걸쳐 지속적이고 유용하게 된다. 실시예들은 도메인 지정 제한들에 의해 구동되며 명령들이 다이어그램의 타입에 따라 유사하지만 도메인 지정 결과들을 제공하는 것이 가능한 자동 증분적 레이아웃을 포함할 수 있다.
다른 기능을 설명하는 다른 예를 이제 설명하면, 실시예들은 현재의 도메인에 의해 억제되는 프롬프트들을 이용하여 신속하게 요소의 타입을 세팅하는 시스템을 구현할 수 있다. 예를 들어, 사용자는 다이어그램을 설계할 수 있다. 사용자가 명령들 및 제스처들을 이용할 때, 일부 경우들에서 사용자는 요소의 타입을 변경하거나 또는 더 구체적으로 명시하고자 한다. 대안으로, 설계 프로세스의 일부로서, 사용자는 사용자가 먼저 생성했던 타입이 변경될 필요가 있음을 발견할 수 있다.
실시예들은 현재의 컨텍스트에 기초하여 요소의 타입을 세팅하라는 명령을 수행하는 기능을 포함할 수 있고, 신규 엔트리 세트는 이 명령을 지시한다. 일부 실시예들은 인텔리센스와 같은 연상 기호들 또는 제한된 힌팅 모듈(hinting module)을 이용하여, 사용자가 자체의 명칭을 타이핑하면서 요소의 타입을 명시하는 것이 가능한 시스템을 구현할 수 있다. 추가 제스처들이 마우스 휠 또는 컨텍스트 메뉴들과 같이, 이 기능을 인보킹하는데 이용될 수 있는 실시예들이 구현될 수 있다.
이제 도 4a를 참조하면, 예가 도시된다. 도 4a에 도시된 예는 사용자가 입력 하드웨어와 상호 작용하여 아래 생성 명령을 이용함으로써 현재 노드(402) 아래에 새 동작 노드(404)를 생성했음을 보여준다. 사용자는 이 노드가 결정 형상이기를 원한다. 도 4b에 도시된 바와 같이, 새 동작 노드가 선택되고/되거나 초점 상태에 있는 동안 사용자는 타이핑을 시작한다. 드롭 다운(406)은 하나 이상의 도메인 제한 힌트들 또는 암시들을 제공하는 것처럼 보인다. 사용자가 타이핑하는 제 1 문자가 ‘d’이므로, 상기 목록은 ‘d’로 시작하는 이 도메인에서 이용 가능한 타입들로 필터링된다. 언급된 바와 같이, 제안들의 목록은 도메인에 기초하여 제한될 수 있다. 그러므로, 이 예에서, 도 4a 및 도 4b에 도시된 특정 도메인에 적절한 제안들만이 제공될 것이다.
언급된 바와 같이, 사용자는 요소의 타입을 결정으로 변경하고자 할 수 있으므로 Tab 키를 쳐서 이것이 상기 단어를 도 4c에 도시된 바와 같이 자동으로 완성한다. 사용자는 그 후에 도 4d에 도시된 바와 같이 형상의 명칭, 이 예에서 Fuu를 추가하고 리턴 또는 엔터를 친다. 이 지점에서 형상은 도 4e에 도시된 바와 같이 결정 형상으로 변환된다.
대안의 제스처들이 타입 선택에 이용될 수 있다. 예를 들어, 사용자가 마우스를 이용하는 것을 선호하는 경우, 사용자는 대신에 형상 상에서 클릭함으로써 그리고 마우스의 스크롤 휠을 이용하여 이 컨텍스트에 대한 이용 가능한 타입들의 세트를 통해 스크롤함으로써 타입 선택 명령을 인보킹할 수 있다.
실시예들은 또한 심지어 더 단순한 기능으로 구현될 수 있다. 예를 들어 시스템은 워드 프로세서들에서와 같이, 자동완성 시스템을 이용하여 조립될 수 있는데, 여기서 결정을 위한 d, 동작을 위한 a 등과 같은 연상 기호들을 입력함으로써 사용자는 “d<명칭>”을 타이핑하여 요소의 타입을 변경하는 것이 가능하고 그 후에 이것이 “결정 <명칭>”으로 자동으로 해석되고 이에 따라 타입이 변경될 것이다. 일부 그러한 실시예들은 또한 그래프 상에서 새 요소들이 무엇으로 보이고자 하는지에 대한 미리보기를 디스플레이하는 기능을 포함할 수 있다. 예를 들어, 사용자가 “d”를 타이핑할 때 그리고 “d” 지속기간을 선택하기 전에, 결정 요소의 미리보기는 결정 요소가 적절한 원하는 타입인지를 결정하는데 사용자에게 도움을 주기 위해 적절한 장소 내의 그래프 상에 디스플레이될 수 있다.
링크 생성은 흔히 현재의 툴들 내의 마우스에 의해 충분히 지원된다. 그러나, 많은 현재 구현된 시스템들은 링크들이 언제 먼 거리들에 걸쳐 생성될 필요가 있는지 또는 언제 사용자가 키보드를 이용하여 다이어그램을 편집하는 플로우 중에 있는지에 관한 결점들을 가진다.
일부 실시예들은 사용자가 링크 생성 툴을 인보킹하는 것을 가능하게 하고 그 후에 키보드만을 이용하여 새 링크들을 규정한다. 시스템은 인텔리센스와 같은 제한된 제안 시스템을 이용하여 사용자에게 자신들이 입력하는 바대로의 컨텍스트에 대한 도메인 지정 유형들, 방향들, 및 목표들의 목록들을 제공함으로써, 사용자는 링크들이 어떻게 규정되는지를 신속하게 지정하게 된다.
이제 도 5a를 참조하면, 예가 도시된다. 도 5a에서, 사용자는 키보드 또는 다른 입력 디바이스로부터의 제스처를 이용하여 노드(502)에 관한 “링크 추가” 명령을 인보킹한다. 제어지점(504)이 나타나고, 여기서 도메인 제한 드롭 다운(506)이 이미 확장되었다. 도 5b에 도시된 바와 같이, 사용자가 타이핑할 때(이 경우, 문자 L), 목록은 평소와 같이 도메인 제한 제안들로 필터링되고, 탭을 누름으로써 사용자는 도 5c에 도시된 바와 같이 선택된 요소를 자동완성할 수 있다. 사용자는 이제 링크의 타입, 방향, 및 어떤 다른 노드가 링크되어 있는지를 타이핑할 수 있다. 진술이 완료되고 사용자가 엔터를 치면, 링크는 도 5d에 의해 도시되는 바와 같이 생성된다.
실시예들은 탐색 및 링크 내비게이션을 이용하는, 다이어그램들의 신속한 내비게이션을 더 포함할 수 있다. 코드로부터의 엔지니어 다이어그램들을 반전시키고 이것들을 코드의 설계 및 분석에 이용하는 시스템들이 더 양호해지고 더 흔해짐에 따라, 소프트웨어 아키텍처 다이어그램들은 더 많은 수의 요소들을 가짐으로써 더 커지는 경향이 있다. 기존 시스템들을 이용하여 생성되는 다이어그램들은 자신들이 더 커짐에 따라 내비게이팅하기 어려워진다. 내비게이션은 흔히 종래의 키보드 방식들에 기초하여 목록들 또는 폼들을 내비게이팅한다. 이것은 작은 다이어그램 내의 이웃 노드들로 내비게이팅할 때 적절할 수 있으나, 흔히 사용자들은 자신의 현재 장소로부터 크게 건너뛰어야 할 필요가 있거나, 또는 비록 노드들이 이웃들이 아니거나 심지어 그 문제에 있어서 서로 가까이 있지 않을지라도, 링크들을 한 노드에서 다른 노드로 따라가고자 원할 수 있다.
일부 실시예들은 상술한 노드들을 생성하는 시스템으로부터의 원리들을 이용하여, 링크들을 내비게이팅하는 시스템을 구현함으로써 이 난제들을 극복할 수 있다. 예를 들어, 실시예들은 링크들을 따라 상, 하, 좌, 우를 내비게이팅하라는 명령들의 세트를 포함할 수 있다. 시스템은 그 후에 상기 방향으로 진행하는 노드들에 접속되는 제 1 링크를 선택할 것이다. 동일한 명령을 한번 더 발령함으로써, 링크의 다른 종단에 있는 노드가 선택될 것이다.
노드가 명령의 방향으로 접속되는 다수의 링크들을 가지는 경우, 드롭 다운(drop down)이 나타남으로써, 사용자가 상기 링크들 중 다른 하나 또는 원하는 자신의 목표 노드들을 선택하는 것이 가능할 것이다. 이제 도 6a를 참조하면, 예가 도시된다. 도 6a에 도시된 예에서, 사용자는 결정 형상(602)으로부터 동작3(604)로 내비게이팅하고자 할 수 있다. 사용자는 예를 들어 제스처들을 이용하는 것과 같이, 링크를 우측으로 내비게이팅하라는 명령을 인보킹할 수 있다. 본 예에서, 사용자는 우측으로의 내비게이션을 나타내기 위해 “Ctrl- ->” 키보드 제스처를 이용할 수 있다. 사용자가 링크를 우측으로 내비게이팅하라는 명령을 인보킹하면, 동작1(606)으로의 링크는 선택된 제 1 링크로 발생한다. 그러나 동작3(604) 또한 결정 형상(602)의 동일한 측으로부터 접속되므로, 이는 드롭 다운(606)에 또한 나타날 것이다. 사용자는 그 후에 키보드 아니면 다른 제스처를 이용하여 동작3(604)를 선택하고 그것의 선택을 행할 수 있다.
실시예들은 키보드 또는 다른 하드웨어 입력 디바이스들을 이용하여, 명칭 또는 다른 컨텐츠(클래스 형상 내의 동작들 또는 속성들의 명칭들과 같은)에 의해 노드들로 직접 내비게이팅하는 기능을 포함할 수 있다. 실시예들은 명칭화된 요소들로 신속히 나아가는 방식으로서 다이어그램들에서 이용되는 증분적 탐색(incremental search)을 이용할 수 있다. 예를 들어, 사용자는 증분적 탐색 명령을 인보킹한다. 탐색 제어지점이 나타난다. 사용자가 타이핑할 때, 현재의 스트링을 포함하는 노드들이 강조된다. 사용자다 더 많이 타이핑할 때, 사용자는 자신이 찾고 있는 한 노드로 협소화할 수 있고 리턴을 칠 수 있다. 이 노드가 이제 선택된다. 유사한 기능이 링크 라벨들 및 컨테이너들에 또한 적용될 수 있다.
다음 논의는 이제 실행될 수 있는 다수의 방법 및 방법 행위들을 언급한다. 상기 방법 행위들이 특정한 순서로 논의되거나 특정한 순서에서 발생하는 바대로의 흐름도로 도시될지라도, 달리 구체적으로 진술되거나 요구되지 않으면 특정한 순서화가 요구되지 않는데 왜냐하면 하나의 행위는 수행되고 있는 행위 이전에 완료된 다른 행위에 종속되기 때문이다.
이제 도 7을 참조하면, 방법(700)이 도시된다. 방법(700)은 컴퓨팅 환경에서 실행될 수 있고 데이터가 공간적 의미를 가지는 데이터를 조직하기 위한 행위들을 포함한다. 예를 들어, 그래프들 및 다이어그램들은 데이터가 공간적 의미를 가지는 한 예이다. 서로에 대한 노드들 및/또는 노드들을 접속시키는 커넥터들의 위치는 노드들에 의해 표현되는 데이터의 의미를 규정하는데 도움을 준다. 공간적 의미를 가지는 다른 데이터는 계층 데이터를 포함할 수 있고 여기서 공간 포지셔닝은 계층 내의 위치를 나타낸다. 그와 같은 계층적 데이터는 데이터베이스들, 테이블들, 등에 포함될 수 있다. 여기서 열거되지 않을지라도, 또 다른 유형들의 데이터가 공간적 의미를 가질 수 있고 여기서의 예들은 포괄하는 것으로 의도되지 않는다.
방법(700)은 사용자 인터페이스에서, 사용자에게 공간적으로 구조화된 데이터의 표현을 디스플레이하는 것을 포함한다(행위 702). 예를 들어, 도 2a는 클래스 노드들(202 및 204)로 클래스 다이어그램을 디스플레이하는 사용자 인터페이스 디스플레이를 도시하고, 여기서 노드들(202 및 204)은 공간적으로 구조화된 데이터를 표현한다. 도 3b는 공간적 의미가 동작 순서들을 나타내는 플로우 커넥터에 의해 접속되는 동작 노드(302) 및 동작 노드(310)로 활동도 다이어그램과의 사용자 인터페이스를 도시한다.
방법(700)은 컴퓨터 구현 사용자 인터페이스에서 하나 이상의 하드웨어 사용자 인터페이스 디바이스들을 통해 사용자 입력을 수신하는 것을 더 포함한다(행위 704). 사용자 입력은 도메인 인지 불능이지만 공간 내포의미(spatial connotation)를 가진다. 예를 들어, 상술한 바와 같이, 공간 내포의미들은 위, 아래, 우로, 좌로, 내부로 일 수 있다. 이것들은 공간 내포의미를 가지지만 공간 도메인들 및/또는 컨텍스트들 사이에서 미묘하게 차이가 날 수 있다. 상술한 바와 같이, 사용자 입력은 입력들의 다수의 상이한 타입들 중 하나 이상일 수 있다. 본원에 도시된 예들은 제한되지 않지만, 카메라 또는 소형 제어기에 의해 추적되는 바와 같은 마우스, 펜, 터치, 멀티터치, 제스처들, 인간의 사지 제스처들, 또는 제어기 또는 컴퓨팅 시스템, 또는 어떤 다른 사용자 입력 내의 가속도 센서에 의해 추적되는 바와 같은 제어기 또는 컴퓨팅 시스템 움직임 플릭 제스처들을 포함한다.
방법(700)은 사용자 인터페이스에서 디스플레이된 미리 존재하는 구조화 데이터 또는 이전의 사용자 상호 작용에 기초하여 사용자 입력에 대한 도메인을 결정하는 것을 더 포함한다(행위 706). 예를 들어, 도 2a에서, 클래스 노드(202)가 존재하면 도메인이 클래스 다이어그램임이 표시될 수 있다. 도 3a에서, 동작 노드(302)가 존재하면 도메인이 활동도 다이어그램임이 표시될 수 있다. 대안으로, 이전에 입력된 사용자 선호도들 또는 사용자의 이전 다이어그램 구성 동작들은 사용자 입력에 대한 도메인을 결정하는데 이용될 수 있다.
방법(700)은 결정된 도메인에 기초해서 사용자 입력을 도메인 지정 응답으로 해석하는 것을 더 포함하지만(행위 708), 여기서 도메인 지정 응답은 복수의 도메인들에 걸친 공간 내포의미와 일치된다. 예를 들어 도 2b에서, 엔터 키를 누름으로써 새 유전학적 클래스(206)가 동물 클래스 노드(202) 아래에 배치된다. 반면에 도 3b에서, 엔터 키를 누름으로써 새 동작 노드(310)가 동작 노드(302) 아래에 배치된다. 그러므로 어느 도메인일지라도 공간 내포의미는 각각 아래에 생성되는 것에 대한 도메인 지정 응답으로서, 아래에 생성되는 것이다.
사용자 입력을 수신하는 것이 하나 이상의 제한된 힌트들을 제공하는 힌팅 모듈의 도움으로 생성되는 사용자 입력을 수신하는 것을 포함하는 방법(700)의 실시예들이 실행될 수 있다. 예를 들어, 도 5a 내지 도 5d는 제스처가 이용되고 힌팅 모듈이 제한된 힌트들을 제공하는 예를 도시한다. 힌트들은 도메인 및/또는 컨텍스트에 기초하여 제한될 수 있다. 예를 들어, 힌트들은 다이어그램의 어떤 타입이 현재 생성되고 있는지 그리고 다이어그램 내에서 어떤 엔티티들에 초점이 맞추어져 있는지에 기초하여 제한될 수 있다.
사용자 입력을 수신하는 것이 하나 이상의 제한된 힌트들을 제공하는 연상 기호 모듈의 도움으로 생성되는 사용자 입력을 수신하는 것을 포함하는 방법(700)의 실시예들이 실행될 수 있다. 도 4a 및 도 4b는 연상 기호 모듈이 블록의 타입을 결정하는데 어떻게 이용될 수 있는지를 도시한다.
방법(700)은 사용자 입력을 도메인 지정 응답으로 해석하는 결과로서; 새 데이터가 타이핑된 객체를 공간적으로 구조화된 데이터에 자동으로 추가하는 것을 더 포함할 수 있다. 예를 들어 도 3a 및 도 3b에서, 다이어그램은 활동도 다이어그램이기 때문에, 동작 블록은 자동으로 추가된다. 일부 실시예들은 마우스 버튼 또는 스크롤링 기능 중 적어도 하나를 이용하여 추가된 새 데이터 타입의 타입을 변경하는 것을 포함할 수 있다. 예를 들어, 사용자는 새로 추가되는 데이터 타입을 선택할 수 있고, 다양한 이용 가능한 데이터 유형들을 통해 스크롤링할 수 있다. 예를 들어, 사용자는 결정 데이터 타입에 자동으로 추가되는 동작 데이터 타입을 변경하는 것이 가능할 수 있다. 일부 실시예들에서, 추가되는 새 데이터 타입의 타입을 변경하는 것은 하나 이상의 제한된 힌트들을 제공하는 연상 기호 모듈의 도움으로 생성되는 사용자 입력을 이용하여 실행될 수 있다. 또 다른 대안의 실시예들에서, 추가되는 새 데이터 타입의 타입을 변경하는 것은 인텔리센스와 같은 하나 이상의 제한된 힌트들을 제공하는 힌팅 모듈의 도움으로 생성되는 사용자 입력을 이용하여 행해질 수 있다.
방법(700)의 실시예들은 하나 이상의 제한된 힌트들을 제공하는 힌팅 모듈의 도움으로 생성되는 사용자 입력을 이용하여 구조화된 데이터 객체 사이에 링크들을 생성하는 것을 더 포함할 수 있다. 예를 들어, 도 5a 내지 도 5d는 특히 링크가 힌팅 모듈을 이용하여 생성되는 예를 도시한다. 이 링크들은 실제로 상당히 복잡할 수 있다. 예를 들어, 실시예들은 하나의 클래스 A를 고르고 키보드 제스처를 이용하여 이를 클래스 B에 접속할 수 있다. 이는 결과적으로 클래스 A 및 클래스 B가 어떻게 관련되는지를 정확하게 식별하기 위해 생성될 필요가 있는 일련의 중간 클래스들 및 링크들을 생성할 수 있다. 예를 들어, 이 두 클래스들은 중간자 클래스들(C, D 및 E)을 통해 접속될 필요가 있을 수 있다. 그럼에도 불구하고, 실시예들은 적절한 힌트들을 제공하고 적절한 링크들을 만들 수 있다.
방법(700)의 실시예들은 공간적으로 구조화된 데이터가 시각적으로 관찰 가능하고 유의미한 공간 레이아웃을 가지는 데이터를 포함하는 곳에서 실행될 수 있다. 예를 들어, 흐름도들, 활동도 다이어그램들 등은 사용자가 시각적으로 관찰할 수 있는 레이아웃을 가진다.
방법(700)의 실시예들은 공간적으로 구조화된 데이터의 표현에서 데이터 객체들 사이의 링크들을 내비게이팅하기 위해 사용자 입력을 수신할 수 있다. 예를 들어, 도 6에서 설명되는 예에서 도시되는 바와 같이, 사용자 제스처들은 다이어그램을 통해 내비게이팅하는데 이용될 수 있다. 도 6에 설명된 것과 같은 그러한 일부 실시예들에서, 사용자에게는 도메인에 기초하는 가능한 내비게이션 목적지들의 제한된 목록이 제공될 수 있다.
게다가, 상기 방법들은 하나 이상의 프로세서들 및 컴퓨터 메모리와 같은 컴퓨터 판독 가능 매체를 포함하는 컴퓨터 시스템에 의해 실행될 수 있다. 특히, 컴퓨터 메모리는 하나 이상의 프로세서들에 의해 수행될 때 실시예들에서 언급된 행위들과 같이, 다양한 기능들이 수행되도록 하는 컴퓨터 수행 가능 명령들을 저장할 수 있다.
본 발명의 실시예들은 아래에서 더 자세하게 논의되는 바와 같이, 컴퓨터 하드웨어를 포함하는 특수 목적 또는 범용 컴퓨터를 포함 또는 이용할 수 있다. 본 발명의 범위 내의 실시예들은 또한 컴퓨터 수행 가능 명령들 및/또는 데이터 구조들을 반송하거나 저장하는 물리적인 그리고 다른 컴퓨터 판독 가능 매체를 포함한다. 그와 같은 컴퓨터-판독 가능 매체는 범용 또는 특수 목적 컴퓨터 시스템에 의해 액세스될 수 있는 임의의 구입 가능 매체일 수 있다. 컴퓨터-판독 가능 명령들을 저장하는 컴퓨터-판독 가능 매체는 물리적 저장 매체이다. 컴퓨터-판독 가능 명령들을 반송하는 컴퓨터-판독 가능 매체는 송신 매체이다. 그러므로, 예로서, 그리고 비제한적으로, 본 발명의 실시예들은 적어도 분명하게 상이한 2개의 종류들의 컴퓨터-판독 가능 매체를 포함할 수 있다: 물리적 컴퓨터 판독 가능 저장 매체 및 송신 컴퓨터 판독 가능 매체.
물리적 컴퓨터 판독 가능 매체는 RAM, ROM, EEPROM, CO-ROM, 또는 다른 광 디스크 저장소(CD들, DVD들 등), 자기 디스크 저장소 또는 다른 자기 저장 디바이스들, 컴퓨터 수행 가능 명령들 또는 데이터 구조들의 형태이며 범용 또는 특수 목적 컴퓨터에 의해 액세스될 수 있는 원하는 프로그램 코드 수단을 저장하는데 이용되는 임의의 다른 매체를 포함한다.
“네트워크"는 컴퓨터 시스템들 및/또는 모듈들 및/또는 다른 전자 디바이스들 사이에서 전자 데이터의 전송을 가능하게 하는 하나 이상의 데이터 링크들로서 규정된다. 정보가 네트워크 또는 다른 통신 접속(유선이거나, 무선이거나, 또는 유선 또눈 무선의 결합)을 통해 컴퓨터에 전송 또는 제공될 때, 컴퓨터는 이 접속은 송신 매체로서 적절하게 뷰잉한다. 송신 매체는 반송하는데 이용될 수 있는 네트워크 및/또는 데이터 링크들 또는 컴퓨터 수행 가능 명령들 또는 데이터 구조들의 형태이며 범용 또는 특수 목적 컴퓨터들에 의해 액세스될 수 있는 원하는 프로그램 코드 수단을 포함할 수 있다. 컴퓨터 판독 가능 매체의 범위 내에는 위의 것들이 결합된 것들 또한 포함된다.
게다가, 다양한 컴퓨터 시스템 구성요소들에 도달하자마자, 컴퓨터 수행 가능 명령들 또는 데이터 구조들의 형태인 프로그램 코드 수단은 송신 컴퓨터 판독 가능 매체로부터 물리적 컴퓨터 판독 가능 저장 매체로(또는 이 역으로) 자동으로 전송될 수 있다. 예를 들어, 네트워크 또는 데이터 링크를 통해 수신되는 컴퓨터-수행 가능 명령들 또는 데이터 구조들은 네트워크 인터페이스 모듈(예를 들어, “NIC”) 내의 RAM에서 버퍼링되고 그 후에 결국 컴퓨터 시스템 RAM에 그리고/또는 컴퓨터 시스템에 있는 휘발성이 덜한 컴퓨터 판독 가능 물리 저장 매체로 전송될 수 있다. 그러므로, 컴퓨터 판독 가능 물리 저장 매체는 또한(또는 심지어 1차적으로) 송신 매체를 이용하는 컴퓨터 시스템 구성요소들 내에 포함될 수 있다.
컴퓨터-수행 가능 명령들은 예를 들어 범용 컴퓨터, 특수 목적 컴퓨터, 또는 특수 목적 프로세싱 디바이스로 하여금 특정 기능 또는 기능들의 그룹을 수행하도록 하는 명령들 및 데이터를 포함한다. 컴퓨터 수행 가능 명령들은 예를 들어, 이진수들, 어셈블리 언어와 같은 중간 포맷 명령들, 또는 심지어 소스 코드일 수 있다. 특허대상이 구조 특징들 및/또는 방법론 행위들에 대해 특정한 언어로 기술되었을지라도, 첨부된 청구항들에서 규정되는 특허대상이 기술된 특징들 또는 상술한 행위들로 반드시 제한도지 않음이 이해되어야 한다. 오히려, 기술되는 특징들 및 행위들은 청구항들을 구현하는 예시 형태들로 개시된다.
당업자는 본 발명이 네트워크 컴퓨팅 환경들에서, 개인용 컴퓨터들, 데스크탑 컴퓨터들, 랩탑 컴퓨터들, 메시지 프로세서들, 휴대용 디바이스들, 다중-프로세서 시스템들, 마이크로프로세서 기반 또는 프로그래머블 컨슈머 일렉트로닉스들, 네트워크 PC들, 미니컴퓨터들, 메인프레임 컴퓨터들, 이동 전화들, PDA들, 페이저들, 라우터들, 스위치들 등을 포함하는 많은 유형들의 컴퓨터 시스템 구성들로 실시될 수 있음을 인식할 것이다. 본 발명은 또한 네트워크를 통해 링크되는(유선 데이터 링크들, 또는 무선 데이터 링크들에 의해, 아니면 유선 및 무선 데이터 링크들의 결합에 의해) 로컬 및 원격 컴퓨터 시스템들 모두가 임무들을 수행하는 분산식 시스템 환경들에서 실행될 수 있다. 분산식 시스템 환경에서, 프로그램 모듈들은 로컬 및 원격 모두의 메모리 저장 디바이스에 위치될 수 있다.
본 발명은 본 발명의 범위 또는 특징들을 벗어나지 않는 다른 특정한 형태들로 구현될 수 있다. 기술되는 실시예들은 모든 면들에서 단지 예시적인 것으로써 간주되어야지 제한하는 것으로 간주되어서는 안 된다. 그러므로 본 발명의 범위는 상술한 설명에 의해서라기 보다는 첨부된 청구항들에 의해 지시된다. 청구항들의 등가물의 의미 및 범위 내에 해당하는 모든 변화들은 청구항들 내에 포함될 수 있다.

Claims (20)

  1. 하나 이상의 프로세서를 포함하는 컴퓨터 시스템에서 구현되며, 공간적 유의미(spatial significance)를 가지는 데이터를 조직하는(organizing) 방법으로서,
    사용자 인터페이스에서, 하나 이상의 디스플레이된 객체를 포함하는 공간적으로 구조화된 데이터의 표현(a representation of spatially structured data)을 사용자에게 디스플레이하는 단계와,
    상기 사용자 인터페이스에서, 상기 공간적으로 구조화된 데이터 내에 포함된 특정 객체가 선택되었음을 나타내는 단계- 상기 나타내는 단계는 (i) 상기 특정 객체와 연관된 위 방향의 사용자 입력이 수신될 수 있음을 나타내는 상기 특정 객체 위의 제1 사용자 인터페이스 컨트롤, (ii) 상기 특정 객체와 연관된 아래 방향의 사용자 입력이 수신될 수 있음을 나타내는 상기 특정 객체 아래의 제2 사용자 인터페이스 컨트롤, (iii) 상기 특정 객체와 연관된 왼쪽 방향의 사용자 입력이 수신될 수 있음을 나타내는 상기 특정 객체 왼쪽의 제3 사용자 인터페이스 컨트롤, 및 (iv) 상기 특정 객체와 연관된 오른쪽 방향의 사용자 입력이 수신될 수 있음을 나타내는 상기 특정 객체 오른쪽의 제4 사용자 인터페이스 컨트롤을 포함하는 복수의 방향성 사용자 인터페이스 컨트롤을 디스플레이하는 것을 포함함 -와,
    상기 특정 객체와 연관된 방향성 사용자 입력을 하나 이상의 하드웨어 입력 장치를 통해 수신하는 단계- 상기 방향성 사용자 입력은 위 방향, 아래 방향, 왼쪽 방향 및 오른쪽 방향 중에서 선택됨 -와,
    상기 방향성 사용자 입력의 수신에 기초하여, 상기 특정 객체의 도메인 타입을 결정하는 단계와,
    상기 특정 객체의 상기 결정된 도메인 타입에 기초하여, 상기 특정 객체와 연계하여 새로운 객체를 상기 공간적으로 구조화된 데이터에 추가하라는 것으로 상기 방향성 사용자 입력을 해석하는 단계를 포함하되,
    상기 도메인 타입이 제1 도메인 타입인 경우, 상기 새로운 객체의 타입은 상기 제1 도메인 타입과 연관된 제1 복수의 객체 타입 내에서 선택되고, 상기 새로운 객체의 타입은 또한 상기 방향성 사용자 입력의 특정 방향에 기초하여 상기 제1 복수의 객체 타입 중에서 선택되고, 적어도 두 개의 상이한 방향이 상기 제1 복수의 객체 타입 내의 상이한 객체 타입과 연관되고,
    상기 도메인 타입이 제2 도메인 타입인 경우, 상기 새로운 객체의 타입은 상기 제1 복수의 객체 타입과 다른, 상기 제2 도메인 타입과 연관된 제2 복수의 객체 타입 내에서 선택되고, 상기 새로운 객체의 타입은 또한 상기 방향성 사용자 입력의 특정 방향에 기초하여 상기 제2 복수의 객체 타입 중에서 선택되고, 적어도 두 개의 상이한 방향이 상기 제2 복수의 객체 타입 내의 상이한 객체 타입과 연관된
    데이터를 조직하는 방법.
  2. 제 1 항에 있어서,
    하나 이상의 제한된 힌트(one or more constrained hints)를 제공하는 힌팅 모듈(hinting module)의 도움으로 생성되는 추가의 사용자 입력을 수신하는 단계를 더 포함하는
    데이터를 조직하는 방법.
  3. 제 2 항에 있어서,
    상기 힌트는 상기 특정 객체의 타입에 기초하여 제한되는
    데이터를 조직하는 방법.
  4. 제 2 항에 있어서,
    상기 힌트는 컨텍스트에 기초하여 제한되는
    데이터를 조직하는 방법.
  5. 제 1 항에 있어서,
    하나 이상의 제한된 힌트를 제공하는 연상 기호 모듈(mnemonics module)의 도움으로 생성되는 추가의 사용자 입력을 수신하는 단계를 더 포함하는
    데이터를 조직하는 방법.
  6. 제 1 항에 있어서,
    상기 새로운 객체 내의 데이터의 디폴트 타입을 마우스 스크롤 기능을 이용하여 새로운 타입으로 변경하고- 상기 마우스 스크롤 기능의 활성화는 타입의 필터링된 목록이 디스플레이되게 함 -, 상기 필터링된 목록 내의 디스플레이된 타입 중에서의 상기 새로운 타입의 사용자 선택을 수신하는 단계를 더 포함하는
    데이터를 조직하는 방법.
  7. 제 1 항에 있어서,
    타이핑된 문자의 검출에 응답하여 타입의 필터링된 목록 중에서 새로운 타입이 선택되게 하는 연상 기호 모듈의 도움으로 생성되는 사용자 입력을 이용하여 상기 새로운 객체 내의 데이터의 디폴트 타입을 상기 새로운 타입으로 변경하는 단계를 더 포함하는
    데이터를 조직하는 방법.
  8. 제 1 항에 있어서,
    타이핑된 문자의 검출에 응답하여 타입의 필터링된 목록이 디스플레이되게 하는 힌팅 모듈의 도움으로 생성되는 사용자 입력을 이용하여 상기 새로운 객체 내의 데이터의 디폴트 타입을 새로운 타입으로 변경하고 상기 타입의 필터링된 목록 중에서 상기 새로운 타입의 사용자 선택을 수신하는 단계를 더 포함하는
    데이터를 조직하는 방법.
  9. 제 1 항에 있어서,
    하나 이상의 제한된 힌트를 제공하는 힌팅 모듈의 도움으로 생성된 사용자 입력을 이용하여 상기 특정 객체와 상기 새로운 객체 사이에 하나 이상의 링크를 생성하는 단계를 더 포함하는
    데이터를 조직하는 방법.
  10. 제 1 항에 있어서,
    상기 공간적으로 구조화된 데이터는 시각적으로 관찰 가능한 공간 레이아웃을 가지는 데이터를 포함하는
    데이터를 조직하는 방법.
  11. 제 1 항에 있어서,
    상기 공간적으로 구조화된 데이터의 표현 내의 데이터 객체들 사이의 링크들을 내비게이팅하기 위한 추가의 사용자 입력을 수신하는 단계를 더 포함하는
    데이터를 조직하는 방법.
  12. 제 11 항에 있어서,
    수신된 네비게이션 입력에 의해 식별된 특정 방향에서 복수의 상이한 네비게이션 목적지가 검출된 것에 응답하여 상기 특정 객체의 상기 도메인 타입에 기초하여 가능한 내비게이션 목적지들의 제한된 목록을 디스플레이하는 단계를 더 포함하는
    데이터를 조직하는 방법.
  13. 컴퓨터 시스템으로서,
    하나 이상의 하드웨어 프로세서와,
    디스플레이 장치와,
    하나 이상의 하드웨어 입력 장치와,
    컴퓨터 실행가능 명령어를 포함하는 하나 이상의 컴퓨터 판독가능 하드웨어 저장 장치를 포함하되,
    상기 컴퓨터 실행가능 명령어는 상기 컴퓨터 시스템으로 하여금 공간적 유의미(spatial significance)를 가지는 데이터를 조직하도록 하나 이상의 하드웨어 프로세서에 의해 실행가능하고,
    상기 컴퓨터 실행가능 명령어는 적어도,
    상기 디스플레이 장치상의 사용자 인터페이스에서, 하나 이상의 디스플레이된 객체를 포함하는 공간적으로 구조화된 데이터의 표현을 디스플레이하는 단계와,
    상기 사용자 인터페이스에서, 상기 공간적으로 구조화된 데이터 내에 포함된 특정 객체가 선택되었음을 나타내는 단계- 상기 나타내는 단계는 (i) 상기 특정 객체와 연관된 위 방향의 사용자 입력이 수신될 수 있음을 나타내는 상기 특정 객체 위의 제1 사용자 인터페이스 컨트롤, (ii) 상기 특정 객체와 연관된 아래 방향의 사용자 입력이 수신될 수 있음을 나타내는 상기 특정 객체 아래의 제2 사용자 인터페이스 컨트롤, (iii) 상기 특정 객체와 연관된 왼쪽 방향의 사용자 입력이 수신될 수 있음을 나타내는 상기 특정 객체 왼쪽의 제3 사용자 인터페이스 컨트롤, 및 (iv) 상기 특정 객체와 연관된 오른쪽 방향의 사용자 입력이 수신될 수 있음을 나타내는 상기 특정 객체 오른쪽의 제4 사용자 인터페이스 컨트롤을 포함하는 복수의 방향성 사용자 인터페이스 컨트롤을 디스플레이하는 것을 포함함 -와,
    상기 특정 객체와 연관된 방향성 사용자 입력을 하나 이상의 하드웨어 입력 장치를 통해 수신하는 단계- 상기 방향성 사용자 입력은 위 방향, 아래 방향, 왼쪽 방향 및 오른쪽 방향 중에서 선택됨 -와,
    상기 방향성 사용자 입력의 수신에 기초하여, 상기 특정 객체의 도메인 타입을 결정하는 단계와,
    상기 특정 객체의 상기 결정된 도메인 타입에 기초하여, 상기 특정 객체와 연계하여 새로운 객체를 상기 공간적으로 구조화된 데이터에 추가하라는 것으로 상기 방향성 사용자 입력을 해석하는 단계를 수행하도록 상기 컴퓨터 시스템을 구성하도록 실행가능한 컴퓨터 실행가능 명령어를 포함하되,
    상기 도메인 타입이 제1 도메인 타입인 경우, 상기 새로운 객체의 타입은 상기 제1 도메인 타입과 연관된 제1 복수의 객체 타입 내에서 선택되고, 상기 새로운 객체의 타입은 또한 상기 하나 이상의 하드웨어 프로세서에 의해, 상기 방향성 사용자 입력의 특정 방향에 기초하여 상기 제1 복수의 객체 타입 중에서 선택되고, 적어도 두 개의 상이한 방향이 상기 제1 복수의 객체 타입 내의 상이한 객체 타입과 연관되고,
    상기 도메인 타입이 제2 도메인 타입인 경우, 상기 새로운 객체의 타입은 상기 제1 복수의 객체 타입과 다른, 상기 제2 도메인 타입과 연관된 제2 복수의 객체 타입 내에서 선택되고, 상기 새로운 객체의 타입은 또한 상기 하나 이상의 하드웨어 프로세서에 의해, 상기 방향성 사용자 입력의 특정 방향에 기초하여 상기 제2 복수의 객체 타입 중에서 선택되고, 적어도 두 개의 상이한 방향이 상기 제2 복수의 객체 타입 내의 상이한 객체 타입과 연관된,
    컴퓨터 시스템.
  14. 제 13 항에 있어서,
    하나 이상의 제한된 힌트를 제공하는 힌팅 모듈의 도움으로 생성되는 추가의 사용자 입력을 수신하도록 상기 컴퓨터 시스템을 구성하도록 실행가능한 컴퓨터 실행가능 명령어를 더 포함하는
    컴퓨터 시스템.
  15. 제 14 항에 있어서,
    상기 힌트는 상기 특정 객체의 타입에 기초하여 제한되는
    컴퓨터 시스템.
  16. 제 14 항에 있어서,
    상기 힌트는 컨텍스트에 기초하여 제한되는
    컴퓨터 시스템.
  17. 제 13 항에 있어서,
    하나 이상의 제한된 힌트를 제공하는 연상 기호 모듈의 도움으로 생성되는 추가의 사용자 입력을 수신하도록 상기 컴퓨터 시스템을 구성하도록 실행가능한 컴퓨터 실행가능 명령어를 더 포함하는
    컴퓨터 시스템.
  18. 컴퓨터 실행가능 명령어를 포함하는 컴퓨터 판독가능 하드웨어 저장 장치로서,
    상기 컴퓨터 실행가능 명령어는 컴퓨터 시스템으로 하여금 공간적 유의미를 가지는 데이터를 조직하도록 하나 이상의 프로세서에 의해 실행가능하고,
    상기 컴퓨터 실행가능 명령어는 적어도,
    사용자 인터페이스에서, 하나 이상의 디스플레이된 객체를 포함하는 시각적으로 관찰 가능한 공간 레이아웃을 갖는 공간적으로 구조화된 데이터의 표현을 사용자에게 디스플레이하는 단계와,
    상기 사용자 인터페이스에서, 상기 공간적으로 구조화된 데이터 내에 포함된 특정 객체가 선택되었음을 나타내는 단계- 상기 나타내는 단계는 (i) 상기 특정 객체와 연관된 위 방향의 사용자 입력이 수신될 수 있음을 나타내는 상기 특정 객체 위의 제1 사용자 인터페이스 컨트롤, (ii) 상기 특정 객체와 연관된 아래 방향의 사용자 입력이 수신될 수 있음을 나타내는 상기 특정 객체 아래의 제2 사용자 인터페이스 컨트롤, (iii) 상기 특정 객체와 연관된 왼쪽 방향의 사용자 입력이 수신될 수 있음을 나타내는 상기 특정 객체 왼쪽의 제3 사용자 인터페이스 컨트롤, 및 (iv) 상기 특정 객체와 연관된 오른쪽 방향의 사용자 입력이 수신될 수 있음을 나타내는 상기 특정 객체 오른쪽의 제4 사용자 인터페이스 컨트롤을 포함하는 복수의 방향성 사용자 인터페이스 컨트롤을 디스플레이하는 것을 포함함 -와,
    상기 특정 객체와 연관된 방향성 사용자 입력을 하나 이상의 하드웨어 입력 장치를 통해 수신하는 단계- 상기 방향성 사용자 입력은 위 방향, 아래 방향, 왼쪽 방향 및 오른쪽 방향 중에서 선택됨 -와,
    상기 방향성 사용자 입력의 수신에 기초하여, 상기 특정 객체의 도메인 타입을 결정하는 단계와,
    상기 결정된 도메인 타입에 기초하여, 상기 특정 객체와 연계하여 새로운 객체를 상기 공간적으로 구조화된 데이터에 추가하라는 것으로 상기 방향성 사용자 입력을 해석하는 단계를 수행하도록 상기 컴퓨터 시스템을 구성하도록 실행가능한 컴퓨터 실행가능 명령어를 포함하되,
    상기 도메인 타입이 제1 도메인 타입인 경우, 상기 새로운 객체의 타입은 상기 제1 도메인 타입과 연관된 제1 복수의 객체 타입 내에서 선택되고, 상기 새로운 객체의 타입은 또한 상기 방향성 사용자 입력의 특정 방향에 기초하여 상기 제1 복수의 객체 타입 중에서 선택되고, 적어도 두 개의 상이한 방향이 상기 제1 복수의 객체 타입 내의 상이한 객체 타입과 연관되고,
    상기 도메인 타입이 제2 도메인 타입인 경우, 상기 새로운 객체의 타입은 상기 제1 복수의 객체 타입과 다른, 상기 제2 도메인 타입과 연관된 제2 복수의 객체 타입 내에서 선택되고, 상기 새로운 객체의 타입은 또한 상기 방향성 사용자 입력의 특정 방향에 기초하여 상기 제2 복수의 객체 타입 중에서 선택되고, 적어도 두 개의 상이한 방향이 상기 제2 복수의 객체 타입 내의 상이한 객체 타입과 연관된,
    컴퓨터 판독가능 하드웨어 저장 장치.
  19. 제 13 항에 있어서,
    상기 새로운 객체는 상기 특정 객체로부터 적어도 하나의 속성을 물려받는
    컴퓨터 시스템.
  20. 제 13 항에 있어서,
    상기 새로운 객체는 상기 특정 객체의 부모 또는 자식인
    컴퓨터 시스템.
KR1020137015498A 2010-12-17 2011-12-16 다이어그램들의 생성, 편집 및 내비게이션 기법 KR101831476B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/972,060 2010-12-17
US12/972,060 US9436437B2 (en) 2010-12-17 2010-12-17 Creation, editing and navigation of diagrams
PCT/US2011/065664 WO2012083268A2 (en) 2010-12-17 2011-12-16 Creation, editing and navigation of diagrams

Publications (2)

Publication Number Publication Date
KR20140005180A KR20140005180A (ko) 2014-01-14
KR101831476B1 true KR101831476B1 (ko) 2018-02-22

Family

ID=46233714

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020137015498A KR101831476B1 (ko) 2010-12-17 2011-12-16 다이어그램들의 생성, 편집 및 내비게이션 기법

Country Status (8)

Country Link
US (1) US9436437B2 (ko)
EP (1) EP2652576A4 (ko)
JP (1) JP6027541B2 (ko)
KR (1) KR101831476B1 (ko)
CN (1) CN102566916B (ko)
AU (1) AU2011343428B2 (ko)
CA (1) CA2820923A1 (ko)
WO (1) WO2012083268A2 (ko)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014133533A1 (en) * 2013-02-28 2014-09-04 Hewlett-Packard Development Company, L.P. An interface for creating a plan artifact
US10929008B2 (en) * 2015-06-05 2021-02-23 Apple Inc. Touch-based interactive learning environment
CN108319577B (zh) * 2017-01-18 2021-09-28 阿里巴巴集团控股有限公司 一种图表的处理方法、装置及电子设备
CN108229016A (zh) * 2017-12-29 2018-06-29 杭州杉石科技有限公司 基于顺序图模型的电子系统排布方法和装置
CN114153536B (zh) * 2021-11-12 2024-04-09 华东计算技术研究所(中国电子科技集团公司第三十二研究所) 兼容触摸屏的物理按键的web页面焦点控制方法及系统

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080092109A1 (en) 2006-10-17 2008-04-17 The Mathworks, Inc. User-defined hierarchies of user-defined classes of graphical objects in a graphical modeling environment
JP2008269272A (ja) 2007-04-20 2008-11-06 Meidensha Corp ソフトウェア開発支援システム、開発支援方法およびプログラム
US20090199123A1 (en) 2008-02-03 2009-08-06 Microsoft Corporation Dynamic preview of diagram elements to be inserted into a diagram

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4656603A (en) 1984-03-01 1987-04-07 The Cadware Group, Ltd. Schematic diagram generating system using library of general purpose interactively selectable graphic primitives to create special applications icons
US6556878B1 (en) 1999-04-07 2003-04-29 Randall Jon Fielding Method and user interface for representing architectural plan diagrams
US6970844B1 (en) 1999-08-27 2005-11-29 Computer Sciences Corporation Flow designer for establishing and maintaining assignment and strategy process maps
US7420573B1 (en) * 2001-11-09 2008-09-02 The Mathworks, Inc. System and method for merging electronic diagrams
US7231395B2 (en) 2002-05-24 2007-06-12 Overture Services, Inc. Method and apparatus for categorizing and presenting documents of a distributed database
US7765529B1 (en) * 2003-10-31 2010-07-27 The Mathworks, Inc. Transforming graphical objects in a graphical modeling environment
CN100390791C (zh) 2004-05-31 2008-05-28 国际商业机器公司 流程图的编辑、重组验证、创建和转换的方法和装置
US7770148B2 (en) 2005-05-25 2010-08-03 Microsoft Corporation Methods and apparatus enabling diagram customization retention
US20080109235A1 (en) * 2006-11-03 2008-05-08 Business Objects, S.A. Apparatus and method for creating business process workflows within business intelligence systems
CN101281522B (zh) 2007-04-06 2010-11-03 阿里巴巴集团控股有限公司 一种处理相关关键词的方法及系统
US8225278B2 (en) 2007-05-14 2012-07-17 International Business Machines Corporation Method of visualizing modifications of a hierarchical state diagram
CN100507845C (zh) 2007-09-24 2009-07-01 北大方正集团有限公司 一种可设置多值域区间的编辑控件的创建方法
US8717383B2 (en) 2008-08-27 2014-05-06 International Business Machines Corporation Automatic management of diagram elements
US20100251211A1 (en) 2009-03-26 2010-09-30 Microsoft Corporation Generating and using code-based diagrams

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080092109A1 (en) 2006-10-17 2008-04-17 The Mathworks, Inc. User-defined hierarchies of user-defined classes of graphical objects in a graphical modeling environment
JP2008269272A (ja) 2007-04-20 2008-11-06 Meidensha Corp ソフトウェア開発支援システム、開発支援方法およびプログラム
US20090199123A1 (en) 2008-02-03 2009-08-06 Microsoft Corporation Dynamic preview of diagram elements to be inserted into a diagram

Also Published As

Publication number Publication date
AU2011343428A1 (en) 2013-07-18
US20120154283A1 (en) 2012-06-21
KR20140005180A (ko) 2014-01-14
AU2011343428B2 (en) 2016-07-14
WO2012083268A2 (en) 2012-06-21
CN102566916B (zh) 2018-04-27
WO2012083268A3 (en) 2013-01-17
CA2820923A1 (en) 2012-06-21
CN102566916A (zh) 2012-07-11
US9436437B2 (en) 2016-09-06
JP2013546109A (ja) 2013-12-26
JP6027541B2 (ja) 2016-11-16
EP2652576A2 (en) 2013-10-23
EP2652576A4 (en) 2014-07-09

Similar Documents

Publication Publication Date Title
JP5876648B2 (ja) 自動フォーム・レイアウト方法、システム、およびコンピュータ・プログラム
Paterno' et al. MARIA: A universal, declarative, multiple abstraction-level language for service-oriented applications in ubiquitous environments
US10551990B2 (en) Contextual browser frame and entry box placement
Oulasvirta User interface design with combinatorial optimization
EP1808757B1 (en) Method for providing selectable alternate menu views
KR101831476B1 (ko) 다이어그램들의 생성, 편집 및 내비게이션 기법
US20100171696A1 (en) Motion actuation system and related motion database
JP2008521113A (ja) 情報検索の方法と装置
EP1987412B1 (en) Graphic user interface device and method of displaying graphic objects
KR20040089518A (ko) 객체 계층구조 내에서 객채의 생성을 위한 시스템 및 방법
US20080320418A1 (en) Graphical User Friendly Interface Keypad System For CAD
US20070050720A1 (en) Technique for selecting and prioritizing choices
US20160231876A1 (en) Graphical interaction in a touch screen user interface
Anam et al. Usability study of smart phone messaging for elderly and low-literate users
Aceituno et al. The design, use, and performance of edge-scrolling techniques
KR101352321B1 (ko) 복수의 입력 방법 간 전환 방법
US20220355473A1 (en) Robotic Process Automation (RPA) Comprising Automatic Document Scrolling
Gebhardt et al. Vista widgets: a framework for designing 3D user interfaces from reusable interaction building blocks
Boudreaux Programming the iphone user experience: Developing and designing cocoa touch applications
KR20150073048A (ko) 플로팅 ui 제공방법 및 그 시스템
US20220365642A1 (en) Metabolic network explorer
Calmez et al. Explorative authoring of Active Web content in a mobile environment
Feuerstack et al. Designing and executing multimodal interfaces for the web based on state chart XML
Hartmann et al. Tailoring the interface to individual users
Lee et al. Design of interaction techniques for clickable touch screens

Legal Events

Date Code Title Description
N231 Notification of change of applicant
A201 Request for examination