KR102563900B1 - 구조화 문서를 취급하는 방법 및 이를 이용한 장치 - Google Patents

구조화 문서를 취급하는 방법 및 이를 이용한 장치 Download PDF

Info

Publication number
KR102563900B1
KR102563900B1 KR1020230042997A KR20230042997A KR102563900B1 KR 102563900 B1 KR102563900 B1 KR 102563900B1 KR 1020230042997 A KR1020230042997 A KR 1020230042997A KR 20230042997 A KR20230042997 A KR 20230042997A KR 102563900 B1 KR102563900 B1 KR 102563900B1
Authority
KR
South Korea
Prior art keywords
structured document
setting information
nodes
information
personalized setting
Prior art date
Application number
KR1020230042997A
Other languages
English (en)
Inventor
하상영
Original Assignee
(주) 바우디움
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by (주) 바우디움 filed Critical (주) 바우디움
Priority to KR1020230042997A priority Critical patent/KR102563900B1/ko
Application granted granted Critical
Publication of KR102563900B1 publication Critical patent/KR102563900B1/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/14Tree-structured documents
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/335Filtering based on additional data, e.g. user or group profiles
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/34Browsing; Visualisation therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/103Formatting, i.e. changing of presentation of documents
    • G06F40/106Display of layout of documents; Previewing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/151Transformation
    • G06F40/154Tree transformation for tree-structured or markup documents, e.g. XSLT, XSL-FO or stylesheets

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Document Processing Apparatus (AREA)

Abstract

본 개시서에는 구조화 문서를 취급하는 방법 및 이를 이용한 컴퓨팅 장치가 개시된다. 구체적으로, 본 개시서의 일 실시 예에 의하면, 컴퓨팅 장치는, 적어도 하나의 제1 개인화 설정 정보를 포함하는 제1 구조화 문서를 생성하고, 상기 제1 구조화 문서가 2 이상의 노드들을 포함하는 경우, 제1 사용자의 조작 또는 지시에 응하여, (i) 위치 변경 작동(operation), (ii) 상기 노드들의 상대적인 위치를 정렬하는 정렬 작동, 및 (iii) 상기 노드들 중 적어도 하나의 표시 여부 정보를 변경하는 표시 여부 변경 작동 중 하나의 작동을 수행함으로써 상기 적어도 하나의 제1 개인화 설정 정보에 포함되는 특정 개인화 설정 정보를 생성하거나 상기 적어도 하나의 제1 개인화 설정 정보에 기 포함된 상기 특정 개인화 설정 정보를 변경하며, 상기 제1 구조화 문서의 상기 하나 이상의 노드와 동일한 내용의 하나 이상의 노드, 및 상기 제1 구조화 문서의 트리 구조와 동일한 트리 구조를 포함하도록 상기 구조화 문서에 해당하는 제2 구조화 문서를 생성하는 전사(transcription) 프로세스 및 상기 제2 구조화 문서로 하여금 상기 제1 구조화 문서의 제1 개인화 설정과 동일한 개인화 설정 정보인 제2 개인화 설정 정보를 가지게 하는 계승 프로세스를 수행한다.

Description

