KR102250741B1 - 데이터 테이블 내의 데이터로부터의 차트들의 생성 - Google Patents

데이터 테이블 내의 데이터로부터의 차트들의 생성 Download PDF

Info

Publication number
KR102250741B1
KR102250741B1 KR1020197009757A KR20197009757A KR102250741B1 KR 102250741 B1 KR102250741 B1 KR 102250741B1 KR 1020197009757 A KR1020197009757 A KR 1020197009757A KR 20197009757 A KR20197009757 A KR 20197009757A KR 102250741 B1 KR102250741 B1 KR 102250741B1
Authority
KR
South Korea
Prior art keywords
data
chart
charts
columns
data table
Prior art date
Application number
KR1020197009757A
Other languages
English (en)
Other versions
KR20190046957A (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 KR20190046957A publication Critical patent/KR20190046957A/ko
Application granted granted Critical
Publication of KR102250741B1 publication Critical patent/KR102250741B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/166Editing, e.g. inserting or deleting
    • G06F40/177Editing, e.g. inserting or deleting of tables; using ruled lines
    • G06F40/18Editing, e.g. inserting or deleting of tables; using ruled lines of spreadsheets
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2282Tablespace storage structures; Management thereof
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/248Presentation of query results
    • 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]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • G06F3/0482Interaction with lists of selectable items, e.g. menus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/166Editing, e.g. inserting or deleting
    • G06F40/177Editing, e.g. inserting or deleting of tables; using ruled lines
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/205Parsing
    • G06F40/216Parsing using statistical methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • G06T11/20Drawing from basic elements, e.g. lines or circles
    • G06T11/206Drawing of charts or graphs

Abstract

데이터 테이블 내에 존재하는 데이터를 사용하여 차트 제안 리스트를 생성하기 위한 방법은, 데이터 테이블의 셀들의 하나 이상의 데이터 타입들 및 하나 이상의 컬럼들을 식별하기 위해 셀들을 파싱하는 단계, 하나 이상의 컬럼들에 관한 하나 이상의 통계치들을 획득하기 위해 하나 이상의 컬럼들의 통계적 분석을 수행하는 단계, 및 셀들의 하나 이상의 데이터 타입들 및 하나 이상의 컬럼들에 관한 하나 이상의 통계치들에 기반하여 하나 이상의 제안 차트들을 생성하는 단계를 포함한다. 하나 이상의 제안 차트들 각각은 적어도, 데이터 테이블 내의 데이터의 서브세트를 나타낸다. 방법은 또한, 하나 이상의 제안 차트들 중 적어도 하나를 포함하는 차트 제안 리스트를 생성하는 단계를 포함한다.

Description

데이터 테이블 내의 데이터로부터의 차트들의 생성
[001] 본 개시내용의 양상들 및 구현들은 전자 문서(electronic document)들에 관한 것으로, 더 구체적으로는 데이터 테이블 내의 데이터로부터 차트(chart)들을 생성하는 것에 관한 것이다.
[002] 데이터베이스들, 스프레드시트 문서들, 워드 프로세싱 문서들, 슬라이드쇼 문서들 등 내의 데이터 테이블들은 데이터를 포함하는 많은 셀들을 포함할 수 있다. 사용자들은 데이터 테이블에서보다는 더 의미있는 방식으로 데이터를 시각화하기를 원할 수 있다. 예컨대, 일부 스프레드시트 애플리케이션들은, 사용자들이 스프레드시트 내의 데이터 테이블로부터의 데이터의, 사용자에 의해 이루어진 선택들에 기반하여 스프레드시트 내의 데이터의 컴포넌트들(예컨대, 차트들 또는 그래프들)을 생성하게 할 수 있다. 그러한 차트 생성 방법들은, 스프레드시트로부터의 데이터의 서브세트의 선택들을 위한 사용자로부터의 명령들 및 데이터의 선택된 서브세트를 나타내기 위한 선택된 컴포넌트, 이를테면, 차트를 수신하는 단계를 포함한다. 차트를 생성하기 위하여, 사용자는 데이터 내에서의 관계들을 식별하기 위해 그리고 식별된 관계들을 나타내기 위한 최상의 방식을 판단하기 위해 스프레드시트 내의 데이터를 분석해야 한다.
[003] 본 개시내용의 양상들 및 구현들은, 데이터 테이블에 기반하여 하나 이상의 생성된 차트들을 포함하는 차트 제안 리스트(chart suggestion list)를 생성함으로써 데이터 표현 기술을 개선한다. 데이터 테이블 내의 셀들의 데이터 타입들 및 컬럼(column)들을 식별하기 위해, 데이터 테이블의 셀들은 파싱될(parsed) 수 있다. 데이터 테이블 내의 컬럼들에 관한 하나 이상의 통계치들(statistics)을 획득하기 위해 데이터 테이블에 대해 통계적 분석(statistical analysis)이 수행될 수 있다. 통계치들 및 셀들의 데이터 타입들에 적어도 기반하여, 제안 차트(suggested chart)들이 생성될 수 있다. 일부 구현들에서, 데이터의 그룹들 사이의 관계를 식별하기 위해, 다양한 차트 타입들, 추가의 데이터 테이블(additional data table)들, 및/또는 많은 팩터(factor)들에 기반하여 생성된 차트들을 스코어링(score)하기 위해, 그리고/또는 제안 차트 타입(suggested chart type)들을 생성하기 위해, 하나 이상의 규칙들 또는 머신 학습 모델(machine learning model)이 데이터 테이블에 적용될 수 있다.
[004] 제안 차트들은, 사용자가 초기에 인식하지 못했을 수 있는, 데이터 테이블 내에서의 관계들 및/또는 패턴들을 명확하게(illuminate) 할 수 있다. 제안 차트들은 데이터 테이블 내의 데이터의 서브세트를 사용하여 생성될 수 있으며, 이는, 전체 데이터 테이블과 대조적으로 단지 데이터 테이블의 서브세트만을 사용하여 생성된 차트를 송신함으로써, 차트들을 생성하기 위한 프로세싱 속도를 향상시키고 그리고/또는 네트워크 트래픽을 감소시킬 수 있다. 제안 차트들은 사용자 인터페이스의 제1 부분에서 디스플레이되는 차트 제안 리스트에 포함될 수 있는 한편, 사용자 인터페이스의 제2 부분에서는 데이터 테이블이 동시에 디스플레이된다. 따라서, 데이터 테이블과 동시에 차트 제안 리스트의 제안 차트들을 편리하게 디스플레이하고, 그리고 사용자가 차트 제안 리스트로부터 제안 차트를 선택하여 데이터 테이블을 포함하는 전자 문서에 직접 삽입하게 할 수 있는, 개선된 그래픽 사용자 인터페이스가 제공될 수 있다.
[005] 본 개시내용의 양상들 및 구현들은, 아래에 주어진 상세한 설명 및 본 개시내용의 다양한 양상들 및 구현들의 첨부 도면들로부터 더 완전하게 이해될 것이지만, 첨부 도면들은 본 개시내용을 특정 양상들 또는 구현들로 제한하는 것으로 간주되어서는 안 되고, 단지 설명 및 이해를 위한 것이다.
[006] 도 1은 본 개시내용의 구현들을 위한 시스템 아키텍처의 예를 예시한다.
[007] 도 2는 예시적인 구현에 따른, 데이터 테이블 내의 데이터에 기반하여 생성된 차트 제안 리스트의 예를 예시한다.
[008] 도 3은 예시적인 문서에 따른, 데이터 테이블 내의 데이터의 사용자 선택에 기반하여 생성된 차트 제안 리스트의 예를 예시한다.
[009] 도 4는 본 개시내용의 일 구현에 따른, 데이터 테이블 내의 데이터로부터 차트 제안 리스트를 생성하기 위한 방법의 양상들의 흐름도를 묘사한다.
[0010] 도 5는 본 개시내용의 일 구현에 따른, 차트 제안 리스트를 생성하기 위해 하나 이상의 규칙들을 사용하여, 생성된 차트들을 스코어링하기 위한 방법의 양상들의 흐름도를 묘사한다.
[0011] 도 6은 예시적인 구현에 따른, 데이터 테이블 내에 존재하는 데이터로부터 생성된 어그리게이트 테이블(aggregate table)들의 예를 예시한다.
[0012] 도 7은 예시적인 구현에 따른, 데이터 테이블 내에 존재하는 데이터로부터 생성된 패싯화된 차트 세트(faceted chart set)의 예를 예시한다.
[0013] 도 8은 본 개시내용의 일 구현에 따른, 초기 데이터 테이블로부터 생성된 추가의 데이터 테이블 내의 데이터로부터 차트 제안 리스트를 생성하기 위한 방법의 양상들의 흐름도를 묘사한다.
[0014] 도 9는 예시적인 구현에 따른, 협업하는 사용자(collaborating user)로부터 추가의 데이터를 수신하고 그리고 추가의 데이터에 기반하여 차트를 포함하는 제2 차트 제안 리스트를 생성하기 위한 방법의 흐름도를 묘사한다.
[0015] 도 10은 본 개시내용의 하나 이상의 양상들에 따라 동작하는 예시적인 컴퓨팅 시스템의 블록도를 묘사한다.
[0016] 통상적으로, 차트를 생성하는 것은, 데이터 테이블 내의 다양한 데이터가 서로 어떻게 관련되는지를 결정하기 위해 또는 데이터 내의 다양한 패턴들을 결정하기 위해 사용자가 데이터 테이블 내의 데이터를 분석하는 것을 포함할 수 있다. 이어서, 사용자는 어느 컴포넌트(들)(예컨대, 차트, 그래프 등)가 원하는 데이터를 적절하게 나타낼 수 있는지를 선택할 수 있다. 그러나, 분석 및 컴포넌트들의 선택은 사용자 부분에서 상당한 노력을 필요로 할 수 있고, 사용자가 데이터 내의 중요한 미묘한 관계들 또는 패턴들을 놓치는 것을 야기할 수 있다. 또한, 사용자는 컴포넌트를 이용하여 원하는 관계 또는 패턴을 적절히 나타내기 위해 요구되는 것보다 더 큰 데이터 부분을 선택할 수 있다. 그러한 경우, 큰 데이터세트를 갖는 컴포넌트의 생성으로 인해 컴퓨팅 디바이스의 프로세싱 속도가 느려질 수 있고, 그리고/또는 큰 데이터세트에 기반하는 컴포넌트가 네트워크를 통해 사용자 디바이스에 전달될 때 네트워크 대역폭이 부정적으로 영향을 받을 수 있다.
[0017] 본 개시내용의 양상들 및 구현들은, 특히, 데이터 테이블 내의 데이터로부터 생성되는 하나 이상의 차트들을 포함하는 차트 제안 리스트를 생성함으로써, 적어도 이러한 결점들을 처리하는 협업 문서 시스템(collaborative document system)에 관한 것이다. 차트 제안 리스트가 본원에서 언급되지만, 데이터를 시각화하기 위한 임의의 적절한 그래픽 컴포넌트(예컨대, 그래프)가 생성되어 컴포넌트 제안 리스트에서 제공될 수 있음이 이해되어야 한다. 본원에서 개시되는 구현들은 차트 제안 리스트의 차트들을 생성하기 위해 표 포맷(tabular format)(예컨대, 로우(row)들 및 컬럼(column)들)을 포함하는 임의의 적절한 데이터 구조에 적용될 수 있다. 예컨대, 하나의 그러한 데이터 구조는 데이터 저장소(data store)에 포함된 데이터 테이블, 워드 프로세싱 문서, 슬라이드쇼 문서, 스프레드시트 문서 등을 포함할 수 있다. 또한, 협업 문서 시스템이 본 개시내용의 나머지 전체에 걸쳐 개시된 기법들을 구현하는 것으로 설명되지만, 데이터 테이블에 액세스할 수 있는 임의의 적절한 시스템 또는 애플리케이션(예컨대, 사용자 디바이스 상에 설치된 독립형 애플리케이션)이 차트 제안 리스트에 대한 데이터 테이블에 기반하여 하나 이상의 차트들을 생성할 수 있다는 것이 주목되어야 한다.
[0018] 협업 문서 시스템들은, 전자 문서 소유자가, 클라우드-기반 환경에 저장된 전자 문서에 대해 다른 사용자들을 협업자(collaborator)들로서 참여하도록 초대하게 할 수 있다. 전자 문서는 전자 형태(electronic form)로 사용되는 미디어 콘텐츠를 지칭한다. 미디어 콘텐츠는 텍스트, 데이터 테이블들, 비디오들, 이미지들, 그래프들, 슬라이드들, 차트들, 소프트웨어 프로그래밍 코드, 디자인들, 리스트들, 플랜(plan)들, 청사진(blueprint)들, 맵들 등을 포함할 수 있다. 사용자들이 동시에 액세스 및/또는 편집(edit)하도록 허가(permission)가 승인된(granted) 전자 문서는 본원에서 협업 문서(collaborative document)로 지칭될 수 있다. 협업 문서는 클라우드-기반 환경에서 하나 이상의 서버들에 의해 협업자들의 사용자 디바이스들에 제공될 수 있다. 각각의 협업자는 사용자 타입(예컨대, 편집자(editor), 검토자(reviewer), 뷰어(viewer) 등)과 연관될 수 있다. 협업 문서를 편집, 주석 달기(commenting on), 검토(reviewing), 또는 단순히 뷰잉하는 것을 가능하게 하기 위해, 협업자들의 사용자 타입에 기반하여 상이한 뷰들 및 능력들이 협업자들에게 제공될 수 있다. 협업 문서에 액세스하는 것에 대한 허가가 일단 승인되면, 협업자들은 협업 문서에 액세스하여 자신들의 사용자 타입에 대해 허용된 동작들을 수행할 수 있다.
[0019] 협업 문서 시스템을 사용 시에, 사용자는 협업 문서를 생성하거나 열고(open), 협업 문서를 하나 이상의 협업자들과 공유할 수 있다. 협업 문서는 컬럼 헤더들을 갖는 컬럼들 및 로우들이 있는 데이터 테이블을 포함할 수 있다. 데이터 테이블은 또한, 하나 이상의 데이터 타입들(예컨대, 숫자들, 스트링들, 부동 소수점 숫자들, 날짜들 등)을 갖는 데이터를 저장하는 다수의 셀들을 포함할 수 있다. 구현에서, 데이터 테이블의 셀들은, 셀들의 하나 이상의 데이터 타입들 및 하나 이상의 컬럼들을 식별하기 위해 파싱될 수 있다. 데이터 테이블 내의 컬럼들에 관한 하나 이상의 통계치들을 획득하기 위해 데이터 테이블에 대해 통계적 분석이 수행될 수 있다. 예컨대, 통계치들은 컬럼들 내의 데이터 범위 또는 컬럼들 중 각각의 컬럼 내의 고유 값들의 개수를 포함할 수 있다. 일부 구현들에서, 통계치들에 기반하여 추가의 데이터 테이블들이 생성될 수 있다. 추가의 테이블들은 초기 데이터 테이블로부터 변환된(예컨대, 어그리게이팅된(aggregated), 합산된, 평균된 등등의) 데이터 및/또는 데이터의 서브세트를 포함할 수 있다. 하나 이상의 제안 차트들은 초기 데이터 테이블 및/또는 추가의 데이터 테이블들을 사용하여 생성될 수 있다.
[0020] 일부 구현들에서, 데이터 테이블 내의 데이터의 그룹들(예컨대, 데이터의 적어도 2개의 컬럼들) 사이의 관계(예컨대, 2개의 컬럼 헤더들 사이의 상관관계, 2개의 컬럼들의 값들 사이의 상관관계 등)를 식별하기 위해, 규칙들이 데이터 테이블(예컨대, 초기 데이터 테이블, 추가의 데이터 테이블들 등)에 적용될 수 있다. 규칙들은, 특정 차트 타입 또는 생성된 차트가 데이터 테이블로부터의 데이터를 얼마나 잘 제시할 수 있는지를 표시하기 위해 데이터 테이블 또는 생성된 차트들에 대해 가능한 차트 타입들을 스코어링하는 방법을 정의할 수 있다. 규칙들은, 특정 스코어 또는 스코어 범위와 통계치들, 셀들의 데이터 타입들, 식별된 관계, 이용가능한 컴포넌트들(예컨대, 차트들, 그래프들 등)과 관련된 기준들 등과 같은 팩터들 사이의 상관관계를 제공할 수 있다. 또한, 규칙들은, 최소 임계치를 초과하여 스코어링되는 차트 타입들 또는 생성된 차트들은 사용자에게 제시되고 그리고 다른 차트 타입들 및 생성된 차트들은 폐기되는 것을 요구할 수 있다. 다른 구현에서, 셀들의 데이터 타입들 및 통계치들은, 데이터 테이블에 대해 하나 이상의 차트 타입들을 생성하도록 트레이닝된 머신 학습 모델에 대한 입력들로서 적용될 수 있다. 규칙들 및/또는 머신 학습 모델에 의해 제공되는 차트 타입들은 적어도, 데이터 테이블로부터의 데이터의 서브세트를 포함하는 제안 차트들을 생성하는 데 사용될 수 있다. 제안 차트들은 차트 제안 리스트에 포함될 수 있다. 차트 제안 리스트는 협업 시스템에 의해 제공되는 사용자 인터페이스의 제1 부분에서 디스플레이될 수 있는 한편, 사용자 인터페이스의 제2 부분에서는 데이터 테이블이 동시에 디스플레이될 수 있다.
[0021] 생성된 차트들은, 사용자가 독자적으로 고려하지 않았을 수 있는 흥미있는(interesting) 방식으로 데이터의 소정의 서브세트들을 나타낼 수 있다. 예컨대, 셀들을 파싱하고, 셀들의 데이터 타입들, 컬럼들에 관한 통계치들을 결정하고, 그리고/또는 데이터의 그룹들 사이의 관계들을 식별함으로써, 데이터의 세트들 내의 패턴들이 임의의 사용자 개입 없이 자동으로 식별될 수 있다. 또한, 개시된 기법들은, 차트들을 생성하는 데 사용하기 위해 데이터의 더 작은 서브세트들을 선택하고, 특정 데이터를 더 효율적으로 핸들링하는 차트들을 선택하는 등등을 함으로써, 프로세싱 속도를 향상시킬 수 있다. 예컨대, 일부 구현들에서, 데이터 테이블 내의 데이터는 어그리게이션(aggregation), 합산(summation), 또는 평균화(averaging)에 의해 변환될 수 있으며, 이는 차트에 나타낼 로우들의 개수를 감소시킬 수 있다. 또한, 일부 구현들에서, 소정의 기준들을 만족시키는 차트들이 선택될 수 있으며, 이는 차트들을 생성하는 프로세싱 속도를 향상시킬 수 있다. 또한, 데이터 테이블 및 차트 제안 리스트를 동시에 디스플레이하는 향상된 그래픽 사용자 인터페이스가 제공될 수 있다. 사용자는, 상이한 스크린들, 윈도우들 또는 사용자 인터페이스들 사이를 스위칭함이 없이, 협업 문서에 포함될 차트를 차트 제안 리스트로부터 직접 선택할 수 있다.
[0022] 도 1은 본 개시내용의 구현들을 위한 시스템 아키텍처(100)의 예이다. 시스템 아키텍처(100)는 네트워크(130)를 통해 사용자 디바이스들(140A-140Z)에 연결되는 클라우드-기반 환경(110)을 포함한다. 데이터를 저장 및 공유하기 위해 네트워크(130)를 통한 사용자 디바이스들(140A-140Z)과의 그리고 클라우드-기반 환경(110)의 서버들(112A-112Z) 사이의 통신을 가능하게 할 수 있는 클라우드-기반 환경(110)의 맥락에서 시스템 아키텍처(100)가 설명되지만, 본원에서 설명되는 구현들은 또한, 국부적으로 상호연결되는 시스템들에 적용될 수 있다는 것이 이해되어야 한다. 클라우드-기반 환경(110)은, 네트워크(130)를 통해 다수의 사용자 디바이스들(140A-140Z)에 하나 이상의 서비스들(예컨대, 차트 제안 리스트에 포함시키기 위한 차트 생성)을 제공하는 애플리케이션들을 호스팅(host)하는 물리적 머신들의 집합을 지칭한다. 네트워크(130)는 공중 네트워크들(예컨대, 인터넷), 사설 네트워크들(예컨대, 로컬 영역 네트워크(LAN; local area network) 또는 광역 네트워크(WAN; wide area network)), 또는 이들의 조합일 수 있다. 네트워크(130)는 무선 인프라구조를 포함할 수 있으며, 무선 인프라구조는 다양한 데이터 프로세싱 장비, 통신 타워들 등을 사용하여 구현될 수 있는 무선 캐리어 시스템 및/또는 네트워크(130)와 연결되는 WiFi(wireless fidelity) 핫스팟과 같은 하나 이상의 무선 통신 시스템들에 의해 제공될 수 있다. 부가적으로 또는 대안적으로, 네트워크(130)는 유선 인프라구조(예컨대, 이더넷)를 포함할 수 있다.
[0023] 클라우드-기반 환경(110)은 하나 이상의 서버들(112A-112Z), 통계 엔진(statistical engine)(114), 트레이닝 엔진(116), 및/또는 데이터 저장소(118)를 포함할 수 있다. 통계 엔진(114), 트레이닝 엔진(116), 및/또는 데이터 저장소(118)는 서버들(112A-112Z)로부터 분리되고 서버들(112A-112Z)에 통신가능하게 커플링될 수 있거나, 또는 통계 엔진(114), 트레이닝 엔진(116), 및/또는 데이터 저장소(118)는 서버들(112A-112Z) 중 하나 이상의 서버들(112A-112Z)의 부분일 수 있다. 데이터 저장소(118)는, 컬럼 헤더들을 갖는 컬럼들 및 로우들에 의해 배열되는 셀들 내의 데이터를 포함할 수 있는 데이터 테이블(120)을 저장할 수 있다. 데이터 저장소(118)는 또한, 협업 문서를 포함할 수 있으며, 데이터 테이블(120)은 협업 문서의 부분이다. 협업 문서는 사용자들과 공유될 수 있는 스프레드시트 문서, 슬라이드쇼 문서, 워드 프로세싱 문서, 또는 임의의 적절한 전자 문서(예컨대, 텍스트, 데이터 테이블들, 비디오들, 이미지들, 그래프들, 슬라이드들, 차트들, 소프트웨어 프로그래밍 코드, 디자인들, 리스트들, 플랜들, 청사진들, 맵들 등을 포함하는 전자 문서)일 수 있다.
[0024] 데이터 테이블(120)을 포함하는 협업 문서는 작성자(author)에 의해 생성될 수 있고, 작성자는 협업 문서를 다른 사용자들(예컨대, 협업자들)과 공유할 수 있다. 협업 문서를 공유하는 것은 다른 사용자들이 협업 문서에 액세스(뷰잉 및/또는 편집)하는 것에 대한 허가를 승인하는 것을 나타낼 수 있다. 협업 문서를 공유하는 것은, 협업 문서에 대한 링크를 포함하는 메시지(예컨대, 이메일, 텍스트 메시지 등)를 통해 협업 문서(116)의 다른 사용자들에게 알리는 것을 포함할 수 있다. 각각의 사용자가 승인되는 허가들의 레벨은 각각의 특정 사용자의 사용자 타입에 기반할 수 있다. 예컨대, 편집자 사용자 타입을 갖는 사용자는 협업 문서를 열고 협업 문서를 직접적으로 변경하는 것이 가능할 수 있다. 이와 같이, 다수의 협업자들이 협업 문서에 제시된 데이터 테이블(120)에 대해 변경들을 할 수 있다.
[0025] 통계 엔진(114) 및/또는 트레이닝 엔진(116)은 프로세싱 디바이스 또는 디바이스들, 이를테면, 컴퓨터, 마이크로프로세서, 로직 디바이스, 또는 본원에서 설명된 실시예들 중 일부 실시예들을 수행하기 위해 하드웨어, 펌웨어, 및 소프트웨어로 구성되는 다른 디바이스 또는 프로세서를 포함할 수 있다. 통계 엔진(114)은, 데이터 테이블(120)의 셀들을 파싱하고 하나 이상의 컬럼들, 컬럼 헤더들, 및/또는 셀들의 데이터 타입들을 식별하는 데 사용될 수 있다. 통계 엔진(114)은 데이터 테이블(120) 내의 컬럼들에 관한 하나 이상의 통계치들(121)을 결정할 수 있다. 예컨대, 통계치들(121)은 각각의 컬럼 내의 고유 값들의 어그리게이션을 포함할 수 있다. 어그리게이션은 데이터에 관한 정보를 나타내기 위한, 데이터에 걸친 계산을 지칭할 수 있다. 통계치들(121)은 또한, 컬럼들 중 각각의 컬럼 내의 값들의 범위, 데이터의 분포(예컨대, 데이터 값들이 랜덤하게 분포되는지 또는 추세가 있는(증가하는/감소하는) 방식으로 분포되는지), 데이터 테이블(120) 내의 로우들의 개수 등을 포함할 수 있다.
[0026] 트레이닝 엔진(116)은 트레이닝 엔진(116)에 의해 트레이닝 데이터로서 사용되는, 주석이 달린 차트(annotated chart)들(122)을 포함할 수 있다. 머신 학습 모델(123)은, 트레이닝 입력들 및 대응하는 타겟 출력들을 사용하여 트레이닝 엔진(116)에 의해 생성되는 모델 아티팩트(model artifact)를 지칭할 수 있다. 트레이닝 입력들은 주석이 달린 차트들(122)을 포함할 수 있고, 대응하는 타겟 출력들은 개개의 트레이닝 입력들에 대한 제안 차트 타입들, 추가의 생성된 테이블들, 또는 트레이닝 입력들에 기반하여 생성된 제안 차트들을 포함할 수 있다. 주석이 달린 차트들(122)은 사용되는 트레이닝 데이터 테이블들 및 트레이닝 데이터 테이블들에 기반하여 생성되는 결과적인 차트들을 포함할 수 있다. 또한, 주석이 달린 차트들(122)은 개발자 또는 사용자에 의해 수동으로 주석이 달릴 수 있다. 일부 구현들에서, 이러한 주석이 달린 차트들(122)은 트레이닝 데이터 테이블들 내의 다양한 컬럼들 및 데이터 세트들을 라벨링하기 위한 주석(annotation)들을 포함할 수 있다. 일부 구현들에서, 트레이닝된 머신 학습 모델(123)의 타겟 출력들은 또한, 제안 차트 타입들, 추가의 생성된 테이블들, 및/또는 생성된 제안 차트들이, 특히, 흥미있는 관계들 및/또는 통계치들을 얼마나 잘 반영하는지를 표시하기 위해, 제안 차트 타입들, 추가의 생성된 테이블들, 및/또는 생성된 제안 차트들에 대한 스코어들을 포함할 수 있다.
[0027] 주석들은 트레이닝 데이터 테이블들의 주석이 달린 컬럼들 사이의 소정의 관계들을 포함할 수 있다. 예시를 위해, 판매 데이터를 포함하는 트레이닝 데이터 테이블에서, 주석은 시각화를 위해 지정된 관계(예컨대, 컬럼 헤더 "판매된 수량(quantity sold)"과 컬럼 헤더 "판매된 지역(region sold)" 사이)를 표시할 수 있다. 다른 예에서, 주석은 2개 이상의 컬럼들의 값들 사이에 상관관계가 있는 의존 관계(dependency relationship)를 표시할 수 있다(예컨대, 날짜 컬럼은 판매 컬럼의 값들과 함께 증가됨). 일부 구현들에서, 상이한 컬럼들 사이의 관계들은 컬럼 헤더들 및 그룹 헤더들에 기반하여 동적으로 결정될 수 있다. 예컨대, 트레이닝 데이터 테이블이 개별적인 헤더들, 이를테면, "판매된 수량", "판매된 지역" 등을 포함하는 경우, 각각의 해(year)(예컨대, 2016, 2017 등)에 대한 그룹 헤더가 또한 있을 수 있다. 개별적인 헤더들은 그룹들에 걸쳐 반복/공유될 수 있으므로, 여러 해(various years) 동안의 판매 정보 사이의 관계가 결정될 수 있다. 일부 구현들에서, 주석들은 컬럼들과 연관된 통계치들(예컨대, 어그리게이션들, 합산들, 평균들 등)에 대한 것일 수 있고, 특정 통계치들을 갖는 컬럼으로 트레이닝 데이터 테이블을 나타내기 위해 사용하기 위한 바람직한 차트 타입(예컨대, 바(bar), 라인(line), 파이(pie), 영역(area), 산포(scatter), 컬럼 등)을 표시할 수 있다. 일부 구현들에서, 주석들은 컬럼들 내의 소정의 데이터 타입들을 갖는 값들 사이의 상관관계들에 대한 것일 수 있다. 예컨대, 주석은, 제1 컬럼의 날짜 데이터 타입을 갖는 데이터 값들이 증가하고 그리고 제2 컬럼의 숫자 데이터 타입을 갖는 데이터 값들이 또한 증가하는(예컨대, 시간의 경과에 따라 판매들이 누적됨에 따라) 컬럼들의 조합에 대한 바람직한 차트 타입, 또는 하나의 컬럼의 데이터 값들이 증가하고(예컨대, 날짜들) 그리고 다른 컬럼의 데이터 값들이 감소하는(예컨대, 재고량들) 컬럼들의 조합에 대한 다른 바람직한 차트 타입을 표시할 수 있다. 일부 구현들에서, 주석은 차트가 패싯화될(faceted) 수 있는지 여부를 표시할 수 있다. 일단 트레이닝되면, 머신 학습 모델(116)은, 새로운 데이터 테이블들에 대한 하나 이상의 제안 차트 타입들을 획득하기 위해 새로운 데이터 테이블(120)(예컨대, 통계치들(121) 및 셀들의 데이터 타입들을 포함함)에 적용될 수 있다. 일부 구현들에서, 머신 학습 모델(116)은 차트 제안 리스트에 포함시키기 위해 제안 차트들을 출력할 수 있다.
[0028] 서버들(112A-112Z)은 물리적 머신들(예컨대, 서버 머신들, 데스크톱 컴퓨터들 등)일 수 있으며, 그 물리적 머신들 각각은 메모리 디바이스들 및 입력/출력(I/O) 디바이스들에 통신가능하게 커플링되는 하나 이상의 프로세싱 디바이스들을 포함한다. 서버들(112A-112Z) 각각은 차트 생성 모듈(124A-124Z)을 호스팅(host)할 수 있다. 차트 생성 모듈들(124A-124Z)은 서버들(112A-112Z) 각각 상에서 하나 이상의 프로세싱 디바이스들에 의해 실행가능한 컴퓨터 명령들로서 구현될 수 있다. 일부 구현들에서, 통계 엔진(114)은 컴퓨터 명령들로서 구현되고 그리고 차트 생성 모듈(124A-124Z)의 부분으로서 포함될 수 있다. 차트 생성 모듈들(124A-124Z)은 셀들의 하나 이상의 데이터 타입들 및 하나 이상의 컬럼들에 관한 통계치들(121)에 부분적으로 기반하여 데이터 테이블(120) 내의 데이터에 대한 다양한 제안 차트들을 생성할 수 있다. 생성된 제안 차트들 각각은 적어도, 데이터 테이블(120) 내의 데이터의 서브세트를 나타낼 수 있다.
[0029] 일부 구현들에서, 차트 생성 모듈(124A-124Z)은 제안 차트들을 생성하기 위해 하나 이상의 규칙들(125A-125Z)을 사용할 수 있다. 규칙들(125A-125Z)은 개발자에 의해 미리 정의될 수 있고, 규칙들은 데이터 테이블(120) 내의 데이터의 그룹들 사이의 관계들을 식별하기 위해 데이터 테이블(120)에 적용될 수 있다. 일부 구현들에서, 관계는 소정의 모델(예컨대, 선형(linear), 로그(logarithmic) 등)에 꼭맞는(fitting), 데이터 테이블(120) 내의 데이터를 나타낼 수 있다. 예컨대, 관계는 데이터 테이블(120)의 컬럼들 내의 값들과 소정의 데이터 타입들을 갖는 데이터 사이의 상관관계를 포함할 수 있다. 일부 구현들에서, 관계는 데이터 테이블(120) 내의 적어도 2개의 컬럼 헤더들(예컨대, "판매된 수량" 및 "판매된 지역") 사이의 상관관계 등을 지칭할 수 있다. 규칙들(125A-125Z)은 또한, 소정의 차트들이 패싯화될 수 있는지 여부를 특정할 수 있다.
[0030] 일부 구현들에서, 규칙들(125A-125Z)은, 적어도 2개의 컬럼들 사이의 식별된 관계, 컬럼들에 관한 통계치들(121), 셀들의 데이터 타입들, 및/또는 임의의 다른 적절한 팩터에 기반하여, 제안 차트들의 세트를 생성하기 위해, 다양한 순열(permutation)들로 데이터 테이블(120)의 컬럼들을 조합하는 방법을 정의할 수 있다. 규칙들(125A-125Z)은 위에서 논의된 바와 같이 생성된 제안 차트들을 스코어링하는 데 사용될 수 있다. 규칙들(125A-125Z)은, 최소 임계치 초과로 스코어링된 제안 차트들은 사용자에게 제공되는 반면 최소 임계치 미만으로 스코어링된 차트들은 폐기되도록 요구할 수 있다.
[0031] 일부 구현들에서, 규칙들(125A-125Z)은, 적어도 2개의 컬럼들 사이의 식별된 관계, 컬럼들에 관한 통계치들(121), 셀들의 데이터 타입들, 및/또는 임의의 다른 적절한 팩터에 기반하여, 데이터 테이블(120)을 위해 사용될 수 있는 가능한 차트 타입들을 스코어링하고, 그리고 최소 임계치 초과로 스코어링된 하나 이상의 차트 타입들을 생성하는 반면 최소 임계치 미만으로 스코어링된 차트 타입들을 폐기하는 방법을 정의할 수 있다. 예컨대, 데이터 테이블(120)의 제1 컬럼이 날짜 데이터 타입을 갖고 날짜들이 순서대로 나타나는 경우, 그 팩터는 라인 차트(line chart)에 대한 스코어를 증가시키는 것을 초래할 수 있다. 데이터 테이블(120) 내의 제2 컬럼이 숫자 데이터 타입을 갖고 숫자들이 비-랜덤 방식으로(예컨대, 숫자들은 증가되거나 또는 감소됨) 분포되는 경우, 그 팩터는 또한, 라인 차트에 대한 스코어를 증가시키는 것을 초래할 수 있다. 그러한 2개의 팩터들이 조합되면 라인 차트에 대해 높은 스코어를 초래할 수 있다. 다른 예에서, 컬럼들의 데이터 범위가 네거티브 숫자가 있음을 표시하는 경우, 그 팩터는 파이 차트(pie chart)에 대한 스코어를 감소시키는 것을 초래할 수 있다. 다른 예에서, 컬럼들 내에 많은 개수의 고유 값들이 있는 경우, 그 팩터는 파이 차트에 대한 스코어를 감소시키는 것을 초래할 수 있는데, 왜냐하면, 파이에 너무 많은 슬라이스(slice)들이 있을 것이고 파이 차트가 읽기 어려울 수 있기 때문이다. 다른 예에서, 데이터 테이블(120) 내에 많은 개수의 로우들이 있는 경우, 그 팩터는 바 차트(bar chart)에 대한 스코어를 감소시키는 것을 초래할 수 있는데, 왜냐하면, 코히어런트하게(coherently) 읽기에는 바들이 너무 얇고 서로 너무 가까울 수 있기 때문이다. 또 다른 예에서, 2개의 컬럼들 모두가 숫자 데이터 타입들을 갖고, 일반적으로 하나의 컬럼 내의 값들이 더 높을 때, 다른 컬럼 내의 값들이 또한 더 높은 경우, 컬럼들 내의 값들 사이에 상관관계가 있을 수 있고 산포도(scatter plot)에 대한 스코어가 높을 수 있다. 일부 구현들에서, 규칙들(125A-125Z)은 초기 데이터 테이블에 기반하여 생성되는 가능한 추가의 테이블들을 스코어링하는 방법을 정의할 수 있다. 예컨대, 어그리게이트 데이터 테이블들은 초기 데이터 테이블 내의 다양한 컬럼들을 사용하여 생성될 수 있고, 규칙들(125A-125Z)은 가장 적은 개수의 고유 값들을 갖는 컬럼을 사용하여 생성되는 어그리게이트 데이터 테이블에 가장 높은 스코어가 할당되도록 정의할 수 있다.
[0032] 차트 생성 모듈(124A-124Z)은, 차트 타입들을 결정하고 차트 타입들에 따라 제안 차트들을 생성하기 위해, 머신 학습 모델(123) 및/또는 규칙들(125A-125Z)을 사용할 수 있다. 차트 생성 모듈(124A-124Z)은 또한, 제안 차트들을 포함하는 차트 제안 리스트를 생성할 수 있다. 일부 실시예들에서, 제안 차트들은 스코어 및/또는 다양성 기준(diversity criterion)에 따라 순서화될 수 있다. 다양성 기준은, 다양한(diverse) 데이터의 제시를 보장하기 위해, 유사한 데이터 관계를 묘사(portraying)하는 유사한 타입들의 차트들이 차트 제안 리스트에서 서로 나란히 배열되지 않음을 보장하는 데 사용될 수 있다.
[0033] 일부 구현들에서, 데이터 테이블(120)로부터 추가의 데이터 테이블들이 생성될 수 있다. 추가의 테이블들은 통계치들(121)에 기반하여 초기 데이터 테이블로부터 생성될 수 있다. 예컨대, 데이터 테이블(120) 내의 컬럼 내의 고유 값들의 합을 포함하는 어그리게이트 테이블이 생성될 수 있다. 어그리게이트 테이블을 생성하는 데 사용되는 다른 어그리게이션 공식(aggregation formula)들이 있을 수 있다. 예컨대, 어그리게이션 공식은 데이터 테이블(120) 내의 정보에 대한 평균 어그리게이트(average aggregate)를 컴퓨팅할 수 있다. 또한, 선택된 컬럼과 연관된 변환된 데이터를 생성하기 위해, 변환, 이를테면, 합산, 어그리게이션, 또는 평균이 다른 컬럼들 내의 데이터 값들에 적용될 수 있다. 따라서, 추가의 테이블들은 초기 데이터 테이블로부터의 데이터의 서브세트뿐만 아니라 변환된 데이터의 감소된 세트를 포함할 수 있다. 어그리게이트 테이블은 데이터의 패싯(facet)들을 생성하는 데 사용될 수 있다. 어그리게이트 테이블들 및 패싯들 모두는 도 6 및 도 7에서 더 상세하게 논의된다. 추가의 테이블들을 사용하여 차트들을 생성하는 것은, 더 작은 데이터 세트들을 사용하여 차트들을 생성함으로써 흥미있는 차트들을 사용자에게 제공하고 프로세싱 효율성을 향상시키는 것을 초래할 수 있다.
[0034] 서버들(112A-112Z) 중 하나 이상은 협업 문서 환경(142A-142Z)을 사용자 디바이스들(140A-140Z)에 제공할 수 있다. 협업 문서 환경(142A-142Z)을 제공하기 위해 선택되는 서버(112A-112Z)는 소정의 로드-밸런싱 기법들, 서비스 레벨 합의들, 성능 표시자들 등에 기반할 수 있다. 협업 문서 환경(142A-142Z)은, 데이터 테이블(120)을 제1 부분에 디스플레이하는 동시에 차트 제안 리스트를 제2 부분에 디스플레이하는 사용자 인터페이스(144A-144Z)를 제공할 수 있다. 협업 문서 환경(142A-142Z)은, 상이한 사용자 디바이스들(140A-140Z)을 사용하는 사용자들이, 데이터 테이블(120) 및/또는 차트 제안 리스트를 포함하는 협업 문서에 동시에 액세스하여, 개개의 사용자 인터페이스(144A-144Z)에서 데이터 테이블(120) 및/또는 차트 제안 리스트를 검토하고, 편집하고, 뷰잉하고, 그리고/또는 데이터 테이블(120) 및/또는 차트 제안 리스트에 대한 변경들을 제안하는 것을 가능하게 할 수 있다. 구현에서, 사용자 인터페이스들(144A-144Z)은, 웹 브라우저에 의해 렌더링되고 그리고 웹 브라우저 윈도우에서 사용자 디바이스(140A-140Z) 상에 디스플레이되는 웹 페이지들일 수 있다. 다른 구현에서, 사용자 인터페이스들(144A-144Z)은 사용자 디바이스(140A-140Z)에 다운로딩된 독립형 애플리케이션에 포함될 수 있다.
[0035] 사용자 디바이스들(140A-140Z)은 메모리 디바이스들 및 I/O 디바이스들에 통신가능하게 커플링된 하나 이상의 프로세싱 디바이스들을 포함할 수 있다. 사용자 디바이스들(140A-140Z)은 데스크톱 컴퓨터들, 랩톱 컴퓨터들, 태블릿 컴퓨터들, 모바일 폰들(예컨대, 스마트폰들), 또는 임의의 적절한 컴퓨팅 디바이스일 수 있다. 사용자 디바이스(140A-140Z)는 컴포넌트들, 이를테면, 입력 디바이스 및 출력 디바이스를 포함할 수 있다. 사용자가 사용자 인터페이스(144A-144Z)를 통해 사용자이름 및 패스워드를 입력함으로써(또는 다른 식별 정보를 제공함으로써) 서버(112A-112Z)에 대해 인증받을(authenticate) 수 있어서, 동일한 사용자 디바이스(140A-140Z)가 상이한 시간들에서 상이한 사용자들에 의해 사용될 수 있다. 일부 구현들에서, 통계 엔진(114), 트레이닝 엔진(116), 데이터 저장소(118), 및/또는 차트 생성 모듈(124A-124Z)은 사용자 디바이스(140A-140Z)의 부분일 수 있다.
[0036] 도 2는 예시적인 구현에 따른, 데이터 테이블(120) 내의 데이터에 기반하여 생성된 차트 제안 리스트(200)의 예를 예시한다. 차트 제안 리스트(200)는 협업 문서 환경(142A)의 사용자 인터페이스(144A)의 제1 부분에서 제시되며, 협업 문서 환경(142A)은 또한, 사용자 인터페이스(144A)의 제2 부분에서 데이터 테이블(120)을 동시에 디스플레이한다. 묘사된 예에서, 데이터 테이블(120)은 협업 스프레드시트 문서에 포함된다. 협업 스프레드시트 문서 내의 콘텐츠는, 데이터 테이블들, 차트, 그래프들, 시각적 컴포넌트들, 텍스트, 이미지들, 비디오들, 오디오 클립들, 프로그래밍 소스 코드, 또는 임의의 다른 적절한 타입들의 콘텐츠 중 임의의 하나 이상을 포함할 수 있다. 일부 구현들에서, 협업 스프레드시트 문서는 사용자에 의해 데이터 테이블(120) 내에 삽입된 적어도 2개의 컬럼들의 데이터를 가질 수 있다.
[0037] 데이터 테이블(120)의 셀들의 데이터 타입들과 스프레드시트 내의 다양한 컬럼들 사이의 통계치들을 결정하기 위해, 협업 스프레드시트 문서의 데이터 테이블(120) 내의 데이터는 파싱될 수 있다. 일부 구현들에서, 데이터 테이블(120), 통계치들, 및 데이터 타입들은, 제안 차트 타입들을 생성하도록 트레이닝되는 머신 학습 모델(123)에 입력될 수 있다. 일부 구현들에서, 규칙들은, 최소 임계치를 초과하는 스코어를 받은 제안 차트 타입들을 생성하기 위해, 적어도, 셀들의 데이터 타입들 및 통계치들에 기반하여 데이터 테이블에 적용될 수 있다. 규칙들은 또한, 데이터 테이블(120) 내의 적어도 2개의 컬럼들 사이의 관계들을 식별하는 데 사용될 수 있고, 제안 차트 타입들은 식별된 관계들, 통계치들, 데이터 타입들, 다양한 차트들과 관련된 필수적 기준(prerequisite criterion)들 등에 기반하여 선택될 수 있다. 차트 생성 모듈(124A)은 제안 차트 타입들을 사용하여 데이터 테이블(120)에 대한 제안 차트들을 생성할 수 있고, 제안 차트들을 포함하는 차트 제안 리스트(200)를 생성할 수 있다.
[0038] 도 3을 참조하여 더 상세하게 설명되는 바와 같이, 일부 구현들에서, 사용자는 데이터 테이블(120) 내의 데이터의 서브세트의 선택을 제공할 수 있다. 차트 생성 모듈(124A)은 선택된 부분 내의 데이터에 대해 제안 차트들을 생성하는 것을 첫 번째로 우선시킬(prioritize) 수 있다.
[0039] 도 2에 묘사된 예에서, 사용자 또는 협업자는 도시된 바와 같이 컬럼들(F, G, H, 및 I)에서 데이터 테이블(120) 내에 데이터를 삽입할 수 있다. 데이터의 삽입 시에, 컬럼들에 관한 통계치들(121), 적어도 2개의 컬럼들 사이의 하나 이상의 식별된 관계들, 셀들의 데이터 타입들, 차트들과 관련된 필수적 기준들 등에 기반하여 데이터 테이블(120)에 대해 하나 이상의 제안 차트들이 생성된 후에, 인사이트 테이블(insight table)(204)이 생성될 수 있다. 예컨대, 인사이트 테이블(204)은 규칙들(125A) 또는 머신 학습 모델(123)을 사용하여 결정된 관계의 묘사(depiction)인 차트(206)를 포함한다. 묘사된 바와 같이, 제품 "Rx983 Small"의 판매 데이터는 데이터 테이블(120)의 부분이다.
[0040] 통계 엔진(114)은 데이터 테이블(120)에 대해 통계적 분석을 수행하여 컬럼들, 총 유닛들(Gross Units)(F), 반환 유닛들(Return Units)(G), 유닛 당 가격(Price per Unit)(H), 및 주(State)(I) 당 고유 값들의 개수를 식별할 수 있다. 특히, 주(State) 컬럼은 데이터 테이블(120) 내의 다른 컬럼들과 비교하여 가장 적은 개수의 고유 값들(예컨대, 3개)을 포함한다. 부가적으로, 차트 생성 모듈(124A)은, 데이터 테이블(120) 내의 적어도 2개의 컬럼들 사이의 관계를 식별하기 위해 규칙들(125A) 또는 머신 학습 모델(123)을 적용할 수 있다. 묘사된 예에서, "총 유닛들", "반환 유닛들", 및/또는 "유닛 당 가격" 컬럼들의 조합일 수 있는 판매 정보와 "주(State)" 컬럼일 수 있는 판매 지역 사이의 관계가 식별될 수 있다. 규칙들(125A) 또는 머신 학습 모델(123)은 통계치들 및/또는 식별된 관계에 기반하여 바 차트의 차트 타입을 생성하는 데 사용될 수 있다. 이와 같이, 차트 생성 모듈(124A)은 "주(State)" 컬럼에 의해 제품에 대한 판매 정보를 어그리게이팅함으로써 통계치들 및/또는 식별된 관계에 기반하여 제안 바 차트(suggested bar chart)(206)를 생성할 수 있다. 제안 바 차트(206)는 사용자 인터페이스(144A)에서 데이터 테이블(120)과 동시에 인사이트 테이블(204)에서 디스플레이될 수 있다.
[0041] 일부 구현들에서, 사용자가 (예컨대, 입력 장치를 한 번 클릭함으로써 또는 커서로 위를 맴돎(hovering over)으로써) 제안 바 차트(206)를 부분적으로 선택하면, 선택된 차트의 생성에 관여되는, 데이터 테이블(120) 내의 셀들에 대한 시각 표시자가 디스플레이될 수 있다. 예컨대, 셀들은 강조될(highlighted) 수 있다. 그러한 시각적 표시자는, 어떤 데이터가 제안 바 차트(206)에서 시각화되었는지를 사용자가 더 완전하게 이해하게 할 수 있는 향상된 사용자 인터페이스를 제공할 수 있다. 또한, 사용자는, (예컨대, 입력 장치를 더블 클릭하거나 또는 홀딩함으로써) 완전히 선택함으로써 협업 스프레드시트 문서에 제안 바 차트(206)를 직접적으로 추가할 수 있다.
[0042] 데이터 테이블(120)로부터 추출되고 제안 바 차트(206)에서 묘사되는 정보를 요약하는 인사이트 테이블(204)에서 생성되는 강조 섹션(highlights section)(208)이 또한 있을 수 있다. 예컨대, 강조 섹션(208)은, 제품이 판매된 것으로 전해진 3개의 주(state)들 중 상위 2개의 주들에서 판매가 집중되었음을 보여준다.
[0043] 도 3은 예시적인 문서에 따른, 데이터 테이블(120) 내의 데이터의 사용자 선택에 기반하여 생성된 차트 제안 리스트(200)의 예를 예시한다. 데이터 테이블(120)은 협업 스프레드시트 문서의 사용자 인터페이스(144A)에서 디스플레이될 수 있다. 특히, 사용자는 데이터 테이블(120) 내의 셀들의 강조된 부분에 의해 표시되는 바와 같이, 데이터 테이블(120)로부터 데이터의 서브세트를 선택할 수 있다. 차트 생성 모듈(124A)은 데이터의 선택된 서브세트에 기반하여 하나 이상의 제안 차트들을 생성할 수 있다. 예컨대, 데이터의 선택된 서브세트에 존재하는 컬럼들의 데이터 타입들이 결정될 수 있고, 데이터의 선택된 서브세트에 존재하는 컬럼들에 관한 통계치들(121)이 결정될 수 있고, 데이터의 선택된 서브세트에 존재하는 데이터의 적어도 2개의 컬럼들에 대한 관계가 식별될 수 있는 등등이다. 규칙들(125A) 또는 머신 학습 모델(123)은 데이터의 선택된 서브세트에 대한 하나 이상의 제안 차트 타입들을 생성하는 데 사용될 수 있다. 차트 생성 모듈(124A)은 제안 차트 타입들에 기반하여 제안 차트들을 생성할 수 있다. 전체 데이터 테이블(120)을 나타내는 제안 차트들을 이전에 디스플레이한 인사이트 테이블(204)은, 사용자에 의해 선택된, 데이터의 서브세트를 나타내는 적어도 하나의 제안 차트를 보여주기 위해 동적으로 업데이트될 수 있다.
[0044] 예컨대, 묘사된 바와 같이, 제품 "Rx983 Small"의 판매 정보가 데이터 테이블(120) 내에 묘사된다. 판매 정보의 분포는 또한, 각각의 판매의 도시를 설명한다. 사용자는 강조(highlighting)(300)에 의해 표현되는, 데이터 테이블(120) 내의 데이터의 서브세트를 선택하였다. 선택된 서브세트의 셀들에 대한 데이터 타입들이 결정될 수 있고, 데이터의 선택된 서브세트 내의 컬럼들에 관한 통계치들이 결정될 수 있고, 선택된 서브세트 내의 적어도 2개의 컬럼들의 관계들이 식별될 수 있고, 데이터의 선택된 서브세트를 고려하여 다양한 차트들에 대한 필수적 기준들이 결정될 수 있는 등등이다. 예컨대, 생산물(produce)의 판매에 의해 발생하는 이익(profit)들과 도시 사이의 관계가 식별될 수 있다. 규칙(125A) 또는 머신 학습 모델(123)은 데이터의 선택된 서브세트에 대한 이러한 정보에 기반하여 하나 이상의 제안 차트 타입들을 생성하는 데 사용될 수 있다. 차트 생성 모듈(124A)은 데이터의 선택된 서브세트에 대한 하나 이상의 제안 차트 타입들에 기반하여 하나 이상의 제안 차트들을 생성할 수 있다. 예컨대, 묘사된 바와 같이, 데이터의 선택된 서브세트를 나타내기 위해 제안 바 차트(302)가 생성된다. "도시(City)" 컬럼 내의 고유 값들의 개수가 바 차트 임계치를 초과하지 않기 때문에, 규칙(125A) 또는 머신 학습 모델(123)을 사용하여 바 차트가 생성될 수 있으며, "도시" 컬럼과 "판매" 사이의 관계는 시각화를 위해 지정된 관계로서 식별된다. 다시 말해, 바 차트가 다른 타입들의 차트들보다 데이터의 선택된 서브세트를 사용자에게 더 명확하게 나타내는 것으로 결정될 수 있기 때문에, 바 차트가 생성될 수 있다.
[0045] 또한, 차트 생성 모듈(124A)에 의해 지리적 차트(geographical chart)(304)가 또한 생성되어 차트 제안 리스트(200)에 포함될 수 있다. 지리적 차트(304)는, 데이터의 선택된 서브세트가 컬럼 헤더 "도시"를 갖는 컬럼을 포함하기 때문에, 선택될 수 있다. 규칙(124A) 또는 머신 학습 모델(123)은, 지리적 표시자, 이를테면, 도시를 포함하는 데이터를 나타내는 데 있어서 지리적 차트가 유용할 수 있음을 결정하는 데 사용될 수 있다. 그러나, 지리적 차트(304)는 바 차트(302)만큼 높은 스코어를 받지 못할 수 있는데, 왜냐하면, 지리적 차트(304)는 도시에 의한 이익을 바 차트만큼 명확하게 디스플레이하지 않기 때문이다. 따라서, 지리적 차트(304)는 차트 제안 리스트(200)에서 더 아래에 디스플레이될 수 있다. 차트 생성 모듈(124A)은, 제안 바 차트(302) 및 지리적 차트(304) 둘 모두를 포함하도록, 인사이트 테이블(204)에 디스플레이되는 차트 제안 리스트(200)를 업데이트할 수 있다.
[0046] 일부 구현들에서, 데이터 테이블(120)의 프로세싱은, 관계 식별 프로세스 또는 통계치 결정 프로세스에 어떤 값도 추가하지 않을 수 있는 데이터를 제거하는 것을 포함한다. 예컨대, 데이터베이스 내의 ID 필드는 데이터 테이블(120) 내의 각각의 레코드(record)에 대한 고유 식별자들의 리스트이고, 어떤 추론도 ID 필드로부터 도출되지 않을 수 있다. 따라서, ID 필드는, 컬럼들에 관한 의미있는 통계치들을 결정하고 그리고/또는 데이터 테이블(120) 내의 적어도 2개의 컬럼들 사이의 관계를 결정하는 데 불필요할 수 있다. 일부 구현들에서, 데이터 테이블(120)의 프로세싱은, 데이터 테이블(120) 내의 다양한 컬럼들 사이의 관계 또는 관계들을 확립하는 데 사용되는 컬럼들 내의 데이터의 타입을 결정하기 위해, 데이터 테이블(120) 내의 각각의 컬럼에 대한 컬럼 헤더들 및 데이터 타입들을 분석하는 것을 포함할 수 있다.
[0047] 사용자는 도 2 및 도 3에 묘사된 인사이트 테이블(204)과 상호작용할 수 있다. 일부 구현들에서, 상호작용은, 데이터 테이블(120)을 갖는 협업 스프레드시트 문서에서 디스플레이될 차트 제안 리스트(200) 내의 제안 차트의 선택일 수 있다. 선택되는 경우, 제안 차트는 협업 스프레드시트 문서에 삽입될 수 있다. 일부 구현들에서, 일단 차트가 선택되면, 사용자는 개인적 선호도(personal preference)와 매칭되도록, 선택된 차트의 타입, 데이터 범위, 또는 상이한 필드들의 이름들을 수정하도록 진행할 수 있다. 일부 구현들에서, 사용자는 인사이트 테이블(204)을 닫고(close), 그리고 인사이트 테이블(204)에 의해 제공된 인사이트들 또는 차트들 중 어느 것도 사용하지 않고, 그리고 규칙(125A) 또는 머신 학습 모델(123)에 의해 탐색되지 않는 관계에 대한 새로운 차트를 생성할 수 있다. 제안 바 차트(206)와의 임의의 상호작용이 레코딩되어, 머신 학습 모델(123)의 업데이트를 위해 트레이닝 엔진(116)에 제공될 수 있다. 예컨대, 사용자가 제안 바 차트(206)를 선택하고, 임의의 축 이름들, 폰트들, 컬러들 등을 수정하면, 이러한 정보는 트레이닝 엔진(116)에 제공될 수 있으므로, 머신 학습 모델(123)은 사용자에 의해 선택될 가능성이 더 높고 그리고 개인 맞춤형(personally tailored)인, 유사한 데이터에 대한 차트 타입들을 생성하도록 업데이트될 수 있다. 도 2 및 도 3에 묘사된 사용자 인터페이스들(144A)은 예시적 목적들을 위한 것임이 이해되어야 한다. 사용자 인터페이스들(144A)에서의 제안 차트들 및/또는 데이터 테이블들(120)은 더 적은 데이터, 더 많은 데이터, 또는 많은 상이한 포맷들의 데이터를 가질 수 있다.
[0048] 도 4는 본 개시내용의 일 구현에 따른, 데이터 테이블(120) 내의 데이터로부터 차트 제안 리스트(200)를 생성하기 위한 방법(400)의 양상들의 흐름도를 묘사한다. 방법(400), 및 방법(400)의 개별적인 기능들, 루틴들, 서브루틴들, 또는 동작들 각각은 방법을 실행하는 컴퓨터 디바이스의 하나 이상의 프로세싱 디바이스들에 의해 수행될 수 있다. 소정의 구현들에서, 방법(400)은 단일 프로세싱 스레드에 의해 수행될 수 있다. 대안적으로, 방법(400)은 2개 이상의 프로세싱 스레드들에 의해 수행될 수 있으며, 각각의 스레드는 방법의 하나 이상의 개별적인 기능들, 루틴들, 서브루틴들, 또는 동작들을 실행한다. 예시된 예에서, 방법(400)을 구현하는 프로세싱 스레드들은 (예컨대, 세마포어(semaphore)들, 임계 섹션들, 및/또는 다른 스레드 동기화 메커니즘들을 사용하여) 동기화될 수 있다. 대안적으로, 방법(400)을 구현하는 프로세스들은 서로에 대해 비동기적으로 실행될 수 있다.
[0049] 설명의 간략성을 위해, 본 개시내용의 방법들은 일련의 동작들로서 묘사되고 설명된다. 그러나, 본 개시내용에 따른 동작들은 다양한 순서들로 그리고/또는 동시에, 그리고 본원에서 제시 및 설명되지 않은 다른 동작들과 함께 발생할 수 있다. 게다가, 개시된 청구대상에 따른 방법들을 구현하는 데 모든 예시된 동작들이 요구되지는 않을 수 있다. 게다가, 당업자들은, 방법들이 대안적으로, 상태 다이어그램 또는 이벤트들을 통해 일련의 상호관련된 상태들로서 표현될 수 있다는 것을 이해하고 인지할 것이다. 부가적으로, 본 명세서에서 개시된 방법들은 그러한 방법들을 컴퓨팅 디바이스들에 전송 및 전달하는 것을 가능하게 하기 위해 제조 물품 상에 저장될 수 있다는 것이 인지되어야 한다. 본원에서 사용되는 "제조 물품"이라는 용어는, 임의의 컴퓨터-판독가능 디바이스 또는 저장 매체들로부터 액세스가능한 컴퓨터 프로그램을 포함하도록 의도된다. 일 구현에서, 방법(400)은 클라우드-기반 환경(110)의 통계 엔진(114) 및/또는 서버들(112A-112Z)의 하나 이상의 프로세싱 디바이스들에 의해 실행되는 하나 이상의 차트 생성 모듈들(124A-124Z)에 의해 수행될 수 있다. 일부 구현들에서, 방법(400)은, 통계 엔진(114) 및/또는 차트 생성 모듈들(124A-124Z)을 실행시키는 사용자 디바이스들(140A-140Z)의 하나 이상의 프로세싱 디바이스들에 의해 수행될 수 있다.
[0050] 방법(400)은 블록(402)에서 시작될 수 있다. 블록(402)에서, 프로세싱 디바이스는 데이터 테이블(120)의 셀들을 파싱하여, 셀들의 하나 이상의 데이터 타입들 및 하나 이상의 컬럼들을 식별할 수 있다. 데이터 테이블(120)은 데이터 저장소(118)에 로케이팅될 수 있거나 또는 임의의 적절한 전자 문서(예컨대, 스프레드시트 문서, 워드 프로세싱 문서, 슬라이드쇼 문서 등)에 포함될 수 있다. 전자 문서는 협업자(collaborator)들과 공유될 수 있거나 또는 공유되지 않을 수 있다. 프로세싱 디바이스는 또한, 컬럼들 각각의 컬럼 헤더들을 식별할 수 있다. 컬럼들의 데이터 타입들은 스트링들, 숫자들, 날짜들, 통화(currency), 부동소수점 숫자들, 또는 임의의 적절한 데이터 타입을 포함할 수 있다.
[0051] 블록(404)에서, 프로세싱 디바이스는 하나 이상의 컬럼들에 관한 하나 이상의 통계치들(121)을 획득하기 위해 하나 이상의 컬럼들의 통계적 분석을 수행할 수 있다. 통계치들은 컬럼들 중 각각의 컬럼 내의 고유 값들의 개수의 어그리게이션, 컬럼들 중 각각의 컬럼 내의 값들의 범위, 컬럼들 중 각각의 컬럼 내의 데이터의 분포, 컬럼들 내의 로우들의 개수, 컬럼들 중 각각의 컬럼의 데이터의 평균 등을 포함할 수 있다. 또한, 통계치들(121)은 또한, 데이터 테이블(120)의 크기를 포함할 수 있다.
[0052] 블록(406)에서, 프로세싱 디바이스는 셀들의 하나 이상의 데이터 타입들 및 하나 이상의 컬럼들에 관한 하나 이상의 통계치들(121)에 기반하여 하나 이상의 제안 차트들을 생성할 수 있다. 일부 구현들에서, 하나 이상의 제안 차트들을 생성하는 것은 하나 이상의 규칙들(125A)을 데이터 테이블(120)에 적용하는 것을 포함할 수 있다. 하나 이상의 규칙들은 하나 이상의 컬럼들 중 적어도 2개의 컬럼들 사이의 관계를 식별하는 데 사용될 수 있다. 위에서 논의된 바와 같이, 식별된 관계는, 시각화를 위해 적절한 것으로 정의된/지정된 적어도 2개의 컬럼들의 컬럼 헤더들 사이의 관계, 또는 적어도 2개의 컬럼들의 값들 사이의 상관관계에 의해 정의되는 관계일 수 있다. 예컨대, 규칙은, 제품의 실제 판매 데이터와 관련된 컬럼 헤더들과 제품이 판매된 지역과 관련된 컬럼 헤더 사이의 판매 정보에 대한 관계를 특정할 수 있다. 다른 관계는 2개의 상이한 컬럼들 내의 값들이 함께 추세가 있는 것으로(예컨대, 둘 모두 증가됨, 둘 모두 감소됨, 또는 하나가 증가되는 반면 다른 것은 감소됨) 결정될 때 상관관계를 특정할 수 있다. 하나 이상의 규칙들은 또한, 제안 차트 타입들을 스코어링하는 방법을 정의할 수 있다. 이러한 스코어들에 기반하여, 최소 임계치를 초과하여 스코어링된 하나 이상의 제안 차트 타입들이 식별될 수 있다. 프로세싱 디바이스는 적어도, 데이터 테이블(120) 내의 데이터의 서브세트에 대해 식별된 차트 타입들에 기반하여 제안 차트들을 생성할 수 있다. 일부 구현들에서, 하나 이상의 규칙들은 도 5를 참조하여 추가로 논의되는 바와 같이 제안 차트들을 스코어링하는 방법을 정의할 수 있다.
[0053] 일부 구현들에서, 하나 이상의 제안 차트들을 생성하는 것은, 하나 이상의 차트 타입들을 출력하도록 트레이닝된 머신 학습 모델(123)에 대한 입력들로서 셀들의 하나 이상의 데이터 타입들 및 하나 이상의 컬럼들에 관한 하나 이상의 통계치들(121)을 적용하는 것을 포함할 수 있다. 머신 학습 모델(123)은, 다양한 트레이닝 데이터 테이블 입력에 대한 주석들 및 입력 데이터 테이블들에 기반하여 출력되는 대응 차트들을 제공할 수 있는 주석이 달린 차트들(122)을 사용하여 트레이닝될 수 있다. 예컨대, 주석들은, 트레이닝 데이터 테이블들 내의 통계치들, 트레이닝 데이터 테이블들 내의 데이터의 그룹들 사이의 관계들, 트레이닝 데이터 테이블들 내의 데이터 타입들, 트레이닝 데이터 테이블에 대해 적합한 차트 타입들의 필수적 기준들 등을 특정할 수 있다. 프로세싱 디바이스는 출력 차트 타입들에 기반하여 하나 이상의 제안 차트들을 생성할 수 있다.
[0054] 블록(408)에서, 프로세싱 디바이스는 하나 이상의 제안 차트들 중 적어도 하나를 포함하는 차트 제안 리스트(200)를 생성할 수 있다. 사용자 인터페이스(144A)는 사용자 디바이스(140A) 상에서의 디스플레이를 위해 제공될 수 있고, 사용자 인터페이스(144A)는 차트 제안 리스트(200)를 제시하기 위한 제1 부분 및 동시에 데이터 테이블(120)을 제시하기 위한 제2 부분을 포함할 수 있다. 차트 제안 리스트(200)는 인사이트 테이블(204)에서 디스플레이될 수 있다. 사용자는, 차트 제안 리스트(200)에서 디스플레이되는 제안 차트들 중 임의의 제안 차트를, 데이터 테이블(120)을 포함하는 전자 문서에 추가하도록 선택할 수 있고, 선택된 제안 차트는 데이터 테이블(120)에 근접하게 전자 문서에 삽입될 수 있다.
[0055] 일부 구현들에서, 프로세싱 디바이스는 스코어에 기반하여 차트 제안 리스트(200) 내의 제안 차트들을 순서화(order) 할 수 있고, 가장 높게 스코어링된 제안 차트들이 차트 제안 리스트(200) 내에서 더 우선적으로(예컨대, 더 높은 곳에) 디스플레이된다. 일부 구현들에서, 프로세싱 디바이스는 또한, 차트 제안 리스트(200) 내의 제안 차트들의 순서를 결정하기 위해 다양성 기준(diversity criterion)을 사용할 수 있다. 예컨대, 가장 높은 스코어들을 갖는 상위 2개의 차트들이 유사한 차트 타입이고 유사한 방식으로 데이터를 나타내는 경우, 상이한 차트 타입을 갖는 제3 차트는, 제3 차트가 상이한 타입이고 상이한 방식으로 데이터를 나타낸다면, 두 번째로 높은 랭킹 차트보다 더 두드러지게(prominently) 디스플레이되도록 재배열될 수 있다. 따라서, 제3 차트가, 두 번째로 높은 스코어를 갖는 제2 차트보다 더 낮은 스코어를 갖지만, 제3 차트는 제2 차트 위에 디스플레이될 수 있다.
[0056] 일부 구현들에서, 프로세싱 디바이스는 차트 제안 리스트(200)로부터 제안 차트의 선택을 수신할 수 있다. 예컨대, 사용자는, 제안 차트를 전자 문서에 삽입함이 없이, (예컨대, 제안 차트 상에서 입력 장치를 한 번 클릭하거나 또는 제안 차트 위에서 커서를 맴돎(hovering over)으로써) 제안 차트를 제안 차트 리스트(200)에서 선택할 수 있다. 프로세싱 디바이스는, 선택된 제안 차트의 생성에 관여되는, 데이터 테이블(120) 내의 셀들에 대한 시각적 표시자(예컨대, 강조(highlighting))가 디스플레이되게 할 수 있다. 일부 구현들에서, 사용자가 제안 차트를 전자 문서에 삽입하도록 선택하는 경우, 선택된 제안 차트의 생성에 관여되는, 데이터 테이블(120) 내의 셀들에 대한 시각적 표시자가 또한 디스플레이될 수 있다.
[0057] 일부 구현들에서, 프로세싱 디바이스는 데이터 테이블(120) 내의 데이터의 서브세트의 선택을 수신할 수 있다. 사용자는 원하는 셀들 주위의 박스를 드래그(dragging)함으로써 전자 문서 내의 데이터 테이블(120) 내의 데이터를 서브세트를 강조(highlight)할 수 있다. 프로세싱 디바이스는 데이터의 선택된 서브세트가 차트 생성을 위해 사용되는 것을 우선시킬(prioritize) 수 있다. 예컨대, 프로세싱 디바이스는 데이터의 선택된 서브세트를 나타내기 위해 하나 이상의 개정된 제안 차트(revised suggested chart)들을 생성할 수 있다. 예컨대, 데이터의 선택된 서브세트에 대해 새로운 통계치들이 획득될 수 있고, 데이터의 선택된 서브세트에 대해 새로운 관계들이 식별될 수 있고, 데이터의 선택된 서브세트에 대해 새로운 데이터 타입들이 결정될 수 있고, 데이터의 선택된 서브세트에 대해 차트들에 대한 새로운 필수적 기준들이 결정될 수 있는 등등이고, 프로세싱 디바이스는 그에 따라, 개정된 제안 차트들을 생성할 수 있다. 프로세싱 디바이스는 또한, 전체 데이터 테이블(120)에 대한 제안 차트들을 생성할 수 있다. 프로세싱 디바이스는 하나 이상의 개정된 제안 차트들 중 적어도 하나를 포함하는 업데이트된 차트 제안 리스트를 생성할 수 있다. 차트 제안 리스트는 또한, 전체 데이터 테이블(120)에 기반하는 제안 차트들 중 적어도 하나를 포함할 수 있다. 프로세싱 디바이스는 데이터의 선택된 서브세트에 기반하여 개정된 제안 차트들을, 전체 데이터 테이블(120)에 기반하는 제안 차트들 위에 우선적으로 랭크(rank)하고 디스플레이할 수 있다.
[0058] 도 5는 본 개시내용의 일 구현에 따른, 차트 제안 리스트(200)를 생성하기 위해 하나 이상의 규칙들을 사용하여 생성된 차트들을 스코어링하기 위한 방법(500)의 양상들의 흐름도를 묘사한다. 방법(500)은 방법(400)과 관련하여 위에서 설명된 것과 동일한 또는 유사한 방식으로 수행될 수 있다. 일 구현에서, 방법(500)은 클라우드-기반 환경(110)의 통계 엔진(114) 및/또는 서버들(112A-112Z)의 하나 이상의 프로세싱 디바이스들에 의해 실행되는 하나 이상의 차트 생성 모듈들(124A-118Z)에 의해 수행될 수 있다. 일부 구현들에서, 방법(500)은, 차트 생성 모듈들(124A-118Z) 및/또는 통계 엔진(114)을 실행시키는 사용자 디바이스들(140A-140Z)의 하나 이상의 프로세싱 디바이스들에 의해 수행될 수 있다.
[0059] 방법(500)은 블록(502)에서 시작될 수 있다. 블록(502)에서, 프로세싱 디바이스는 위에서 설명된 바와 같이 생성된 하나 이상의 제안 차트들 각각을 스코어링할 수 있다. 스코어링은 규칙들(125A-125Z) 또는 머신 학습 모델(123)을 적용함으로써 프로세싱 디바이스에 의해 수행될 수 있다. 스코어링은, 셀들의 하나 이상의 데이터 타입들, 하나 이상의 통계치들(121)(예컨대, 컬럼들 내의 고유 값들의 어그리게이션, 데이터 값 범위, 데이터 분포, 데이터 테이블의 크기), 하나 이상의 기준들(예컨대, 소정의 차트 타입으로 묘사될 수 있는 컬럼들의 개수, 차트 타입이 네거티브 값들을 핸들링할 수 있는지 여부, 차트가 오리지널 차트가 나타내지 않은 정보를 나타내는지 여부 등), 및/또는 데이터 테이블(120)의 적어도 2개의 컬럼들 사이에서 식별된 관계(예컨대, 컬럼들의 값들 사이의 상관관계, 시각화를 위해 지정되는 것으로 정의된 관계 등) 중 하나에 적어도 기반할 수 있다. 일부 구현들에서, 스코어링은 또한, 규칙들(125A-125Z) 또는 머신 학습 모델(123)을 사용하여 제안 차트 타입들에 대해 수행될 수 있다.
[0060] 블록(504)에서, 프로세싱 디바이스는 최소 임계치 미만의 스코어를 받은 하나 이상의 제안 차트들을 폐기할 수 있다. 최소 임계치 미만의 스코어를 받은 제안 차트들을 폐기하는 것은 차트 제안 리스트(200)에서 디스플레이되는 제안 차트들의 개수를 감소시키는 것을 가능하게 할 수 있으며, 이는 차트 제안 리스트(200)를 생성하는 프로세싱 속도를 향상시킬 수 있다.
[0061] 블록(506)에서, 프로세싱 디바이스는 차트 제안 리스트(200)에 포함시키기 위해 최소 임계치 초과의 스코어를 받은 하나 이상의 제안 차트들을 선택할 수 있다. 프로세싱 디바이스는 사용자 인터페이스(144A)의 부분에서 인사이트 테이블(204)에 차트 제안 리스트(200)를 디스플레이할 수 있으며, 사용자 인터페이스(144A)는 또한 동시에, 사용자 인터페이스(144A)의 다른 부분에서 데이터 테이블(120)을 디스플레이한다.
[0062] 도 6은 예시적인 구현에 따른, 데이터 테이블(120) 내에 존재하는 데이터로부터 생성된 어그리게이트 테이블들의 예를 예시한다. 데이터 테이블(120)은, 협업자들과 공유되는 또는 공유되지 않는 전자 문서(예컨대, 스프레드시트 문서, 워드 프로세싱 문서, 슬라이드쇼 문서 등)에 포함되거나 또는 데이터 저장소(118)에 저장될 수 있다. 데이터 테이블(120)은 초기 데이터 테이블로 지칭될 수 있고, 어그리게이트 테이블들은 본원에서 추가의 테이블들로 지칭될 수 있다.
[0063] 초기 데이터 테이블(120)은 4개의 상이한 컬럼들, 이름(Name)(600), 대답(Answer)(602), 값 A(604) 및 값 B(606)를 포함한다. 초기 데이터 테이블(120)에 대해 수행된 통계적 분석은 컬럼들(600, 602, 604, 및 606) 중 각각의 컬럼(600, 602, 604, 및 606) 내의 고유 값들의 개수를 표시하는 통계치들(121)을 획득한다. 어그리게이트 테이블(608)은 통계치들(예컨대, 테이블(120)의 각각의 컬럼 내의 고유 값들)에 기반하여 생성될 수 있다. 일부 구현들에서, 어그리게이트 테이블을 생성하기 위해 컬럼을 선택하는 결정은 컬럼 내의 고유 값들의 개수에 기반하여 이루어질 수 있다. 예컨대, 컬럼이 비교적 더 적은 고유 값들을 갖는 경우, 그 고유 값들은 비교적 많은 개수의 고유 값들을 포함하는 컬럼으로부터의 고유 값들보다 더 중요할 수 있다. 묘사되는 바와 같이, 대답 컬럼(602)은, 테이블 내의 다른 컬럼들(예컨대, 이름 컬럼(600)은 5개의 고유 값들을 가짐)과 비교하여 단지 2개의 고유 값들, 예(Yes) 및 아니오(No)만을 갖는다. 머신 학습 모델(123) 또는 규칙들(125A-125Z) 중 하나 이상의 적용은, 제한된 개수의 고유 값들 때문에, 대답(602)에 기반하여 생성된 어그리게이트 테이블(608)을 테이블(120)로부터 생성된 임의의 다른 어그리게이트 테이블보다 더 높게 스코어링하는 것을 초래할 수 있다. 또한, 값 A 컬럼(604) 및 값 B 컬럼(606)이 숫자 데이터 타입을 갖는 것으로 결정 시에, 대답 컬럼(602) 내의 각각의 고유 응답에 대해 값 A 컬럼(604) 및 값 B 컬럼(606)의 숫자들을 더함으로써 어그리게이트 테이블(608)을 생성하도록, 규칙(125-125Z) 또는 머신 학습 모델(123)이 적용될 수 있다.
[0064] 어그리게이트 테이블(608)은 3개의 컬럼들, 대답(610), 값 A의 합계(612), 및 값 B의 합계(614)를 포함한다. 대답 컬럼(610)은 예(Yes) 및 아니오(No) 로우 엔트리들을 포함하며, 각각의 합계들은 값 A의 합계 컬럼(612) 및 값 B의 합계 컬럼(614)에서 묘사된다. 따라서, 어그리게이트 테이블(608)은 초기 데이터 테이블(120)로부터 변환된 데이터를 나타낸다. 초기 데이터 테이블(120) 내의 데이터에 적용되는 변환은 값 A 및 값 B에서 예(Yes)와 연관된 값들을 합산하는 것 및 값 A 및 값 B에서 아니오(No)와 연관된 값들을 합산하는 것을 포함한다. 다른 변환들, 이를테면, 평균화가 적용될 수 있다는 것이 이해되어야 한다. 결과적인 어그리게이트 테이블(608)은 초기 데이터 테이블(120)로부터의 데이터의 서브세트(예컨대, 예 및 아니오)뿐만 아니라 초기 데이터 테이블(120)에서 직접적으로 표현되지 않은 새롭게 변환된 데이터를 포함할 수 있다.
[0065] 다른 어그리게이트 테이블(616)은 가장 적은 개수의 고유 값들을 갖는, 초기 데이터 테이블(120) 내의 대답(602) 컬럼에 기반하여 생성될 수 있다. 특히, 어그리게이트 테이블(616)은 대답(618) 및 카운트(620)에 대한 컬럼들을 포함한다. 어그리게이트 테이블(616)은, 대답 컬럼의 엔트리들(618)(예 및 아니오) 및 이들이 초기 데이터 테이블(120)에서 얼마나 여러 번 등장했는지에 대한 카운트(2 및 3)를 보여준다. 이와 같이, 어그리게이트 데이터 테이블(616)은 초기 데이터 테이블(120)로부터의 데이터의 서브세트 및 변환된 데이터(예컨대, 카운트)를 포함한다.
[0066] 어그리게이트 테이블들(608 및 616)은 도 2 및 도 3에 도시된 바와 같은 차트들 및 그래프들의 형태로 표현될 수 있다. 어그리게이트 테이블들(608 및 616)에서 데이터의 감소된 서브세트를 사용하여 차트들을 생성하는 것은, 감소된 데이터세트들을 사용하여 생성된 차트를 다양한 사용자 디바이스들(140A-140Z)에 전송함으로써 네트워크 트래픽을 감소시키고 그리고/또는 프로세싱 속도를 향상시킬 수 있다. 어그리게이트 테이블들(608 및 610)과 관련된 차트들은, 위에서 설명된 바와 같이, 다수의 팩터들에 기반하여 생성되고 이어서 스코어링될 수 있다. 이러한 팩터들 중 일부는 컬럼 내의 고유 값들의 개수 및/또는 소정의 차트에서 묘사될 수 있는 컬럼들의 개수를 포함할 수 있다. 일부 구현들에서, 어그리게이트 테이블들(608 및 616)에서 정보를 나타내기 위해 차트 타입을 결정하는 동안, 규칙(125A) 또는 머신 학습 모델(123)은, 차트들이 어그리게이트 테이블(608 및/또는 616)에서 정보를 묘사하기 위한 소정의 필수적 기준들을 충족하는지 여부를 결정한다. 예컨대, 파이 차트는 네거티브 값들을 갖는 어그리게이트 테이블을 나타내는 데 사용될 수 없다.
[0067] 도 7은 예시적인 구현에 따른, 데이터 테이블(120) 내에 존재하는 데이터로부터 생성된 패싯화된 차트 세트의 예를 예시한다. 테이블들 및 차트들의 패싯화된 버전들은 동일한 데이터에 대해 동일한 타입이다. 차트를 패싯화할지 여부의 선택은, 패싯화된 차트들이, 패싯화된 차트들이 생성되는 제1 차트에 포함되지 않은 정보를 포함하는지 여부와 같은 소정의 팩터들에 의존할 수 있다. 일부 구현들에서, 규칙(125A) 또는 머신 학습 모델(123)은 차트가 패싯화가능한지(facetable) 여부를 결정하는 데 사용될 수 있다. 예컨대, 컬럼들 내에서 고유 값들의 반복들을 거의 포함하지 않는 데이터 테이블들은 패싯화가능하지 않을 수 있다. 일부 구현들에서, 컬럼들 중 각각의 컬럼의 고유 값들에 기반하여 어느 컬럼 또는 컬럼들이 패싯화될 수 있는지를 또한 결정하기 위해, 통계적 분석이 수행될 수 있다. 패싯화되는 것으로 결정된 컬럼은 카테고리 컬럼(categorical column)으로 지칭될 수 있다.
[0068] 특히, 도 7의 데이터 테이블(120)은 2개의 고유 값들(MA 및 CA)을 포함하는 위치(Location) 컬럼을 포함한다. 따라서, 위치 컬럼이 데이터 테이블(120) 내의 다른 컬럼들에 비해 가장 적은 개수의 고유 값들을 갖기 때문에, 위치 컬럼은 카테고리 컬럼으로 선택될 수 있다. 데이터 테이블(120) 내의 모든 각각의 카테고리 컬럼에 대해, 패싯 차트(facet chart)가 생성될 수 있고, 패싯화된 차트들 각각은 정규화된 상호 정보(normalized mutual information)의 개념에 기반하여 스코어링될 수 있다. 패싯화된 차트에서 나타나는 정보가 더 많을수록, 패싯화된 차트의 스코어가 더 높을 수 있다. 패싯화된 차트들이 원래의 차트가 나타내지 않는 정보를 나타내는 경우, 패싯화된 차트들은 더 높게 스코어링된다.
[0069] 예컨대, 초기 차트(704)는 데이터 테이블(120)의 통계치들, 데이터 테이블(120) 내의 적어도 2개의 컬럼들의 식별된 관계, 셀들의 데이터 타입들 등에 기반하여 테이블(120)에 대해 생성된다. 규칙(125A) 또는 머신 학습 모델(123)이 차트(504)에 적용될 수 있고, 이는 차트가, 위치(Location)의 카테고리 컬럼에 기반하여 패싯화가능함을 결정하는 것을 초래할 수 있다. 예컨대, 규칙(125A) 또는 머신 학습 모델은, 위치 컬럼에 의해 패싯화되는 것이 스코어 컬럼과의 높은 상호 정보를 포함함을 결정할 수 있다. 묘사된 바와 같이, 위치 컬럼에 대한 CA의 각각의 엔트리는 스코어 컬럼에 대한 값 5와 연관되고, 위치에 대한 MA의 각각의 엔트리는 스코어 컬럼에 대한 값 2와 연관된다. 이와 같이, 위치에 의해 패싯화되는 차트(700)의 추가의 버전들은 높게 스코어링될 수 있다. 패싯화된 차트들의 스코어링은 사용자에 의해 미리 결정된 임의적인 스케일(arbitrary scale)로 수행될 수 있다. 분석에 기반하여, 차트 생성 모듈(124A)은, 차트(700)로부터의 데이터의 서브세트를 사용하여 생성되지만 위치에 의해 분할되는 패싯화된 차트들(702 및 704)을 생성할 수 있다. 예컨대, 패싯화된 차트(702)는 위치에 대한 CA에 의해 차트(700)로부터 분할되고, 패싯화된 차트(704)는 위치에 대한 MA에 의해 차트(700)로부터 분할된다. 패싯화된 차트들(702 및 704)을 생성하는 것은, 단지 초기 데이터 테이블(120)로부터의 데이터의 서브세트만을 사용함으로써 프로세싱 속도를 증가시키면서, 흥미있는 정보를 사용자에게 또한 제시할 수 있다.
[0070] 도 8은 본 개시내용의 일 구현에 따른, 초기 데이터 테이블로부터 생성된 추가의 데이터 테이블 내의 데이터로부터 차트 제안 리스트(200)를 생성하기 위한 방법(800)의 양상들의 흐름도를 묘사한다. 방법(800)은 방법(400)과 관련하여 위에서 설명된 것과 동일한 또는 유사한 방식으로 수행될 수 있다. 일 구현에서, 방법(800)은 클라우드-기반 환경(110)의 통계 엔진(114) 및/또는 서버들(112A-112Z)의 하나 이상의 프로세싱 디바이스들에 의해 실행되는 하나 이상의 차트 생성 모듈들(124A-118Z)에 의해 수행될 수 있다. 일부 구현들에서, 방법(800)은, 차트 생성 모듈들(124A-118Z) 및/또는 통계 엔진(114)을 실행시키는 사용자 디바이스들(140A-140Z)의 하나 이상의 프로세싱 디바이스들에 의해 수행될 수 있다.
[0071] 방법(800)은 블록(802)에서 시작될 수 있다. 블록(802)에서, 프로세싱 디바이스는 초기 데이터 테이블의 컬럼들 및 셀들의 하나 이상의 데이터 타입들에 관한 통계치들(121)에 기반하여 초기 데이터 테이블로부터 데이터의 서브세트를 포함하는 적어도 하나의 추가의 테이블을 생성할 수 있다. 추가의 테이블은 도 6을 참조하여 위에서 설명된 어그리게이트 테이블일 수 있다. 일부 구현들에서, 추가의 데이터 테이블은 전자 문서의 사용자 인터페이스(144A)에서 초기 데이터 테이블에 근접하게 디스플레이될 수 있다.
[0072] 블록(804)에서, 프로세싱 디바이스는 하나 이상의 추가의 제안 차트들을 생성할 수 있고, 하나 이상의 추가의 제안 차트들 각각은 적어도, 추가의 데이터 테이블 내의 데이터의 서브세트를 나타낸다. 추가의 제안 차트들은, 추가의 데이터 테이블의 통계치들(121), 추가의 데이터 테이블의 컬럼들 사이에서 식별된 관계, 추가의 데이터 테이블 내의 셀들의 데이터 타입들, 추가의 데이터 테이블을 나타내기 위한 차트들에 대한 필수적 기준들 등에 기반하여 추가의 데이터 테이블에 규칙들(125A-125Z) 또는 머신 학습 모델(123)을 적용함으로써 생성될 수 있다. 예컨대, 일부 구현들에서, 차트들은, 어그리게이트 테이블들을 나타내는 바 차트(bar chart)들일 수 있다. 일부 구현들에서, 추가의 제안 차트들은 도 7을 참조하여 설명된 패싯화된 차트들일 수 있다. 제1 차트 제안 리스트의 하나 이상의 추가의 제안 차트들 중 적어도 하나는 변환된 데이터를 나타낼 수 있다. 변환된 데이터는 초기 데이터 테이블 내의 데이터에 적용된 변환으로부터 초래될 수 있다. 변환된 데이터는 초기 데이터 테이블에서 묘사되지 않을 수 있으며, 변환은 어그리게이팅, 합산 또는 평균화 중 적어도 하나를 포함할 수 있다.
[0073] 블록(806)에서, 프로세싱 디바이스는 하나 이상의 추가의 제안 차트들 중 적어도 하나를 포함하는 차트 제안 리스트(200)를 생성할 수 있다. 규칙(125A-125Z) 또는 머신 학습 모델(123)은 스코어 및/또는 다양성 기준에 기반하여 차트 제안 리스트(200)에 배열될 수 있는 추가의 제안 차트들을 스코어링할 수 있다. 차트 제안 리스트(200)는, 초기 데이터 테이블 및/또는 생성된 추가의 데이터 테이블과 동시에 사용자 인터페이스(144A)의 인사이트 테이블(204)에서 디스플레이될 수 있다.
[0074] 도 9는 예시적인 구현에 따른, 협업하는 사용자로부터 추가의 데이터를 수신하고 그리고 추가의 데이터에 기반하여 차트를 포함하는 제2 차트 제안 리스트를 생성하기 위한 방법(900)의 흐름도를 묘사한다. 방법(900)은 방법(400)과 관련하여 위에서 설명된 것과 동일한 또는 유사한 방식으로 수행될 수 있다. 일 구현에서, 방법(900)은 클라우드-기반 환경(110)의 통계 엔진(114) 및/또는 서버들(112A-112Z)의 하나 이상의 프로세싱 디바이스들에 의해 실행되는 하나 이상의 차트 생성 모듈들(124A-118Z)에 의해 수행될 수 있다. 일부 구현들에서, 방법(900)은, 차트 생성 모듈들(124A-118Z) 및/또는 통계 엔진(114)을 실행시키는 사용자 디바이스들(140A-140Z)의 하나 이상의 프로세싱 디바이스들에 의해 수행될 수 있다.
[0075] 방법(900)은 블록(902)에서 시작될 수 있다. 블록(902)에서, 프로세싱 디바이스는 협업하는 사용자로부터 데이터 테이블(120)의 추가의 데이터를 수신할 수 있다. 예컨대, 데이터 테이블(120)이 공유 전자 문서(shared electronic document)에 포함된 경우들에서, 공유 전자 문서는 제1 사용자 디바이스(140A) 상의 사용자 인터페이스(144A)에서 열릴(open) 수 있고, 공유 전자 문서는 제2 사용자 디바이스(140B) 상의 다른 사용자 인터페이스(144B)에서 동시에 열릴 수 있다. 제2 사용자는 데이터 테이블(120)에 데이터를 추가할 수 있다.
[0076] 프로세싱 디바이스는 데이터 테이블(120)에 대한 추가의 데이터를 수신하고, 추가의 데이터를 표현하기 위해 하나 이상의 개정된 제안 차트들을 생성(블록(904))할 수 있다. 예컨대, 추가의 데이터를 포함하는 데이터 테이블(120)에 대해 새로운 통계치들이 획득될 수 있고, 새로운 관계들이 식별될 수 있고, 새로운 데이터 타입들이 결정될 수 있고, 차트들에 대한 새로운 필수적 기준들이 결정될 수 있는 등등이며, 프로세싱 디바이스는 그에 따라 개정된 제안 차트들을 생성할 수 있다.
[0077] 블록(906)에서, 프로세싱 디바이스는 하나 이상의 개정된 제안 차트들 중 적어도 하나를 포함하도록 차트 제안 리스트(200)를 업데이트할 수 있다. 업데이트된 차트 제안 리스트는, 협업하는 사용자에 의해 추가된 데이터를 포함하는 데이터 테이블(120)이 또한 디스플레이되는 사용자 인터페이스(144A)의 인사이트 테이블(204)에서 동적으로 업데이트되고 디스플레이될 수 있다.
[0078] 도 10은 본 개시내용의 하나 이상의 양상들에 따라 동작하는 예시적 컴퓨팅 시스템의 블록도를 묘사한다. 다양한 예시적 예들에서, 컴퓨터 시스템(1000)은 도 1의 시스템 아키텍처(100) 내의 컴퓨팅 디바이스들 중 임의의 컴퓨팅 디바이스에 대응할 수 있다. 일 구현에서, 컴퓨터 시스템(1000)은 서버들(112A-112Z), 통계 엔진(114), 또는 트레이닝 엔진(116) 각각일 수 있다. 다른 구현에서, 컴퓨터 시스템(1000)은 사용자 디바이스들(140A-140Z) 각각일 수 있다.
[0079] 소정의 구현들에서, 컴퓨터 시스템(1000)은 (예컨대, 네트워크, 이를테면, 로컬 영역 네트워크(LAN; Local Area Network), 인트라넷, 엑스트라넷, 또는 인터넷을 통해) 다른 컴퓨터 시스템들에 연결될 수 있다. 컴퓨터 시스템(1000)은 클라이언트-서버 환경에서 서버 또는 클라이언트 컴퓨터로서 동작할 수 있거나, 또는 피어-투-피어 또는 분산형 네트워크 환경에서 피어 컴퓨터로서 동작할 수 있다. 컴퓨터 시스템(1000)은, 개인용 컴퓨터(PC; personal computer), 태블릿 PC, 셋-톱 박스(STB; set-top box), 개인 휴대 정보 단말(PDA; Personal Digital Assistant), 셀룰러 전화, 웹 기기, 서버, 네트워크 라우터, 스위치 또는 브리지, 또는 디바이스에 의해 행해질 액션들을 특정하는 명령들의 세트를 (순차적으로 또는 다른 방식으로) 실행할 수 있는 임의의 디바이스에 의해 제공될 수 있다. 또한, "컴퓨터"라는 용어는 본원에서 설명되는 방법들 중 임의의 하나 이상의 방법들을 수행하기 위해 명령들의 세트(또는 다수의 세트들)를 개별적으로 또는 공동으로 실행하는 컴퓨터들의 임의의 컬렉션을 포함할 것이다.
[0080] 추가의 양상에서, 컴퓨터 시스템(1000)은, 버스(1008)를 통해 서로 통신할 수 있는, 프로세싱 디바이스(1002), 휘발성 메모리(1004)(예컨대, 랜덤 액세스 메모리(RAM; random access memory)), 비-휘발성 메모리(1006)(예컨대, 판독-전용 메모리(ROM; read-only memory) 또는 전기적-소거가능 프로그램가능 ROM(EEPROM; electrically-erasable programmable ROM)), 및 데이터 저장 디바이스(2316)를 포함할 수 있다.
[0081] 프로세싱 디바이스(1002)는 하나 이상의 프로세서들, 이를테면, 범용 프로세서(이를테면, 예컨대, CISC(complex instruction set computing) 마이크로프로세서, RISC(reduced instruction set computing) 마이크로프로세서, VLIW(very long instruction word) 마이크로프로세서, 다른 타입들의 명령 세트들을 구현하는 마이크로프로세서, 또는 명령 세트들의 타입들의 조합을 구현하는 마이크로프로세서) 또는 특화된 프로세서(이를테면, 예컨대, 주문형 집적 회로(ASIC; application specific integrated circuit), 필드 프로그램가능 게이트 어레이(FPGA; field programmable gate array), 디지털 신호 프로세서(DSP; digital signal processor), 또는 네트워크 프로세서)에 의해 제공될 수 있다.
[0082] 컴퓨터 시스템(1000)은 네트워크 인터페이스 디바이스(1022)를 더 포함할 수 있다. 컴퓨터 시스템(1000)은 또한, 비디오 디스플레이 유닛(1010)(예컨대, LCD), 영숫자 입력 디바이스(1012)(예컨대, 키보드), 커서 제어 디바이스(1014)(예컨대, 마우스), 및 신호 생성 디바이스(1020)를 포함할 수 있다.
[0083] 데이터 저장 디바이스(1016)는, 본원에서 설명되는 방법들 중 임의의 방법을 구현하기 위한 도 1의 차트 생성 모듈(125)(125A-125Z), 통계 엔진(114), 및/또는 트레이닝 엔진(116)을 구현하는 명령들을 포함하는, 본원에서 설명되는 방법들 또는 기능들 중 임의의 하나 이상을 인코딩하는 명령들(1026)을 저장할 수 있는 비-일시적 컴퓨터-판독가능 저장 매체(1024)를 포함할 수 있다.
[0084] 명령들(1026)은 또한, 컴퓨터 시스템(1000)에 의한 명령들(1026)의 실행 동안에 휘발성 메모리(1004) 내에 그리고/또는 프로세싱 디바이스(1002) 내에 완전히 또는 부분적으로 상주할 수 있으며, 따라서, 휘발성 메모리(1004) 및 프로세싱 디바이스(1002)는 또한, 머신-판독가능 저장 매체들을 구성할 수 있다.
[0085] 컴퓨터-판독가능 저장 매체(1024)가 예시적인 예들에서 단일 매체인 것으로 도시되어 있지만, "컴퓨터-판독가능 저장 매체"라는 용어는 실행가능한 명령들의 하나 이상의 세트들을 저장하는 단일 매체 또는 다수의 매체들(예컨대, 중앙 집중형 또는 분산형 데이터베이스 및/또는 연관된 캐시들 및 서버들)을 포함할 것이다. "컴퓨터-판독가능 저장 매체"라는 용어는 또한, 컴퓨터로 하여금 본원에서 설명되는 방법들 중 임의의 하나 이상의 방법들을 수행하게 하는, 컴퓨터에 의한 실행을 위한 명령들의 세트를 저장 또는 인코딩할 수 있는 임의의 유형적인(tangible) 매체를 포함할 것이다. "컴퓨터-판독가능 저장 매체"란 용어는 고체-상태 메모리들, 광학 매체들 및 자기 매체들을 포함할 것이다(그러나 이에 제한되지 않음).
[0086] 전술한 설명에서, 많은 세부사항들이 기술되었다. 그러나, 본 개시내용이 이러한 특정 세부사항들이 없이도 실시될 수 있다는 것이, 본 개시내용의 이익을 갖는 당업자에게 자명할 것이다. 일부 경우들에서, 본 개시내용을 모호하지 않게 하기 위해서, 잘 알려진 구조들 및 디바이스들은 상세히 도시되기 보다는 블록도 형태로 도시된다.
[0087] 상세한 설명의 일부 부분들은 컴퓨터 메모리 내의 데이터 비트들에 대한 연산들의 기호적인 표현들 및 알고리즘들의 관점에서 제시되었다. 이러한 알고리즘 설명들 및 표현들은 자신들의 작업의 실체를 다른 당업자들에게 가장 효과적으로 전달하기 위해 데이터 프로세싱 분야의 당업자들에 의해 사용되는 수단이다. 알고리즘은 여기서는 일반적으로 원하는 결과를 유도하는 단계들의 일관적인 시퀀스인 것으로 이해된다. 단계들은 물리적 양들의 물리적 조작들을 필요로 하는 단계들이다. 일반적으로, 비록 필수적이지는 않지만, 이러한 양들은 저장, 전달, 결합, 비교 및 다른 방식으로 조작될 수 있는 전기 또는 자기 신호들의 형태를 취한다. 공통적인 사용의 이유들로 인해서 이러한 신호들을 비트들, 값들, 엘리먼트들, 심볼들, 캐릭터들, 용어들, 수치들 등으로 지칭하는 것이 때로는 편리하다는 것이 입증되었다.
[0088] 그러나, 이러한 및 유사한 용어들 모두는 적합한 물리적 양들과 연관될 것이고 단순히 이러한 양들에 적용되는 편리한 라벨들이라는 것이 상기되어야 한다. 구체적으로 달리 언급되지 않는 한, 다음의 논의로부터 명백한 바와 같이, 본 설명 전반에 걸쳐, "수신", "디스플레이", "이동", "조정", "교체", "결정", "플레이" 등과 같은 용어들을 활용하는 논의들은, 컴퓨터 시스템의 레지스터들 및 메모리들 내에서 물리적(예컨대, 전자적) 양들로서 표현되는 데이터를, 컴퓨터 시스템 메모리들 또는 레지스터들 또는 다른 그러한 정보 저장, 송신 또는 디스플레이 디바이스들 내에서 물리적 양들로서 유사하게 표현되는 다른 데이터로 조작 및 변환하는 컴퓨터 시스템 또는 유사한 전자 컴퓨팅 디바이스의 액션들 및 프로세스들을 지칭한다는 것이 인지된다.
[0089] 설명의 간략성을 위해, 방법들은 본원에서 일련의 동작들로서 묘사되고 설명된다. 그러나, 본 개시내용에 따른 동작들은 다양한 순서들로 그리고/또는 동시에, 그리고 본원에서 제시 및 설명되지 않은 다른 동작들과 함께 발생할 수 있다. 게다가, 개시된 청구대상에 따른 방법들을 구현하는 데 모든 예시된 동작들이 요구되지는 않을 수 있다. 게다가, 당업자들은, 방법들이 대안적으로, 상태 다이어그램 또는 이벤트들을 통해 일련의 상호관련된 상태들로서 표현될 수 있다는 것을 이해하고 인지할 것이다. 부가적으로, 본 명세서에서 개시된 방법들은 그러한 방법들을 컴퓨팅 디바이스들에 전송 및 전달하는 것을 가능하게 하기 위해 제조 물품 상에 저장될 수 있다는 것이 인지되어야 한다. 본원에서 사용되는 제조 물품이라는 용어는, 임의의 컴퓨터-판독가능 디바이스 또는 저장 매체들로부터 액세스가능한 컴퓨터 프로그램을 포함하도록 의도된다.
[0090] 본 개시내용의 소정의 구현들은 또한 본원의 동작들을 수행하기 위한 장치에 관한 것이다. 이러한 장치는 의도된 목적들을 위해 구성될 수 있거나, 또는 이러한 장치는, 컴퓨터에 저장된 컴퓨터 프로그램에 의해 선택적으로 활성화되거나 재구성되는 범용 컴퓨터를 포함할 수 있다. 그러한 컴퓨터 프로그램은, 플로피 디스크들, 광학 디스크들, CD-ROM들 및 자기-광학 디스크들을 포함한 임의의 타입의 디스크, 판독-전용 메모리(ROM)들, 랜덤 액세스 메모리(RAM)들, EPROM들, EEPROM들, 자기 또는 광학 카드들, 또는 전자 명령들을 저장하기에 적절한 임의의 타입의 매체들(그러나 이에 제한되지 않음)과 같은 컴퓨터 판독가능 저장 매체에 저장될 수 있다.
[0091] 본 명세서 전체에 걸친, "일 구현" 또는 "구현"에 대한 언급은, 구현과 관련하여 설명된 특정한 피쳐, 구조, 또는 특징이 적어도 하나의 구현에 포함되는 것을 의미한다. 따라서, 본 명세서 전체에 걸친 다양한 위치들에서의 "일 구현에서" 또는 "구현에서"라는 문구의 출현들이 모두 반드시 동일한 구현을 지칭하는 것은 아니다. 부가하여, "또는"이라는 용어는, 배타적인 "또는"이 아니라 포괄적인 "또는"을 의미하도록 의도된다. 더욱이, "예" 또는 "예시적인"이라는 단어들은 예, 경우 또는 예시로서 기능하는 것을 의미하도록 본원에서 사용된다. "예시적인" 것으로서 본원에서 설명되는 임의의 양상 또는 디자인이 반드시 다른 양상들 또는 디자인들보다 바람직하거나 유리한 것으로 해석되지 않을 것이다. 오히려, "예" 또는 "예시적인"이라는 단어들의 사용은 구체적인 방식으로 개념들을 제시하도록 의도된다.
[0092] 위의 설명은 제한적인 것이 아니라 예시적인 것으로 의도된다는 것이 이해되어야 한다. 상기 설명을 읽고 이해할 때, 다수의 다른 구현들이 당업자들에게 명백할 것이다. 따라서, 본 개시내용의 범위는, 첨부된 청구항들에 의해 권리가 부여되는 균등물들의 전체 범위와 함께, 그러한 청구항들에 관하여 결정되어야 한다.
[0093] 위의 설명에 더하여, 사용자는, 사용자로 하여금 본원에서 설명되는 시스템들, 프로그램들 또는 피처들이 사용자 정보(예컨대, 사용자의 소셜 네트워크, 사회적 액션들 또는 활동들, 직업, 사용자의 선호들, 또는 사용자의 현재 위치에 관한 정보)의 수집을 가능하게 할 수 있는지 그리고 언제 가능하게 할 수 있는지, 및 사용자가 서버로부터 콘텐츠 또는 통신들을 송신받는지의 모두에 관한 선택을 행할 수 있게 하는 제어들을 제공받을 수 있다. 게다가, 개인적으로 식별가능한 정보가 제거되도록, 소정의 데이터는 그 소정의 데이터가 저장되거나 또는 사용되기 전에 하나 이상의 방식들로 처리될 수 있다. 예컨대, 사용자에 대한 어떤 개인적으로 식별가능한 정보도 결정될 수 없도록 사용자의 아이덴티티가 처리될 수 있거나, 또는 사용자의 특정 위치가 결정될 수 없도록 (이를테면, 도시, 우편 번호(ZIP code), 또는 주(state) 레벨까지의) 위치 정보가 획득되는 사용자의 지리적 위치가 일반화될 수 있다. 따라서, 사용자는 사용자에 관한 어떤 정보가 수집되는지, 그 정보가 어떻게 사용되는지, 그리고 사용자에게 어떤 정보가 제공되는지에 대한 제어를 가질 수 있다.

Claims (20)

  1. 클라우드-기반 환경에서 저장된 협업 스프레드시트(collaborative spreadsheet)의 데이터 테이블 내에 존재하는 데이터를 사용하여 차트 제안 리스트(chart suggestion list)를 생성하기 위한 방법으로서, 상기 방법은 상기 클라우드-기반 환경에서 하나 이상의 프로세싱 디바이스들에 의해 수행되며, 상기 방법은,
    제1 사용자의 제1 디바이스 상에 디스플레이될 상기 협업 스프레드시트를 제공하는 단계 ― 상기 제1 사용자가 상기 제1 디바이스 상에서 상기 협업 스프레드시트를 편집하는 동안 제2 사용자가 동시에 제2 디바이스 상에서 상기 협업 스프레드시트를 편집하도록 허용하는 허가(permission)들을 상기 제2 사용자에게 승인(grant)함으로써, 상기 협업 스프레드시트는 상기 제2 사용자와 공유됨 ―;
    상기 데이터 테이블의 셀들의 하나 이상의 데이터 타입들 및 하나 이상의 컬럼(column)들을 식별하기 위해 상기 셀들을 파싱(parsing)하는 단계;
    상기 하나 이상의 컬럼들에 관한 하나 이상의 통계치들(statistics)을 획득하기 위해 상기 하나 이상의 컬럼들의 통계적 분석(statistical analysis)을 수행하는 단계;
    상기 셀들의 하나 이상의 데이터 타입들 및 상기 하나 이상의 컬럼들에 관한 하나 이상의 통계치들에 기반하여 하나 이상의 제안 차트(suggested chart)들을 생성하는 단계 ― 상기 하나 이상의 제안 차트들 각각은 적어도, 상기 데이터 테이블 내의 데이터의 서브세트를 나타냄 ―;
    상기 하나 이상의 제안 차트들 중 적어도 하나를 포함하는 차트 제안 리스트를 생성하는 단계;
    상기 제2 사용자의 제2 디바이스로부터 상기 데이터 테이블의 추가의 데이터를 수신하는 단계;
    상기 추가의 데이터를 나타내기 위해 하나 이상의 개정된 제안 차트(revised suggested chart)들을 생성하는 단계; 및
    상기 하나 이상의 개정된 제안 차트들 중 적어도 하나를 포함하는 제2 차트 제안 리스트를 생성하는 단계를 포함하는,
    방법.
  2. 제1 항에 있어서,
    상기 차트 제안 리스트를 제시하기 위한 제1 부분 및 동시에 상기 데이터 테이블을 제시하기 위한 제2 부분을 포함하는 사용자 인터페이스를 제공하는 단계를 더 포함하는,
    방법.
  3. 제1 항 또는 제2 항에 있어서,
    상기 하나 이상의 제안 차트들을 생성하는 단계는 하나 이상의 규칙들을 상기 데이터 테이블에 적용하는 단계를 포함하고,
    상기 하나 이상의 규칙들은 상기 하나 이상의 컬럼들 중 적어도 2개의 컬럼들 사이의 관계를 정의하고, 상기 정의된 관계는 시각화를 위해 지정되는 상기 적어도 2개의 컬럼들의 컬럼 헤더들 사이의 관계, 또는 상기 적어도 2개의 컬럼들의 값들 사이의 상관관계 중 적어도 하나를 포함하고, 그리고
    상기 하나 이상의 규칙들은, 상기 하나 이상의 컬럼들에 관한 하나 이상의 통계치들, 상기 셀들의 하나 이상의 데이터 타입들, 또는 식별된 관계 중 적어도 하나에 기반하여 하나 이상의 차트 타입들을 결정하는 방법을 정의하는,
    방법.
  4. 제1 항 또는 제2 항에 있어서,
    상기 하나 이상의 제안 차트들을 생성하는 단계는, 하나 이상의 차트 타입들을 타겟 출력으로서 생성하도록 트레이닝된 머신 학습 모델(machine learning model)에 대한 입력들로서 상기 셀들의 하나 이상의 데이터 타입들 및 상기 하나 이상의 컬럼들에 관한 하나 이상의 통계치들을 적용하는 단계를 포함하고,
    상기 하나 이상의 차트들은 상기 생성된 차트 타입들에 기반하여 생성되는,
    방법.
  5. 제1 항 또는 제2 항에 있어서,
    상기 셀들의 하나 이상의 데이터 타입들 및 상기 하나 이상의 컬럼들에 관한 하나 이상의 통계치들에 기반하여 상기 데이터 테이블로부터, 상기 데이터의 서브세트를 포함하는 적어도 제2 데이터 테이블을 생성하는 단계;
    하나 이상의 추가의 제안 차트(additional suggested chart)들을 생성하는 단계 ― 상기 하나 이상의 추가의 제안 차트들 각각은 적어도, 상기 제2 데이터 테이블 내의 데이터의 서브세트를 나타냄 ―; 및
    상기 하나 이상의 추가의 제안 차트들 중 적어도 하나를 포함하는 차트 제안 리스트를 생성하는 단계를 더 포함하는,
    방법.
  6. 제1 항 또는 제2 항에 있어서,
    상기 셀들의 하나 이상의 데이터 타입들, 상기 하나 이상의 통계치들, 상기 하나 이상의 제안 차트들과 관련된 하나 이상의 기준들, 또는 상기 하나 이상의 컬럼들 중 적어도 2개의 컬럼들 사이에서 식별된 관계 중 하나에 적어도 기반하여 상기 하나 이상의 제안 차트들 각각을 스코어링(scoring)하는 단계;
    최소 임계치 미만의 스코어를 받은 하나 이상의 제안 차트들을 폐기하는 단계; 및
    상기 차트 제안 리스트에 포함시키기 위해 상기 최소 임계치 초과의 스코어를 받은 하나 이상의 제안 차트들을 선택하는 단계를 더 포함하는,
    방법.
  7. 삭제
  8. 제1 항 또는 제2 항에 있어서,
    상기 차트 제안 리스트로부터 제안 차트의 선택을 수신하는 단계; 및
    상기 선택된 제안 차트의 생성에 관여되는, 상기 데이터 테이블 내의 복수의 셀들에 대한 표시자의 디스플레이를 야기하는 단계를 더 포함하는,
    방법.
  9. 제1 항 또는 제2 항에 있어서,
    상기 데이터 테이블 내의 데이터의 서브세트의 선택을 수신하는 단계;
    상기 데이터의 선택된 서브세트를 나타내기 위해 하나 이상의 개정된 제안 차트들을 생성하는 단계; 및
    상기 하나 이상의 개정된 제안 차트들 중 적어도 하나를 포함하는 상기 제2 차트 제안 리스트를 생성하는 단계를 더 포함하는,
    방법.
  10. 제1 항 또는 제2 항에 있어서,
    상기 차트 제안 리스트의 하나 이상의 차트들 중 적어도 하나는 변환된 데이터를 나타내고, 상기 변환된 데이터는, 상기 데이터 테이블 내의 데이터에 적용된 변환으로부터 초래되고, 상기 변환된 데이터는 상기 데이터 테이블에서 묘사(depict)되지 않고, 그리고 상기 변환은 어그리게이팅(aggregating), 합산(summing), 또는 평균화(summing) 중 적어도 하나를 포함하는,
    방법.
  11. 제1 항 또는 제2 항에 있어서,
    상기 하나 이상의 통계치들은, 상기 하나 이상의 컬럼들 중 각각의 컬럼 내의 고유 값들의 개수, 상기 하나 이상의 컬럼들 중 각각의 컬럼 내의 데이터의 분포, 상기 데이터 테이블의 크기, 상기 하나 이상의 컬럼들 중 각각의 컬럼 내의 데이터 값들의 평균, 또는 상기 하나 이상의 컬럼들 중 각각의 컬럼 내의 데이터의 범위 중 적어도 하나를 포함하는,
    방법.
  12. 제1 항 또는 제2 항에 있어서,
    제3 차트의 차트 타입과 관련하여 제1 차트 및 제2 차트의 차트들의 타입들에 적어도 기반하여, 더 높은 스코어를 갖는 상기 제2 차트보다 더 낮은 스코어를 갖는 상기 제1 차트가 더 두드러지게(prominently) 디스플레이되도록 선택함으로써, 상기 차트 제안 리스트의 하나 이상의 차트들을 재배열하는 단계를 더 포함하는,
    방법.
  13. 클라우드-기반 환경에서 저장된 협업 스프레드시트의 데이터 테이블 내에 존재하는 데이터를 사용하여 차트 제안 리스트를 생성하기 위한 시스템으로서,
    명령들을 저장하는 메모리 디바이스; 및
    상기 메모리 디바이스에 커플링된 프로세싱 디바이스를 포함하며,
    상기 프로세싱 디바이스는,
    제1 사용자의 제1 디바이스 상에 디스플레이될 상기 협업 스프레드시트를 제공하고 ― 상기 제1 사용자가 상기 제1 디바이스 상에서 상기 협업 스프레드시트를 편집하는 동안 제2 사용자가 동시에 제2 디바이스 상에서 상기 협업 스프레드시트를 편집하도록 허용하는 허가들을 상기 제2 사용자에게 승인함으로써, 상기 협업 스프레드시트는 상기 제2 사용자와 공유됨 ―,
    상기 데이터 테이블의 셀들의 하나 이상의 데이터 타입들 및 하나 이상의 컬럼들을 식별하기 위해 상기 셀들을 파싱하고,
    상기 하나 이상의 컬럼들에 관한 하나 이상의 통계치들을 획득하기 위해 상기 하나 이상의 컬럼들의 통계적 분석을 수행하고,
    상기 셀들의 하나 이상의 데이터 타입들 및 상기 하나 이상의 컬럼들에 관한 하나 이상의 통계치들에 기반하여 하나 이상의 제안 차트들을 생성하고 ― 상기 하나 이상의 제안 차트들 각각은 적어도, 상기 데이터 테이블 내의 데이터의 서브세트를 나타냄 ―,
    상기 하나 이상의 제안 차트들 중 적어도 하나를 포함하는 차트 제안 리스트를 생성하고,
    상기 제2 사용자의 제2 디바이스로부터 상기 데이터 테이블의 추가의 데이터를 수신하고,
    상기 추가의 데이터를 나타내기 위해 하나 이상의 개정된 제안 차트들을 생성하고, 그리고
    상기 하나 이상의 개정된 제안 차트들 중 적어도 하나를 포함하는 제2 차트 제안 리스트를 생성하기 위해,
    상기 명령들을 실행하는,
    시스템.
  14. 제13 항에 있어서,
    상기 프로세싱 디바이스는 추가로, 상기 차트 제안 리스트를 제시하기 위한 제1 부분 및 동시에 상기 데이터 테이블을 제시하기 위한 제2 부분을 포함하는 사용자 인터페이스를 제공하기 위한 것인,
    시스템.
  15. 제13 항 또는 제14 항에 있어서,
    상기 프로세싱 디바이스는, 하나 이상의 규칙들을 상기 데이터 테이블에 적용함으로써 상기 하나 이상의 제안 차트들을 생성하기 위한 것이고, 상기 하나 이상의 규칙들은 상기 하나 이상의 컬럼들 중 적어도 2개의 컬럼들 사이의 관계를 정의하고, 식별된 관계는 시각화를 위해 지정된 상기 적어도 2개의 컬럼들의 컬럼 헤더들 사이의 관계 또는 상기 적어도 2개의 컬럼들의 값들 사이의 상관관계 중 적어도 하나를 포함하고, 그리고 상기 하나 이상의 규칙들은, 상기 하나 이상의 컬럼들에 관한 하나 이상의 통계치들, 상기 셀들의 하나 이상의 데이터 타입들, 또는 상기 식별된 관계 중 적어도 하나에 기반하여 하나 이상의 차트 타입들을 결정하기 위한 방법을 정의하는,
    시스템.
  16. 제13 항 또는 제14 항에 있어서,
    상기 프로세싱 디바이스는, 하나 이상의 차트 타입들을 타겟 출력으로서 생성하도록 트레이닝된 머신 학습 모델에 대한 입력들로서 상기 셀들의 하나 이상의 데이터 타입들 및 상기 하나 이상의 컬럼들에 관한 하나 이상의 통계치들을 적용함으로써 상기 하나 이상의 제안 차트들을 생성하기 위한 것이고,
    상기 하나 이상의 차트들은 상기 생성된 차트 타입들에 기반하여 생성되는,
    시스템.
  17. 제13 항 또는 제14 항에 있어서,
    상기 프로세싱 디바이스는 추가로,
    상기 셀들의 하나 이상의 데이터 타입들 및 상기 하나 이상의 컬럼들에 관한 하나 이상의 통계치들에 기반하여 상기 데이터 테이블로부터, 상기 데이터의 서브세트를 포함하는 적어도 제2 데이터 테이블을 생성하고,
    하나 이상의 추가의 제안 차트들을 생성하고 ― 상기 하나 이상의 추가의 제안 차트들 각각은 적어도, 상기 제2 데이터 테이블 내의 데이터의 서브세트를 나타냄 ―, 그리고
    상기 하나 이상의 추가의 제안 차트들 중 적어도 하나를 포함하는 차트 제안 리스트를 생성하기 위한 것인,
    시스템.
  18. 클라우드-기반 환경에서 저장된 협업 스프레드시트의 데이터 테이블 내에 존재하는 데이터를 사용하여 차트 제안 리스트를 생성하기 위한 명령들을 저장하는 하나 이상의 유형적인(tangible) 비-일시적 컴퓨터-판독가능 매체들로서,
    상기 명령들은, 하나 이상의 프로세싱 디바이스들에 의해 실행될 때, 상기 하나 이상의 프로세싱 디바이스들로 하여금,
    제1 사용자의 제1 디바이스 상에 디스플레이될 상기 협업 스프레드시트를 제공하게 하고 ― 상기 제1 사용자가 상기 제1 디바이스 상에서 상기 협업 스프레드시트를 편집하는 동안 제2 사용자가 동시에 제2 디바이스 상에서 상기 협업 스프레드시트를 편집하도록 허용하는 허가들을 상기 제2 사용자에게 승인함으로써, 상기 협업 스프레드시트는 상기 제2 사용자와 공유됨 ―,
    상기 데이터 테이블의 셀들의 하나 이상의 데이터 타입들 및 하나 이상의 컬럼들을 식별하기 위해 상기 셀들을 파싱하게 하고,
    상기 하나 이상의 컬럼들에 관한 하나 이상의 통계치들을 획득하기 위해 상기 하나 이상의 컬럼들의 통계적 분석을 수행하게 하고,
    상기 셀들의 하나 이상의 데이터 타입들 및 상기 하나 이상의 컬럼들에 관한 하나 이상의 통계치들에 기반하여 하나 이상의 제안 차트들을 생성하게 하고 ― 상기 하나 이상의 제안 차트들 각각은 적어도, 상기 데이터 테이블 내의 데이터의 서브세트를 나타냄 ―,
    상기 하나 이상의 제안 차트들 중 적어도 하나를 포함하는 차트 제안 리스트를 생성하게 하고,
    상기 제2 사용자의 제2 디바이스로부터 상기 데이터 테이블의 추가의 데이터를 수신하게 하고,
    상기 추가의 데이터를 나타내기 위해 하나 이상의 개정된 제안 차트들을 생성하게 하고, 그리고
    상기 하나 이상의 개정된 제안 차트들 중 적어도 하나를 포함하는 제2 차트 제안 리스트를 생성하게 하는,
    하나 이상의 유형적인 비-일시적 컴퓨터-판독가능 매체들.
  19. 제18 항에 있어서,
    상기 하나 이상의 프로세싱 디바이스들은 하나 이상의 규칙들을 상기 데이터 테이블에 적용함으로써 상기 하나 이상의 제안 차트들을 생성하기 위한 것이고, 상기 하나 이상의 규칙들은 상기 하나 이상의 컬럼들 중 적어도 2개의 컬럼들 사이의 관계를 정의하고, 상기 정의된 관계는 시각화를 위해 지정된 상기 적어도 2개의 컬럼들의 컬럼 헤더들 사이의 관계 또는 상기 적어도 2개의 컬럼들의 값들 사이의 상관관계 중 적어도 하나를 포함하고, 그리고 상기 하나 이상의 규칙들은, 상기 하나 이상의 컬럼들에 관한 하나 이상의 통계치들, 상기 셀들의 하나 이상의 데이터 타입들, 또는 식별된 관계 중 적어도 하나에 기반하여 하나 이상의 차트 타입들을 결정하기 위한 방법을 정의하는,
    하나 이상의 유형적인 비-일시적 컴퓨터-판독가능 매체들.
  20. 제18 항에 있어서,
    상기 하나 이상의 프로세싱 디바이스들은, 하나 이상의 차트 타입들을 타겟 출력으로서 생성하도록 트레이닝된 머신 학습 모델에 대한 입력들로서 상기 셀들의 하나 이상의 데이터 타입들 및 상기 하나 이상의 컬럼들에 관한 하나 이상의 통계치들을 적용함으로써 상기 하나 이상의 제안 차트들을 생성하기 위한 것이고,
    상기 하나 이상의 차트들은 상기 생성된 차트 타입들에 기반하여 생성되는,
    하나 이상의 유형적인 비-일시적 컴퓨터-판독가능 매체들.
KR1020197009757A 2016-09-29 2017-09-29 데이터 테이블 내의 데이터로부터의 차트들의 생성 KR102250741B1 (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201662401647P 2016-09-29 2016-09-29
US62/401,647 2016-09-29
US15/719,425 2017-09-28
US15/719,425 US11093703B2 (en) 2016-09-29 2017-09-28 Generating charts from data in a data table
PCT/US2017/054457 WO2018064552A1 (en) 2016-09-29 2017-09-29 Generating charts from data in a data table

Publications (2)

Publication Number Publication Date
KR20190046957A KR20190046957A (ko) 2019-05-07
KR102250741B1 true KR102250741B1 (ko) 2021-05-10

Family

ID=61686221

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020197009757A KR102250741B1 (ko) 2016-09-29 2017-09-29 데이터 테이블 내의 데이터로부터의 차트들의 생성

Country Status (6)

Country Link
US (3) US11093703B2 (ko)
EP (2) EP3491538A1 (ko)
JP (1) JP2019537089A (ko)
KR (1) KR102250741B1 (ko)
CN (1) CN109643329B (ko)
WO (1) WO2018064552A1 (ko)

Families Citing this family (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021220058A1 (en) 2020-05-01 2021-11-04 Monday.com Ltd. Digital processing systems and methods for enhanced collaborative workflow and networking systems, methods, and devices
US10831356B2 (en) * 2014-02-10 2020-11-10 International Business Machines Corporation Controlling visualization of data by a dashboard widget
EP3422199A1 (en) * 2017-06-27 2019-01-02 Zebrys An interactive interface for improving the management of datasets
US10528236B2 (en) 2017-10-13 2020-01-07 Adobe Inc. Creating a display pattern for multiple data-bound graphic objects
US10475223B2 (en) * 2017-10-13 2019-11-12 Adobe Inc. Generating multiple data-bound graphic objects
US20190139280A1 (en) * 2017-11-06 2019-05-09 Microsoft Technology Licensing, Llc Augmented reality environment for tabular data in an image feed
DE102017127400A1 (de) * 2017-11-21 2019-05-23 Dspace Digital Signal Processing And Control Engineering Gmbh Festschreiben von technischen Entwicklungsdaten
WO2019171537A1 (ja) * 2018-03-08 2019-09-12 日本電気株式会社 意味推定システム、方法およびプログラム
US11216706B2 (en) 2018-03-15 2022-01-04 Datorama Technologies Ltd. System and method for visually presenting interesting plots of tabular data
US11544374B2 (en) * 2018-05-07 2023-01-03 Micro Focus Llc Machine learning-based security threat investigation guidance
US11698890B2 (en) 2018-07-04 2023-07-11 Monday.com Ltd. System and method for generating a column-oriented data structure repository for columns of single data types
CN109977380A (zh) * 2019-01-08 2019-07-05 平安科技(深圳)有限公司 图表生成方法、装置、计算机设备及存储介质
US20200372077A1 (en) * 2019-05-20 2020-11-26 Microsoft Technology Licensing, Llc Interactive chart recommender
CN110222194B (zh) * 2019-05-21 2022-10-04 深圳壹账通智能科技有限公司 基于自然语言处理的数据图表生成方法和相关装置
JP7311319B2 (ja) * 2019-06-19 2023-07-19 ファナック株式会社 時系列データ表示装置
US11556701B2 (en) * 2019-07-03 2023-01-17 Opendoor Labs Inc. Facilitating customization and proliferation of state models
US11748382B2 (en) * 2019-07-25 2023-09-05 International Business Machines Corporation Data classification
US10740403B1 (en) * 2019-08-23 2020-08-11 Capital One Services Llc Systems and methods for identifying ordered sequence data
US20210150135A1 (en) 2019-11-18 2021-05-20 Monday.Com Digital processing systems and methods for integrated graphs in cells of collaborative work system tables
GB201916801D0 (en) * 2019-11-19 2020-01-01 Ibm Identifying data relationships from a spreadsheet
GB201916803D0 (en) 2019-11-19 2020-01-01 Ibm Identifying content and structure of olap dimensions from a spreadsheet
GB201916804D0 (en) 2019-11-19 2020-01-01 Ibm Generating an OLAP model from a spreadsheet
CN111191090B (zh) * 2020-04-10 2020-09-08 支付宝(杭州)信息技术有限公司 确定业务数据展示图类型的方法、装置、设备和存储介质
US11562129B2 (en) * 2020-04-20 2023-01-24 Google Llc Adding machine understanding on spreadsheets data
US11829953B1 (en) 2020-05-01 2023-11-28 Monday.com Ltd. Digital processing systems and methods for managing sprints using linked electronic boards
US11526727B1 (en) 2020-05-14 2022-12-13 Rapid7, Inc. Machine learned chart recommendation system
KR102198322B1 (ko) * 2020-08-20 2021-01-04 플레인브레드 주식회사 기계 학습을 이용한 지능형 데이터 시각화 시스템
US11397847B1 (en) 2021-01-14 2022-07-26 Monday.com Ltd. Digital processing systems and methods for display pane scroll locking during collaborative document editing in collaborative work systems
US11562019B2 (en) * 2021-01-28 2023-01-24 Adobe Inc. Generating visual data stories
US11782576B2 (en) 2021-01-29 2023-10-10 Adobe Inc. Configuration of user interface for intuitive selection of insight visualizations
CN113885770B (zh) * 2021-10-27 2024-02-02 北京字跳网络技术有限公司 表格数据展示方法、装置、电子设备和存储介质
US11900133B2 (en) * 2021-12-01 2024-02-13 Microsoft Technology Licensing, Llc Discovery and suggestions for unstructured tables in spreadsheets
US20230205904A1 (en) * 2021-12-29 2023-06-29 Microsoft Technology Licensing, Llc Enhanced security features for controlling access to shared content and private content of a shared document
CN116541456A (zh) * 2022-01-26 2023-08-04 华为云计算技术有限公司 一种图表组件选择方法和数据可视化设备
US11755829B1 (en) * 2022-07-06 2023-09-12 Microsoft Technology Licensing, Llc Enhanced spreadsheet presentation using spotlighting and enhanced spreadsheet collaboration using live typing
US11741071B1 (en) 2022-12-28 2023-08-29 Monday.com Ltd. Digital processing systems and methods for navigating and viewing displayed content
US11886683B1 (en) 2022-12-30 2024-01-30 Monday.com Ltd Digital processing systems and methods for presenting board graphics
US11893381B1 (en) 2023-02-21 2024-02-06 Monday.com Ltd Digital processing systems and methods for reducing file bundle sizes

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070299880A1 (en) 2006-06-22 2007-12-27 Fuji Xerox Co., Ltd. Document Management Server, Document Management Method, Computer Readable Medium, Computer Data Signal, and System For Managing Document Use
US20130097177A1 (en) * 2011-10-13 2013-04-18 Microsoft Corporation Suggesting alternate data mappings for charts
US20160055140A1 (en) * 2014-08-25 2016-02-25 Purple Robot Software, Inc. Peer to peer spreadsheet processing
US20180365263A1 (en) 2017-06-16 2018-12-20 Zoho Corporation Private Limited Synchronized Views for Cloud-Based File Collaboration
US20190179501A1 (en) 2017-12-08 2019-06-13 Google Llc Managing comments in a cloud-based environment

Family Cites Families (41)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5461708A (en) * 1993-08-06 1995-10-24 Borland International, Inc. Systems and methods for automated graphing of spreadsheet information
US5701400A (en) * 1995-03-08 1997-12-23 Amado; Carlos Armando Method and apparatus for applying if-then-else rules to data sets in a relational data base and generating from the results of application of said rules a database of diagnostics linked to said data sets to aid executive analysis of financial data
US6006239A (en) * 1996-03-15 1999-12-21 Microsoft Corporation Method and system for allowing multiple users to simultaneously edit a spreadsheet
US7421648B1 (en) * 1999-05-21 2008-09-02 E-Numerate Solutions, Inc. Reusable data markup language
US8255791B2 (en) * 2000-11-29 2012-08-28 Dov Koren Collaborative, flexible, interactive real-time displays
US6965895B2 (en) * 2001-07-16 2005-11-15 Applied Materials, Inc. Method and apparatus for analyzing manufacturing data
WO2003017114A1 (en) * 2001-08-20 2003-02-27 Gausa, Llc System and method for real-time multi-directional file-based data streaming editor
US7640506B2 (en) * 2003-06-27 2009-12-29 Microsoft Corporation Method and apparatus for viewing and managing collaboration data from within the context of a shared document
EP1676217B1 (en) * 2003-09-15 2011-07-06 Ab Initio Technology LLC Data profiling
US7565270B2 (en) * 2004-09-07 2009-07-21 Promontory Management Group, Inc. Quality analysis method and program
US7610560B2 (en) * 2004-11-16 2009-10-27 Microsoft Corporation Methods for automated and semiautomated composition of visual sequences, flows, and flyovers based on content and context
US8307119B2 (en) * 2006-03-31 2012-11-06 Google Inc. Collaborative online spreadsheet application
US8024666B2 (en) * 2006-06-30 2011-09-20 Business Objects Software Ltd. Apparatus and method for visualizing data
US20080082908A1 (en) * 2006-09-29 2008-04-03 Business Objects, S.A. Apparatus and method for data charting with adaptive learning
US7522176B2 (en) * 2006-11-14 2009-04-21 Microsoft Corporation Dynamically generating mini-graphs to represent style and template icons
US9411903B2 (en) * 2007-03-05 2016-08-09 Oracle International Corporation Generalized faceted browser decision support tool
US8190987B2 (en) 2007-10-25 2012-05-29 Microsoft Corporation Private views of data and local calculations during real time collaboration
US8677235B2 (en) 2008-05-13 2014-03-18 Microsoft Corporation Ranking visualization types based upon fitness for visualizing a data set
US8464161B2 (en) 2008-06-10 2013-06-11 Microsoft Corporation Managing permissions in a collaborative workspace
EP2370892B1 (en) * 2008-12-02 2020-11-04 Ab Initio Technology LLC Mapping instances of a dataset within a data management system
US8386457B2 (en) * 2011-06-22 2013-02-26 International Business Machines Corporation Using a dynamically-generated content-level newsworthiness rating to provide content recommendations
US20130009963A1 (en) * 2011-07-07 2013-01-10 Microsoft Corporation Graphical display of data with animation
US9202297B1 (en) * 2011-07-12 2015-12-01 Domo, Inc. Dynamic expansion of data visualizations
US9183561B2 (en) * 2011-08-10 2015-11-10 Microsoft Technology Licensing, Llc Automatic generation of trend charts
US20130080444A1 (en) * 2011-09-26 2013-03-28 Microsoft Corporation Chart Recommendations
US10198485B2 (en) * 2011-10-13 2019-02-05 Microsoft Technology Licensing, Llc Authoring of data visualizations and maps
US20130145244A1 (en) * 2011-12-05 2013-06-06 Microsoft Corporation Quick analysis tool for spreadsheet application programs
US8812947B1 (en) * 2011-12-08 2014-08-19 Google Inc. Ranking graphical visualizations of a data set according to data attributes
US9824469B2 (en) * 2012-09-11 2017-11-21 International Business Machines Corporation Determining alternative visualizations for data based on an initial data visualization
US20140164071A1 (en) * 2012-11-28 2014-06-12 Michael R. English System and Methods for Analyzing Business Data
US20140331179A1 (en) * 2013-05-06 2014-11-06 Microsoft Corporation Automated Presentation of Visualized Data
US9282008B2 (en) * 2013-06-11 2016-03-08 General Electric Company Systems and methods for monitoring system performance and availability
US9489368B2 (en) * 2013-06-14 2016-11-08 Microsoft Technology Licensing, Llc Suggesting a set of operations applicable to a selected range of data in a spreadsheet
CN106255965B (zh) * 2014-01-30 2021-01-01 微软技术许可有限责任公司 用于电子表格的自动见解的方法和系统
US9817563B1 (en) * 2014-12-29 2017-11-14 Palantir Technologies Inc. System and method of generating data points from one or more data stores of data items for chart creation and manipulation
US10121216B2 (en) * 2015-04-22 2018-11-06 Lex Machina, Inc. Analyzing and characterizing legal case outcomes
US9886230B2 (en) * 2015-06-07 2018-02-06 Apple Inc. Device, method, and graphical user interface for collaborative editing in documents
US10515145B2 (en) * 2015-11-02 2019-12-24 Microsoft Technology Licensing, Llc Parameterizing and working with math equations in a spreadsheet application
US10769113B2 (en) * 2016-03-25 2020-09-08 Microsoft Technology Licensing, Llc Attribute-based dependency identification for operation ordering
US10614509B2 (en) * 2016-09-12 2020-04-07 International Business Machines Corporation Collaborative and cognitive multi-outlet food order placement and recommendation
US10380778B2 (en) * 2016-12-09 2019-08-13 Dropbox, Inc. Automated chart generation within a document generation application using heuristic model with predefined data types

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070299880A1 (en) 2006-06-22 2007-12-27 Fuji Xerox Co., Ltd. Document Management Server, Document Management Method, Computer Readable Medium, Computer Data Signal, and System For Managing Document Use
US20130097177A1 (en) * 2011-10-13 2013-04-18 Microsoft Corporation Suggesting alternate data mappings for charts
US20160055140A1 (en) * 2014-08-25 2016-02-25 Purple Robot Software, Inc. Peer to peer spreadsheet processing
US20180365263A1 (en) 2017-06-16 2018-12-20 Zoho Corporation Private Limited Synchronized Views for Cloud-Based File Collaboration
US20190179501A1 (en) 2017-12-08 2019-06-13 Google Llc Managing comments in a cloud-based environment

Also Published As

Publication number Publication date
US11093703B2 (en) 2021-08-17
CN109643329B (zh) 2023-09-29
US20240005091A1 (en) 2024-01-04
JP2019537089A (ja) 2019-12-19
EP3491538A1 (en) 2019-06-05
US20180088753A1 (en) 2018-03-29
KR20190046957A (ko) 2019-05-07
US20210374332A1 (en) 2021-12-02
CN109643329A (zh) 2019-04-16
EP4086805A1 (en) 2022-11-09
WO2018064552A1 (en) 2018-04-05
US11694024B2 (en) 2023-07-04

Similar Documents

Publication Publication Date Title
KR102250741B1 (ko) 데이터 테이블 내의 데이터로부터의 차트들의 생성
US20230153523A1 (en) Generating presentation slides with distilled content
Robinson et al. Phylo. io: interactive viewing and comparison of large phylogenetic trees on the web
US10628775B2 (en) Sankey diagram graphical user interface customization
Liu et al. Coreflow: Extracting and visualizing branching patterns from event sequences
US9450771B2 (en) Determining information inter-relationships from distributed group discussions
US9552399B1 (en) Displaying information about distributed group discussions
Morgan Experiments versus models: New phenomena, inference and surprise
Guo et al. Visualizing uncertainty and alternatives in event sequence predictions
US20180246883A1 (en) Artificial intelligence optimized unstructured data analytics systems and methods
CN112800773A (zh) 在电子表格数据上添加机器理解
US20140249897A1 (en) Expanded overlay state for campaign performance data snapshot cards
Deng et al. Dashbot: Insight-driven dashboard generation based on deep reinforcement learning
US20140249912A1 (en) Organization of campaign performance data snapshot cards in card feeds and card boards
US20140249911A1 (en) Campaign performance data snapshot cards
WO2020009709A1 (en) User-specific text record-based format prediction
Jun et al. Learning dispatching rules for single machine scheduling with dynamic arrivals based on decision trees and feature construction
Brzinsky-Fay Graphical representation of transitions and sequences
Olszak et al. Information technology tools for Business Intelligence development in organizations
Silver et al. A Markov model of urban evolution: Neighbourhood change as a complex process
Koch et al. Maximizing citizen scientists’ contribution to automated species recognition
US11281367B2 (en) Slider for content selection in user interface
CN112732878A (zh) 非结构化数据分析系统和方法
US20160267087A1 (en) Enhanced template curating
Barrera-Leon et al. How the preattentive process is exploited in practical information visualization design: A review

Legal Events

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