KR101254544B1 - 배열의 생성방법 및 이를 실행하는 컴퓨터 프로그램을 수록한 기록 매체 - Google Patents

배열의 생성방법 및 이를 실행하는 컴퓨터 프로그램을 수록한 기록 매체 Download PDF

Info

Publication number
KR101254544B1
KR101254544B1 KR1020077005216A KR20077005216A KR101254544B1 KR 101254544 B1 KR101254544 B1 KR 101254544B1 KR 1020077005216 A KR1020077005216 A KR 1020077005216A KR 20077005216 A KR20077005216 A KR 20077005216A KR 101254544 B1 KR101254544 B1 KR 101254544B1
Authority
KR
South Korea
Prior art keywords
node
nodes
vertex
array
root
Prior art date
Application number
KR1020077005216A
Other languages
English (en)
Other versions
KR20070057819A (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 KR20070057819A publication Critical patent/KR20070057819A/ko
Application granted granted Critical
Publication of KR101254544B1 publication Critical patent/KR101254544B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures
    • G06F16/9027Trees
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files
    • GPHYSICS
    • G16INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
    • G16BBIOINFORMATICS, i.e. INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR GENETIC OR PROTEIN-RELATED DATA PROCESSING IN COMPUTATIONAL MOLECULAR BIOLOGY
    • G16B10/00ICT specially adapted for evolutionary bioinformatics, e.g. phylogenetic tree construction or analysis

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Animal Behavior & Ethology (AREA)
  • Biophysics (AREA)
  • Physiology (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Biotechnology (AREA)
  • Evolutionary Biology (AREA)
  • General Health & Medical Sciences (AREA)
  • Medical Informatics (AREA)
  • Spectroscopy & Molecular Physics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

트리형 데이터구조의 데이터 간의, 예컨대, 친자, 선조, 자손, 형제, 세대 등의 관계를 효율적으로 트레이스할 수 있는 트리형 데이터구조의 표현방법을 제공한다. 메모리에는, 노드에 고유의 노드 식별자가 부여되고, 노드 간의 친자관계가 루트 노드 이외의 노드인 비루트 노드 각각에 부여된 노드 식별자와 비루트 노드 각각에 관련된 부모 노드의 노드 식별자의 세트로 이루어지는 C-P 배열에 의해 표현된 트리형 데이터구조의 데이터와, 각각이 특정의 노드 및 그 자손의 노드를 포함하는 1이상의 노드군을 나타내기 위해, 특정의 노드를 정점 노드로 하여, 그 노드 식별자를 저장한 정점 노드 리스트가 포함된다. 시스템(10)은, C-P 배열을 참조하여, 정점 노드 각각을, 자식 노드, 부모 노드 또는 정점 노드와 동세대의 노드(형 노드 또는 동생 노드)로 이동시켜, 새로운 정점 노드 리스트를 생성한다.

Description

배열의 생성방법 및 이를 실행하는 컴퓨터 프로그램을 수록한 기록 매체{ARRANGEMENT GENERATION METHOD AND RECORDING MEDIUM STORING COMPUTER PROGRAM FOR EXCUTING THE SAME}
본 발명은 트리형 데이터구조를 나타내는 배열의 생성방법, 특히, 트리형 데이터구조를 표현하고, 기억장치상에 구축하는 방법에 관한 것이다. 또한, 본 발명은, 이러한 방법을 실시하는 정보처리장치에 관한 것이다. 또한, 본 발명은, 이러한 방법을 실행하기 위한 프로그램에 관한 것이다.
데이터베이스는 여러가지의 용도에 이용되고 있지만, 중규모 또는 대규모 시스템에 있어서는, 논리적인 모순을 배제할 수 있는 관계형 데이터베이스(RDB)의 사용이 주류로 되고 있다. 예컨대, RDB는 비행기의 좌석예약 등의 시스템에 이용되고 있다. 이 경우, 키 항목을 지정함으로써, (많은 경우 1건의) 타깃을 신속하게 검색할 수도 있고, 또는, 예약의 확정, 캔슬 또는 변경 등을 행할 수 있다. 또한, 각 편의 좌석수는 기껏 수백이기 때문에, 특정의 항공편의 공석수를 구하는 것도 가능하다.
이와 같은 RDB는, 표형식 데이터의 취급에 적합하지만, 트리 형식 데이터의 취급에는 적합하지 않는 것이 알려져 있다(예컨대, 비특허문헌 1을 참조.).
또한, 어플리케이션의 중에는, 표형식에 의한 표현보다 트리 형식에 의한 표 현쪽이 적합한 것이 존재한다. 특히, 최근, 인트라넷이나 인터넷의 어플리케이션의 데이터 표준으로서, 트리형 데이터구조를 채용하는 XML이 보급되어 있다(XML의 상세에 대해서는, 예컨대, 비특허문헌 2를 참조.).
그러나, 트리형 데이터구조의 취급, 예컨대, 트리 형식 데이터의 검색은, 일반적으로, 매우 효율이 나쁘다. 이 효율의 나쁨의 제1이유는, 데이터가 각 처의 노드에 분산되어 존재하기 때문에, 데이터가 존재해야 할 장소를 즉시 특정하는 것이 곤란한 점에 있다. RDB에서는, 예컨대, 「연령」이라는 데이터는, 소정 테이블의 「연령」이라는 항목에만 저장되어 있다. 그러나, 트리형 데이터구조에서는, 「연령」이라는 데이터를 유지하는 노드가 각 처에 산재되어 있으므로, 일반적으로는, 트리형 데이터구조의 전체를 조사하지 않으면, 해당되는 데이터를 검색할 수 없다.
효율의 나쁨의 제2이유는, 검색의 결과를 표현하기 위해서 시간이 걸린다는 점에 있다. 검색에 히트한 노드군을 표현하려고 하면, 자주, 그 노드의 자손에 맞는 노드도 표현해야만 하지만, RDBMS와는 달리 데이터구조가 비정형이기 때문에, 자손 노드를 표현하기 위해 시간이 걸린다.
그래서, 데이터베이스의 주류인 RDB의 이점을 살리기 위해서, 종래, 트리형 데이터구조를 데이터베이스화할 때, 트리 형식 데이터를 RDB화하는 방법(예컨대, 특허문헌 1을 참조.)이 제안되어 있다. RDB에서는, 데이터는 테이블(표)로 분해하여 유지된다. 그 때문에, 실제의 트리 형식 데이터를 RDB화하기 위해서는, 트리 형식 데이터를 테이블에 넣을 필요가 있다. 그러나, 여러가지의 트리형 데이터구조를 취급하기 위해서는, 그 구조마다 개별적으로 데이터를 테이블에 넣고, 시스템 설계 를 행해야만 한다. 따라서, RDB에 기초하는 시스템 구축은 매우 수고가 든다는 작업이다.
이것에 대해서, 트리 형식 데이터, 특히, XML 데이터를 그대로의 형태로 데이터베이스화하는 방법도 제안되어 있다. 트리형 데이터구조의 경우, 1개의 노드에 자손 노드를 매달 수 있어, 다양한 표현이 가능하므로, 시스템 설계의 수고를 대폭적으로 삭감할 수 있다. 따라서, XML과 같은 트리구조를 취급할 수 있는 기술을 핵심으로 하여, 트리구조 데이터를 처리하는 것에의 요구가 높아지고 있다.
XML 데이터를 그대로의 형태로 데이터베이스화하는 방법의 일례의 어프로치는, 트리구조에 기입되어 있는 데이터의 카피를 취출하고, 예컨대, 「연령」이라는 항목이면, 「연령」의 검색용 인덱스 데이터를 별도 유지한다(예컨대, 특허문헌 2를 참조.). 이것에 의해, 데이터 자신에 속성을 부가할 수 있다는 XML 데이터의 장점을 충분하게 활용함과 아울러, 태그를 이용하여 표현된 각 항목의 관계 구조를 그대로 기억할 수 있도록 하고 있다.
[특허문헌1] 일본 특허공개 2003-248615호 공보
[특허문헌2] 일본 특허공개 2001-195406호 공보
[비특허문헌1] 주식회사 섹, "Karearea White Paper", [online], [2004년 2월 19일 검색], 인터넷 <URL:http://www.sec.co.jp/products/karearea/>
[비특허문헌 2] W3C, "Extensible Markup Language(XML)1.0(ThirdEdition)", [online], 2004년 2월 4일, [2004년 2월 19일 검색], 인터넷 <URL:http://www.w3.org/TR/2004/REC-xml-20040204/>
그러나, 검색용 인덱스 데이터를 별도 유지하는 어프로치에서는, 적어도 데이터는 2중으로 유지되고, 또한, 인덱스를 작성하는 비용 및 인덱스를 저장하기 위한 데이터 영역이 필요하게 되어, 대규모의 데이터를 유지함에 있어서 불리하다.
실제로, 이러한 메커니즘에 의해서, 실제로 검색을 행하고, 노드를 특정했더라도, 그 노드를 표현하기 위해서는 시간이 걸린다. 또한, 이 메커니즘은, 노드 간의 관계를 문제로 하는 검색(예컨대, 선조에 「60세」라는 「연령」을 포함하고, 자손에 「1세」라는 「연령」을 포함하는 트리의 추출)에는 이용할 수 없다.
이러한 종래기술의 근본적인 문제점은, 개개의 데이터에만 착안하고, 데이터를 축적한 노드 간을 포인터에서 접속함으로써 트리형 데이터구조가 표현되어 있기 때문에, 데이터 간의 관계, 예컨대, 친자, 선조, 자손, 형제, 세대 등의 관계를 효율적으로 트레이스할 수 없는 것에 있다. 바꾸어 말하면, 포인터는, 그 값이 일정하지 않기 때문에, 데이터의 저장 어드레스를 나타낸다는 용도에밖에 사용할 수 없어, 노드 간의 관계를 직접적으로 표현할 수 없다.
그래서, 본 발명은, 트리형 데이터구조의 데이터 간의 관계를 효율적으로 트레이스할 수 있는 트리형 데이터구조의 표현, 및, 구축에 관한 방법의 제공을 목적으로 한다.
또한, 본 발명은, 트리형 데이터구조의 데이터 간의 관계를 효율적으로 트레이스할 수 있는 트리형 데이터구조의 구축에 관한 정보처리장치의 제공을 목적으로 한다.
또한, 본 발명은, 트리형 데이터구조의 데이터 간의 관계를 효율적으로 트레이스할 수 있는 트리형 데이터구조의 표현, 및, 구축에 관한 프로그램의 제공을 목적으로 한다.
또한, 트리형 데이터구조를 취급할 때에는, 로케이션 패스를 찾아 가는 기준점이 되는, 정점이 되는 노드(정점 노드)를 이동시킬 필요도 생긴다. 그래서, 특히, 본 발명은, 트리형 데이터구조에 있어서의 정점 노드를 이동시키는 방법, 정보처리장치 및 프로그램을 제공하는 것을 목적으로 한다.
본 발명의 목적은, 노드에 고유의 노드 식별자가 부여되고, 노드 간의 친자관계가 루트 노드 이외의 노드인 비루트 노드 각각에 부여된 노드 식별자에 관련된 부모 노드의 노드 식별자로 이루어지는 제1배열에 의해 표현된, 트리형 데이터구조의 데이터를 구비한 컴퓨터에 있어서,
각각이 특정의 노드 및 그 자손의 노드를 포함하는 1이상의 노드군을 나타내기 위해서, 상기 특정의 노드를 정점 노드로 하여, 그 노드 식별자를 저장한 제2배열을 설치하는 스텝과,
상기 제1배열을 참조하여, 상기 제2배열에 노드 식별자가 저장된 정점 노드 각각을,
a) 상기 정점 노드와 아크에서 직접 연결되고, 또한, 상기 아크가 정점 노드로부터 연장되는 자식 노드,
b) 상기 정점 노드와 아크에서 직접 연결되고, 또한, 상기 아크가 거기에서부터 정점 노드까지 연장되는 부모 노드,
c) 상기 정점 노드와 동세대의 노드로서, 상기 정점 노드의 부모 노드로부터 정점 노드에 대하여 아크가 접속되기 이전에, 아크가 접속되어 있는 형 노드, 및,
d) 상기 정점 노드와 동세대의 노드로서, 상기 정점 노드의 부모 노드로부터 정점 노드에 대하여 아크가 접속된 후에, 아크가 접속되는 동생 노드
중 어느 하나로 이동시켜서, 이동 후의 새로운 정점 노드의 노드 식별자를 저장한 제3배열을 생성하는 스텝을 구비한 것을 특징으로 하는 배열의 생성방법에 의해 달성된다.
본 발명에 있어서, 새로운 제3배열에는, 이동 전의 정점 노드와 소정의 관계에 있는 노드, 즉, 부모 노드, 자식 노드, 형 노드 또는 동생 노드 중 어느 하나의 노드 식별자가, 이동 후의 정점 노드의 노드 식별자로서 저장된다. 이것에 의해, 로케이션 패스를 찾아 가는 기준점을 적절하게 변경할 수 있어, 트리형 데이터구조의 데이터의 트레이스 등을 용이하게 할 수 있다.
바람직한 실시형태에 있어서는, 자식 노드보다 동일 세대의 노드를 우선하여, 루트 노드를 포함하는 노드에 고유의 연속되는 정수가 부여되고,
상기 제1배열이, 상기 루트 노드 이외의 노드인 비루트 노드 각각에 부여된 정수의 순서로, 상기 비루트 노드 각각의 부모 노드에 부여된 정수를 나열함으로써 형성되고,
상기 정점 노드 각각을, 자식 노드로 이동시키기 위해서, 상기 제3배열을 생성하는 스텝이,
상기 제1배열 중, 정점 노드의 노드 식별자가 저장된 저장위치를 특정하는 스텝과,
이동 후의 정점 노드의 노드 식별자를, 상기 저장위치에 대응하는 노드 식별자로 결정하는 스텝을 갖는다.
또한, 바람직한 실시형태에 있어서는, 자식 노드보다 동일 세대의 노드를 우선하여, 루트 노드를 포함하는 노드에 고유의 연속되는 정수가 부여되고,
상기 제1배열이, 상기 루트 노드 이외의 노드인 비루트 노드 각각에 부여된 정수의 순서로, 상기 비루트 노드 각각의 부모 노드에 부여된 정수를 나열함으로써 형성되고,
상기 정점 노드 각각을, 부모 노드로 이동시키기 위해서, 상기 제3배열을 생성하는 스텝이,
상기 제1배열 중, 정점 노드의 노드 식별자에 대응하는 위치에 저장된 노드 식별자를 특정하는 스텝과,
이동 후의 정점 노드의 노드 식별자를, 상기 대응하는 위치에 저장된 노드 식별자로 결정하는 스텝을 갖는다.
다른 실시형태에 있어서는, 자식 노드보다 동일 세대의 노드를 우선하여, 루트 노드를 포함하는 노드에 고유의 연속되는 정수가 부여되고,
상기 제1배열이, 상기 루트 노드 이외의 노드인 비루트 노드 각각에 부여된 정수의 순서로, 상기 비루트 노드 각각의 부모 노드에 부여된 정수를 나열함으로써 형성되고,
상기 정점 노드 각각을, 형 노드로 이동시키기 위해서, 상기 제3배열을 생성하는 스텝이,
상기 제1배열 중, 정점 노드의 노드 식별자에 대응하는 위치에 저장된 제 1 노드 식별자를 특정하는 스텝과,
상기 제1배열 중, 상기 정점 노드 식별자에 대응하는 위치의 값보다 1만큼 작은 값의 저장위치에 저장된 제 2 노드 식별자를 특정하는 스텝과,
상기 제 1 노드 식별자와, 제 2 노드 식별자가 일치하는 경우에, 상기 이동 후의 정점 노드 식별자를, 상기 제 2 노드 식별자의 저장위치에 대응하는 노드 식별자로 결정하는 스텝을 갖는다.
또 따른 실시형태에 있어서는, 자식 노드보다 동일 세대의 노드를 우선하여, 루트 노드를 포함하는 노드에 고유의 연속되는 정수가 부여되고,
상기 제1배열이, 상기 루트 노드 이외의 노드인 비루트 노드 각각에 부여된 정수의 순서로, 상기 비루트 노드 각각의 부모 노드에 부여된 정수를 나열함으로써 형성되고,
상기 정점 노드 각각을, 동생 노드로 이동시키기 위해서, 상기 제3배열을 생성하는 스텝이,
상기 제1배열 중, 정점 노드의 노드 식별자에 대응하는 위치에 저장된 제 1 노드 식별자를 특정하는 스텝과,
상기 제1배열 중, 상기 정점 노드 식별자에 대응하는 위치의 값보다 1만큼 큰 값의 저장위치에 저장된 제 3 노드 식별자를 특정하는 스텝과,
상기 제 1 노드 식별자와, 제 3 노드 식별자가 일치하는 경우에, 상기 이동 후의 정점 노드 식별자를, 상기 제 3 노드 식별자의 저장위치에 대응하는 노드 식별자로 결정하는 스텝을 갖는다.
또 다른 실시형태에 있어서는, 동일 세대의 노드보다 자식 노드를 우선하여, 루트 노드를 포함하는 노드에 고유의 연속되는 정수가 부여되고,
상기 제1배열이, 상기 루트 노드 이외의 노드인 비루트 노드 각각에 부여된 정수의 순서로, 상기 비루트 노드 각각의 부모 노드에 부여된 정수를 나열함으로써 형성되고,
상기 정점 노드 각각을, 자식 노드로 이동시키기 위해서, 상기 제3배열을 생성하는 스텝이,
상기 제1배열 중, 정점 노드의 노드 식별자가 저장된 저장위치를 특정하는 스텝과,
이동 후의 정점 노드의 노드 식별자를, 상기 저장위치에 대응하는 노드 식별자로 결정하는 스텝을 갖는다.
다른 실시형태에 있어서는, 동일 세대의 노드보다 자식 노드를 우선하여, 루트 노드를 포함하는 노드에 고유의 연속되는 정수가 부여되고,
상기 제1배열이, 상기 루트 노드 이외의 노드인 비루트 노드 각각에 부여된 정수의 순서로, 상기 비루트 노드 각각의 부모 노드에 부여된 정수를 나열함으로써 형성되고,
상기 정점 노드 각각을, 부모 노드로 이동시키기 위해서, 상기 제3배열을 생성하는 스텝이,
상기 제1배열 중, 정점 노드의 노드 식별자에 대응하는 위치에 저장된 노드 식별자를 특정하는 스텝과,
이동 후의 정점 노드의 노드 식별자를, 상기 대응하는 위치에 저장된 노드 식별자로 결정하는 스텝을 갖는다.
또한, 다른 실시형태에 있어서는, 동일 세대의 노드보다 자식 노드를 우선하여, 루트 노드를 포함하는 노드에 고유의 연속되는 정수가 부여되고,
상기 제1배열이, 상기 루트 노드 이외의 노드인 비루트 노드 각각에 부여된 정수의 순서로, 상기 비루트 노드 각각의 부모 노드에 부여된 정수를 나열함으로써 형성되고,
상기 정점 노드 각각을, 형 노드로 이동시키기 위해서, 상기 제3배열을 생성하는 스텝이,
상기 제1배열 중, 정점 노드의 노드 식별자의 저장위치에 저장된 제 1 노드 식별자를 특정하는 스텝과,
상기 제1배열 중, 정점 노드의 노드 식별자의 저장위치의 값보다 작은 값의 저장위치에 저장된, 상기 제 1 노드 식별자와 같은 제 4 노드 식별자를 검색하는 스텝과,
상기 제 4 노드 식별자의 저장위치 중, 최대의 저장위치를 특정하는 스텝과,
상기 이동 후의 정점 노드의 노드 식별자를, 상기 최대의 저장위치에 대응하는 노드 식별자로 결정하는 스텝을 갖는다.
또한, 다른 실시형태에 있어서는, 동일 세대의 노드보다 자식 노드를 우선하여, 루트 노드를 포함하는 노드에 고유의 연속되는 정수가 부여되고,
상기 제1배열이, 상기 루트 노드 이외의 노드인 비루트 노드 각각에 부여된 정수의 순서로, 상기 비루트 노드 각각의 부모 노드에 부여된 정수를 나열함으로써 형성되고,
상기 정점 노드 각각을, 동생 노드로 이동시키기 위해서, 상기 제3배열을 생성하는 스텝이,
상기 제1배열 중, 정점 노드의 노드 식별자의 저장위치에 저장된 제 1 노드 식별자를 특정하는 스텝과,
상기 제1배열 중, 정점 노드의 노드 식별자의 저장위치의 값보다 큰 값의 저장위치에 저장된, 상기 제 1 노드 식별자와 같은 제 5 노드 식별자를 검색하는 스텝과,
상기 제 5 노드 식별자의 저장위치 중, 최소의 저장위치를 특정하는 스텝과,
상기 이동 후의 정점 노드의 노드 식별자를, 상기 최대의 저장위치에 대응하는 노드 식별자로 결정하는 스텝을 갖는다.
또한, 본 발명의 목적은, 노드에 고유의 노드 식별자가 부여되고, 노드 간의 친자관계가 루트 노드 이외의 노드인 비루트 노드 각각에 부여된 노드 식별자에 관련된 부모 노드의 노드 식별자로 이루어지는 제1배열에 의해 표현된, 트리형 데이터구조의 데이터를 구비한 컴퓨터에 의해 판독가능한 컴퓨터 프로그램으로서, 상기 컴퓨터에,
각각이 특정의 노드 및 그 자손의 노드를 포함하는 1이상의 노드군을 나타내기 위해서, 상기 특정의 노드를 정점 노드로 하여, 그 노드 식별자를 저장한 제2배열을 설치하는 스텝과,
상기 제1배열을 참조하여, 상기 제2배열에 노드 식별자가 저장된 정점 노드 각각을,
a) 상기 정점 노드와 아크에서 직접 연결되고, 또한, 상기 아크가 정점 노드로부터 연장되는 자식 노드,
b) 상기 정점 노드와 아크에서 직접 연결되고, 또한, 상기 아크가 거기에서부터 정점 노드까지 연장되는 부모 노드,
c) 상기 정점 노드와 동세대의 노드로서, 상기 정점 노드의 부모 노드로부터 정점 노드에 대하여 아크가 접속되기 이전에, 아크가 접속되어 있는 형 노드, 및,
d) 상기 정점 노드와 동세대의 노드로서, 상기 정점 노드의 부모 노드로부터 정점 노드에 대하여 아크가 접속된 후에, 아크가 접속되는 동생 노드
중 어느 하나로 이동시켜서, 이동 후의 새로운 정점 노드의 노드 식별자를 저장한 제3배열을 생성하는 스텝을 실행시키는 것을 특징으로 하는 배열 생성 프로그램에 의해서도 달성된다.
바람직한 실시형태에 있어서는, 자식 노드보다 동일 세대의 노드를 우선하여, 루트 노드를 포함하는 노드에 고유의 연속되는 정수가 부여되고,
상기 제1배열이, 상기 루트 노드 이외의 노드인 비루트 노드 각각에 부여된 정수의 순서로, 상기 비루트 노드 각각의 부모 노드에 부여된 정수를 나열함으로써 형성되고,
상기 정점 노드 각각을, 자식 노드로 이동시키기 위해서, 상기 제3배열을 생성하는 스텝에 있어서, 상기 컴퓨터에,
상기 제1배열 중, 정점 노드의 노드 식별자가 저장된 저장위치를 특정하는 스텝과,
이동 후의 정점 노드의 노드 식별자를, 상기 저장위치에 대응하는 노드 식별자로 결정하는 스텝을 실행시킨다.
또한, 바람직한 실시형태에 있어서는, 자식 노드보다 동일 세대의 노드를 우선하여, 루트 노드를 포함하는 노드에 고유의 연속되는 정수가 부여되고,
상기 제1배열이, 상기 루트 노드 이외의 노드인 비루트 노드 각각에 부여된 정수의 순서로, 상기 비루트 노드 각각의 부모 노드에 부여된 정수를 나열함으로써 형성되고,
상기 정점 노드 각각을, 부모 노드로 이동시키기 위해서, 상기 제3배열을 생성하는 스텝에 있어서, 상기 컴퓨터에,
상기 제1배열 중, 정점 노드의 노드 식별자에 대응하는 위치에 저장된 노드 식별자를 특정하는 스텝과,
이동 후의 정점 노드의 노드 식별자를, 상기 대응하는 위치에 저장된 노드 식별자로 결정하는 스텝을 실행시킨다.
다른 실시형태에 있어서는, 자식 노드보다 동일 세대의 노드를 우선하여, 루트 노드를 포함하는 노드에 고유의 연속되는 정수가 부여되고,
상기 제1배열이, 상기 루트 노드 이외의 노드인 비루트 노드 각각에 부여된 정수의 순서로, 상기 비루트 노드 각각의 부모 노드에 부여된 정수를 나열함으로써 형성되고,
상기 정점 노드 각각을, 형 노드로 이동시키기 위해서, 상기 제3배열을 생성하는 스텝에 있어서, 상기 컴퓨터에,
상기 제1배열 중, 정점 노드의 노드 식별자에 대응하는 위치에 저장된 제 1 노드 식별자를 특정하는 스텝과,
상기 제1배열 중, 상기 정점 노드 식별자에 대응하는 위치의 값보다 1만큼 작은 값의 저장위치에 저장된 제 2 노드 식별자를 특정하는 스텝과,
상기 제 1 노드 식별자와, 제 2 노드 식별자가 일치하는 경우에, 상기 이동 후의 정점 노드 식별자를, 상기 제 2 노드 식별자의 저장위치에 대응하는 노드 식별자로 결정하는 스텝을 실행시킨다.
또 다른 실시형태에 있어서는, 자식 노드보다 동일 세대의 노드를 우선하여, 루트 노드를 포함하는 노드에 고유의 연속되는 정수가 부여되고,
상기 제1배열이, 상기 루트 노드 이외의 노드인 비루트 노드 각각에 부여된 정수의 순서로, 상기 비루트 노드 각각의 부모 노드에 부여된 정수를 나열함으로써 형성되고,
상기 정점 노드 각각을, 동생 노드로 이동시키기 위해서, 상기 제3배열을 생성하는 스텝에 있어서, 상기 컴퓨터에,
상기 제1배열 중, 정점 노드의 노드 식별자에 대응하는 위치에 저장된 제 1 노드 식별자를 특정하는 스텝과,
상기 제1배열 중, 상기 정점 노드 식별자에 대응하는 위치의 값보다 1만큼 큰 값의 저장위치에 저장된 제 3 노드 식별자를 특정하는 스텝과,
상기 제 1 노드 식별자와, 제 3 노드 식별자가 일치하는 경우에, 상기 이동 후의 정점 노드 식별자를, 상기 제 3 노드 식별자의 저장위치에 대응하는 노드 식별자로 결정하는 스텝을 실행시킨다.
바람직한 실시형태에 있어서는, 동일 세대의 노드보다 자식 노드를 우선하여, 루트 노드를 포함하는 노드에 고유의 연속되는 정수가 부여되고,
상기 제1배열이, 상기 루트 노드 이외의 노드인 비루트 노드 각각에 부여된 정수의 순서로, 상기 비루트 노드 각각의 부모 노드에 부여된 정수를 나열함으로써 형성되고,
상기 정점 노드 각각을, 자식 노드로 이동시키기 위해서, 상기 제3배열을 생성하는 스텝에 있어서, 상기 컴퓨터에,
상기 제1배열 중, 정점 노드의 노드 식별자가 저장된 저장위치를 특정하는 스텝과,
이동 후의 정점 노드의 노드 식별자를, 상기 저장위치에 대응하는 노드 식별자로 결정하는 스텝을 실행시킨다.
또한, 바람직한 실시형태에 있어서는, 동일 세대의 노드보다 자식 노드를 우선하여, 루트 노드를 포함하는 노드에 고유의 연속되는 정수가 부여되고,
상기 제1배열이, 상기 루트 노드 이외의 노드인 비루트 노드 각각에 부여된 정수의 순서로, 상기 비루트 노드 각각의 부모 노드에 부여된 정수를 나열함으로써 형성되고,
상기 정점 노드 각각을, 부모 노드로 이동시키기 위해서, 상기 제3배열을 생성하는 스텝에 있어서, 상기 컴퓨터에,
상기 제1배열 중, 정점 노드의 노드 식별자에 대응하는 위치에 저장된 노드 식별자를 특정하는 스텝과,
이동 후의 정점 노드의 노드 식별자를, 상기 대응하는 위치에 저장된 노드 식별자로 결정하는 스텝을 실행시킨다.
다른 바람직한 실시형태에 있어서는, 동일 세대의 노드보다 자식 노드를 우선하여, 루트 노드를 포함하는 노드에 고유의 연속되는 정수가 부여되고,
상기 제1배열이, 상기 루트 노드 이외의 노드인 비루트 노드 각각에 부여된 정수의 순서로, 상기 비루트 노드 각각의 부모 노드에 부여된 정수를 나열함으로써 형성되고,
상기 정점 노드 각각을, 형 노드로 이동시키기 위해서, 상기 제3배열을 생성하는 스텝에 있어서, 상기 컴퓨터에,
상기 제1배열 중, 정점 노드의 노드 식별자의 저장위치에 저장된 제 1 노드 식별자를 특정하는 스텝과,
상기 제1배열 중, 정점 노드의 노드 식별자의 저장위치의 값보다 작은 값의 저장위치에 저장된, 상기 제 1 노드 식별자와 같은 제 4 노드 식별자를 검색하는 스텝과,
상기 제 4 노드 식별자의 저장위치 중, 최대의 저장위치를 특정하는 스텝과,
상기 이동 후의 정점 노드의 노드 식별자를, 상기 최대의 저장위치에 대응하는 노드 식별자로 결정하는 스텝을 실행시킨다.
또한 바람직한 실시형태에 있어서는, 동일 세대의 노드보다 자식 노드를 우선하여, 루트 노드를 포함하는 노드에 고유의 연속되는 정수가 부여되고,
상기 제1배열이, 상기 루트 노드 이외의 노드인 비루트 노드 각각에 부여된 정수의 순서로, 상기 비루트 노드 각각의 부모 노드에 부여된 정수를 나열함으로써 형성되고,
상기 정점 노드 각각을, 동생 노드로 이동시키기 위해서, 상기 제3배열을 생성하는 스텝에 있어서, 상기 컴퓨터에,
상기 제1배열 중, 정점 노드의 노드 식별자의 저장위치에 저장된 제 1 노드 식별자를 특정하는 스텝과,
상기 제1배열 중, 정점 노드의 노드 식별자의 저장위치의 값보다 큰 값의 저장위치에 저장된, 상기 제 1 노드 식별자와 같은 제 5 노드 식별자를 검색하는 스텝과,
상기 제 5 노드 식별자의 저장위치 중, 최소의 저장위치를 특정하는 스텝과,
상기 이동 후의 정점 노드의 노드 식별자를, 상기 최대의 저장위치에 대응하는 노드 식별자로 결정하는 스텝을 실행시킨다.
<발명의 효과>
본 발명에 의하면, 트리형 데이터구조의 데이터 간의 관계를 효율적으로 트레이스할 수 있는 트리형 데이터구조의 표현, 및, 구축에 관한 방법을 제공하는 것이 가능하게 된다.
또한, 본 발명에 의하면, 트리형 데이터구조의 데이터 간의 관계를 효율적으로 트레이스할 수 있는 트리형 데이터구조의 구축에 관한 정보처리장치를 제공하는 것이 가능하게 된다.
또한, 본 발명에 의하면, 트리형 데이터구조의 데이터 간의 관계를 효율적으로 트레이스할 수 있는 트리형 데이터구조의 표현, 및, 구축에 관한 프로그램을 제공하는 것이 가능하게 된다.
특히, 본 발명에 의하면, 특정의 노드 및 그 자손의 노드를 포함하는 1이상의 노드군을 나타내기 위한 배열의 생성 및 상기 배열을 처리하는 방법, 정보처리장치 및 프로그램을 제공하는 것이 가능하게 된다.
도 1은, 본 발명의 실시형태에 따른 트리형 데이터구조를 취급하는 컴퓨터 시스템의 블록 다이어그램이다.
도 2A,B는, 트리 형식 데이터의 일례인 POS 데이터의 설명도이고, 도 2A는, 이 트리 형식 데이터의 데이터구조(즉, 토폴로지) 및 데이터 값을 시각적으로 표현한 예이고, 도 2B는, 동일한 트리 형식 데이터를 XML형식으로 표현한 예이다.
도 3A~C는, 각각, 아크 리스트를 이용한 트리형 데이터구조의 표현 형식의 일례의 설명도이다.
도 4A~C는, 본 발명의 일실시예에 의한 「자식→부모」관계에 기초하는 트리형 데이터구조의 표현방법의 설명도이다.
도 5는, 본 발명의 일실시예에 의한 트리형 데이터구조를 기억장치상에 구축 하는 방법의 플로우차트이다.
도 6A~C는, 본 발명의 일실시예에 의해 ID형식의 트리구조형 데이터를 정수 연번 형식의 트리구조형 데이터로 변환하는 처리의 설명도이다.
도 7A~C는, 본 발명의 다른 일실시예에 의해 ID형식의 트리구조형 데이터를 정수 연번 형식의 트리구조형 데이터로 변환하는 처리의 설명도이다.
도 8은, 본 발명의 일실시예에 의한 깊이 우선에 기초하는 노드 정의 처리의 플로우차트이다.
도 9는, 본 발명의 일실시예에 의해 작성된 「자식→부모」표현에 기초하는 친자관계의 배열의 설명도이다.
도 10은, 도 6C에 나타내어진 깊이 우선의 트리형 데이터구조로부터 작성된 「부모→자식」표현에 기초하는 친자관계의 배열의 설명도이다.
도 11은, 본 발명의 일실시예에 의한 폭 우선에 기초하는 노드 정의 처리의 플로우차트이다.
도 12는, 본 발명의 일실시예에 의해 작성된 「자식→부모」표현에 기초하는 친자관계의 배열의 설명도이다.
도 13은, 도 7C에 나타내어진 폭 우선의 트리형 데이터구조로부터 작성된 「부모→자식」표현에 기초하는 친자관계의 배열의 설명도이다.
도 14A는, 폭 우선 모드에 기초하는 트리형 데이터구조, 도 14B는, 상기 트리형 데이터구조를, 「자식→부모」표현에 기초하는 친자관계의 배열을 나타내는 도면이다.
도 15A는, 정점 노드 리스트의 예, 도 15B는, 정점 노드 리스트에서 특정되는 부분 트리군의 예를 나타내는 도면이다.
도 16A는, 검색처리에 의해 얻어진 정점 노드 리스트의 예, 도 16B는, 정점 노드 리스트에서 특정되는 부분 트리군의 예를 나타내는 도면이다.
도 17A는, 집계 처리에 의해 얻어진 정점 노드 리스트 및 집계 결과를 나타내는 배열의 예, 도 17B는, 정점 노드 리스트에서 특정되는 부분 트리군의 예를 나타내는 도면이다.
도 18A는, 노드 수로 소트된 정점 노드 리스트, 및, 대응하는 노드 수를 나타내는 배열의 예, 도 18B는, 정점 노드 리스트에서 특정되는 부분 트리의 예를 나타내는 도면이다.
도 19A,C는, 각각, 논리곱 연산의 대상으로 되는 정점 노드 리스트의 예, 도 19B,D는, 각각 정점 노드 리스트에서 특정되는 부분 트리군의 예를 나타내는 도면이다.
도 20A는, 논리곱 연산의 결과를 나타내는 정점 노드 리스트의 예, 도 20B는, 정점 노드 리스트에서 특정되는 부분 트리군을 나타내는 도면이다.
도 21A는, 본 실시형태에 따른 정점 노드 리스트, 도 21B는, 정점 노드를 화살표로 나타낸 트리의 예, 도 21C는, 정점 노드를 아이에 상당하는 노드로 이동시켰을 때의 정점 노드 리스트, 도 21D는, 이동한 정점 노드를 화살표로 나타낸 트리의 예를 나타내는 도면이다.
도 22A는, 본 실시형태에 따른 정점 노드 리스트, 도 22B는, 정점 노드를 화살표로 나타낸 트리의 예이다.
도 23A는, 본 실시형태에 따른 정점 노드 리스트, 도 23B는, 정점 노드를 화살표로 나타낸 트리의 예, 도 23C는, 정점 노드를 동생에 상당하는 노드로 이동시켰을 때의 정점 노드 리스트, 도 23D는, 이동한 정점 노드를 화살표로 나타낸 트리의 예를 나타내는 도면이다.
도 24는, 정점 노드를 아이에 상당하는 노드로 이동시킬 때에, 컴퓨터 시스템에 있어서 실행되는 처리를 나타내는 플로우차트이다.
도 25A는, 트리의 예를 나타내는 도면이고, 도 25B는, 정점 노드를 아이에 상당하는 노드로 이동시키는 처리를 설명하는 도면이다.
도 26은, 정점 노드를 부모에 상당하는 노드로 이동시킬 때에, 컴퓨터 시스템에 있어서 실행되는 처리를 나타내는 플로우차트이다.
도 27A는, 트리의 예를 나타내는 도면이고, 도 27B는, 정점 노드를 부모에 상당하는 노드로 이동시키는 처리를 설명하는 도면이다.
도 28은, 정점 노드를 동생에 상당하는 노드로 이동시킬 때에, 컴퓨터 시스템에 있어서 실행되는 처리를 나타내는 플로우차트이다.
도 29A는, 트리의 예를 나타내는 도면이고, 도 29B는, 정점 노드를 동생에 상당하는 노드로 이동시키는 처리를 설명하는 도면이다.
도 30은, 아이에 상당하는 노드를 검색할 때에, 컴퓨터 시스템에서 실행되는 처리를 나타내는 플로우차트이다.
도 31A는, 트리의 예를 나타내는 도면이고, 도 31B는, 정점 노드를 아이에 상당하는 노드로 이동시키는 처리를 설명하는 도면이다.
도 32A는, 트리의 예를 나타내는 도면이고, 도 32B는, 정점 노드를 부모에 상당하는 노드로 이동시키는 처리를 설명하는 도면이다.
도 33은, 정점 노드를 동생에 상당하는 노드로 이동시킬 때에, 컴퓨터 시스템에 있어서 실행되는 처리를 나타내는 플로우차트이다.
도 34A는, 트리의 예를 나타내는 도면이고, 도 34B는, 정점 노드를 동생에 상당하는 노드로 이동시키는 처리를 설명하는 도면이다.
도 35는, 본 실시형태에 따른 트리형 데이터구조, 및, 정점 노드 리스트를 기억장치상에 구축하는 정보처리장치의 기능 블록 다이어그램이다.
(도면의 주요부분에 대한 부호의 설명)
10 : 컴퓨터 시스템 12 : CPU
14 : RAM 16 : ROM
18 : 고정기억장치 20 : CD-ROM 드라이버
22 : I/F 24 : 입력장치
26 : 표시장치 3500 : 정보처리장치
3501 : 기억부 3502 : 노드 정의부
3503 : 친자관계 정의부 3504 : 정점 노드 생성부
3505 : 정점 노드 이동처리부
이하, 첨부도면을 참조하여, 본 발명의 실시형태에 대해서 설명한다.
[컴퓨터 시스템 구성]
도 1은, 본 발명의 실시형태에 따른 트리형 데이터구조를 취급하는 컴퓨터 시스템의 하드웨어 구성을 나타내는 블록 다이어그램이다. 도 1에 나타내는 바와 같이, 이 컴퓨터 시스템(10)은, 통상의 것과 마찬가지의 구성이고, 프로그램을 실행함으로써 시스템 전체 및 개개의 구성부분을 제어하는 CPU(12), 워크 데이터 등을 기억하는 RAM(Random Access Memory)(14), 프로그램 등을 기억하는 ROM(Read Only Memory)(16), 하드디스크 등의 고정기억매체(18), CD-ROM(19)을 액세스하기 위한 CD-ROM 드라이버(20), CD-ROM 드라이버(20)나 외부 네트워크(도시 생략)와 접속된 외부단자와의 사이에 설치된 인터페이스(I/F)(22), 키보드나 마우스로 이루어지는 입력장치(24), CRT 표시장치(26)를 구비하고 있다. CPU(12), RAM(14), ROM(16), 외부기억매체(18), I/F(22), 입력장치(24) 및 표시장치(26)는, 버스(28)를 통해서 서로 접속되어 있다.
본 실시형태에 따른, 트리형 데이터구조를 기억장치상에 구축하는 프로그램, 및, 트리형 데이터구조를 기억장치상에서 변환하는 프로그램은, CD-ROM(19)에 수용되고, CD-ROM 드라이버(20)에 판독되어도 되고, ROM(16)에 미리 기억되어 있어도 된다. 또한, 일단 CD-ROM(19)으로부터 읽어 낸 것을, 외부기억매체(18)의 소정의 영역에 기억시켜 두어도 된다. 또는, 상기 프로그램은, 네트워크(도시 생략), 외부단자 및 I/F(22)를 경유하여 외부로부터 공급되는 것이어도 된다.
또한, 본 발명의 실시형태에 따른 정보처리장치는, 컴퓨터 시스템(10)에 트리형 데이터구조를 기억장치상에 구축하는 프로그램, 및, 트리형 데이터구조를 기억장치상에서 변환하는 프로그램을 실행시킴으로써 실현된다.
[트리형 데이터구조]
도 2A,B는, 트리 형식 데이터의 일례인 POS 데이터의 설명도이고, 도 2A는, 이 트리 형식 데이터의 데이터구조(즉, 토폴로지) 및 데이터 값을 시각적으로 표현한 일례이고, 도 2B는, 동일한 트리 형식 데이터를 XML형식으로 표현한 일례이다. 도 2A,B에 나타내어지는 바와 같이 트리형 데이터구조는, 루트 노드(본 예에서는, POS 데이터)로부터 시작하여, 각 노드로 갈라져 나와 리프 노드(끝점)에 이르는 노드와 아크의 조합에 의해 표현된다. 각 노드의 실체적인 값, 예컨대, 가게 이름 노드의 값="프랑스점"의 저장장소는, 가게 이름 노드에 관련된 포인터에서 지정된다.
본 발명은, 트리형 데이터구조의 토폴로지를 대상으로 하기 위해서, 이하의 설명에서는, 주로, 트리형 데이터구조의 토폴로지에 관해서 설명한다.
종래, 이러한 트리형 데이터구조는, 데이터를 축적한 노드간을 포인터에서 접속함으로써 표현되어 있다. 그러나, 포인터 표현은, 포인터 값에 필연성이 없다는 결점이 있다. 즉, 어떤 경우에는 특정의 노드A가 있는 번지(예컨대, 100번지)에 저장되고, 다른 경우에는 동일 노드A가 다른 번지(예컨대, 200번지)에 저장되므로, 포인터 값이 일정하지 않고, 포인터 값은, 본질적으로 노드의 저장 어드레스를 표현하는 것에 지나지 않는다. 그 때문에, 예컨대, 노드가 깊이 우선의 규칙에 따라 포인터에서 접속되어 있는 경우, 이들 노드를 폭 우선의 규칙에 따라 포인터에서 재접속하는 것은 곤란하다.
이것에 대해서, 본 발명자는, 트리형 데이터구조의 토폴로지가 아크 리스트에 의해 기술 가능한 것에 착안했다. 아크 리스트는, 노드 간의 친자관계를 나타내는 아크의 리스트이다. 도 3A~C는, 아크 리스트를 이용한 트리형 데이터구조의 표현 형식의 일례의 설명도이다. 동 도면의 예에서는, 0,10,20,30,40,50,60,70, 80,90,100 및 110의 노드 식별자(ID)가 부여된 12개의 노드로 이루어지는 트리형 데이터구조가 나타내어져 있다. 도 3A는 트리형 데이터구조의 전체를 나타내고 있다. 도 3A에 있어서, 둥근형, 하트형 등의 도형의 중앙에 기재된 숫자는, 노드 ID를 나타내고, 화살표와 화살표의 측에 기재된 <0,10> 등의 숫자의 쌍은, 아크를 나타내고 있다. 또한, 노드 ID는, 문자열에는 한정되지 않고, 수치, 특히, 정수이어도 된다. 도 3B는, 부모 노드(From-ID)부터 자식 노드(To-ID)로의 아크 리스트를 나타내고, 도 3C는, 노드 ID와 노드 Type의 쌍의 리스트로 이루어지는 노드 리스트를 나타낸다. 또한, 트리형 데이터구조를 표현하는 정도의 목적을 위해서는 노드 리스트가 없어도 상관없다. 원리적으로는, 이러한 아크 리스트를 이용함으로써, 노드 간의 관계를 포인터에 의하지 않고 직접적으로 기술하는 것이 가능하다.
[「자식→부모」관계에 기초하는 표현]
도 3A~C의 예에서는, 아크 리스트는, 부모 노드에 자식 노드를 대응시키는 「부모→자식」관계에 기초하여 기술되어 있다. 그 때문에, 1개의 부모 노드, 예컨대, 루트 노드(0)에는, 3개의 자식 노드(10, 60 및 80)가 존재하기 때문에, 아크 리스트의 From-ID에는, 동일한 노드 ID의 0이 3회 출현하고 있다. 즉, 부모 노드를 특정해도 자식 노드를 특정할 수 없으므로, 아크 리스트는, 요소 From-ID의 배열과 요소 To-ID의 배열에 의해 구성된다. 아크 리스트를 사용하는 경우, 어떤 노드는, From-ID의 배열과, To-ID의 배열 양쪽의 배열에 출현한다.
이것에 대해서, 친자관계는, 「자식→부모」관계에 의해서도 표현하는 것이 가능하다. 이 경우, 노드 간의 친자관계는, 루트 노드 이외의 노드인 비루트 노드의 각각과, 관련된 부모 노드의 세트의 배열에 의해 표현된다. 이 「자식→부모」관계에 의해 친자관계를 표현하는 경우, 「부모→자식」관계의 경우에는 얻을 수 없었던 중요한 성질이 있다. 즉, 1개의 자식 노드에는 반드시 유일한 부모 노드가 대응하므로, 자식 노드를 특정함으로써, 이 자식 노드에 대응하는 유일한 부모 노드를 즉시 특정할 수 있다. 즉, 아크 리스트는, 실제로는, 요소 To-ID, 즉, 부모 노드의 배열만을 준비하면 된다. 이 결과로서, 아크 리스트를 저장하기 위한 기억 용량이 삭감된다. 이 기억 용량의 삭감은, 메모리로의 액세스 회수가 저감한다는 효과가 있으므로, 결과적으로, 처리의 고속화를 실현할 수 있다.
도 4A~C는, 본 발명의 일실시예에 의한 「자식→부모」관계에 기초하는 트리형 데이터구조의 표현방법의 설명도이다. 도 4A는 트리 전체의 설명도이고, 도 4B는 「자식→부모」관계에 기초하는 아크 리스트이다. 도 4B의 아크 리스트는, 루트 노드에 대한 부모 노드의 저장영역을 포함하고 있으므로, 루트 노드의 부모 노드로서, 편의적으로 "-"가 설정되어 있다. 단, 루트 노드에 대응하는 부모 노드는 존재하지 않으므로, 도 4C에 나타내어지는 바와 같이, 「자식→부모」관계에 기초하는 아크 리스트로부터 루트 노드에 대한 부모 노드의 저장영역을 제외해도 상관없다. 이렇게 본 발명의 일실시예에서는, 루트 노드 이외의 노드인 비루트 노드 각각에 대하여, 비루트 노드의 부모 노드를 관련시킴으로써 노드 간의 친자관계를 표현한다. 그리고, 「자식→부모」표현된 아이의 노드로부터 부모의 노드의 리스트를 추적함으로써 트리의 토폴로지를 표현할 수 있다.
이러한 「자식→부모」관계에 기초하는 트리형 데이터구조는, 본 발명의 일실시예에 의하면, 도 5에 나타내어지는 바와 같이, 도 1에 나타내어진 컴퓨터 시스템(10)에, 루트 노드를 포함하는 노드에 고유의 노드 식별자를 부여하는 노드 정의 스텝501과, 상기 루트 노드 이외의 노드인 비루트 노드 각각에 부여된 노드 식별자에, 상기 비루트 노드 각각의 부모 노드에 부여된 노드 식별자를 관련시키는 친자관계 정의 스텝502를 실행시킴으로써 RAM(14)상에 구축된다. 이와 같이, 최초에, 문자열, 부동 소수, 정수 등의 임의의 식별 정보에 의해 노드에 노드 식별자를 부여하고, 다음에, 「자식→부모」표현에 기초하여 친자관계를 정의함으로써, 자식 노드의 노드 식별자로부터 부모 노드의 노드 식별자를 찾음으로써 트리의 토폴로지를 표현할 수 있다.
[노드 식별자]
바람직한 1실시예에 의하면, 노드 정의 스텝은 노드 식별자로서 수치를 사용하고, 보다 바람직하게는, 연속되는 정수를 사용하고, 더욱 바람직하게는, 0 또는 1로부터의 정수 연번을 사용한다. 이것에 의해, 노드 식별자로부터, 그 노드에 대응하는 부모 노드의 노드 식별자가 저장되어 있는 어드레스를 간단하게 취득할 수 있으므로, 자식 노드의 노드 식별자로부터 부모 노드의 노드 식별자를 찾는 처리를 고속화할 수 있다.
트리형 데이터구조의 노드에 노드 식별자로서 순서 부여된 번호를 부여해서 노드 간의 친자관계를 표현하는 경우, 번호의 부여 순서에 규칙을 규정함으로써, 그 후의 트리형 데이터구조의 취급이 용이해진다는 이점이 있다. 본 발명에 의하면, 이 번호의 부여 순서의 규칙으로서, 동일 세대의 노드보다 자식 노드를 우선하는 깊이 우선 모드와, 자식 노드보다 동일 세대의 노드를 우선하는 폭 우선 모드가 이용된다.
도 6A~C는, 본 발명의 일실시예에 의해 ID형식의 트리구조형 데이터를 정수 연번 형식의 트리구조형 데이터로 변환하는 처리의 설명도이다. 도 6A에는, 각 노드에 ID번호가 부여된 트리구조형 데이터가 나타내어지고, 도 6B에는, 변환 규칙이 나타내어지고, 도 6C에는, 각 노드에 정수 연번이 부여된 트리구조형 데이터가 나타내어져 있다. 본 예의 변환 규칙은, 깊이 우선으로 연속 번호를 부여하는 규칙이고, 구체적으로는, 복수의 자식 노드가 존재하는 경우, 장자(제일 위의 형) 노드에 최소 번호를 부여하고, 말자(가장 아래의 동생) 노드에 큰 번호를 부여하고, 또한, 형제 노드보다 자식 노드를 우선해서 번호를 부여한다. 본 예에서는, 오름 차순으로 번호 붙임을 하고 있지만, 내림차순으로 번호 붙임을 해도 된다.
또한, 도 7A~C는, 본 발명의 다른 일실시예에 의해 ID형식의 트리구조형 데이터를 정수 연번 형식의 트리구조형 데이터로 변환하는 처리의 설명도이다. 도 7A에는, 각 노드에 ID번호가 부여된 트리구조형 데이터가 나타내어지고, 도 7B에는, 변환 규칙이 나타내어지고, 도 7C에는, 각 노드에 정수 연번이 부여된 트리구조형 데이터가 나타내어져 있다. 본 예의 변환 규칙은, 폭 우선으로 연속 번호를 부여하는 규칙이고, 구체적으로는, 복수의 자식 노드가 존재하는 경우, 장자(제일 위의 형) 노드에 최소 번호를 부여하고, 말자(가장 아래의 동생) 노드에 큰 번호를 부여하고, 또한, 자식 노드보다 형제 노드를 우선해서 번호를 부여한다. 본 예에서는, 오름 차순으로 번호 붙임을 하고 있지만, 내림차순으로 번호 붙임을 해도 된다.
이와 같이 노드 식별자로서 번호를 사용하면, 노드 번호로부터 즉시, 즉, O(1)의 오더로, 그 노드에 관한 저장값이 저장되어 있는 어드레스를 찾을 수 있다. 또한, 친자관계를 「자식→부모」 표현함으로써, 자식 노드로부터 부모 노드를 즉시, 즉, O(1)의 오더로 찾을 수 있다.
[깊이 우선 모드]
본 발명의 일실시예에 의하면, 도 6C에 나타내어지는 바와 같은 깊이 우선에 기초하는 트리형 데이터구조는, 도 1에 나타내어진 컴퓨터 시스템(10)에,
동일 세대의 노드보다 자식 노드를 우선하여, 루트 노드를 포함하는 노드에 고유의 연속되는 정수를 부여하는 노드 정의 스텝과,
루트 노드 이외의 노드인 비루트 노드 각각에 부여된 정수의 순서로, 비루트 노드 각각의 부모 노드에 부여된 정수를 나열함으로써 형성되는 배열을 상기 기억장치에 저장하는 친자관계 정의 스텝을 실행시킴으로써 기억장치상에 구축된다. 이것에 의해, 노드는 깊이 우선으로 연속 정수가 부여되고, 노드 간의 친자관계는 「자식→부모」관계의 배열에 의해 표현된다.
도 8은, 본 발명의 일실시예에 의한 깊이 우선에 기초하는 노드 정의 처리의 플로우차트이다. 이 노드 정의 처리는, 컴퓨터 시스템(10)에
최초에 루트 노드에 번호를 부여하는 스텝801과,
이미 번호가 부여된 소정 노드에 유일한 자식 노드가 존재하는 경우에는, 상기 자식 노드에 상기 소정 노드에 부여된 상기 번호의 다음 번호를 부여하는 스텝802와,
이미 번호가 부여된 소정 노드에 복수의 자식 노드가 존재하는 경우에는, 상기 복수의 자식 노드의 사이의 형제관계에 따라서, 동생 노드는 바로 위의 형 노드의 모든 자손 노드에 번호가 부여된 후에 다음 번호가 부여되도록, 제일 위의 형 노드로부터 가장 아래의 동생 노드까지 번호를 부여하는 스텝803을 실행시킨다. 이것에 의해, 깊이 우선 모드에서 동일한 부모 노드로부터 파생된 복수의 자식 노드의 사이에 형제관계가 정의된다.
도 9는, 본 발명의 일실시예에 의해 도 6C에 나타내어진 깊이 우선의 트리형 데이터구조로부터 작성된 「자식→부모」표현에 기초하는 친자관계의 배열의 설명도이다. 동 도면에 서브 트리1 또는 서브 트리2로서 나타내어져 있는 바와 같이, 깊이 우선으로 연속 번호가 부여된 노드의 친자관계를 「자식→부모」관계에 기초하여 배열 표현하면, 소정 노드의 자손 노드가 연속영역에 출현한다는 우수한 성질이 얻어진다.
본 발명의 일실시예에서는, 깊이 우선 모드의 우수한 성질을 이용함으로써, 상기 배열로부터, 소정 노드에 부여된 정수 이상의 값이 저장되어 있는 연속영역을 추출함으로써, 상기 소정 노드의 모든 자손 노드를 특정한다. 이것에 의해, 소정 노드의 자손 노드를 나타내는 노드군이 상기 배열 내의 연속 블록으로서 획득될 수 있다. 예컨대, 연속 블록의 사이즈를 m으로 하면, 소정 노드의 모든 자손 노드를 특정하기 위한 처리 속도는, O(m)의 오더로 된다.
이미 설명한 바와 같이, 노드 간의 친자관계는, 「자식→부모」관계의 배열 이외에, 「부모→자식」관계의 배열에 의해서도 표현할 수 있다. 도 10은, 도 6C에 나타내어진 깊이 우선의 트리형 데이터구조로부터 작성된 「부모→자식」표현에 기초하는 친자관계의 배열의 설명도이다. 1개의 부모 노드에 대하여 복수의 자식 노드가 존재할 수 있으므로, 친자관계의 배열은, 각 노드에 대한 자식 노드의 번호가 저장되어 있는 영역을 나타내기 위한 배열 Aggr과, 자식 노드의 번호가 저장되어 있는 배열 P→C의 2개의 배열에 의해 구성된다. 예컨대, 배열 Aggr의 선두로부터 2번째의 요소 Aggr[1]의 값은 "3"이고, 이것은, 노드[1]에 대한 자식 노드의 번호는, 배열 P→C의 요소 P→C[3] 이후에 저장되어 있는 것을 나타내고 있다. 이것에 의해, 노드[0], 즉, 루트 노드에 대한 자식 노드는, 배열 P→C의 선두로부터 3개의 요소, P→C[0]의 1, P→C[1]의 6, 및 P→C[2]의 8인 것을 알 수 있다.
이 「부모→자식」표현에 기초하는 친자관계의 배열을 구하는 방법을 설명한다.
(1) 노드의 번호가 배열 P→C의 최대의 첨자(=11)와 일치하는 경우, 이 노드에 속하는 자식 노드는 존재하지 않는다. 따라서, 처리는 계속되지 않는다.
(2) 동 도면에서 굵은 글씨로 나타내어진 부모 노드의 번호로부터 Aggr값을 구한다. 이 Aggr값은, 배열 P→C의 개시점을 나타낸다.
(3) 굵은 글씨로 나타내어진 부모 노드 번호+1에 대응하는 Aggr값을 구한다. 이 Aggr값-1이 배열 P→C의 종료점이다.
예컨대, 노드0의 자식 노드의 개시점은, Aggr[0], 즉, 0이고, 종료점은, Aggr[1]-1, 즉, 3-1=2이다. 따라서, 노드0의 자식 노드는, 배열 P→C의 0~2번째의 요소, 즉, 1, 6 및 8이다.
또는, 「부모→자식」표현에 기초하는 친자관계는, 보다 단순하게, 부모 노드 번호의 배열과, 대응하는 자식 노드 번호의 배열의 2개의 배열에 의해 표현하는 것도 가능하다. 그러나, 이 배열을 이용하여 친자관계를 찾기 위해서는, 부모 노드의 번호를 검색해야만 하므로, 즉, log(n)의 액세스 시간이 필요하므로 효율이 나쁘다.
[폭 우선 모드]
본 발명의 일실시예에 의하면, 도 7C에 나타내어지는 바와 같은 폭 우선에 기초하는 트리형 데이터구조는, 도 1에 나타내어진 컴퓨터 시스템(10)에,
자식 노드보다 동일 세대의 노드를 우선하여, 루트 노드를 포함하는 노드에 고유의 연속되는 정수를 부여하는 노드 정의 스텝과,
상기 루트 노드 이외의 노드인 비루트 노드 각각에 부여된 정수의 순서로, 상기 비루트 노드 각각의 부모 노드에 부여된 정수를 나열함으로써 형성되는 배열을 상기 기억장치에 저장하는 친자관계 정의 스텝을 실행시킴으로써 기억장치상에 구축된다. 이것에 의해, 노드는 폭 우선 모드에서 연속 정수가 부여되고, 노드 간의 친자관계는 「자식→부모」관계의 배열에 의해 표현된다.
도 11은, 본 발명의 일실시예에 의한 폭 우선에 기초하는 노트 정의처리의 플로우차트이다. 이 노드 정의 처리는, 컴퓨터 시스템(10)에,
각 노드가 상기 루트 노드로부터 몇세대째의 노드인지, 및, 각 세대에 포함되는 노드 수를 산출하는 스텝1101과,
최초에 상기 루트 노드에 번호를 부여하는 스텝1102와,
소정 세대에 포함되는 모든 노드에 번호가 부여되면, 상기 소정 세대의 다음 세대에 노드가 존재하지 않게 될 때까지, 상기 다음 세대에 포함되는 모든 노드에 대하여, 부모 노드가 다른 경우에는, 상기 부모 노드에 번호가 부여된 순번으로 상기 노드에 번호를 부여하고, 상기 부모 노드가 동일할 경우에는, 상기 부모 노드로부터 파생된 복수의 자식 노드의 사이에 형제관계를 정의하고, 제일 위의 형 노드로부터 가장 아래의 동생 노드까지 직전에 부여된 번호의 다음 번호로부터 연속적으로 변화되는 고유의 정수를 순차적으로 부여하는 스텝1013을 실행시킨다. 이것에 의해, 폭 우선 모드에서 동일한 부모 노드로부터 파생된 복수의 자식 노드의 사이에 형제관계가 정의된다.
도 12는, 본 발명의 일실시예에 의해 도 7C에 나타내어진 폭 우선의 트리형 데이터구조로부터 작성된 「자식→부모」표현에 기초하는 친자관계의 배열의 설명도이다. 동 도면에 나타내어지는 바와 같이, 폭 우선으로 연속 번호가 부여된 노드의 친자관계를 「자식→부모」관계에 기초하여 배열 표현하면, 소정 노드의 자식 노드는 연속영역에 출현한다는 우수한 성질이 얻어진다. 이것은, 폭 우선 모드에서 연속 번호가 부여된 노드의 친자관계를 「자식→부모」관계에 기초하여 배열 표현 하면, 부모 노드에 부여된 번호가 상기 배열 중에 순서 부여(오름 차순 또는 내림차순)에 의해 출현하는 것에 따른다.
따라서, 본 발명의 일실시예에서는, 폭 우선 모드의 우수한 성질을 이용함으로써, 상기 배열로부터, 소정 노드에 부여된 정수와 동일한 값이 저장되어 있는 연속영역을 추출함으로써, 상기 소정 노드의 모든 자식 노드를 특정한다. 이것에 의해, 소정 노드의 자식 노드를, 예컨대, 2분탐색 등의 방법을 이용하여 검색하는 것이 가능하고, 즉, O(log(n))의 오더로 검색하는 것이 가능하게 된다.
이미 설명한 바와 같이, 노드 간의 친자관계는, 「자식→부모」관계의 배열 이외에, 「부모→자식」관계의 배열에 의해서도 표현할 수 있다. 도 13은, 도 7C에 나타내어진 폭 우선의 트리형 데이터구조로부터 작성된 「부모→자식」표현에 기초하는 친자관계의 배열의 설명도이다. 도 13의 1개의 부모 노드에 대하여 복수의 자식 노드가 존재할 수 있으므로, 친자관계의 배열은, 각 노드에 대한 자식 노드의 번호가 저장되어 있는 영역을 나타내기 위한 배열 Aggr과, 자식 노드의 번호가 저장되어 있는 배열 P→C의 2개의 배열에 의해 구성된다. 예컨대, 배열 Aggr의 선두로부터 2번째의 요소 Aggr[1]의 값은 "3"이고, 이것은, 노드[1]에 대한 자식 노드의 번호는, 배열 P→C의 요소 P→C[3] 이후에 저장되어 있는 것을 나타내고 있다. 이것에 의해, 노드[0], 즉, 루트 노드에 대한 자식 노드는, 배열 P→C의 선두로부터 3개의 요소, P→C[0]의 1, P→C[1]의 2, 및, P→C[2]의 3인 것을 알 수 있다.
이 「부모→자식」표현에 기초하는 친자관계의 배열을 구하는 방법을 설명한다.
(1) 노드의 번호가 배열 P→C의 최대의 첨자(=11)와 일치하는 경우, 이 노드에 속하는 자식 노드는 존재하지 않는다. 따라서, 처리는 계속되지 않는다.
(2) 동 도면에서 굵은 글씨로 나타내어진 부모 노드의 번호로부터 Aggr값을 구한다. 이 Aggr값은, 배열 P→C의 개시점을 나타낸다.
(3) 굵은 글씨로 나타내어진 부모 노드 번호+1에서 대응하는 Aggr값을 구한다. 이 Aggr값-1이 배열 P→C의 종료점이다.
예컨대, 노드0의 자식 노드의 개시점은, Aggr[0], 즉, 0이고, 종료점은, Aggr[1]-1, 즉, 3-1=2이다. 따라서, 노드0의 자식 노드는, 배열 P→C의 0~2번째의 요소, 즉, 1, 2 및 3이다.
[정점 노드 및 부분 트리군]
상술한 트리에 있어서, 루트 노드에 가장 가까운 노드의 값으로, 상기 노드 및 그 노드로부터 갈라져 나와 리프 노드(끝점)에 이르기까지의 모든 노드를 표현하는 것을 생각한다. 여기서, 소정 노드 및 그 노드로부터 갈라져 나와 리프 노드에 이르기까지의 노드군을, 부분 트리로 칭한다. 또한, 상기 노드(루트 노드)에 가장 가까운 노드를 정점 노드로 칭한다.
도 14A는, 상술한 폭 우선 모드에 기초하는 트리형 데이터구조, 도 14B는, 상기 트리형 데이터구조를, 「자식→부모」표현에 기초하는 친자관계의 배열을 나타내는 도면이다. 예컨대, 정점 노드[4]는, 노드 식별자{4,8,9}를 포함하고, 정점 노드[6]은, 노드 식별자{6}을 포함하고, 또한, 정점 노드[3]은, 노드 식별자 {3,7,10,11}을 포함한다. 이러한, 복수의 정점 노드로 이루어지는 배열을, 정점 노 드 리스트로 칭한다. 정점 노드 리스트에 의해 복수의 부분 트리를 지정할 수 있고, 지정된 복수의 부분 트리를 부분 트리군으로 칭한다.
이하, 정점 노드 리스트를, [A,B,…]으로 나타낸다. 여기에, 「a」, 「b」, …은, 정점 노드에 대응하는 노드 식별자이다. 정점 노드 리스트를 구성하는 정점 노드 각각을 전개하여, 상기 정점 노드를 정점으로 부분 트리에 포함되는 모든 노드의 노드 식별자를 구하는 것을 생각한다. 구해진 노드 식별자의 리스트에 있어서, 소정 노드 식별자는 1개밖에 존재하지 않을 경우, 즉, 노드 식별자가 중복해서 출현하지 않는 경우, 이러한 부분 트리군을, 「정규부분 트리군」으로 칭한다. 그렇지 않은 부분 트리군을, 「비정규부분 트리군」으로 칭한다.
정규부분 트리군이여도, 비정규부분 트리군이여도, 정점 노드 리스트에 의해, 정점 노드 및 그 자손 노드로 이루어지는 부분 트리군을 특정할 수 있다. 예컨대, 도 15A에 나타내는 바와 같이, 정점 노드 리스트[4,6,3]에 의해, 도 15B에 나타내어지는 바와 같은 부분 트리군(부분 트리{4,8,9},{6},{3,7,10,11})이 특정된다.
정점 노드 리스트에 의해 특정되는 부분 트리군은, 검색, 집계, 소트, 집합 연산의 대상으로 할 수 있다.
예컨대, 도 15A,B의 예에서, 「하트형」의 노드를 포함하는 부분 트리를 검색하면, 도 16B에 나타내어지는 부분 트리군이 얻어진다. 도 16A는, 이 부분 트리군을 나타내는 정점 노드 리스트이다.
또한, 각 부분 트리에 속하는 노드 수를 집계하면, 도 17B에 나타내게 된다. 도 17A에 있어서, 배열 1701은 정점 노드 리스트, 배열 1702는, 각 정점 노드에 의해 특정되는 부분 트리에 속하는 노드 수를 나타내는 배열이다.
예컨대, 소트로서, 각 부분 트리에 속하는 노드 수에 의한 소트를 생각할 수 있다. 도 18A 중, 배열 1801은, 소트된 정점 노드 리스트, 배열 1802는, 정점 노드 리스트에 의해 특정되는 부분 트리에 속하는 노드 수를 나타내는 배열이다. 또한, 도 18B는, 부분 트리가 노드 수에 따라 소트된 상태를 나타낸다.
또한, 복수의 부분 트리군의 사이의 집합 연산으로서, 논리곱에 대해서 설명한다. 도 14A,B에 나타내는 트리에 있어서, 도 19B에 나타내는 부분 트리군(대응하는 정점 노드 리스트를 도 19A에 나타낸다)과, 도 19D에 나타내는 부분 트리군(대응하는 정점 노드 리스트를 도 19C에 나타낸다)의 논리곱을 생각한다.
도 19B에 있어서의, 노드 식별자「4」의 정점 노드에 의해 특정되는 부분 트리 1901과, 도 19D에 있어서의, 노드 식별자「1」의 정점 노드 식별자에 의해 특정되는 부분 트리 1911을 비교하면, 부분 트리 1901은, 부분 트리 1902에 포함된다. 도 19B에 있어서의 부분 트리 1902와 포함 관계를 갖는 부분 트리는, 도 19D에 나타내는 부분 트리군에는 존재하지 않는다. 또한, 도 19B에 있어서의 노드 식별자「3」의 정점 노드에 의해 특정되는 부분 트리 1903과, 도 19D에 있어서의, 노드 식별자「7」에 의해 특정되는 부분 트리 1913을 비교하면, 부분 트리 1913은, 부분 트리 1903에 포함된다. 그 결과, 논리곱 연산의 결과를 나타내는 정점 노드 리스트는, 도 20A에 나타내는 바와 같이, [4,7]로 된다. 도 20B는, 논리곱 연산의 결과에 대응하는 부분 트리군이다.
도 16A,B~도 20A,B로부터 이해할 수 있는 바와 같이, 정점 노드 리스트(집계에 있어서는, 이것에 추가로, 정점 노드 리스트와 동일 사이즈의, 집계 결과(노드 수)를 저장하는 배열)에 의해, 각각의 처리나 연산의 결과를 나타낼 수 있다.
[정점 노드의 이동]
표형식의 데이터에서는, 항목이 규칙적으로 나열되어 있으므로, 표시, 편집의 대상으로 되는 셀(또는 열이나 행)을 지정하는 조작은 간단하게 실행할 수 있다. 한편, 트리의 데이터는, 노드가 규칙적으로 나열되어 있지 않으므로, 표시, 편집, 집계의 대상으로 되는 노드(표형식 데이터의 「셀」에 해당하는)군을 특정하는 조작이 불가결하게 된다. 상술한 정점 노드에 의해, 이러한 표시, 편집, 집계 등의 조작을 행하는 대상의 노드군을 지정할 수 있다. 표시, 편집, 집계 등의 조작 대상으로 되는 노드군을 지정하는 노드를 컨택스트 노드로 칭하는 일도 있다. 따라서, 본 명세서에 있어서, 정점 노드는, 컨택스트 노드와 동일한 기능을 갖는다.
상술한 검색, 집계, 소트, 집합 연산은, 정점 노드 리스트 중의 값과 다른 새로운 값이 출현하지 않는 조작이었다. 그런데, 부분 트리군을 대상으로 하는 조작에 있어서는, 트리의 토폴로지를 이동하는 것이 구해지는 것이 종종 생긴다.
예컨대, 부모를 정점 노드로 하여, 가족구성을 나타내는 트리를 생각한다. 현재, 모친의 노드에, 정점 노드가 위치하고 있지만, 아이 전원의 일람을 얻고 싶은 경우에는, 정점 노드를, 모친으로부터 아이로 이동시키는 경우가 고려된다. 또한, 정규부분 트리군의 정점 노드 리스트이여도, 정점 노드를 이동한 후의 정점 노드 리스트는, 정규부분 트리군으로 된다라고는 한정하지 않고, 비정규부분 트리군 이 되는 경우도 있다.
이하, 정점 노드를 이동하는 예에 대해서 설명한다. 도 21B에 나타내는 트리에 있어서, 도 21A의 정점 노드 리스트에 나타내어지는 바와 같이, 노드 식별자「1」,「2」 및 「3」의 노드가, 각각, 정점 노드일 때에, 상기 정점 노드를, 「아이」에 상당하는 노드로 이동하는 경우를 생각한다. 또한, 도 21B,D에 있어서, 화살표를 붙인 노드가, 정점 노드인 것을 나타낸다.
이 경우에는, 도 21D에 나타내는 바와 같이, 노드 식별자「1」의 정점 노드는, 노드 식별자「4」 및 「5」의 노드로 이동한다. 또한, 노드 식별자「2」의 정점 노드는, 노드 식별자「6」의 노드로 이동함과 아울러, 노드 식별자「3」의 정점 노드는, 노드 식별자「7」의 노드로 이동한다. 그 결과, 이동 후의 정점 노드를 나타내는 정점 노드 리스트는, 도 21C에 나타내는 바와 같이, [4,5,6,7]로 된다.
도 21D, 도 22B에 나타내는 바와 같이, 노드 식별자「4」,「5」,「6」 및 「7」의 노드가 정점 노드일 때에, 정점 노드를, 「부모」에 상당하는 노드로 이동시킬 경우를 생각한다. 노드 식별자「4」의 정점 노드, 및, 노드 식별자「5」의 정점 노드는, 각각, 노드 식별자「1」의 노드로 이동한다(도 22B). 또한, 노드 식별자「6」의 정점 노드는, 노드 식별자「2」의 노드로 이동하고, 노드 식별자「7」의 정점 노드는, 노드 식별자「3」의 노드로 이동한다(도 22B). 그 결과, 이동 후의 정점 노드를 나타내는 정점 노드 리스트는, [1,1,2,3]으로 된다(도 22A).
다음에, 도 23B에 나타내는 바와 같이, 노드 식별자「1」,「2」,「3」의 노드가 정점 노드일 때에, 정점 노드를, 동일 세대에서, 또한, 바로 밑의 「동생」의 노드, 즉, 본 발명에 따른 노드 식별자의 부여 규칙에 따르면, 동일 세대에서, 또한, 부모 노드가 동일한 노드 중, 가장 가까운 노드 식별자를 갖는 노드로 이동시키는 것을 고려한다(도 23B의 파선 화살표 참조). 여기에, 「동생」의 노드는, 정점 노드와 동세대의 노드로서, 상기 정점 노드의 부모 노드로부터 정점 노드에 대하여 아크가 접속된 후에, 아크가 접속되는 노드라고 생각한다. 또한, 「형」의 노드는, 상기 정점 노드와 동세대의 노드로서, 상기 정점 노드의 부모 노드로부터 정점 노드에 대하여 아크가 접속되기 이전에, 아크가 접속되어 있는 노드라고 생각한다.
도 23B, 도 23D에 나타내는 바와 같이, 노드 식별자「1」의 정점 노드는, 노드 식별자「2」의 노드로 이동하고, 노드 식별자「2」의 정점 노드는, 노드 식별자「3」의 노드로 이동한다. 그 한편, 노드 식별자「3」의 정점 노드는, 「동생」의 노드가 존재하지 않기 때문에 소멸한다. 따라서, 도 23C에 나타내는 바와 같이, 이동 후의 정점 노드를 나타내는 정점 노드 리스트는, [2,3]으로 된다.
[정점 노드를 이동시킬 때의 처리(폭 우선 모드)]
이하, 본 발명의 실시형태에 있어서, 정점 노드를 이동시킬 때에 실행되는 처리에 대해서 설명한다. 우선, 폭 우선 모드에 기초하는 트리형 데이터구조로부터 만들어진 「자식→부모」표현에 기초하는 배열(C-P 배열)을 이용한 경우의 정점 노드의 이동에 대해서 설명한다.
도 24는, 정점 노드를 아이에 상당하는 노드로 이동시킬 때에, 컴퓨터 시스템(10)에 있어서 실행되는 처리를 나타내는 플로우차트이다. 도 24에 나타내는 바 와 같이, 컴퓨터 시스템(10)은, 정점 노드의 노드 식별자가 저장된 정점 노드 리스트의 값을 참조하여(스텝2401), C-P 배열 중, 상기 정점 노드 리스트의 값(노드 식별자)과 동일한 값을 검색한다(스텝2402). 다음으로, 컴퓨터 시스템(10)은, C-P 배열에 있어서 정점 노드의 노드 식별자를 동일한 값을 갖는 노드의 노드 식별자를, 새로운 정점 노드 리스트에 저장한다(스텝2403). 스텝2401~2403의 처리를 모든 정점 노드 리스트 중의 값에 대하여 실행함으로써(스텝2404 참조), 새로운 정점 노드 리스트에는, 아이에 상당하는 노드로 이동된 정점 노드의 노드 식별자가 저장된다.
도 25A의 예에 있어서, 정점 노드 리스트가 [1,2,3]인 것으로 생각한다. 노드 식별자「1」의 정점 노드(화살표 참조)에 착안하면, C-P 배열을 검색한 결과, 노드 식별자「4」 및 「5」에 대해서, C-P 배열의 값이, 정점 노드 리스트 중의 값 「1」과 마찬가지인 것을 알 수 있다(도 25B 참조). 그래서, 새로운 정점 노드 리스트에는, 값 「4」 및 「5」가 저장된다. 또한, 폭 우선 모드에 있어서의 C-P 배열에서는, 값이 오름 차순이기 때문에, 스텝2402의 검색은 용이하다. 다른 정점 노드 리스트 중의 값 「2」,「3」에 대해서도 마찬가지의 처리를 실행한 결과, 새로운 정점 노드 리스트 [4,5,6,7]을 얻을 수 있다.
도 26은, 정점 노드를 부모에 상당하는 노드(부모 노드)로 이동시킬 때에, 컴퓨터 시스템(10)에 있어서 실행되는 처리를 나타내는 플로우차트이다. 도 26에 나타내는 바와 같이, 컴퓨터 시스템(10)은, 정점 노드 리스트의 값을 참조하여(스텝2601), 상기 정점 노드 리스트의 값이 나타내는 C-P 배열의 값을 취득한다(스텝2602). 컴퓨터 시스템(10)은, 취득한 값을, 새로운 정점 노드 리스트에 저장한다 (스텝2603). 스텝2601~2603의 처리를 모든 정점 노드 리스트 중의 값에 대하여 실행함으로써(스텝2604 참조), 새로운 정점 노드 리스트에는, 부모에 상당하는 노드로 이동된 정점 노드의 노드 식별자가 저장된다.
도 27A에 있어서, 정점 노드 리스트가 [4,5,6,7]인 것으로 생각한다. 노드 식별자「4」의 정점 노드(화살표 참조)에 착안하면, 노드 식별자「4」에 대응하는 C-P 배열의 값은, 「1」이기 때문에, 이 값이, 새로운 정점 노드 리스트에 저장된다. 마찬가지로, 정점 노드 리스트에 저장된 다른 노드의 노드 식별자「5」,「6」 및 「7」에 대해서, 각각, 대응하는 C-P 배열의 값은, 「1」,「2」,「3」으로 된다. 따라서, 새로운 정점 노드 리스트는, [1,1,2,3]으로 된다.
도 28은, 정점 노드를, 동생에 상당하는 노드(동생 노드)로 이동시킬 때에, 컴퓨터 시스템(10)에 있어서 실행되는 처리를 나타내는 플로우차트이다. 도 28에 나타내는 바와 같이, 컴퓨터 시스템(10)은, 정점 노드 리스트의 값을 참조하여(스텝2801), 상기 정점 노드 리스트의 값이 나타내는 C-P 배열의 값(노드 식별자)을 취득한다(스텝2802). 계속해서, 컴퓨터 시스템(10)은, 상기 정점 노드의 다음 값(본 실시형태에서는, 기본의 값에 「1」을 더한 값)이 나타내는 C-P 배열의 값(노드 식별자)을 취득한다(스텝2803).
다음으로, 컴퓨터 시스템(10)은, 취득한 2개의 값을 비교하여, 양자가 일치하는 경우에는(스텝2804에서 예(Yes)), 상기 다음의 값(노드 식별자)을, 새로운 정점 노드 리스트에 저장한다(스텝2805). 한편, 양자가 일치하지 않는 경우에는, 처리대상으로 되어 있는 정점 노드가 이동하면, 소멸되는 것으로 판단된다.
컴퓨터 시스템(10)은, 스텝2601~2603의 처리를 모든 정점 노드 리스트 중의 값에 대하여 실행함으로써(스텝2806 참조), 새로운 정점 노드 리스트에는, 동생에 상당하는 노드로 이동된 정점 노드의 노드 식별자가 저장된다.
도 29A에 있어서 정점 노드 리스트가 [4,5,6,7]인 것으로 생각한다. 노드 식별자「4」의 정점 노드(화살표 참조)에 착안하면, 노드 식별자「4」에 대응하는 C-P 배열의 값은, 「1」이고, 노드 식별자「5」에 대응하는 C-P 배열의 값도 「1」이다. 따라서 양자는 일치하기 때문에, 노드 식별자「5」가, 새로운 정점 노드 리스트에 저장된다. 노드 식별자「5」,「6」 및 「7」에 대해서는, 각각, 자신에 대응하는 C-P 배열의 값과, 자신의 값에 「1」을 더한 것에 대응하는 C-P 배열의 값이 서로 다르기 때문에, 정점 노드는 소멸된다. 따라서, 새로운 정점 노드 리스트는 [5]로 된다.
또한, 정점 노드를, 「형」에 상당하는 노드로 이동시킬 경우에는, 정점 노드 리스트 중의 노드 식별자가 나타내는 C-P 배열의 값과, 상기 노드 식별자의 1개 전의 노드 식별자(즉, 값이 「-1」인 노드 식별자)가 나타내는 C-P 배열의 값을 비교하면 된다.
[정점 노드를 이동시킬 때의 처리(깊이 우선 모드)]
이하, 본 발명의 실시형태에 있어서, 정점 노드를 이동시킬 때에 실행되는 처리에 대해서 설명한다. 우선, 깊이 우선 모드에 기초하는 트리형 데이터구조로부터 만들어진 「자식→부모」표현에 기초하는 배열(C-P 배열)을 이용한 경우의 정점 노드의 이동에 대해서 설명한다.
깊이 우선 모드하에서도, 정점 노드를 아이에 상당하는 노드로 이동시킬 때에, 컴퓨터 시스템(10)에 있어서 실행되는 처리는, 도 24에 나타내는 것과 마찬가지이다. 또한, 깊이 우선 모드에 있어서의 C-P 배열에서는, 값은 오름 차순으로는 되어 있지 않다. 그러나, 아이에 상당하는 노드는, 정점 노드 리스트 중의 노드 식별자의 다음(본 실시형태에서는 값에 「1」이 더해진) 노드 식별자로부터, 노드 식별자가 나타내는 C-P 배열의 값이, 정점 노드 리스트의 값보다 작게 되는 노드 식별자의 1개 전방(본 실시형태에서는, 이러한 노드 식별자보다 「1」만큼 작은 노드 식별자)의 노드의 범위에 나타내어진다.
따라서, 아이에 상당하는 노드를 검색할 때에는, 도 30에 나타내는 바와 같이, 컴퓨터 시스템(10)은, 정점 노드 리스트 중의 노드를 기준 노드로 하여, 상기 기준 노드의 다음 위치(즉, 기준 노드의 노드 식별자에 「1」을 더한 노드 식별자가 나타내는 위치)에, 검색용 포인터를 배치하고(스텝3001), 검색용 포인터가 나타내는 C-P 배열의 값을 특정한다(스텝3002). 다음으로, 특정된 값이, 기준 노드의 노드 식별자와 동일한지가 판단된다(스텝3003). 스텝3003에서 예(Yes)로 판단된 경우에는, 컴퓨터 시스템(10)은, 검색용 포인터가 위치하는 노드 식별자를, 새로운 정점 노드 리스트에 저장한다(스텝3004). 그 후, 검색용 포인터가 1개 진행된다(스텝3005).
한편, 스텝3003에서 아니오(No)인 것으로 판단된 경우에는, C-P 배열의 값이, 기준 노드의 노드 식별자 이상인지를 판단한다(스텝3006). 스텝3006에서 예(Yes)인 것으로 판단된 경우에는, 검색용 포인터가 위치하는 노드 식별자의 노드 는, 기준 노드의 자손이기 때문에, 다음 처리를 위해서, 검색용 포인터가 1개 진행된다(스텝3005). 스텝3006에서 아니오(No)인 것은, 검색용 포인터가 위치하는 노드 식별자의 노드는, 정점 노드의 자손이 아니기 때문에, 처리를 종료시킨다.
도 31A의 예에 있어서, 정점 노드 리스트가 [1,6,8]인 것으로 생각한다. 노드 식별자「1」의 정점 노드(화살표 참조)에 착안한다. 검색용 포인터는, 초기적으로는, 노드 식별자「2」의 위치에 배치된다. 이 시점에서, 검색용 포인터가 나타내는 C-P 배열의 값은, 「1」이기 때문에, 노드 식별자「2」가 새로운 정점 노드 리스트에 저장된다.
또한, 검색용 포인터가, 노드 식별자「5」에 배치될 때에, 상기 검색용 포인터가 나타내는 C-P 배열의 값은, 「1」이기 때문에, 노드 식별자「5」가 새로운 정점 노드 리스트에 저장된다. 그 후, 검색용 포인터가 노드 식별자「6」에 위치될 때에, 상기 검색용 포인터가 나타내는 C-P 배열의 값은 「0」이고, 기준 노드의 노드 식별자「1」보다 작기 때문에, 처리 자체가 종료된다.
다음에, 정점 노드를 부모에 상당하는 노드로 이동시킬 때에, 컴퓨터 시스템(10)에서 실행되는 처리에 대해서 설명한다. 부모에 상당하는 노드로 이동할 때의 처리는, 도 26에 나타내는 것과 마찬가지이다. 도 32A의 예에 있어서, 정점 노드 리스트가 [2,5,7,9]인 것으로 생각한다. 노드 식별자「2」의 정점 노드(화살표 참조)에 착안하면, 노드 식별자「2」에 대응하는 C-P 배열의 값(도 32B 참조)은, 「1」이기 때문에, 이 값이, 새로운 정점 노드 리스트에 저장된다. 마찬가지로, 노드 식별자「5」,「7」,「9」에 대해서, 각각, 대응하는 C-P 배열의 값은 「1」,「6 」,「8」이기 때문에, 새로운 정점 노드 리스트는, [1,1,6,8]로 된다.
도 33은, 정점 노드를 동생에 상당하는 노드로 이동시킬 때에, 컴퓨터 시스템(10)에 있어서 실행되는 처리를 나타내는 플로우차트이다. 도 33에 나타내는 바와 같이, 컴퓨터 시스템(10)은, 정점 노드 리스트의 값을 참조하여(스텝3301), 상기 정점 노드 리스트의 값이 나타내는 C-P 배열의 값(노드 식별자)을 취득한다(스텝3302). 다음으로, 컴퓨터 시스템(10)은, 다음 노드 식별자 (「1」만큼 값이 큰 노드 식별자) 이후에, 동일한 C-P 배열의 값을 갖는 노드 식별자를 검색한다(스텝3303). 동일한 값이 발견되면(스텝3304에서 예(Yes)), 컴퓨터 시스템(10)은, 그 값을 갖는 노드 식별자를, 새로운 정점 노드 리스트에 저장한다(스텝3305). 동일한 값이 발견되지 않을 경우에는, 상기 정점 노드는 소멸된 것으로 판단된다.
컴퓨터 시스템은, 스텝3301~3305의 처리를 모든 정점 노드 리스트의 값에 대하여 실행함으로써(스텝3306), 새로운 정점 노드 리스트에는, 동생에 상당하는 노드로 이동된 정점 노드의 노드 식별자가 저장된다. 도 34A에 있어서, 정점 노드 리스트가 [2,5,7,9]인 것으로 생각한다. 노드 식별자「2」의 정점 노드에 착안하면, 노드 식별자에 대응하는 C-P 배열의 값은 「1」이다. 도 33의 처리에 의해, C-P 배열의 값이 「1」인 노드 식별자「5」를 검색할 수 있기 때문에, 정점 노드 리스트에는, 노드 식별자「5」가 저장된다. 노드 식별자「5」,「7」,「9」의 정점 노드에 대해서는, C-P 배열을 검색해도, 동일한 값을 찾아낼 수 없다. 즉, 부모 노드로서 동일한 번호를 갖는 노드를 찾아낼 수 없다. 따라서, 이들 정점 노드는, 이동에 의해 소멸된다. 그 결과, 새로운 정점 노드의 정점 노드 리스트는 「5」로 된다.
[정보처리장치]
도 35는, 본 발명의 일실시예에 따른 트리형 데이터구조를 구축하고, 정점 노드 리스트를 생성하고, 또한, 정점 노드의 이동 후의 정점 노드 리스트를 생성하는 정보처리장치(3500)의 기능 블록 다이어그램이다. 이 정보처리장치(3500)는, 실제로는, 도 1에 나타내는 컴퓨터 시스템(10)에 필요한 프로그램을 인스톨함으로써 실현된다.
도 35에 나타내는 바와 같이, 정보처리장치(3500)는, 트리형 데이터구조를 표현하는 데이터, 및, 정점 노드 리스트를 기억하는 기억부(3501)와, 루트 노드를 포함하는 노드에 고유의 노드 식별자를 부여하고, 노드 식별자를 기억부(3501)에 저장하는 노드 정의부(3502)와, 상기 루트 노드 이외의 노드인 비루트 노드 각각에 부여된 노드 식별자에, 상기 비루트 노드 각각의 부모 노드에 부여된 노드 식별자를 관련시키고, 상기 관련시킴을 나타내는 배열인 C-P 배열을 기억부(3501)에 저장하는 친자관계 정의부(3503)과, 기억부(3501)에 저장된 노드 식별자 및 C-P 배열에 기초하여, 정점 노드 리스트를 생성하는 정점 노드 리스트 생성부(3504)와, 입력장치(도 1의 부호 24 참조) 등으로부터의 지시에 따라, 정점 노드를 이동시키고, 이동 후의 정점 노드를 나타내는 새로운 정점 노드 리스트를 생성하는 정점 노드 이동처리부(3505)를 구비하고 있다. 정점 노드 리스트 생성부(3504)에서 생성된 정점 노드 리스트나, 정점 노드 이동처리부(3505)에서 생성된 새로운 정점 노드 리스트는, 기억부(3501)에 기억된다.
바람직하게는, 노드 정의부(3502)는, 노드 식별자로서 수치를 이용하고, 보 다 바람직하게는, 노드 식별자로서 연속되는 정수를 이용한다. 또한, 친자관계 정의부(3503)는, 비루트 노드 각각에 부여된 노드 식별자와, 관련된 부모 노드에 부여된 노드 식별자의 세트의 배열을 기억부(3501)에 저장한다.
또한, 입력장치(도 1의 부호 24 참조)로부터의 지시 등에 의해, 노드가 지정되면, 정점 노드 리스트 생성부(3504)는, 지정된 노드의 노드 식별자를, 정점 노드 리스트 중에 저장한다. 또한, 입력장치로부터의 지시 등에 의해, 정점 노드의 이동의 지시(부모에 상당하는 노드로의 이동, 아이에 상당하는 노드로의 이동, 동생(형)에 상당하는 노드로의 이동)가 주어지면, 정점 노드 이동처리부(3505)는, C-P 배열 및 정점 노드 리스트를, 기억부(3501)로부터 취득하여, 새로운 정점 노드 리스트를 생성하고, 기억부(3501)에 기억한다.
본 발명은, 이상의 실시형태에 한정되는 일 없이, 특허청구의 범위에 기재된 발명의 범위 내에서, 각종 변경이 가능하고, 이들도 본 발명의 범위 내에 포함되는 것은 말할 필요도 없다.

Claims (20)

  1. 노드에 고유의 노드 식별자가 부여되고,
    루트 노드 이외의 노드인 비루트 노드 각각에 부여된 노드 식별자에, 상기 비루트 노드 각각의 부모 노드에 부여된 노드 식별자를 관련시키고, 그 관련을 나타내는 제1배열에 의해 노드간의 친자관계가 표현된, 트리형 데이터구조의 데이터를 구비한 컴퓨터에 있어서 상기 컴퓨터가 실행하는 배열의 생성방법으로서,
    특정의 노드 및 상기 특정의 노드의 자손 노드를 포함하는 노드군을 나타내기 위하여, 1 이상의 상기 특정의 노드를 각각 정점 노드로 하여, 상기 각 정점 노드의 노드 식별자를 저장한 제2배열을 설치하는 스텝, 및
    상기 제1배열을 참조하여, 상기 제2배열에 노드 식별자가 저장된 정점 노드 각각을, 상기 정점 노드와 소정의 관계에 있는 노드로 이동시키고, 상기 이동 후의 노드를 새로운 정점 노드로 하여, 상기 새로운 정점 노드의 노드 식별자를 저장한 제3배열을 생성하는 스텝을 구비하고,
    상기 제3배열을 생성하는 스텝에 있어서 상기 정점 노드와 소정의 관계에 있는 노드는,
    a) 상기 정점 노드와 아크에서 직접 연결되고, 또한, 상기 아크가 상기 정점 노드로부터 연장되어 있는 자식 노드,
    b) 상기 정점 노드와 아크에서 직접 연결되고, 또한, 상기 아크가 거기에서부터 상기 정점 노드까지 연장되어 있는 부모 노드,
    c) 상기 정점 노드와 동세대의 노드로서, 상기 정점 노드의 부모 노드로부터 상기 정점 노드에 대하여 아크가 접속되기 이전에, 아크가 접속되어 있는 형 노드, 및,
    d) 상기 정점 노드와 동세대의 노드로서, 상기 정점 노드의 부모 노드로부터 상기 정점 노드에 대하여 아크가 접속된 후에, 아크가 접속되어 있는 동생 노드
    중 어느 하나인 것을 특징으로 하는 배열의 생성방법.
  2. 삭제
  3. 제1항에 있어서, 자식 노드보다 동일 세대의 노드를 우선하여, 루트 노드를 포함하는 노드에 고유의 연속되는 정수가 부여되고,
    상기 제1배열이, 상기 루트 노드 이외의 노드인 비루트 노드 각각에 부여된 정수의 순서로, 상기 비루트 노드 각각의 부모 노드에 부여된 정수를 나열함으로써 형성되고,
    상기 제3배열을 생성하는 스텝이,
    상기 제1배열 중, 정점 노드의 노드 식별자가 저장된 저장위치를 특정하는 스텝과,
    상기 이동 후의 새로운 정점 노드의 노드 식별자로서 상기 저장위치에 대응하는 노드 식별자를 상기 제3배열에 저장하는 스텝을 갖고,
    상기 정점 노드 각각을 자식 노드로 이동시키는 것을 특징으로 하는 배열의 생성방법.
  4. 제1항에 있어서, 자식 노드보다 동일 세대의 노드를 우선하여, 루트 노드를 포함하는 노드에 고유의 연속되는 정수가 부여되고,
    상기 제1배열이, 상기 루트 노드 이외의 노드인 비루트 노드 각각에 부여된 정수의 순서로, 상기 비루트 노드 각각의 부모 노드에 부여된 정수를 나열함으로써 형성되고,
    상기 제3배열을 생성하는 스텝이,
    상기 제1배열 중, 정점 노드의 노드 식별자에 대응하는 위치에 저장된 노드 식별자를 특정하는 스텝과,
    상기 이동 후의 새로운 정점 노드의 노드 식별자로서 상기 대응하는 위치에 저장된 노드 식별자를 상기 제3배열에 저장하는 스텝을 갖고,
    상기 정점 노드 각각을 부모 노드로 이동시키는 것을 특징으로 하는 배열의 생성방법.
  5. 제1항에 있어서, 자식 노드보다 동일 세대의 노드를 우선하여, 루트 노드를 포함하는 노드에 고유의 연속되는 정수가 부여되고,
    상기 제1배열이, 상기 루트 노드 이외의 노드인 비루트 노드 각각에 부여된 정수의 순서로, 상기 비루트 노드 각각의 부모 노드에 부여된 정수를 나열함으로써 형성되고,
    상기 제3배열을 생성하는 스텝이,
    상기 제1배열 중, 정점 노드의 노드 식별자에 대응하는 위치에 저장된 제 1 노드 식별자를 특정하는 스텝과,
    상기 제1배열 중, 상기 정점 노드 식별자에 대응하는 위치의 값보다 1만큼 작은 값의 저장위치에 저장된 제 2 노드 식별자를 특정하는 스텝과,
    상기 제 1 노드 식별자와 제 2 노드 식별자가 일치하는 경우에, 상기 이동 후의 새로운 정점 노드의 노드 식별자로서 상기 제 2 노드 식별자의 저장위치에 대응하는 노드 식별자를 상기 제3배열에 저장하는 스텝을 갖고,
    상기 정점 노드 각각을 형 노드로 이동시키는 것을 특징으로 하는 배열의 생성방법.
  6. 제1항에 있어서, 자식 노드보다 동일 세대의 노드를 우선하여, 루트 노드를 포함하는 노드에 고유의 연속되는 정수가 부여되고,
    상기 제1배열이, 상기 루트 노드 이외의 노드인 비루트 노드 각각에 부여된 정수의 순서로, 상기 비루트 노드 각각의 부모 노드에 부여된 정수를 나열함으로써 형성되고,
    상기 제3배열을 생성하는 스텝이,
    상기 제1배열 중, 정점 노드의 노드 식별자에 대응하는 위치에 저장된 제 1 노드 식별자를 특정하는 스텝과,
    상기 제1배열 중, 상기 정점 노드 식별자에 대응하는 위치의 값보다 1만큼 큰 값의 저장위치에 저장된 제 3 노드 식별자를 특정하는 스텝과,
    상기 제 1 노드 식별자와 제 3 노드 식별자가 일치하는 경우에, 상기 이동 후의 새로운 정점 노드의 노드 식별자로서 상기 제 3 노드 식별자의 저장위치에 대응하는 노드 식별자를 상기 제3배열에 저장하는 스텝을 갖고,
    상기 정점 노드 각각을 동생 노드로 이동시키는 것을 특징으로 하는 배열의 생성방법.
  7. 제1항에 있어서, 동일 세대의 노드보다 자식 노드를 우선하여, 루트 노드를 포함하는 노드에 고유의 연속되는 정수가 부여되고,
    상기 제1배열이, 상기 루트 노드 이외의 노드인 비루트 노드 각각에 부여된 정수의 순서로, 상기 비루트 노드 각각의 부모 노드에 부여된 정수를 나열함으로써 형성되고,
    상기 제3배열을 생성하는 스텝이,
    상기 제1배열 중, 정점 노드의 노드 식별자가 저장된 저장위치를 특정하는 스텝과,
    상기 이동 후의 새로운 정점 노드의 노드 식별자로서 상기 저장위치에 대응하는 노드 식별자를 상기 제3배열에 저장하는 스텝을 갖고,
    상기 정점 노드 각각을 자식 노드로 이동시키는 것을 특징으로 하는 배열의 생성방법.
  8. 제1항에 있어서, 동일 세대의 노드보다 자식 노드를 우선하여, 루트 노드를 포함하는 노드에 고유의 연속되는 정수가 부여되고,
    상기 제1배열이, 상기 루트 노드 이외의 노드인 비루트 노드 각각에 부여된 정수의 순서로, 상기 비루트 노드 각각의 부모 노드에 부여된 정수를 나열함으로써 형성되고,
    상기 제3배열을 생성하는 스텝이,
    상기 제1배열 중, 정점 노드의 노드 식별자에 대응하는 위치에 저장된 노드 식별자를 특정하는 스텝과,
    상기 이동 후의 새로운 정점 노드의 노드 식별자로서 상기 대응하는 위치에 저장된 노드 식별자를 상기 제3배열에 저장하는 스텝을 갖고,
    상기 정점 노드 각각을 부모 노드로 이동시키는 것을 특징으로 하는 배열의 생성방법.
  9. 제1항에 있어서, 동일 세대의 노드보다 자식 노드를 우선하여, 루트 노드를 포함하는 노드에 고유의 연속되는 정수가 부여되고,
    상기 제1배열이, 상기 루트 노드 이외의 노드인 비루트 노드 각각에 부여된 정수의 순서로, 상기 비루트 노드 각각의 부모 노드에 부여된 정수를 나열함으로써 형성되고,
    상기 제3배열을 생성하는 스텝이,
    상기 제1배열 중, 정점 노드의 노드 식별자의 저장위치에 저장된 제 1 노드 식별자를 특정하는 스텝과,
    상기 제1배열 중, 정점 노드의 노드 식별자의 저장위치의 값보다 작은 값의 저장위치에 저장된, 상기 제 1 노드 식별자와 같은 제 4 노드 식별자를 검색하는 스텝과,
    상기 제 4 노드 식별자의 저장위치 중, 최대의 저장위치를 특정하는 스텝과,
    상기 이동 후의 새로운 정점 노드의 노드 식별자로서 상기 최대의 저장위치에 대응하는 노드 식별자를 상기 제3배열에 저장하는 스텝을 갖고,
    상기 정점 노드 각각을 형 노드로 이동시키는 것을 특징으로 하는 배열의 생성방법.
  10. 제1항에 있어서, 동일 세대의 노드보다 자식 노드를 우선하여, 루트 노드를 포함하는 노드에 고유의 연속되는 정수가 부여되고,
    상기 제1배열이, 상기 루트 노드 이외의 노드인 비루트 노드 각각에 부여된 정수의 순서로, 상기 비루트 노드 각각의 부모 노드에 부여된 정수를 나열함으로써 형성되고,
    상기 제3배열을 생성하는 스텝이,
    상기 제1배열 중, 정점 노드의 노드 식별자의 저장위치에 저장된 제 1 노드 식별자를 특정하는 스텝과,
    상기 제1배열 중, 정점 노드의 노드 식별자의 저장위치의 값보다 큰 값의 저장위치에 저장된, 상기 제 1 노드 식별자와 같은 제 5 노드 식별자를 검색하는 스텝과,
    상기 제 5 노드 식별자의 저장위치 중, 최소의 저장위치를 특정하는 스텝과,
    상기 이동 후의 새로운 정점 노드의 노드 식별자로서 상기 최소의 저장위치에 대응하는 노드 식별자를 상기 제3배열에 저장하는 스텝을 갖고,
    상기 정점 노드 각각을 동생 노드로 이동시키는 것을 특징으로 하는 배열의 생성방법.
  11. 노드에 고유의 노드 식별자가 부여되고,
    루트 노드 이외의 노드인 비루트 노드 각각에 부여된 노드 식별자에, 상기 비루트 노드 각각의 부모 노드에 부여된 노드 식별자를 관련시키고, 그 관련을 나타내는 제1배열에 의해 노드간의 친자관계가 표현된, 트리형 데이터구조의 데이터를 구비한 컴퓨터에 의해 판독 가능한 컴퓨터 프로그램을 수록한 기록 매체로서,
    상기 컴퓨터 프로그램은 상기 컴퓨터에,
    특정의 노드 및 상기 특정의 노드의 자손 노드를 포함하는 노드군을 나타내기 위하여, 1 이상의 상기 특정의 노드를 각각 정점 노드로 하여, 상기 각 정점 노드의 노드 식별자를 저장한 제2배열을 설치하는 스텝, 및
    상기 제1배열을 참조하여, 상기 제2배열에 노드 식별자가 저장된 정점 노드 각각을 상기 정점 노드와 소정의 관계에 있는 노드로 이동시키고, 상기 이동 후의 노드를 새로운 정점 노드로 하여, 상기 새로운 정점 노드의 노드 식별자를 저장한 제3배열을 생성하는 스텝을 실행시키고,
    상기 제3배열을 생성하는 스텝에 있어서 상기 정점 노드와 소정의 관계에 있는 노드는,
    a) 상기 정점 노드와 아크에서 직접 연결되고, 또한, 상기 아크가 상기 정점 노드로부터 연장되어 있는 자식 노드,
    b) 상기 정점 노드와 아크에서 직접 연결되고, 또한, 상기 아크가 거기에서부터 상기 정점 노드까지 연장되어 있는 부모 노드,
    c) 상기 정점 노드와 동세대의 노드로서, 상기 정점 노드의 부모 노드로부터 상기 정점 노드에 대하여 아크가 접속되기 이전에, 아크가 접속되어 있는 형 노드, 및,
    d) 상기 정점 노드와 동세대의 노드로서, 상기 정점 노드의 부모 노드로부터 상기 정점 노드에 대하여 아크가 접속된 후에, 아크가 접속되어 있는 동생 노드
    중 어느 하나인 것을 특징으로 하는, 기록 매체.
  12. 삭제
  13. 제11항에 있어서, 자식 노드보다 동일 세대의 노드를 우선하여, 루트 노드를 포함하는 노드에 고유의 연속되는 정수가 부여되고,
    상기 제1배열이, 상기 루트 노드 이외의 노드인 비루트 노드 각각에 부여된 정수의 순서로, 상기 비루트 노드 각각의 부모 노드에 부여된 정수를 나열함으로써 형성되고,
    상기 정점 노드 각각을, 자식 노드로 이동시키기 위해서, 상기 제3배열을 생성하는 스텝에 있어서, 상기 컴퓨터 프로그램은 상기 컴퓨터에,
    상기 제1배열 중, 정점 노드의 노드 식별자가 저장된 저장위치를 특정하는 스텝과,
    상기 이동 후의 새로운 정점 노드의 노드 식별자로서 상기 저장위치에 대응하는 노드 식별자를 상기 제3배열에 저장하는 스텝을 실행시키는 것을 특징으로 하는, 기록 매체.
  14. 제11항에 있어서, 자식 노드보다 동일 세대의 노드를 우선하여, 루트 노드를 포함하는 노드에 고유의 연속되는 정수가 부여되고,
    상기 제1배열이, 상기 루트 노드 이외의 노드인 비루트 노드 각각에 부여된 정수의 순서로, 상기 비루트 노드 각각의 부모 노드에 부여된 정수를 나열함으로써 형성되고,
    상기 정점 노드 각각을, 부모 노드로 이동시키기 위해서, 상기 제3배열을 생성하는 스텝에 있어서, 상기 컴퓨터 프로그램은 상기 컴퓨터에,
    상기 제1배열 중, 정점 노드의 노드 식별자에 대응하는 위치에 저장된 노드 식별자를 특정하는 스텝과,
    상기 이동 후의 새로운 정점 노드의 노드 식별자로서 상기 대응하는 위치에 저장된 노드 식별자를 상기 제3배열에 저장하는 스텝을 실행시키는 것을 특징으로 하는, 기록 매체.
  15. 제11항에 있어서, 자식 노드보다 동일 세대의 노드를 우선하여, 루트 노드를 포함하는 노드에 고유의 연속되는 정수가 부여되고,
    상기 제1배열이, 상기 루트 노드 이외의 노드인 비루트 노드 각각에 부여된 정수의 순서로, 상기 비루트 노드 각각의 부모 노드에 부여된 정수를 나열함으로써 형성되고,
    상기 정점 노드 각각을, 동생 노드로 이동시키기 위해서, 상기 제3배열을 생성하는 스텝에 있어서, 상기 컴퓨터 프로그램은 상기 컴퓨터에,
    상기 제1배열 중, 정점 노드의 노드 식별자에 대응하는 위치에 저장된 제 1 노드 식별자를 특정하는 스텝과,
    상기 제1배열 중, 상기 정점 노드 식별자에 대응하는 위치의 값보다 1만큼 작은 값의 저장위치에 저장된 제 2 노드 식별자를 특정하는 스텝과,
    상기 제 1 노드 식별자와 제 2 노드 식별자가 일치하는 경우에, 상기 이동 후의 새로운 정점 노드의 노드 식별자로서 상기 제 2 노드 식별자의 저장위치에 대응하는 노드 식별자를 상기 제3배열에 저장하는 스텝을 실행시키는 것을 특징으로 하는, 기록 매체.
  16. 제11항에 있어서, 자식 노드보다 동일 세대의 노드를 우선하여, 루트 노드를 포함하는 노드에 고유의 연속되는 정수가 부여되고,
    상기 제1배열이, 상기 루트 노드 이외의 노드인 비루트 노드 각각에 부여된 정수의 순서로, 상기 비루트 노드 각각의 부모 노드에 부여된 정수를 나열함으로써 형성되고,
    상기 정점 노드 각각을, 동생 노드로 이동시키기 위해서, 상기 제3배열을 생성하는 스텝에 있어서, 상기 컴퓨터 프로그램은 상기 컴퓨터에,
    상기 제1배열 중, 정점 노드의 노드 식별자에 대응하는 위치에 저장된 제 1 노드 식별자를 특정하는 스텝과,
    상기 제1배열 중, 상기 정점 노드 식별자에 대응하는 위치의 값보다 1만큼 큰 값의 저장위치에 저장된 제 3 노드 식별자를 특정하는 스텝과,
    상기 제 1 노드 식별자와 제 3 노드 식별자가 일치하는 경우에, 상기 이동 후의 새로운 정점 노드의 노드 식별자로서 상기 제 3 노드 식별자의 저장위치에 대응하는 노드 식별자를 상기 제3배열에 저장하는 스텝을 실행시키는 것을 특징으로 하는, 기록 매체.
  17. 제11항에 있어서, 동일 세대의 노드보다 자식 노드를 우선하여, 루트 노드를 포함하는 노드에 고유의 연속되는 정수가 부여되고,
    상기 제1배열이, 상기 루트 노드 이외의 노드인 비루트 노드 각각에 부여된 정수의 순서로, 상기 비루트 노드 각각의 부모 노드에 부여된 정수를 나열함으로써 형성되고,
    상기 정점 노드 각각을, 자식 노드로 이동시키기 위해서, 상기 제3배열을 생성하는 스텝에 있어서, 상기 컴퓨터 프로그램은 상기 컴퓨터에,
    상기 제1배열 중, 정점 노드의 노드 식별자가 저장된 저장위치를 특정하는 스텝과,
    상기 이동 후의 새로운 정점 노드의 노드 식별자로서 상기 저장위치에 대응하는 노드 식별자를 상기 제3배열에 저장하는 스텝을 실행시키는 것을 특징으로 하는, 기록 매체.
  18. 제11항에 있어서, 동일 세대의 노드보다 자식 노드를 우선하여, 루트 노드를 포함하는 노드에 고유의 연속되는 정수가 부여되고,
    상기 제1배열이, 상기 루트 노드 이외의 노드인 비루트 노드 각각에 부여된 정수의 순서로, 상기 비루트 노드 각각의 부모 노드에 부여된 정수를 나열함으로써 형성되고,
    상기 정점 노드 각각을, 부모 노드로 이동시키기 위해서, 상기 제3배열을 생성하는 스텝에 있어서, 상기 컴퓨터 프로그램은 상기 컴퓨터에,
    상기 제1배열 중, 정점 노드의 노드 식별자에 대응하는 위치에 저장된 노드 식별자를 특정하는 스텝과,
    상기 이동 후의 새로운 정점 노드의 노드 식별자로서 상기 대응하는 위치에 저장된 노드 식별자를 상기 제3배열에 저장하는 스텝을 실행시키는 것을 특징으로 하는, 기록 매체.
  19. 제11항에 있어서, 동일 세대의 노드보다 자식 노드를 우선하여, 루트 노드를 포함하는 노드에 고유의 연속되는 정수가 부여되고,
    상기 제1배열이, 상기 루트 노드 이외의 노드인 비루트 노드 각각에 부여된 정수의 순서로, 상기 비루트 노드 각각의 부모 노드에 부여된 정수를 나열함으로써 형성되고,
    상기 정점 노드 각각을 동생 노드로 이동시키기 위해서, 상기 제3배열을 생성하는 스텝에 있어서, 상기 컴퓨터 프로그램은 상기 컴퓨터에,
    상기 제1배열 중, 정점 노드의 노드 식별자의 저장위치에 저장된 제 1 노드 식별자를 특정하는 스텝과,
    상기 제1배열 중, 정점 노드의 노드 식별자의 저장위치의 값보다 작은 값의 저장위치에 저장된, 상기 제 1 노드 식별자와 같은 제 4 노드 식별자를 검색하는 스텝과,
    상기 제 4 노드 식별자의 저장위치 중, 최대의 저장위치를 특정하는 스텝과,
    상기 이동 후의 새로운 정점 노드의 노드 식별자로서 상기 최대의 저장위치에 대응하는 노드 식별자를 상기 제3배열에 저장하는 스텝을 실행시키는 것을 특징으로 하는, 기록 매체.
  20. 제11항에 있어서, 동일 세대의 노드보다 자식 노드를 우선하여, 루트 노드를 포함하는 노드에 고유의 연속되는 정수가 부여되고,
    상기 제1배열이, 상기 루트 노드 이외의 노드인 비루트 노드 각각에 부여된 정수의 순서로, 상기 비루트 노드 각각의 부모 노드에 부여된 정수를 나열함으로써 형성되고,
    상기 정점 노드 각각을 동생 노드로 이동시키기 위해서, 상기 제3배열을 생성하는 스텝에 있어서, 상기 컴퓨터 프로그램은 상기 컴퓨터에,
    상기 제1배열 중, 정점 노드의 노드 식별자의 저장위치에 저장된 제 1 노드 식별자를 특정하는 스텝과,
    상기 제1배열 중, 정점 노드의 노드 식별자의 저장위치의 값보다 큰 값의 저장위치에 저장된, 상기 제 1 노드 식별자와 같은 제 5 노드 식별자를 검색하는 스텝과,
    상기 제 5 노드 식별자의 저장위치 중, 최소의 저장위치를 특정하는 스텝과,
    상기 이동 후의 새로운 정점 노드의 노드 식별자로서 상기 최소의 저장위치에 대응하는 노드 식별자를 상기 제3배열에 저장하는 스텝을 실행시키는 것을 특징으로 하는, 기록 매체.
KR1020077005216A 2004-10-01 2005-09-28 배열의 생성방법 및 이를 실행하는 컴퓨터 프로그램을 수록한 기록 매체 KR101254544B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JPJP-P-2004-00290638 2004-10-01
JP2004290638 2004-10-01
PCT/JP2005/017794 WO2006038498A1 (ja) 2004-10-01 2005-09-28 配列の生成方法、及び、配列生成プログラム

Publications (2)

Publication Number Publication Date
KR20070057819A KR20070057819A (ko) 2007-06-07
KR101254544B1 true KR101254544B1 (ko) 2013-04-19

Family

ID=36142576

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020077005216A KR101254544B1 (ko) 2004-10-01 2005-09-28 배열의 생성방법 및 이를 실행하는 컴퓨터 프로그램을 수록한 기록 매체

Country Status (7)

Country Link
US (1) US20090106289A1 (ko)
EP (1) EP1811383A1 (ko)
JP (1) JP4712718B2 (ko)
KR (1) KR101254544B1 (ko)
CN (1) CN100587673C (ko)
CA (1) CA2581219A1 (ko)
WO (1) WO2006038498A1 (ko)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2006080268A1 (ja) * 2005-01-25 2006-08-03 Turbo Data Laboratories Inc. ツリーの検索、集計、ソート方法、情報処理装置、および、ツリーの検索、集計、ソートプログラム
US20060212852A1 (en) * 2005-03-16 2006-09-21 Jinwoo Hwang Methods, systems and computer program products for detecting memory leaks
US8312050B2 (en) * 2008-01-16 2012-11-13 International Business Machines Corporation Avoiding database related joins with specialized index structures
CN101963931A (zh) * 2009-07-22 2011-02-02 鸿富锦精密工业(深圳)有限公司 可扩展固件接口下的硬盘测试方法
CN102402545B (zh) * 2010-09-14 2015-09-02 腾讯科技(深圳)有限公司 一种存储数据的方法及装置
US20150286720A1 (en) * 2012-12-11 2015-10-08 Tmm Data, Llc Methods and systems for collecting, managing, and sharing data
US10120956B2 (en) * 2014-08-29 2018-11-06 GraphSQL, Inc. Methods and systems for distributed computation of graph data
US20160217302A1 (en) * 2015-01-23 2016-07-28 Karim Kassam High-speed, hacker-resistant computer data storage and retrieval system
JP6704947B2 (ja) * 2018-02-27 2020-06-03 株式会社東芝 支援システム
CN110889022A (zh) * 2018-08-17 2020-03-17 迈普通信技术股份有限公司 数据查询方法、装置及电子设备
CN111522819A (zh) * 2020-04-24 2020-08-11 上海用天网络科技有限公司 一种树型结构数据汇总的方法及系统

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS648448A (en) * 1987-07-01 1989-01-12 Hitachi Ltd Expression system for tree structure data
US20020087596A1 (en) * 2000-12-29 2002-07-04 Steve Lewontin Compact tree representation of markup languages
JP2002334001A (ja) * 2001-04-27 2002-11-22 K-Plex Inc 木構造データの操作方法及び、それを実現する装置及びプログラム
US20030188264A1 (en) 2002-03-29 2003-10-02 Full Degree, Inc. Method and apparatus for XML data normalization

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2789618B2 (ja) * 1988-11-30 1998-08-20 富士ゼロックス株式会社 木構造図作成システム
DE19513960A1 (de) * 1995-04-18 1996-10-24 Ibm Abbildung eines Graphen in einen Speicher
JPH10240741A (ja) * 1997-02-28 1998-09-11 Nippon Telegr & Teleph Corp <Ntt> 木構造型データの管理方法
DE19810843B4 (de) * 1998-03-12 2004-11-25 Telefonaktiebolaget Lm Ericsson (Publ) Verfahren und Zugriffseinrichtung zum Bestimmen der Speicheradresse eines Datenwerts in einer Speichereinrichtung
JP2000348038A (ja) * 1999-06-02 2000-12-15 Fujitsu Ltd 半構造データベースのためのデータ格納装置および方法
US6549221B1 (en) * 1999-12-09 2003-04-15 International Business Machines Corp. User interface management through branch isolation
US6812941B1 (en) * 1999-12-09 2004-11-02 International Business Machines Corp. User interface management through view depth
US6847979B2 (en) * 2000-02-25 2005-01-25 Synquiry Technologies, Ltd Conceptual factoring and unification of graphs representing semantic models
US6925470B1 (en) * 2002-01-25 2005-08-02 Amphire Solutions, Inc. Method and apparatus for database mapping of XML objects into a relational database
US8818833B2 (en) * 2002-02-14 2014-08-26 International Business Machines Corporation Method and system for managing service requests across multiple systems
JP2003271443A (ja) * 2002-03-15 2003-09-26 Toshiba Corp 構造化データ格納システムおよび方法、構造化データ検索システムおよび方法、記録媒体
US7210097B1 (en) * 2002-05-22 2007-04-24 Pitney Bowes Inc. Method for loading large XML documents on demand
US20030236968A1 (en) * 2002-06-19 2003-12-25 Anindya Basu Method and apparatus for generating efficient data structures for use in pipelined forwarding engines
JP3935856B2 (ja) * 2003-03-28 2007-06-27 インターナショナル・ビジネス・マシーンズ・コーポレーション レイアウトの定められた文書のダイジェストを作成するための情報処理装置、サーバ、方法及びプログラム
US20090138491A1 (en) * 2007-11-28 2009-05-28 Sandeep Chowdhury Composite Tree Data Type

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS648448A (en) * 1987-07-01 1989-01-12 Hitachi Ltd Expression system for tree structure data
US20020087596A1 (en) * 2000-12-29 2002-07-04 Steve Lewontin Compact tree representation of markup languages
JP2002334001A (ja) * 2001-04-27 2002-11-22 K-Plex Inc 木構造データの操作方法及び、それを実現する装置及びプログラム
US20030188264A1 (en) 2002-03-29 2003-10-02 Full Degree, Inc. Method and apparatus for XML data normalization

Also Published As

Publication number Publication date
CA2581219A1 (en) 2006-04-13
US20090106289A1 (en) 2009-04-23
CN100587673C (zh) 2010-02-03
KR20070057819A (ko) 2007-06-07
CN101031892A (zh) 2007-09-05
WO2006038498A1 (ja) 2006-04-13
JPWO2006038498A1 (ja) 2008-07-31
JP4712718B2 (ja) 2011-06-29
EP1811383A1 (en) 2007-07-25

Similar Documents

Publication Publication Date Title
KR101254544B1 (ko) 배열의 생성방법 및 이를 실행하는 컴퓨터 프로그램을 수록한 기록 매체
KR101095377B1 (ko) 배열의 생성방법, 정보처리장치, 및, 프로그램
JP4653157B2 (ja) ツリーの検索、集計、ソート方法、情報処理装置、および、ツリーの検索、集計、ソートプログラム
JP4537391B2 (ja) ツリー型データ構造を取り扱う方法、情報処理装置、及び、プログラム
JP3842573B2 (ja) 構造化文書検索方法、構造化文書管理装置及びプログラム
JP4886693B2 (ja) 情報処理方法、情報処理装置および情報処理プログラム
JP4796970B2 (ja) ツリーデータの検索・集計・ソート方法及びプログラム
JP4247108B2 (ja) 構造化文書検索方法、構造化文書検索装置、及びプログラム
JP4681555B2 (ja) ノード挿入方法、情報処理装置、および、ノード挿入プログラム
JP2006127229A (ja) 構造化文書検索システム、構造化文書検索方法及びプログラム
RU2433467C1 (ru) Способ формирования структуры агрегированных данных и способ поиска данных посредством структуры агрегированных данных в системе управления базами данных
JP3842572B2 (ja) 構造化文書管理方法および構造化文書管理装置およびプログラム
KR100612376B1 (ko) 통합패스의 노드범위를 이용한 엑스엠엘 인덱스 시스템 및방법
KR101218577B1 (ko) 키워드 검색을 위한 sparql 질의 처리 수행 장치 및 방법
JP2004118543A (ja) 構造化文書検索方法、検索支援方法、検索支援装置および検索支援プログラム
JP3842574B2 (ja) 情報抽出方法および構造化文書管理装置およびプログラム
JP5225022B2 (ja) Xmlデータ検索方法及び装置及びプログラム
Xia et al. Towards Longitudinal Analytics on Social Media Data
JP4334450B2 (ja) 構造化文書検索装置及び構造化文書検索方法

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
LAPS Lapse due to unpaid annual fee