구조화 문서를 취급하는 방법 및 이를 이용한 장치{METHOD FOR MANAGING STRUCTURED DOCUMENTS, AND APPARATUS USING THE SAME}
본 개시서에는 구조화 문서를 취급하는 방법 및 이를 이용한 컴퓨팅 장치가 개시된다. 구체적으로, 본 개시서의 일 실시 예에 의하면, 컴퓨팅 장치는, 적어도 하나의 제1 개인화 설정 정보를 포함하는 제1 구조화 문서를 생성하고, 상기 제1 구조화 문서가 2 이상의 노드들을 포함하는 경우, 제1 사용자의 조작 또는 지시에 응하여, (i) 위치 변경 작동(operation), (ii) 상기 노드들의 상대적인 위치를 정렬하는 정렬 작동, 및 (iii) 상기 노드들 중 적어도 하나의 표시 여부 정보를 변경하는 표시 여부 변경 작동 중 하나의 작동을 수행함으로써 상기 적어도 하나의 제1 개인화 설정 정보에 포함되는 특정 개인화 설정 정보를 생성하거나 상기 적어도 하나의 제1 개인화 설정 정보에 기 포함된 상기 특정 개인화 설정 정보를 변경하며, 상기 제1 구조화 문서의 상기 하나 이상의 노드와 동일한 내용의 하나 이상의 노드, 및 상기 제1 구조화 문서의 트리 구조와 동일한 트리 구조를 포함하도록 상기 구조화 문서에 해당하는 제2 구조화 문서를 생성하는 전사(transcription) 프로세스 및 상기 제2 구조화 문서로 하여금 상기 제1 구조화 문서의 제1 개인화 설정과 동일한 개인화 설정 정보인 제2 개인화 설정 정보를 가지게 하는 계승 프로세스를 수행한다.
문서에 관한 소프트웨어의 발달에 힘입어, 다양한 문서들의 수정과 배포, 및 그 추적을 다루는 기술들도 발전하고 있다. 그러한 문서의 수정, 배포, 추적 등에 관한 기술의 일환으로, 필요에 따라 개개인에 의하여 상이하게 구조화되는 문서가 여러 분야에서 활용되고 있으나, 동일한 내용들을 담고 있는 구조화 문서라도 개인에 따라 그 내용들이 보기 좋은 모습으로 배치된 양상은 상이할 수 있는 등, 문서 자체가 획일적으로 구조화된 것만으로는 개개인의 요구를 충족시키지 못하는 한계점이 나타난다.
이처럼, 종래의 문서 구조화는 내용적인 측면에 그 초점을 주로 맞추고 있을 뿐, 동일한 내용을 가진 문서에 있어서 그 내용들 간의 배치 등에 관하여 개인별로 차별화되는 설정이 그 문서의 일부로서 통합 제공되고 있지 않으므로, 본 개시서에서 후술하는 바와 같이, 구조화된 문서에 개인화 설정의 기능을 부여함으로써, 구조화된 문서의 내용들 자체에 대한 파생뿐만 아니라 그 내용들의 배치 등에 관하여 개인화된 설정을 가능하게 할 필요가 있다.
KR 10-2418298 B
따라서 본 개시서에서는 전술한 종래 기술의 한계점을 극복하여, 구조화된 문서의 생성자 또는 그 문서로부터 파생된 다른 문서를 이용하는 사용자로 하여금 해당 문서를 이용하는 사용자별로 그 문서의 배치 등을 개인화할 수 있게 하는 수단을 제공하는 것을 목적으로 한다.
상기한 바와 같은 본 발명의 목적을 달성하고, 후술하는 본 발명의 특징적인 효과를 실현하기 위한 본 발명의 특징적인 구성은 하기와 같다.
본 개시서의 일 태양에 따르면, 컴퓨팅 장치에 의하여 구조화 문서를 취급하는 방법이 제공되는바, 그 구조화 문서는, 부모 노드와 자식 노드 간의 관계(relation)로써 트리 구조를 이루는 하나 이상의 노드, 및 상기 노드 각각에 대하여 다른 노드에 대한 상대적인 위치를 나타낸 위치 정보 및 상기 노드 각각의 표시 여부를 나타낸 표시 여부 정보를 포함한 적어도 하나의 개인화 설정 정보를 포함하며, 상기 구조화 문서를 취급하는 상기 방법은, (a) 컴퓨팅 장치가, 상기 구조화 문서에 해당하며 적어도 하나의 제1 개인화 설정 정보를 포함하는 제1 구조화 문서를 생성하는 단계; (b) 상기 제1 구조화 문서가 2 이상의 노드들을 포함하는 경우, 제1 사용자의 조작 또는 지시에 응하여, 상기 컴퓨팅 장치가, (i) 상기 노드들 중 하나의 상대적인 위치를 변경하는 작동인, 위치 변경 작동(operation), (ii) 상기 노드들의 상대적인 위치를 정렬하는 작동인, 정렬 작동, 및 (iii) 상기 노드들 중 적어도 하나의 표시 여부 정보를 변경하는 작동인, 표시 여부 변경 작동 중 하나의 작동을 수행함으로써 상기 적어도 하나의 제1 개인화 설정 정보에 포함되는 특정 개인화 설정 정보를 생성하거나 상기 적어도 하나의 제1 개인화 설정 정보에 기 포함된 상기 특정 개인화 설정 정보를 변경하는, 단계; 및 (c) 상기 제1 사용자 또는 제2 사용자의 조작 또는 지시에 응하여, 컴퓨팅 장치가, 상기 제1 구조화 문서의 상기 하나 이상의 노드와 동일한 내용의 하나 이상의 노드, 및 상기 제1 구조화 문서의 트리 구조와 동일한 트리 구조를 포함하도록 상기 구조화 문서에 해당하는 제2 구조화 문서를 생성하는 전사(transcription) 프로세스 및 상기 제2 구조화 문서로 하여금 상기 제1 구조화 문서의 제1 개인화 설정과 동일한 개인화 설정 정보인 제2 개인화 설정 정보를 가지게 하는 계승 프로세스를 수행하는 문서 파생 단계를 포함한다.
유리하게, 상기 방법은, (d) 상기 제1 구조화 문서에 포함된 대상 노드들을 상기 제2 사용자에게 표시하는 단계로서, 상기 노드들은 상기 구조화 문서에 포함된 하나 이상의 특정 노드 및 상기 특정 노드이며, 상기 대상 노드들은 상기 적어도 하나의 제1 개인화 설정 정보 중 상기 제2 사용자에게 적용되는 개별 개인화 설정 정보에 기초하여 표시되는, 단계를 더 포함한다.
더 유리하게, 상기 (d) 단계에서, 상기 개별 개인화 설정 정보 중 상기 대상 노드들에 속한 어느 노드에 대응하는 상기 위치 정보가 목록(list)을 포함하는 경우, 상기 어느 노드는 상기 목록에 따라 정해진 순서에 따라 열거되고, 상기 개별 개인화 설정 정보 중 상기 대상 노드들에 속한 어느 노드에 대응하는 상기 위치 정보가 평면(plane) 정보 또는 공간(space) 정보를 포함하는 경우, 상기 어느 노드는 상기 평면 정보 또는 상기 공간 정보에 따라 상기 대상 노드들에 속한 다른 노드와 겹치게 또는 겹치지 않게 배치된다.
더욱 더 유리하게, 상기 (d) 단계에서, 상기 대상 노드들은 상기 개별 개인화 설정 정보 중 상기 대상 노드들 각각에 대응하는 상기 표시 여부 정보에 따라 표시되거나 불표시된다.
바람직하게, 상기 하나 이상의 노드 중 일 노드가 하나 이상의 자식 노드를 가지는 경우, 상기 일 노드는 상기 하나 이상의 상기 자식 노드의 유형(type) 및 상기 자식 노드의 식별 정보(identification)를 포함하거나 상기 유형 및 상기 식별 정보에 대한 참조 정보(reference)를 포함한다.
유리하게, 상기 구조화 문서의 상기 개인화 설정 정보는 상기 구조화 문서의 소유자의 정보를 포함한다.
더 유리하게, 상기 (b) 단계는, (b1) 상기 제1 사용자가 상기 제1 구조화 문서의 소유자인 경우, 상기 적어도 하나의 제1 개인화 설정 정보에 포함되며 타 사용자에게 적용되는 개별 개인화 설정 정보를 생성하는 단계를 더 포함한다.
더욱 더 유리하게, 상기 (b) 단계는, (b2) 상기 제1 사용자가 상기 제1 구조화 문서의 소유자인 경우, 상기 적어도 하나의 제1 개인화 설정 정보 중 어느 개별 개인화 설정 정보에 대한 타 사용자의 접근 권한을 부여하는 단계를 더 포함한다.
바람직하게, 상기 구조화 문서는 상기 구조화 문서에 대한 변경 이력을 나타낸 변경 이력 정보를 포함하며, 상기 방법은, (e) 상기 제2 구조화 문서의 상기 변경 이력 정보를 유지한 채, 상기 제2 구조화 문서에 포함된 노드들로서 상기 제1 구조화 문서에도 포함된 모든 노드들의 내용을 대응하는 상기 제1 구조화 문서의 노드들의 내용으로 변경하는 프로세스 및 상기 제2 개인화 설정 정보의 내용을 상기 제1 개인화 설정 정보의 내용으로 변경하는 프로세스를 수행하는 단계인, 초기화 단계를 더 포함한다.
본 발명의 다른 태양에 따르면, 본 발명에 따른 방법들을 수행하도록 구현된 명령어들(instructions)을 포함하는 컴퓨터 프로그램도 제공된다. 예를 들어, 그러한 컴퓨터 프로그램은 기계 판독 가능한 비일시적 기록 매체에 저장될 수 있다.
본 발명의 또 다른 태양에 따르면, 구조화 문서를 취급하는 컴퓨팅 장치가 제공되는바, 그 컴퓨팅 장치는, 사용자의 조작 또는 지시를 수신하는 통신부; 및 상기 구조화 문서에 해당하며 적어도 하나의 제1 개인화 설정 정보를 포함하는 제1 구조화 문서를 생성하는 문서 생성 프로세스, 상기 제1 구조화 문서가 2 이상의 노드들을 포함하는 경우, 상기 통신부를 통하여 수신된 제1 사용자의 조작 또는 지시에 응하여, (i) 상기 노드들 중 하나의 상대적인 위치를 변경하는 작동인, 위치 변경 작동(operation), (ii) 상기 노드들의 상대적인 위치를 정렬하는 작동인, 정렬 작동, 및 (iii) 상기 노드들 중 적어도 하나의 표시 여부 정보를 변경하는 작동인, 표시 여부 변경 작동 중 하나의 작동을 수행함으로써 상기 적어도 하나의 제1 개인화 설정 정보에 포함되는 특정 개인화 설정 정보를 생성하거나 상기 적어도 하나의 제1 개인화 설정 정보에 기 포함된 상기 특정 개인화 설정 정보를 변경하는, 개인화 설정 프로세스, 및 상기 제1 사용자 또는 제2 사용자의 조작 또는 지시에 응하여, 상기 제1 구조화 문서의 상기 하나 이상의 노드와 동일한 내용의 하나 이상의 노드, 및 상기 제1 구조화 문서의 트리 구조와 동일한 트리 구조를 포함하도록 상기 구조화 문서에 해당하는 제2 구조화 문서를 생성하는 전사(transcription) 프로세스 및 상기 제2 구조화 문서로 하여금 상기 제1 구조화 문서의 제1 개인화 설정과 동일한 개인화 설정 정보인 제2 개인화 설정 정보를 가지게 하는 계승 프로세스를 수행하는 문서 파생 프로세스를 수행하는, 프로세서를 포함한다.
본 발명에 의하면, 구조화된 문서의 배치, 표시 등에 관한 개인화된 설정이 가능해져 구조화된 문서에 관한 여러 사용자의 편의성이 향상되는 효과가 있다.
본 발명의 실시 예의 설명에 이용되기 위하여 첨부된 아래 도면들은 본 발명의 실시 예들 중 단지 일부일 뿐이며, 본 발명이 속한 기술분야에서 통상의 지식을 가진 사람(이하 "통상의 기술자"라 함)은 별개의 발명에 이를 정도의 노력 없이 이 도면들에 기초하여 다른 도면들을 얻을 수 있다.
도 1은 본 개시서에 따라 구조화 문서를 취급하는 방법(이하 "구조화 문서 취급 방법"이라 함)을 수행하는 컴퓨팅 장치의 예시적 구성을 개략적으로 도시한 개념도이다.
도 2는 본 개시서에 따른 구조화 문서 취급 방법에 의해 다뤄지는 구조화 문서를 개념적으로 예시한 블록도이다.
도 3은 본 개시서에 따른 구조화 문서 취급 방법에 의해 다뤄지는 구조화 문서, 그 구조화 문서를 개인화한 문서 및 그 개인화 문서를 계승한 신규 문서를 개념적으로 도시한 블록도이다.
도 4는 본 개시서에 따른 구조화 문서 취급 방법을 수행하는 컴퓨팅 장치의 하드웨어 또는 소프트웨어 구성요소를 도시한 예시적 블록도이다.
도 5는 본 개시서에 따른 구조화 문서 취급 방법의 일 실시 예를 도시한 흐름도이다.
도 6a 및 도 6b는 본 개시서에 따른 구조화 문서 취급 방법의 개인화 단계를 더 상세히 예시한 시퀀스 다이어그램(sequence diagram)들이다.
도 7a 내지 도 7e는 본 개시서에 따른 구조화 문서 취급 방법의 개별 단계의 이해를 돕기 위해 나타낸 도면들이다.
후술하는 본 발명에 대한 상세한 설명은, 본 발명의 목적들, 기술적 해법들 및 장점들을 분명하게 하기 위하여 본 발명이 실시될 수 있는 특정 실시 예를 예시로서 도시하는 첨부 도면을 참조한다. 이들 실시 예는 통상의 기술자가 본 발명을 실시할 수 있기에 충분하도록 상세히 설명된다. 첨부 도면을 참조하여 설명함에 있어, 도면 부호에 관계없이 동일한 구성 요소는 동일한 참조부호를 부여하고, 이에 대한 중복되는 설명은 생략하기로 한다.
실시 예들에 대한 특정한 구조적 또는 기능적 설명들은 단지 예시를 위한 목적으로 개시된 것으로서, 다양한 형태로 변경되어 실시될 수 있다. 따라서, 실시 예들은 특정한 개시형태로 한정되는 것이 아니며, 본 개시서의 범위는 기술적 사상에 포함되는 변경, 균등물 또는 대체물을 포함한다.
"제1" 또는 "제2" 등의 용어를 다양한 구성요소들을 설명하는데 사용될 수 있지만, 이런 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 해석되어야 하는바, 어떠한 순서도 시사하고 있지 않기 때문이다. 예를 들어, 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소는 제1 구성요소로도 명명될 수 있다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다.
단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 개시서에서, "포함하다" 또는 "가지다" 등의 용어는 기재된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함으로 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 해당 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가진다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 갖는 것으로 해석되어야 하며, 본 개시서에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
더욱이 본 발명은 본 개시서에 표시된 실시 예들의 모든 가능한 조합들을 망라한다. 본 발명의 다양한 실시 예는 서로 다르지만 상호 배타적일 필요는 없음이 이해되어야 한다. 예를 들어, 여기에 기재되어 있는 특정 형상, 구조 및 특성은 일 실시 예에 관련하여 본 발명의 사상 및 범위를 벗어나지 않으면서 다른 실시 예로 구현될 수 있다. 또한, 각각의 개시된 실시 예 내의 개별 구성요소의 위치 또는 배치는 본 발명의 사상 및 범위를 벗어나지 않으면서 변경될 수 있음이 이해되어야 한다. 따라서, 후술하는 상세한 설명은 한정적인 의미로서 취하려는 것이 아니다. 도면에서 유사한 참조부호는 여러 측면에 걸쳐서 동일하거나 유사한 기능을 지칭한다.
본 개시서에서 달리 표시되거나 분명히 문맥에 모순되지 않는 한, 단수로 지칭된 항목은, 그 문맥에서 달리 요구되지 않는 한, 복수의 것을 아우른다. 또한, 본 발명을 설명함에 있어, 관련된 공지 구성 또는 기능에 대한 구체적인 설명이 본 발명의 요지를 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명은 생략한다.
이하, 통상의 기술자가 본 발명을 용이하게 실시할 수 있도록 하기 위하여, 본 발명의 바람직한 실시 예들에 관하여 첨부된 도면을 참조하여 상세히 설명하기로 한다.
도 1은 본 개시서에 따른 구조화 문서 취급 방법을 수행하는 컴퓨팅 장치의 예시적 구성을 개략적으로 도시한 개념도이다.
도 1을 참조하면, 본 개시서의 일 실시 예에 따른 컴퓨팅 장치(100)는, 통신부(110) 및 프로세서(120)를 포함하며, 상기 통신부(110)를 통하여 외부 컴퓨팅 장치(미도시)와 직간접적으로 통신할 수 있다.
구체적으로, 상기 컴퓨팅 장치(100)는, 전형적인 컴퓨터 하드웨어(예컨대, 컴퓨터, 프로세서, 메모리, 스토리지(storage), 입력 장치 및 출력 장치, 기타 기존의 컴퓨팅 장치의 구성요소들을 포함할 수 있는 장치; 라우터, 스위치 등과 같은 전자 통신 장치; 네트워크 부착 스토리지(NAS; network-attached storage) 및 스토리지 영역 네트워크(SAN; storage area network)와 같은 전자 정보 스토리지 시스템)와 컴퓨터 소프트웨어(즉, 컴퓨팅 장치로 하여금 특정의 방식으로 기능하게 하는 명령어들)의 조합을 이용하여 원하는 시스템 성능을 달성하는 것일 수 있다. 상기 스토리지는 하드 디스크, USB(Universal Serial Bus) 메모리와 같은 기억 장치뿐만 아니라 클라우드 서버와 같은 네트워크 연결 기반의 저장 장치의 형태를 포함할 수 있다.
이와 같은 컴퓨팅 장치의 통신부(110)는 연동되는 타 컴퓨팅 장치, 예컨대 전용의 저장소, 예컨대, 데이터베이스 서버 등과의 사이에서 요청과 응답을 송수신할 수 있는바, 일 예시로서 그러한 요청과 응답은 동일한 TCP(Transmission Control Protocol) 세션(session)에 의하여 이루어질 수 있지만, 이에 한정되지는 않는 바, 예컨대 UDP(User Datagram Protocol) 데이터그램(datagram)으로서 송수신될 수도 있을 것이다.
구체적으로, 통신부(110)는 통신 인터페이스를 포함하는 통신 모듈의 형태로 구현될 수 있다. 이를테면, 통신 인터페이스는 WLAN(Wireless LAN), WiFi(Wireless Fidelity) Direct, DLNA(Digital Living Network Alliance), WiBro(Wireless Broadband), WiMax(World interoperability for Microwave access), HSDPA(High Speed Downlink Packet Access) 등의 무선 인터넷 인터페이스와 블루투스(Bluetooth™), RFID(Radio Frequency IDentification), 적외선 통신(Infrared Data Association; IrDA), UWB(Ultra-WideBand), ZigBee, NFC(Near Field Communication) 등의 근거리 통신 인터페이스를 포함할 수 있다. 뿐만 아니라, 통신 인터페이스는 프로세서가 외부와 통신을 수행할 수 있는 모든 인터페이스(예를 들어, 버스, 유무선 인터페이스)를 나타낼 수 있다.
예를 들어, 통신부(110)는 이와 같이 적합한 통신 인터페이스를 통해 타 컴퓨팅 장치로부터 데이터를 송수신할 수 있다. 덧붙여, 넓은 의미에서 상기 통신부(110)는 명령어 또는 지시 등을 전달받기 위한 키보드, 마우스, 기타 외부 입력 장치, 인쇄 장치, 디스플레이, 기타 외부 출력 장치를 포함하거나 이들과 연동될 수 있다. 컴퓨팅 장치, 예컨대 서버, 단말 PC, 또는 휴대 단말의 사용자에게 적절한 사용자 인터페이스를 표시하여 제공함으로써 사용자와의 상호작용을 가능하게 하기 위하여, 컴퓨팅 장치(100)는 디스플레이부를 내장하거나 상기 통신부(110)를 통하여 외부의 디스플레이 장치와 연동될 수 있음이 알려져 있다. 예컨대, 그러한 디스플레이부 또는 디스플레이 장치는 터치 입력이 가능한 터치스크린일 수 있다.
또한, 컴퓨팅 장치의 프로세서(120)는 MPU(micro processing unit), CPU(central processing unit), GPU(graphics processing unit), NPU(neural processing unit) 또는 TPU(tensor processing unit), 캐시 메모리(cache memory), 데이터 버스(data bus) 등의 하드웨어 구성을 포함할 수 있다. 또한, 운영체제, 특정 목적을 수행하는 애플리케이션의 소프트웨어 구성을 더 포함할 수도 있다.
도 2는 본 개시서에 따른 구조화 문서 취급 방법에 의해 다뤄지는 구조화 문서를 개념적으로 예시한 블록도이다.
도 2를 참조하면, 구조화 문서(200)는, 부모 노드(210)와 자식 노드(222 내지 226) 간의 관계(relation)로써 트리 구조를 이루는 하나 이상의 노드, 및 상기 노드 각각에 대하여 다른 노드에 대한 상대적인 위치를 나타낸 위치 정보(232) 및 상기 노드 각각의 표시 여부를 나타낸 표시 여부 정보(234)를 포함한 적어도 하나의 개인화 설정 정보(230)를 포함한다. 여기에서 개인화는 구조화 문서의 하위 구조(즉, 하위 노드)의 사용 여부, 위치 등을 변경하는 편집 과정을 일컫는다.
상기 하나 이상의 노드 중 일 노드가 하나 이상의 자식 노드를 가지는 경우, 상대적인 관점에서 그 일 노드는 부모 노드(210)로 지칭될 수 있는바, 상기 일 노드는 상기 하나 이상의 상기 자식 노드(222 내지 226)의 유형(type) 및 상기 자식 노드의 식별 정보(identification)를 포함하거나 상기 유형 및 상기 식별 정보에 대한 참조 정보(reference)를 포함할 수 있다.
부모 노드(210)는 자식 노드(222)를 비롯한 모든 하위 노드(즉, 자손 노드) 및 그에 대한 개인화 설정 정보를 포함한다. 그러한 포함은 값에 의하여(by value), 또는 참조(by reference)에 의하여 이루어질 수 있다.
예를 들어, 위치 정보(232)는 문자열 타입(string type)을 가질 수 있으나 이에 한정되지 않는다. 그 일 구현례로서, 위치 정보(232)는 해당 노드에 부여된 좌표로서 그 좌표의 표현 방식에 따라 키: 값(Key: Value)의 형태로 저장될 수 있다. 그 표현 방식에는 목록(list), 평면(plane), 공간(space)이 있으며, 목록에 의하면 정수 값이, 평면에 의하면 (x, y) 좌표 값이, 공간에 의하면 (x, y, z) 좌표 값이 지정된다. 예를 들어, 위치 정보(232)는 "List: 1 | Plane: (1, 2) | Space: (1, 2, 3)"과 같이 "|"를 구분자(delimiter)로 이용하는 식으로 기록될 수 있다.
또한, 표시 여부 정보(234)는 불 타입(Bool type)을 가질 수 있으나 이에 한정되지 않는다.
도 3은 본 개시서에 따른 구조화 문서 취급 방법에 의해 다뤄지는 구조화 문서, 그 구조화 문서를 개인화한 문서 및 그 개인화 문서를 계승한 신규 문서를 개념적으로 도시한 블록도이다.
도 3을 참조하면, 구조화 문서(310)는 동일한 문서 내용을 가지되 사용자별로 개인화될 수 있다. 개인화된 구조화 문서(310')로부터 파생에 의하여 동일한 개인화 설정 정보를 가지는 신규한 구조화 문서(320)가 생성될 수도 있다. 구조화 문서(310)의 개인화 설정 정보는 그 구조화 문서(310)의 소유자의 정보를 포함할 수 있는바, 그 소유자 정보는 공란(blank), 즉 소유자가 지정되지 않은 상태인 정보일 수도 있다. 구조화 문서(310)와 함께 생성되는 개인화 설정 정보에 그 소유자가 지정되지 않은 상태라면, 디폴트(default) 값으로서 그 구조화 문서(310)를 이용하는 모든 사람에게 우선 적용될 수 있는 개인화 설정 정보를 바탕 개인화 설정 정보(318)라고 한다.
구조화 문서(310)에 대한 개인화의 하나로서, 노드들(312 내지 316) 간의 상대적인 위치를 변경하는 위치 변경 작동이 있을 수 있고, 노드들(312 내지 316) 간의 상대적 위치를 정렬하는 정렬 작동이 있을 수 있으며, 노드들(312 내지 316) 각각의 표시 여부 정보를 변경하는 표시 여부 변경 작동이 있을 수 있는바, 도 3에 예시된 바와 같다. 이처럼 구조화 문서의 개인화는 개인화 설정을 위한 전용의 창(window) 또는 상기 구조화 문서를 표시하는 사용자 인터페이스에 나타난 사용자 인터페이스 요소에 대한 사용자의 직접 조작에 의하여 진행될 수도 있으며, 그 개인화의 결과는 개인화 설정 정보로서 보유 및 저장된다. 한편, 바탕 개인화 설정 정보(318)는 이와 같은 개인화에 의하여 수정된 개인화 설정 정보(318')로 대체될 수 있다.
또한, 파생 절차에 의하여 개인화 설정 정보(318')를 그대로 계승한 개인화 설정 정보(328)를 가지는 신규한 구조화 문서(320)도 생성될 수 있는바, 이에 관하여는 상세히 후술하기로 한다.
이제 도 4 내지 도 7e를 참조하여 본 개시서에 따른 구조화 문서 취급 방법을 상세히 후술하기로 한다.
도 4는 본 개시서에 따른 구조화 문서 취급 방법을 수행하는 컴퓨팅 장치, 특히 서버의 하드웨어 또는 소프트웨어 구성요소를 도시한 예시적 블록도이고, 도 5는 본 개시서에 따른 구조화 문서 취급 방법의 일 실시 예를 도시한 흐름도이다.
구조화 문서의 생성
도 4 및 도 5를 참조하면, 우선, 본 개시서의 구조화 문서 취급 방법은, 제1 구조화 문서를 생성하고자 하는 주체로부터 수신된 상기 제1 구조화 문서에 대한 생성의 요청에 응하여, 컴퓨팅 장치(400)에 의하여 구현되는 구조화 문서 생성 모듈(410)이 적어도 하나의 제1 개인화 설정 정보를 포함하는 제1 구조화 문서를 생성하는 단계(S100)를 포함한다. 생성된 제1 구조화 문서는 컴퓨팅 장치(400)에 의하여 구현되거나 컴퓨팅 장치(400)에 연동된 타 장치(미도시)에 의하여 구현되는 문서 저장소(470)에 저장될 수 있다. 문서 저장소(470)는 구조화 문서 저장소(472), 개인화 설정 정보 저장소(474) 등으로 세분화될 수도 있는바, 반드시 그렇게 한정되지 않음은 물론이다.
단계(S100)는, 제1 사용자의 조작 또는 지시에 응하여, 컴퓨팅 장치(400)에 의하여 구현되는 구조화 문서 편집 모듈(420)이, 상기 제1 구조화 문서에 새로운 노드를 추가하거나, 상기 제1 구조화 문서의 기존 노드를 변경 또는 삭제하는 단계(S190)를 더 포함할 수 있다.
구조화 문서에 대한 개인화 설정
상기 제1 구조화 문서가 2 이상의 노드들을 포함하는 경우, 앞서 언급된 개인화, 즉, 상기 위치 변경 작동, 상기 정렬 작동, 상기 표시 여부 변경 작동 등이 가능한바, 도 4 및 도 5를 참조하면, 본 개시서의 구조화 문서 취급 방법은, 제1 구조화 문서의 생성(S100) 후, 제1 사용자의 조작 또는 지시에 응하여 컴퓨팅 장치(400)에 의하여 구현되는 개인화 설정 모듈(430)이 전술한 개인화를 수행하고, 특정 개인화 설정 정보를 생성하여 상기 적어도 하나의 제1 개인화 설정 정보에 포함시키거나 기 포함된 상기 특정 개인화 설정 정보를 변경하는 단계(S200)를 더 포함한다. 여기에서 특정 개인화 설정 정보라 함은, 상기 적어도 하나의 제1 개인화 설정 정보에 포함되며 상기 제1 사용자 또는 제3 자에 대하여 적용되는 것을 지칭한다.
개인화 설정 정보의 생성
도 6a 및 도 6b는 본 개시서에 따른 구조화 문서 취급 방법의 개인화 단계를 더 상세히 예시한 시퀀스 다이어그램(sequence diagram)들이고, 도 7a 내지 도 7e는 본 개시서에 따른 구조화 문서 취급 방법의 개별 단계의 이해를 돕기 위해 나타낸 도면들이다.
단계(S200)에서, 상기 제1 사용자가 상기 제1 구조화 문서의 소유자인 경우, 개인화 설정 모듈(430)은, 그 제1 사용자의 조작 또는 지시에 따라 상기 제1 사용자 자신에게 또는 상기 제1 사용자가 아닌 타인인 타 사용자에게 적용되는 개별 개인화 설정 정보를 생성할 수 있는바, 도 7a에 "개인화 설정 정보"로 예시된 바와 같다. 그 개별 개인화 설정 정보는 상기 적어도 하나의 제1 개인화 설정 정보에 포함된다.
도 6a를 참조하면, 특정 개인화 설정 정보를 생성하는 단계(S220)에서, 제1 단말(510)에 대한 상기 제1 사용자의 조작 또는 지시에 응하여, 제1 단말(510)로부터 문서 개인화 요청이 수신되면, 컴퓨팅 장치(400)의 개인화 설정 모듈(430)이, 신규의 개인화 설정 정보를 생성하여 저장소(470)에 저장한다.
개인화 설정 정보의 선택
단계(S200)에서는, 상기 제1 개인화 설정 정보에 포함된 개별 개인화 설정 정보들 중 어느 하나를 선택하는 상기 제1 사용자의 조작 또는 지시에 응하여, 개인화 설정 모듈(430)이, 선택된 상기 개별 개인화 설정 정보를 상기 제1 사용자 또는 타 사용자에게 적용할 수도 있다(S240).
도 6b를 참조하면, 제1 단말(510)에 대한 상기 제1 사용자의 조작 또는 지시에 응하여, 제1 단말(510)로부터 개인화 설정 정보의 목록 요청이 수신되면, 컴퓨팅 장치(400)의 개인화 설정 모듈(430)은, 저장소(470)로부터 개인화 설정 정보들을 인출하여 제1 단말(510)에 제공하고, 그 인출된 개인화 설정 정보들 중에서 적용하고자 하는 특정 개인화 설정 정보를 선택하는 상기 제1 사용자의 조작 또는 지시가 상기 제1 단말(510)로부터 획득되면, 개인화 설정 모듈(430)은 그 선택의 정보인 선택 정보를 저장소(470)에 저장한다.
한편, 상기 제1 사용자가 상기 제1 구조화 문서의 소유자인 경우, 개인화 설정 모듈(430)은, 그 제1 사용자의 조작 또는 지시에 따라 상기 제1 사용자가 아닌 타인인 타 사용자가 상기 적어도 하나의 제1 개인화 설정 정보 중 어느 개별 개인화 설정 정보를 이용하기 위하여 접근할 수 있는 권한을 부여 또는 박탈할 수 있다.
개인화 설정 - 위치 변경
상기 개인화 중에서 위치 변경 작동은, 어느 노드의 하위 노드들 간의 위치를 나타내는 위치 정보를 사용자의 취향에 맞게 변경하는 것을 의미한다. 상기 위치 변경 작동을 위한 입력 방식에는, 노드들의 위치 정보를 숫자로 입력하는 방식, 단말(510, 520 등) 상에 상기 노드들을 나타낸 사용자 인터페이스 요소에 대한 사용자의 조작(드래그 등)으로써 노드들 간의 상대적 위치를 입력하는 방식 등이 있을 수 있다.
개인화 설정 - 정렬
또한, 상기 개인화 중에서 정렬 작동은, 노드들 간의 상대적인 위치를 졍렬하는 작동으로서, 하나의 하위 구조의 위치가 변경되면 나머지 하위 구조가 그 위치 변경을 기초로 하여 상기 표현 방식에 맞도록 정렬되는 작동을 지칭한다.
개인화 설정 - 표시 여부 변경
그리고 상기 개인화 중에서 표시 여부 변경 작동은, 하위 구조의 표시 여부를 사용자의 취향에 따라 변경하는 작동을 의미한다.
개인화 설정에 따른 표시
계속해서, 도 4 및 도 5를 참조하면, 본 개시서의 구조화 문서 취급 방법은, 컴퓨팅 장치(400)에 의하여 구현되는 구조화 문서 표시 모듈(440)이, 상기 제1 구조화 문서를 열람하고자 하는 주체인 제2 사용자에게 그 제2 사용자가 이용하는 제2 단말(520)에 탑재되거나 포함된 소정의 디스플레이를 이용하여 상기 제1 구조화 문서에 포함된 대상 노드들을 표시하여 제공하는 단계(S400)를 더 포함할 수 있다. 단계(S400)에서, 상기 노드들은 상기 구조화 문서에 포함된 하나 이상의 특정 노드 및 상기 특정 노드이며, 상기 대상 노드들은 상기 적어도 하나의 제1 개인화 설정 정보 중 상기 제2 사용자에게 적용되는 개별 개인화 설정 정보에 기초하여 표시된다.
구체적으로, 단계(S400)에서는, 상기 제2 사용자가 이용하는 제2 단말(520)의 요청에 따라 컴퓨팅 장치(400)의 개인화 설정 모듈(430)이 상기 제2 사용자에게 적용되는 상기 제1 구조화 문서에 대한 개별 개인화 설정 정보를 저장소(470)로부터 인출하고, 구조화 문서 표시 모듈(440)이, 그 인출된 개별 개인화 설정 정보에 기초하여 상기 제2 사용자에게 상기 제1 구조화 문서를 표시해준다. 상기 제2 사용자에게 적용되는 것으로 선택된 개별 개인화 설정 정보가 없다면, 전술한 바와 같이 바탕 개인화 설정 정보(318)가 대신 이용될 수 있음은 물론이다.
예컨대, 단계(S200)에서 제1 사용자가 개인화 설정을 위한 전용의 창 또는 상기 제1 구조화 문서를 표시하는 사용자 인터페이스에 나타난 특정 하위 노드들의 순서가 서로 바뀌면, 단계(S400)에서는 그 바뀐 내용이 적용된 상태로 상기 특정 하위 노드들이 표시된다.
단계(S400)에서, 상기 개별 개인화 설정 정보 중 상기 대상 노드들에 속한 어느 노드에 대응하는 상기 위치 정보가 목록(list)을 포함하는 경우, 상기 어느 노드는 상기 목록에 따라 정해진 순서에 따라 열거될 수 있다. 도 7b에 예시된 바와 같이, 모든 대상 노드들(A, B, C)에 위치 정보가 부여되지 않고 일부 노드(B)에만 부여될 수도 있는바, 그러한 경우, 위치 정보를 가지는 노드들(B)이 우선적으로 배치된 후 나머지 노드들(A, C)이 미리 정해진 규칙, 예컨대 알파벳 또는 가나다 순서에 따라 배치되는 방식도 상정할 수 있다.
또한, 단계(S400)에서, 상기 개별 개인화 설정 정보 중 상기 대상 노드들에 속한 어느 노드에 대응하는 상기 위치 정보가 평면(plane) 정보 또는 공간(space) 정보를 포함하는 경우, 상기 어느 노드는 상기 평면 정보 또는 상기 공간 정보에 따라 상기 대상 노드들에 속한 다른 노드와 '겹치게' 또는 '겹치지 않게' 배치될 수 있다. 상기한 바와 같이 '겹치지 않게' 배치되는 경우에도, 위치 정보를 가지는 노드들이 우선적으로 배치된 후, 나머지 노드들이 미리 정해진 규칙에 따라 배치되는 방식도 가능할 것이다.
그리고 단계(S400)에서, 상기 대상 노드들은 상기 개별 개인화 설정 정보 중 상기 대상 노드들 각각에 대응하는 상기 표시 여부 정보에 따라 표시되거나 불표시될 수 있다.
예컨대, 도 7c에 예시된 바와 같이 단계(S200)에서 제1 사용자가 개인화 설정을 위한 전용의 창 또는 제1 상기 구조화 문서를 표시하는 사용자 인터페이스를 통하여 하위 노드 C를 불표시로 설정하면, 단말(510 또는 520)에는 하위 노드 C가 불표시로, 즉, 표시되지 않는 것으로 나타난다. 그러한 불표시는 여러 방식으로 구현될 수 있는데, 예컨대, 불표시 설정된 노드가 완전히 나타나지 않게 하는 방식, 도 7c에 예시된 바와 같이 불표시된 노드의 내용을 표시하지 않되 그 노드의 자리만을 나타낸 플레이스홀더(placeholder)를 보이는 방식 등이 있을 수 있다.
구조화 문서의 파생
도 4 및 도 5를 참조하면, 본 개시서의 구조화 문서 취급 방법은, 컴퓨팅 장치(400)에 의하여 구현되는 구조화 문서 파생 모듈(450)이, 상기 제1 사용자 또는 상기 제1 사용자가 아닌 제2 사용자의 조작 또는 지시에 응하여 상기 제1 구조화 문서의 상기 하나 이상의 노드와 동일한 내용의 하나 이상의 노드, 및 상기 제1 구조화 문서의 트리 구조와 동일한 트리 구조를 포함하도록 상기 구조화 문서에 해당하는 제2 구조화 문서를 생성하는 전사(transcription) 프로세스 및 상기 제2 구조화 문서로 하여금 상기 제1 구조화 문서의 제1 개인화 설정과 동일한 개인화 설정 정보인 제2 개인화 설정 정보를 가지게 하는 계승 프로세스를 수행하는 문서 파생 단계(S300)를 더 포함한다.
도 7d에 예시된 바와 같이, '파생(derive)'은 어느 구조화 문서(원본; "original"로 도시됨)를 기초로 하여 새로운 구조화 문서(파생본; "derivative"로 도시됨)를 생성함을 지칭하는 반면, '계승(inherit)'은 어느 구조화 문서의 개인화 설정 정보(원본에서 "지정된 개인화 정보")와 동일한 개인화 설정 정보(파생본의 "기본 개인화 정보")를 생성함을 지칭한다. 이와 같이 개인화 설정 정보의 계승을 문서의 파생과 별도로 다루는 이유는, 하나의 구조화 문서에 다수(예컨대 불특정 다수인)의 개인화 설정 정보가 연관될 수 있기 때문이다. 그러한 개인화 설정 정보에는 특정인에게 적용되는 특정 개인화 설정 정보뿐만 아니라 전술한 바탕 개인화 설정 정보도 포함된다.
어느 구조화 문서를 기초로 하여 새로운 구조화 문서를 생성함을 지칭하는 '파생'에 있어서, 원본인 구조화 문서와 그로부터 파생에 의하여 생성된 구조화 문서, 즉, 파생본은 상이한 구조를 가질 수 있다. 문서의 파생은 전사(transcribe)를 통하여 이루어지며, 상기 전사는 원본과 파생본이 서로 공유하는 구조(노드들) 및 값(노드들의 내용)만을 윈본으로부터 파생본에 반영하는 방식으로 수행된다. 도 7d에 개념적으로 도시된 바와 같이 원본과 파생본 사이에는 파생 관계(derivative relation)라는 문서 관계가 성립하는바, 그 파생 관계는 상기 원본에 관한 (값 또는 참조의) 정보와 상기 파생본에 관한 (값 또는 참조의) 정보를 포함하는 하나의 레코드(record)로서 저장소(470)에 기록될 수 있다.
구조화 문서의 파생은 그 구조화 문서의 개인화 설정 정보의 계승도 수반하며, 계승의 대상이 되는 개인화 설정 정보에는 적어도 바탕 개인화 설정 정보가 포함된다.
어느 구조화 문서의 개인화 설정 정보와 동일한 정보를 가진 신규한 구조화 문서를 생성하는 '계승'은, 어느 특정 개인화 설정 정보에 기초하여 신규의 개인화 설정 정보를 생성하는 것이다. 원본과 파생본의 관계와 같이, 원본인 개인화 설정 정보와 그로부터 계승에 의하여 생성된 개인화 설정 정보, 즉, 계승본은 상이한 데이터 구조를 가질 수 있다. 개인화 설정 정보의 계승도 상기 전사를 통하여 이루어지며, 도 7d에 개념적으로 도시된 바와 같이 원본과 계승본 사이에는 계승 관계(inheritance relation)라는 문서 관계가 성립하는바, 그 계승 관계는 상기 원본에 관한 (값 또는 참조의) 정보와 상기 계승본에 관한 (값 또는 참조의) 정보를 포함하는 하나의 레코드(record)로서 저장소(470)에 기록될 수 있다.
구조화 문서의 초기화
한편, 상기 구조화 문서는 상기 구조화 문서에 대한 변경 이력을 나타낸 변경 이력 정보를 포함할 수 있다. 그러한 경우, 본 개시서의 구조화 문서 취급 방법은, 도 4 및 도 5에 예시된 바와 같이, 컴퓨팅 장치(400)에 의하여 구현되는 구조화 문서 초기화 모듈(460)이, 상기 제2 구조화 문서의 상기 변경 이력 정보를 유지한 채, 상기 제2 구조화 문서에 포함된 노드들로서 상기 제1 구조화 문서에도 포함된 모든 노드들의 내용을 대응하는 상기 제1 구조화 문서의 노드들의 내용으로 변경하는 프로세스 및 상기 제2 개인화 설정 정보의 내용을 상기 제1 개인화 설정 정보의 내용으로 변경하는 프로세스를 수행하는 단계인, 초기화 단계(S500)를 더 포함할 수 있다. 이는 도 7e에 예시되고 개념적으로 나타난 바와 같이 상기 파생 관계(derivative relation)의 레코드 및 상기 계승 관계(inheritance relation)의 레코드에 기록된 원본(original)에 관한 정보를 이용하여 상기 원본의 값 또는 참조(value or reference)을 획득함으로써 수행될 수 있다.
기타
한편, 본 개시서의 구조화 문서 취급 방법을 실현하기 위하여 요구되는 타 기능들은 앞서 설명된 내용을 참고한 통상의 기술자에게 쉽게 도출될 것인바, 본 개시서에 의하여 제시된 발명의 본질이 그러한 지엽적인 사항의 지나친 서술로 흐려지지 않도록 구조화 문서의 취급에 이용될 수 있는 기타 기능들의 더 상세한 설명은 생략하기로 한다.
이상에서 전술한 바와 같은 본 개시서의 구조화 문서 취급 방법에 있어서 여러 단계들 간에는 논리적으로 필연적이지 않는 한 그 선후가 뒤바뀔 수 있음이 통상의 기술자에게 이해될 것이다. 즉, 위 설명에도 불구하고 통상의 기술자는 논리적 당위성이 개입하는 경우가 아닌 이상 전술된 모든 단계들이 그 단계를 지칭하기 위해 나타낸 숫자의 대소에 관계없이 서로 바뀔 수 있음을 이해할 것이다.
또한, 본 개시서에 의한 구조화 문서의 생성, 파생, 개인화 등의 단계들은 1회 수행될 수도 있으나 계속적으로 사용자의 조작에 의하여 촉발됨으로써 간헐적으로 또는 반복적으로 수행될 수도 있다.
본 발명에 의하면, 구조화된 문서 및 그로부터 파생된 신규 문서의 배치, 표시 등에 관한 개인화된 설정이 간편해져 구조화된 문서를 이용하는 여러 사용자의 편의성이 향상되는 효과가 있다.
이상, 본 개시서의 다양한 실시 예들에 관한 설명에 기초하여 해당 기술분야의 통상의 기술자는, 본 발명의 방법 및/또는 프로세스들, 그리고 그 단계들이 하드웨어, 소프트웨어 또는 특정 용례에 적합한 하드웨어 및 소프트웨어의 임의의 조합으로 실현될 수 있다는 점을 명확하게 이해할 수 있다.
또한, 본 개시서를 읽은 오늘날의 통상의 기술자는 여러 단말들을 통하여 제공될 수 있는 다양한 사용자 인터페이스에 익숙한바, 본 개시서에서 설명된 방법들을 이루는 개별 단계들에서 언급된 사용자 인터페이스 구성에 관한 세부 설명 없이도 통상의 기술자는 본 개시서에 설명된 방법에서 사용자의 조작으로써 요구되는 종류의 외부 입력을 가능하게 하는 다양한 사용자 인터페이스를 쉽게 상정할 수 있을 것이다.
상기 하드웨어는 범용 컴퓨터 및/또는 전용 컴퓨팅 장치 또는 특정 컴퓨팅 장치 또는 특정 컴퓨팅 장치의 특별한 모습 또는 구성요소를 포함할 수 있다. 상기 프로세스들은 내부 및/또는 외부 메모리를 가지는, 하나 이상의 프로세서, 예컨대, 마이크로프로세서, 컨트롤러, 예컨대, 마이크로컨트롤러, 임베디드 마이크로컨트롤러, 마이크로컴퓨터, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 예컨대, 프로그래머블 디지털 신호 프로세서 또는 기타 프로그래머블 장치에 의하여 실현될 수 있다. 게다가, 혹은 대안으로서, 상기 프로세스들은 주문형 집적회로(application specific integrated circuit; ASIC), 프로그래머블 게이트 어레이(programmable gate array), 예컨대, FPGA(field programmable gate array), PLU(programmable logic unit) 혹은 프로그래머블 어레이 로직(Programmable Array Logic; PAL) 또는 기타 명령어(instruction)를 실행하고 응답할 수 있는 임의의 다른 장치, 전자 신호들을 처리하기 위해 구성될 수 있는 임의의 다른 장치 또는 장치들의 조합으로 실시될 수 있다. 처리 장치는 운영 체제 및 상기 운영 체제 상에서 수행되는 하나 이상의 소프트웨어 애플리케이션을 수행할 수 있다. 또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다. 이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 해당 기술분야에서 통상의 지식을 가진 자는, 처리 장치가 복수 개의 처리 요소(processing element) 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다. 예를 들어, 처리 장치는 복수 개의 프로세서 또는 하나의 프로세서 및 하나의 컨트롤러를 포함할 수 있다. 또한, 병렬 프로세서(parallel processor)와 같은, 다른 처리 구성(processing configuration)도 가능하다.
소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령어(instruction; 인스트럭션), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치에 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령어 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치, 또는 전송되는 신호 파(signal wave)에 영구적으로, 또는 일시적으로 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 기계 판독 가능 기록 매체에 저장될 수 있다.
더욱이 본 발명의 기술적 해법의 대상물 또는 선행 기술들에 기여하는 부분들은 다양한 컴퓨터 구성요소를 통하여 수행될 수 있는 프로그램 명령어의 형태로 구현되어 기계 판독 가능 매체에 기록될 수 있다. 기계 판독 가능 매체는 프로그램 명령어, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 기계 판독 가능한 기록 매체에 기록되는 프로그램 명령어는 실시 예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 분야의 통상의 기술자에게 공지되어 사용 가능한 것일 수도 있다. 기계 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD, Blu-ray와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령어를 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령어의 예에는, 전술한 장치들 중 어느 하나뿐만 아니라 프로세서, 프로세서 아키텍처 또는 상이한 하드웨어 및 소프트웨어의 조합들의 이종 조합, 또는 다른 어떤 프로그램 명령어들을 실행할 수 있는 기계 상에서 실행되기 위하여 저장 및 컴파일 또는 인터프리트될 수 있는, C와 같은 구조적 프로그래밍 언어, C++ 같은 객체지향적 프로그래밍 언어 또는 고급 또는 저급 프로그래밍 언어(어셈블리어, 하드웨어 기술 언어들 및 데이터베이스 프로그래밍 언어 및 기술들)를 사용하여 만들어질 수 있는 바, 기계어 코드, 바이트코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드도 이에 포함된다.
따라서 본 발명에 따른 일 태양에서는, 앞서 설명된 방법 및 그 조합들이 하나 이상의 컴퓨팅 장치들에 의하여 수행될 때, 그 방법 및 방법의 조합들이 각 단계들을 수행하는 실행 가능한 코드로서 실시될 수 있다. 다른 일 태양에서는, 상기 방법은 상기 단계들을 수행하는 시스템들로서 실시될 수 있고, 방법들은 장치들에 걸쳐 여러 가지 방법으로 분산되거나 모든 기능들이 하나의 전용, 독립형 장치 또는 다른 하드웨어에 통합될 수 있다. 또 다른 일 태양에서는, 위에서 설명한 프로세스들과 연관된 단계들을 수행하는 수단들은 앞서 설명한 임의의 하드웨어 및/또는 소프트웨어를 포함할 수 있다. 그러한 모든 순차 결합 및 조합들은 본 개시서의 범위 내에 속하도록 의도된 것이다.
예를 들어, 상기된 하드웨어 장치는 실시 예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다. 상기 하드웨어 장치는, 프로그램 명령어를 저장하기 위한 ROM/RAM 등과 같은 메모리와 결합되고 상기 메모리에 저장된 명령어들을 실행하도록 구성되는 MPU, CPU, GPU, TPU와 같은 프로세서를 포함할 수 있으며, 외부 장치와 신호를 주고받을 수 있는 통신부를 포함할 수 있다. 덧붙여, 상기 하드웨어 장치는 개발자들에 의하여 작성된 명령어들을 전달받기 위한 키보드, 마우스, 기타 외부 입력 장치를 포함할 수 있다.
이상에서 본 발명이 구체적인 구성요소 등과 같은 특정 사항들과 한정된 실시 예 및 도면에 의해 설명되었으나, 이는 본 발명의 보다 전반적인 이해를 돕기 위해서 제공된 것일 뿐, 본 발명이 상기 실시 예들에 한정되는 것은 아니며, 본 발명이 속하는 기술분야에서 통상적인 지식을 가진 사람이라면 이러한 기재로부터 다양한 수정 및 변형을 꾀할 수 있다.
따라서, 본 발명의 사상은 상기 설명된 실시 예에 국한되어 정해져서는 아니되며, 본 개시서에 첨부된 특허청구범위뿐만 아니라 이 특허청구범위와 균등하게 또는 등가적으로 변형된 모든 것들은 본 발명의 사상의 범주에 속한다고 할 것이다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.
그와 같이 균등하게 또는 등가적으로 변형된 것에는, 예컨대 본 발명에 따른 방법을 실시한 것과 동일한 결과를 낼 수 있는, 논리적으로 동치(logically equivalent)인 방법이 포함될 것인 바, 본 발명의 진의 및 범위는 전술한 예시들에 의하여 제한되어서는 아니되며, 법률에 의하여 허용 가능한 가장 넓은 의미로 이해되어야 한다.

Claims (11)

  1. 구조화 문서를 취급하는 방법으로서,
    상기 구조화 문서는, 부모 노드와 자식 노드 간의 관계(relation)로써 트리 구조를 이루는 하나 이상의 노드, 및 상기 노드 각각에 대하여 다른 노드에 대한 상대적인 위치를 나타낸 위치 정보 및 상기 노드 각각의 표시 여부를 나타낸 표시 여부 정보를 포함한 적어도 하나의 개인화 설정 정보를 포함하며,
    상기 방법은,
    (a) 컴퓨팅 장치가, 상기 구조화 문서에 해당하며 적어도 하나의 제1 개인화 설정 정보를 포함하는 제1 구조화 문서를 생성하는 단계;
    (b) 상기 제1 구조화 문서가 2 이상의 노드들을 포함하는 경우, 제1 사용자의 조작 또는 지시에 응하여, 상기 컴퓨팅 장치가, (i) 상기 노드들 중 하나의 상대적인 위치를 변경하는 작동인, 위치 변경 작동(operation), (ii) 상기 노드들의 상대적인 위치를 정렬하는 작동인, 정렬 작동, 및 (iii) 상기 노드들 중 적어도 하나의 표시 여부 정보를 변경하는 작동인, 표시 여부 변경 작동 중 하나의 작동을 수행함으로써 상기 적어도 하나의 제1 개인화 설정 정보에 포함되는 특정 개인화 설정 정보를 생성하거나 상기 적어도 하나의 제1 개인화 설정 정보에 기 포함된 상기 특정 개인화 설정 정보를 변경하는, 단계; 및
    (c) 상기 제1 사용자 또는 제2 사용자의 조작 또는 지시에 응하여, 컴퓨팅 장치가, 상기 제1 구조화 문서의 상기 하나 이상의 노드와 동일한 내용의 하나 이상의 노드, 및 상기 제1 구조화 문서의 트리 구조와 동일한 트리 구조를 포함하도록 상기 구조화 문서에 해당하는 제2 구조화 문서를 생성하는 전사(transcription) 프로세스 및 상기 제2 구조화 문서로 하여금 상기 제1 구조화 문서의 제1 개인화 설정과 동일한 개인화 설정 정보인 제2 개인화 설정 정보를 가지게 하는 계승 프로세스를 수행하는 문서 파생 단계
    를 포함하는 구조화 문서 취급 방법.
  2. 제1항에 있어서,
    상기 방법은,
    (d) 상기 제1 구조화 문서에 포함된 대상 노드들을 상기 제2 사용자에게 표시하는 단계로서, 상기 노드들은 상기 구조화 문서에 포함된 하나 이상의 특정 노드 및 상기 특정 노드이며, 상기 대상 노드들은 상기 적어도 하나의 제1 개인화 설정 정보 중 상기 제2 사용자에게 적용되는 개별 개인화 설정 정보에 기초하여 표시되는, 단계;
    를 더 포함하는, 구조화 문서 취급 방법.
  3. 제2항에 있어서,
    상기 (d) 단계에서,
    상기 개별 개인화 설정 정보 중 상기 대상 노드들에 속한 어느 노드에 대응하는 상기 위치 정보가 목록(list)을 포함하는 경우, 상기 어느 노드는 상기 목록에 따라 정해진 순서에 따라 열거되고,
    상기 개별 개인화 설정 정보 중 상기 대상 노드들에 속한 어느 노드에 대응하는 상기 위치 정보가 평면(plane) 정보 또는 공간(space) 정보를 포함하는 경우, 상기 어느 노드는 상기 평면 정보 또는 상기 공간 정보에 따라 상기 대상 노드들에 속한 다른 노드와 겹치게 또는 겹치지 않게 배치되는 것을 특징으로 하는, 구조화 문서 취급 방법.
  4. 제2항에 있어서,
    상기 (d) 단계에서,
    상기 대상 노드들은 상기 개별 개인화 설정 정보 중 상기 대상 노드들 각각에 대응하는 상기 표시 여부 정보에 따라 표시되거나 불표시되는 것을 특징으로 하는, 구조화 문서 취급 방법.
  5. 제1항에 있어서,
    상기 하나 이상의 노드 중 일 노드가 하나 이상의 자식 노드를 가지는 경우, 상기 일 노드는 상기 하나 이상의 상기 자식 노드의 유형(type) 및 상기 자식 노드의 식별 정보(identification)를 포함하거나 상기 유형 및 상기 식별 정보에 대한 참조 정보(reference)를 포함하는, 구조화 문서 취급 방법.
  6. 제1항에 있어서,
    상기 구조화 문서의 상기 개인화 설정 정보는 상기 구조화 문서의 소유자의 정보를 포함하는, 구조화 문서 취급 방법.
  7. 제6항에 있어서,
    상기 (b) 단계는,
    (b1) 상기 제1 사용자가 상기 제1 구조화 문서의 소유자인 경우, 상기 적어도 하나의 제1 개인화 설정 정보에 포함되며 타 사용자에게 적용되는 개별 개인화 설정 정보를 생성하는 단계
    를 더 포함하는, 구조화 문서 취급 방법.
  8. 제6항에 있어서,
    상기 (b) 단계는,
    (b2) 상기 제1 사용자가 상기 제1 구조화 문서의 소유자인 경우, 상기 적어도 하나의 제1 개인화 설정 정보 중 어느 개별 개인화 설정 정보에 대한 타 사용자의 접근 권한을 부여하는 단계
    를 더 포함하는, 구조화 문서 취급 방법.
  9. 제1항에 있어서,
    상기 구조화 문서는 상기 구조화 문서에 대한 변경 이력을 나타낸 변경 이력 정보를 포함하며,
    상기 방법은,
    (e) 상기 제2 구조화 문서의 상기 변경 이력 정보를 유지한 채, 상기 제2 구조화 문서에 포함된 노드들로서 상기 제1 구조화 문서에도 포함된 모든 노드들의 내용을 대응하는 상기 제1 구조화 문서의 노드들의 내용으로 변경하는 프로세스 및 상기 제2 개인화 설정 정보의 내용을 상기 제1 개인화 설정 정보의 내용으로 변경하는 프로세스를 수행하는 단계인, 초기화 단계
    를 더 포함하는, 구조화 문서 취급 방법.
  10. 컴퓨팅 장치로 하여금, 제1항 내지 제9항 중 어느 한 항의 방법을 수행하도록 구현된 명령어(instructions)를 포함하는, 기계 판독 가능한 기록 매체에 저장된, 컴퓨터 프로그램.
  11. 구조화 문서를 취급하는 컴퓨팅 장치에 있어서,
    상기 구조화 문서는, 부모 노드와 자식 노드 간의 관계(relation)로써 트리 구조를 이루는 하나 이상의 노드, 및 상기 노드 각각에 대하여 다른 노드에 대한 상대적인 위치를 나타낸 위치 정보 및 상기 노드 각각의 표시 여부를 나타낸 표시 여부 정보를 포함한 적어도 하나의 개인화 설정 정보를 포함하며,
    상기 컴퓨팅 장치는,
    사용자의 조작 또는 지시를 수신하는 통신부; 및
    상기 구조화 문서에 해당하며 적어도 하나의 제1 개인화 설정 정보를 포함하는 제1 구조화 문서를 생성하는 문서 생성 프로세스, 상기 제1 구조화 문서가 2 이상의 노드들을 포함하는 경우, 상기 통신부를 통하여 수신된 제1 사용자의 조작 또는 지시에 응하여, (i) 상기 노드들 중 하나의 상대적인 위치를 변경하는 작동인, 위치 변경 작동(operation), (ii) 상기 노드들의 상대적인 위치를 정렬하는 작동인, 정렬 작동, 및 (iii) 상기 노드들 중 적어도 하나의 표시 여부 정보를 변경하는 작동인, 표시 여부 변경 작동 중 하나의 작동을 수행함으로써 상기 적어도 하나의 제1 개인화 설정 정보에 포함되는 특정 개인화 설정 정보를 생성하거나 상기 적어도 하나의 제1 개인화 설정 정보에 기 포함된 상기 특정 개인화 설정 정보를 변경하는, 개인화 설정 프로세스, 및 상기 제1 사용자 또는 제2 사용자의 조작 또는 지시에 응하여, 상기 제1 구조화 문서의 상기 하나 이상의 노드와 동일한 내용의 하나 이상의 노드, 및 상기 제1 구조화 문서의 트리 구조와 동일한 트리 구조를 포함하도록 상기 구조화 문서에 해당하는 제2 구조화 문서를 생성하는 전사(transcription) 프로세스 및 상기 제2 구조화 문서로 하여금 상기 제1 구조화 문서의 제1 개인화 설정과 동일한 개인화 설정 정보인 제2 개인화 설정 정보를 가지게 하는 계승 프로세스를 수행하는 문서 파생 프로세스를 수행하는, 프로세서
    를 포함하는 구조화 문서 취급 장치.
KR1020230042997A 2023-03-31 2023-03-31 구조화 문서를 취급하는 방법 및 이를 이용한 장치 KR102563900B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020230042997A KR102563900B1 (ko) 2023-03-31 2023-03-31 구조화 문서를 취급하는 방법 및 이를 이용한 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020230042997A KR102563900B1 (ko) 2023-03-31 2023-03-31 구조화 문서를 취급하는 방법 및 이를 이용한 장치

Publications (1)

Publication Number Publication Date
KR102563900B1 true KR102563900B1 (ko) 2023-08-09

Family

ID=87567001

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020230042997A KR102563900B1 (ko) 2023-03-31 2023-03-31 구조화 문서를 취급하는 방법 및 이를 이용한 장치

Country Status (1)

Country Link
KR (1) KR102563900B1 (ko)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20110112397A (ko) * 2009-01-02 2011-10-12 애플 인크. 문서 재구조화를 위한 방법 및 시스템
KR101734418B1 (ko) * 2015-10-30 2017-05-25 (주)씽크포비엘 소프트웨어 위험분석 방법 및 장치
KR102392880B1 (ko) * 2021-09-06 2022-05-02 (주) 바우디움 계층화 문서를 관리하는 방법 및 이를 이용한 장치
KR102411582B1 (ko) * 2021-09-30 2022-06-22 (주) 바우디움 문서에 대한 기여도를 산정하는 방법 및 이를 이용한 장치
KR102418298B1 (ko) 2022-01-06 2022-07-07 (주) 바우디움 구조화 문서에 기반하여 사용자의 계획을 관리하는 방법 및 이를 이용한 장치

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20110112397A (ko) * 2009-01-02 2011-10-12 애플 인크. 문서 재구조화를 위한 방법 및 시스템
KR101734418B1 (ko) * 2015-10-30 2017-05-25 (주)씽크포비엘 소프트웨어 위험분석 방법 및 장치
KR102392880B1 (ko) * 2021-09-06 2022-05-02 (주) 바우디움 계층화 문서를 관리하는 방법 및 이를 이용한 장치
KR102411582B1 (ko) * 2021-09-30 2022-06-22 (주) 바우디움 문서에 대한 기여도를 산정하는 방법 및 이를 이용한 장치
KR102418298B1 (ko) 2022-01-06 2022-07-07 (주) 바우디움 구조화 문서에 기반하여 사용자의 계획을 관리하는 방법 및 이를 이용한 장치

Similar Documents

Publication Publication Date Title
CN107820701B (zh) 开发者交换系统
US8856741B2 (en) Just in time component mapping
JP6328140B2 (ja) コンテキスチュアルダッシュボードの選択を構成する方法およびシステム
EP3000033B1 (en) Bundling file permissions for sharing files
CA3039009C (en) A method and system for providing and executing web applications
US20150113503A1 (en) Selectively enabling runtime editing of an application
WO2014153478A1 (en) Detecting serialization scheme used in software applications
JP7096762B2 (ja) コントロールを使用して汎用プログラムを構成する技法
WO2018152111A1 (en) System for creating data-connected applications
EP1769338A1 (en) Automated creation of web gui for xml servers
KR20110070982A (ko) 리소스 지향 프로그램을 시각적으로 모델링, 디버깅 및 실행하는 대화형 디자인 환경
CN112136101A (zh) 为用户界面和动画提供应用程序编程接口的框架
US20150242389A1 (en) Techniques to identify user interface elements associated with model violation events
WO2017139178A1 (en) Effecting multi-step operations in an application in response to direct manipulation of a selected object
CN109074372A (zh) 使用拖放来应用元数据
KR102563900B1 (ko) 구조화 문서를 취급하는 방법 및 이를 이용한 장치
KR102392223B1 (ko) 절차의 구조를 입출력하는 방법 및 이를 이용한 장치
KR102385792B1 (ko) 안내 문서, 행위 문서 및 제안 문서를 관리하는 방법 및 이를 이용한 장치
KR102381539B1 (ko) 구조화 문서에 포함된 자원들에 관한 권한을 관리하는 방법 및 이를 이용한 장치
KR102412088B1 (ko) 상태 기계에 의하여 작업의 진행 상황을 관리하는 방법 및 이를 이용한 장치
KR102407246B1 (ko) 구직 또는 채용을 위한 데이터의 수집을 보조하는 방법 및 이를 이용한 컴퓨팅 장치
US20190332251A1 (en) Graphical user interface magnetic panel
CN107924574A (zh) 针对分组对象的智能翻转操作
CN109299424A (zh) 一种基于富文本提供响应事件的方法、装置和计算机记录介质
EP2972666B1 (en) Visualization interface for information object system

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant