KR20020043580A - 2차원 데이터를 정규표현으로 변환하는 방법 - Google Patents

2차원 데이터를 정규표현으로 변환하는 방법 Download PDF

Info

Publication number
KR20020043580A
KR20020043580A KR1020027003142A KR20027003142A KR20020043580A KR 20020043580 A KR20020043580 A KR 20020043580A KR 1020027003142 A KR1020027003142 A KR 1020027003142A KR 20027003142 A KR20027003142 A KR 20027003142A KR 20020043580 A KR20020043580 A KR 20020043580A
Authority
KR
South Korea
Prior art keywords
component
signature
web
web element
name
Prior art date
Application number
KR1020027003142A
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 에브리패스 인코포레이티드
Publication of KR20020043580A publication Critical patent/KR20020043580A/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/205Parsing
    • G06F40/211Syntactic parsing, e.g. based on context-free grammar [CFG] or unification grammars
    • 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/25Integrating or interfacing systems involving database management systems
    • G06F16/258Data format conversion from or to a database
    • 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/95Retrieval from the web
    • G06F16/951Indexing; Web crawling techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/166Editing, e.g. inserting or deleting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/205Parsing
    • G06F40/221Parsing markup language streams
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/279Recognition of textual entities
    • G06F40/289Phrasal analysis, e.g. finite state techniques or chunking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/40Processing or translation of natural language
    • G06F40/58Use of machine translation, e.g. for multi-lingual retrieval, for server-side translation for client devices or for real-time translation

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Artificial Intelligence (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Multimedia (AREA)
  • Information Transfer Between Computers (AREA)
  • User Interface Of Digital Computer (AREA)
  • Devices For Executing Special Programs (AREA)

Abstract

본 발명은 2차원 데이터, 특히 HTML 형식으로 된 정보를 청각 또는 기타 시각형태로 렌더링하기 위한 정규 표현(canonical representation)으로 변환시키는 방법에 관한 것으로서, 각각의 당해 요소는 수학적으로 정규화된 표현, 즉 트리형태로 파스(parse)될 수 있는 어떤 표현의 부분인 것을 토대로 하여 선택된다. 상기 선택을 하기 위하여, 요소의 컨테이너가 위치된 다음, 파스 트리내의 요소의 로컬 루트가 이어지고, 이러한 식별에 있어 만들어진 상기 요소의 서명이 당해 요소의 값의 검색 및 렌더링시에 차후 사용을 위하여 구성되고 저장될 수 있다. 그 후에, 당해 요소는 조회자에 대한 적절한 당해 언어 번역기를 통하여 렌더링될 수 있다. 본 발명을 세분하면, 상기 방법은 반복된 요소들을 검색한 다음, 첫번째 반복된 요소와 같은 상기 선택된 반복 요소들 중의 하나만을 저장한다.

Description

2차원 데이터를 정규표현으로 변환하는 방법{Method For Converting Two-dimensional Data Into A Canonical Representation}
현재, 가치있는 다량의 정보들이 HTML 포맷에서 이용가능하다. 하지만 HTML은 주로, 특정 시각적 문맥에서의 액세스, 즉 웹브라우저와 함께 사용되도록 설계된 형식의 그래픽 사용자 인터페이스의 수단으로 설계되어 있다. HTML 데이터를 여타의 인터페이스 및 판독기를 통해서 액세스할 수 있게 만들 필요가 있다. 여기에 기술된 본 발명은 그러한 필요성에 주안점을 두고 있다.
본 발명은 데이터를 청각적 포맷 및 제한된 시각적 포맷을 포함한 상이한 포맷으로 제시하기에 적합한 표현으로 맞춤화하는 것(customization)에 관한 것이다. 특히 본 발명은 하이퍼텍스트마크업랭귀지(HTML)에서 데이터를 선택하여 소스포맷 이외의 청각적 포맷이나 시각적 포맷과 같은 다른 형태로 렌더링하는 것에 관한 것이다.
도 1은 요소 HTML 페이지를 선택하고 식별하기 위해서 설계도구가 사용된, 본 발명에 따른 시스템의 블럭도,
도 2는 식별, 추출 및 번역의 기능적 관계를 더욱 상세히 예시한 블럭도,
도 3a 및 도 3b는 본 발명의 특정 실시예에 따른 방법의 플로우차트,
도 4는 HTML 페이지와 처리 트리플릿(processing triplet)의 관계의 블럭도.
본 발명에 따라, 컴퓨터 네트워크 시스템에서 2차원 데이터 특히, HTML 포맷의 정보를 청각적 포맷 또는 기타의 시각적 포맷으로 렌더링하기 위한 정규표현으로 변환하고, 이때 각각의 당해 요소(element of interest)는 수학적 정규 표현이되는 부분, 즉 하나의 트리(tree)에 파스(parse)될 수 있는 임의의 표현식을 기초로 선택되는 방법이 제공된다. 선택을 하기 위해서, 요소의 컨테이너가 지정된 후 파스된 트리내에서 요소의 로컬루트(local route)가 뒤따르게 되어, 나중에 당해 요소의 값을 검색하고 렌더링할 수 있게 이러한 식별(identification)에 따라 세워진 요소의 서명(signature)이 구성되고 저장될 수 있다. 본 발명을 더욱 세분화하면, 상기 방법은 반복된 요소에 대하여 검색하고 그런 다음, 첫번째 반복된 요소와 같이, 반복된 요소들 중 선택된 하나만을 저장한다.
HTML 페이지가 정규표현으로 표현될 수 있다는 것이 본 발명의 중요한 인식이다. 요소들만이 선택될 필요가 있고 요소들의 실제값은 선택될 필요가 없어서 그 값이 동적으로 업데이트되고 현재값으로 렌더링되게 할 수 있다는 것이 또한 본 발명의 중요한 인식이다.
이하, 첨부된 도면과 연계하여 상세한 설명을 참조로 본 발명을 더욱 이해할 수 있다.
도 1을 참조로, 월드웹에서 웹페이지의 문맥에서 본 발명을 설명한다. 웹상에서, 본 발명에 따른 대화식 디자이너 툴(10)은 처음에 저장수단(14)에 소정의 웹페이지를 복사한 후 호스트서버(12)에 지정된 소스 웹 사이트상에 세워진 HTML과 같은 수학적 정규형태로 쓰여진 웹페이지(11)를 맞춤화(customize)하는 데 사용된다. 저장수단(14)은 디스크 드라이브의 뱅크 또는, 또는 그 밖의 지속성 스토리지를 갖춘 데이터베이스 저장수단과 같은 공유 지속 저장소(shared persistent store)일 수 있다. 이하에 설명하는 바와 같이 상기 디자이너 툴(10)를 사용하면, 디자이너는 소스 웹 애플리케이션에 방해받지 않고 기존의 웹 애플리케이션으로부터 정보를 선택하고 식별하고 맞춤화할 수 있다. 각 웹페이지를 맞춤화하기 위해서, 디자이너는 어떠한 텍스트와 프롬프트가 사용자(청각적 인터페이스가 목표라면 통상 전화 호출자)에게 렌더링될 것인지, 호출자는 입력구성요소에 대하여 어떠한 입력데이터를 필요로 하는지, 또한 호출자가 가청화된 페이지에 어떤 순서로 방문할 것인지를 결정한다. 디자이너는 디자인 객체(design object)(16)를 생성한다. 특정한 실시예에서 설계과정의 출력은 오디오 메타데이터이다. 이 메타데이터는 저장수단(14)의 데이터베이스에 저장되는 스크립트를 통하여 표현되고, 특히 여기서는 그 스크립트를 요소들의 집합체(collections of elements)라 한다. 이하에 서술되는 런타임 엔진은 상기 스크립트를 사용하여 호출자가 가청화된 웹사이트와 대화할 수 있게 한다.
작동시 상기 상호작용 디자이너 툴(10)은 호스트 웹서버(12)에 대하여 웹브라우저와 같은 작용을 하여 그 호스트 웹서버내에서 그 사이트의 HTML 페이지(11)를 조회하고 다운로드한다. 상기 도구(10)의 디자이너/사용자는 어떠한 페이지들이 가청인지를 결정한다. 그러한 각각의 페이지에 대하여 디자이너는 런타임시 렌딩될 정보를 선택한다. 디자이너는 호출자에게 페이지의 입력 제어를 위한 데이터를 제공하도록 질문하는 음성 프롬프트를 생성할 수도 있다. 또한 디자이너는 어떠한 단어와 어구가 각 프롬프트에 응답하여 호출자로부터 적합한 응답으로 인식될지 결정할 수 있다. 예를 들어, 웹페이지가 색을 선택하기 위한 취사선택 리스트(drop-down selection list)를 갖고 있다면, 프롬프트는 "빨간색, 흰색 또는 파란색을 선택하십시오"가 될 수 있다. 디자이너는 호출자가 음성으로 "빨간색", "흰색" 또는 "파란색" 중 하나를 말하여 응답하게끔 지정한다.
디자이너는 또한 오디오 제어흐름(control flow)을 지정한다. 하나의 웹페이지내에서, 인트라-페이지 흐름은 텍스트가 읽히게 되는 순서 및 어떠한 프롬프트가 사용자에게 부여될 것인지를 결정한다. 인터-페이지 흐름은 호출자가 그 사이트의 가청화된 페이지를 방문할 순서를 결정한다. 웹사이트를 통하여 이어지는 오디오 경로는 시각적 웹브라우저를 사용하는 시각 경로와 대체로 유사하다.
디자이너 툴(10)에는 저장수단(14)내에 유지되는 한 세트의 디자인 객체를 만들기 위한 구성요소가 제공된다. 이들 객체는 가청화된 웹사이트에 필요한 모든 정보를 모아둔다. 디자이너 툴는 저장수단(14)으로부터 이들 객체를 검색하고, 업데이트하며, 또한 저장수단에 다시 그것들을 저장할 수 있다.
저장수단(14)에 디자인 객체(16)를 저장함과 동시에, 디자이너 툴(10)는 생성기(18)를 불러내어 여기에서 AML이라 칭하는 명세언어(specification language)로 쓰여진 텍스트 스크립트(textual script)를 만든다. 상기 AML 스크립트는 런타임시 렌더링될 디자인 객체(16)로부터 추출된 정보를 인코딩한다. 각 스크립트는 그 해당하는 웹페이지의 URL을 담고있다. URL 및 AML 스크립트는 런타임시 사용되므로, AML 스크립트도 저장수단(18)에 유지된다. 웹페이지상의 값은 AML을 사용하여 표현된다.
A. 구성요소 선택, 식별 및 맞춤화
설계 과정에서, 구성요소 선택 및 맞춤화는 다음의 단계로 이루어진다.
1. 기존의 HTML 페이지로부터 구성요소를 선택;
2. 상기 HTML 페이지로부터 선택된 구성요소를 식별;
3. 상기 HTML 페이지로부터 선택된 구성요소를 맞춤화;
4. 임의의 요구되는 선택 및 맞춤화를 표현함에 있어 기능적으로 완전한 언어를 통하여 상기 선택되고 맞춤화된 구성요소의 명세화.
상기 설계 기술은 AML 스크립트를 올바로 선택, 식별 및 생성하는 데 요구되는 세부항목 및 기본적인 알고리즘으로부터 디자이너를 자유롭게 하여 사용자 인터페이스에 의하여 제어 및 구현된다.
B. HTML 페이지로부터의 구성요소의 선택 및 식별
도 2는 HTML 페이지로부터 데이터를 선택하고 청각적 렌더링언어를 보이게 하는 목표로 렌더링하는 런타임 시스템의 개념도이다. 웹페이지(11)는 호스트 웹서버(12)로부터 번역기(20)로 검색되고, 상기 번역기는 다시 WML 페이지(23) 및 런타임 객체(24)를 만들기 위해서 공유 지속 저장소(14)로부터 해당하는 AML문서(21)를 검색한다. 디자이너가 어떤 데이터(이하, "구성요소"(17)라 칭함)를 지목하고 클릭함으로써 HTML 페이지(11)로부터 그것을 선택한 후, 디자이너 툴(10)(도 1)는 자동으로 HTML 페이지로부터 실시간 데이터를 끌어내기 위해서 런타임 엔진(22)을 통하여 런타임 환경이 후속하여 사용하는 특유한 서명을 생성한다. 런타임 엔진(22)은 폰서버(phone server)(26) 및 사용자(28)와 상호작용한다. 구성요소(11)의 서명은 다음의 1이상을 포함할 수 있다.
1. HTML 페이지상의 구성요소(17)의 위치. 다음의 간단한 HTML 페이지를 고려해본다(이 코드는 고객 컴퓨터상에서 작동하고 있는 웹브라우저에 의하여 실행되면 HTML 페이지를 만든다):
<HTML>
<table name="T1">
<tr>
<tr width="13%">Row 1</td>
<tr width="13%"align="center">r1c2</td>
<tr width="66%"align="center">r1c3</td>
<tr width="8%"><p align="center">r1c4</td>
<\tr>
<tr>
<td>
<form method="POST" name="Form1" action="WEBBOT-SELF">
<input type="checkbox" name="C1" value="ON">
<input type="radio" value="V1" checked name="R1">
<input type="radio" name="R1" value="V2">
<\form>
<\td>
<\td>
<\table>
<\HTML>
상기 예에서, 디자이너(13)(도 1)가 전체 테이블 T1을 선택하고 그것이 항상 HTML 페이지상에 첫번째 테이블이라면, 테이블 T1은 "HTML 페이지상의 첫번째 테이블"을 표현하는 기호인 서명으로 그 위치가 "1"로 식별될 수 있다.
2. 구성요소의 속성(attribute of component). 상기 예에서 테이블 T1의 제2열이 양식 Form 1을 담고 있다고 가정한다. 디자이너(13)가 Form 1을 선택하면, 그것은 그 동작 속성에 의하여 특유하게 식별될 수 있다. 이것이 이 속성에 대한 값 WEBBOT-SELF를 갖는 양식뿐이라면 이 속성값 쌍의 식별기는 Form 1의 서명이 된다.
3. 구성요소의 조상(ancestor of component), 즉 그 페이지상에 상기 구성요소와 결합되는 다른 구성요소의 식별. 구성요소의 서명이 위치 또는 속성값 쌍과 같은 그것의 특성 중 하나에 의하여 결정되는 앞선 경우와는 다르게, 구성요소의 서명이 HTML 페이지내의 다른 구성요소의 식별에 의존할 수 있다. 어떠한 HTML 페이지는 정규표현으로 표현될 수 있다. 예를 들어, 상기 HTML 페이지를 가정한다. 구문 A(B)는 구성요소 A가 구성요소 A의 범위내에 B를 담고 있음을 의미한다고 할 때, 상기 간단한 HTML 페이지는 HTML(T1(tr tr(td(Form 1(C1 V1 R1)))))로 표현될 수 있다. 나아가, 수학적 정규표현으로 주어진 구성요소의 식별은 주어진 구성요소를 담고있는 조상 구성요소에 달려있다. 결론적으로, Form 1의 식별은 HTML, Table T1 등과 같은 포괄 구성요소(enclosing component)의 식별에 달려있다. 이들 포괄 구성요소를 순환적으로 식별(recursively identifying)함으로써, 양식 Form 1을 특유하게 식별할 수 있다. 예를 들어, Form 1은 컨테이너 T1, T1내의 두번째 tr 및 두번째 tr 안에 있는 td을 식별함으로써 특유하게 식별될 수 있다. 따라서, 양식 Form 1의 서명은 "look for highest level container HTML, within HTML container look for container table T1, with in container T1, look for second row container and with in this container look for first cell which contains form Form 1" 이다.
4. 그 조상 구성요소의 식별에 부가된, 구성요소의 "왼쪽" 형제(sibling). 왼쪽 형제의 식별은 구성요소의 1이상의 왼쪽 형제가 여러번 반복하는 경우에 요구된다. 이 경우에, 이들 왼쪽 형제도 마찬가지로 식별될 필요가 있다. 다음의 HTML 페이지를 가정한다:
<HTML>
<table name="T1">
<tr>
<td width="13%">Row 1</td>
<td width="13%" align="center">r1c1</td>
<td width="66%" align="center">r1c3</td>
<td width="8%"><p align="center">r1c4</td>
<\tr>
<tr>
<td> 12.5 <\td>
<td> 2.5 <\td>
<td><form method="POST" name="Form1"
action="WEBBOT-SELF">
<input type="checkbox" name="C1"
value="ON">
<input type="radio" vlalue="V1" checked
name="R1">
<input type="radio" name="R1"
value="V2">
<\form>
<\td>
<\tr>
<\table>
<\HTML>
상기 예시에서, 테이블 T1의 2번째행은 그들안에 숫자를 포함하는 열의 초기 세트를 포함한다. 이러한 열의 개수가 하나의 예시문으로부터 HTML 페이지의 다음 예시문까지 변화한다면, 그 다음, 양식 Form1의 식별은 이들 반복열의 식별을 필요로한다. 따라서, 양식 Form1은 숫자(12.5 & 2.5 각각)를 포함하는 반복<td>'s 및 양식 Form1을 포함하는 최종<td>를 차례로 포함하는 제2<tr>을 포함하는 컨테이너(T1)을 식별함으로써 독특하게 식별될 수 있다. 이러한 경우에, 구성요소 Form1의 서명은 " 최상레벨 컨테이너 HTML을 찾아라, HTML 컨테이너내에서 컨테이너 테이블 T1을 찾아라, 컨테이너 T1 내에서, 2번째행 컨테이너를 찾고, 상기 2번째행 컨테이너내에서 'n' 번 반복하는 컨테이너<td>를 찾은 후 양식 Form1을 포함하는 마지막 컨테이너<td>를 찾을 수 있다." 이다.
5. HTML 페이지로부터 추출된 패턴. 이전의 예시를 고려하라. Form1이 3가지 입력을 포함한다고 예상한다면, 그 다음 이들 입력은 상기 양식에 식별자를 제공한다. 따라서, 그것의 서명은 " 제1입력을 위한 패턴을 포함하는 3가지 입력을 포함하는 양식을 찾아라:
<input type="checkbox"name="C1"value="ON">
제2입력을 위한 패턴은:
<input type="radio"value="V1"checked..> " 이다.
때때로, 구성요소의 최종서명은 상술된 방식의 조합으로 이루어질 수 있다. 그러나, 일단 상기 구성요소의 서명이 설정되면, 정규표현, 즉 독특하게 그리고 가장 촘촘하게 상기 구성요소와 그것의 관련된 속성을 식별하는 서명이 고려된다.
도 3a 및 도 3b는 본 발명에 따른 방식들을 구현하는 식별 알고리즘의 개략도(overview)를 나타낸다. 식별 알고리즘에서의 입력은 설계자에 의하여 선택된 구성요소이고, 알고리즘의 출력은 본 명세서에서는 선택된 구성요소의 완전한 서명을특징짓는 (다음 부분에서 설명되는) AML 이라 불려지는 마크업(markup) 언어 양식인 타겟언어에서의 스크립트이다.
상기 타겟언어의 제1구성요소, 이러한 경우에는 AML 언어가 설계자에 의하여 선택된 바와 같이 이러한 경우에는 HTML 구성요소인 소스언어구성요소에서 생성된다(단계 A). 그 다음, 상기 AML 구성요소의 속성값이 얻어지거나 검색된다(단계 B). 상기 속성은 상기 구성요소의 속성이 그것의 부모 컨테이너에서의 구성요소를 독특하게 특징짓고 지속시키는지를 결정하도록 테스트된다. 그렇지 않다면, 그 다음 "left" 형재 구성요소(sibling component)의 시퀀스는 상기 시퀀스를 따르는 구성요소가 부모 컨테이너의 문맥에서 독특한 서명을 갖도록 선택된다. 그 다음 상기 시퀀스는 구성요소 명세에 포함된다(단계 D). 구성요소의 특이성 명세(uniqueness specification)를 가지고, 다른 모든 구성요소들은 그것들이 이러한 레벨에서 특징화될 필요가 있는지를 결정하도록 테스트된다(단계 E). 만약 그렇다면, 그 다음에서 이러한 레벨에 해당되는 다른 구성요소의 명세가 얻어진다(단계 F).
다음 단계는 상기 명세의 특이성에 그 초점이 맞춰진다. 따라서, 개별적으로 특징화된 구성요소의 명세를 얻을 때, 상기 명세는 주제 명세(subject specification)가 현재 레벨에서의 케이스형 명세의 부분인지를 결정하기 위하여각각 테스트된다(단계 G). 만약 그렇다면, 그 다음, 다른 모든 패턴을 위한 명세가 검색되거나 얻어지고 식별 스위치 구성요소(IdSwitch)는 그렇게 얻어진 패턴을 폐쇄시키는데 사용된다(단계 H). 그 다음, 각각의 명세는 그것이 반복패턴의 부분인지를 결정하도록 테스트된다(단계 I). 그렇다면, 그 다음에는 현재 명세를 폐쇄하는 식별자 루프(IdLoop)가 정의된다(단계 J). 그 다음, 따라서 정의된 상기 명세가 독특한지를 결정하도록 동일한 HTML 페이지에서 다른 명세에 대하여 상기 명세가 테스트된다(단계 L). 그렇지 않다면, 그 다음 조상 컨테이너에 대한 양식정보가 검택되고 폐쇄된 AML 구성요소는 HTML 페이지의 억제특성을 반영하도록 정의된다(단계 M). 프로세스 주기는 단계 M이 행해질 때 까지 설계자에 의해 선택된 모든 AML 구성요소에서 반복되고 최종적으로 AML 스크립트를 얻게된다(단계 O).
본 발명에 따른 컴퓨터 언어는 선택된 구성요소의 식별 및 맞춤 단계를 특징짓도록 소정 필요조건들을 충족해야 한다. 본 명세서에서 AML 이라고 불려지는 본 발명에 따라 사용된 언어는 이러한 필요조건들을 따른다. 부가적으로, 이러한 언어는 또한 XML 컴플라이언트이다.
(도 3a 및 도 3b 와 관련하여 상세화된 알고리즘에서와 같이) 식별에 채용된 방식의 조합을 정확히 표현하기 위해서는, 타겟마크업언어(taget markup language)가 다음 특징들을 가져야 한다.
그것들의 모든 관련 속성들과 함께 HTML 요소들을 특징지울 수 있어야 한다.
정규표현(regular expression)을 설명할 수 있어야 한다.
대체 및 반복 구성요소들을 각각 기술하는데 유용한 스위치(switch),케이스(case), 루프(loop)등의 선행 구성물(advanced constructs)을 가져야 한다.
HTML 요소의 연결을 기술할 수 있어야 한다.
문자열 패턴을 기술할 수 있어야 한다.
본 발명에 따른 AML 언어는 상기 필요조건을 충족한다. 본 명세서에서 정의된 바와 같이 그것의 구성요소(양식(forms), 테이블(tables) 및 리스트(lists))와 관련하여 HTML 페이지를 고려한다.
식별: HTML 페이지상의 다양한 구성요소들을 식별화하기 위하여 사용된 식별자.
추출: 선택된 구성요소로부터 데이터가 어떻게 추출되는지를 구체화하기 위하여 사용된 추출.
번역: 상기 구성요소가 폰에서 어떻게 렌더링되는지를 특징짓는다.
주어진 HTML 페이지상의 상기 구성요소에서의 식별, 추출 및 번역 모두는 다이얼로그에 집합적으로 위치된다.
도 4는 각각의 HTML 페이지와 식별/추출/번역 트리플릿의 연결 및 HTML 페이지 사이의 각각 url/action 변환과 흐름요소의 연결을 예시하는 다이어그램도이다. HMTL 페이지(36)는 그것이 공칭적으로 부모인 HTML 페이지(38 및 40)과 연결된다. 각각의 HTML 페이지는 url/action(50,51,52)에 의해서 연결된다. 또한, 각각의 식별/추출/번역 트리플릿(30,32,34)은 url/action 변환(58,59,60)에 의하여 대응하는 HTML 페이지(36,38,40)와 연결된다. 하지만, 정보경로(58,59,60)를 따르는 상기 트리플릿 가운데서 정보의 흐름이 또한 존재한다. 다음 부분은 본 발명에 따른 AML의특정 예시에서 구현된 상기 구성요소인, 식별방법, 추출방법 및 기초 그래머를 더욱 상세히 기술한다.
C. 식별 및 추출
구성요소는 요소 "구성요소" 를 사용하여 식별되고, 여기서 요소들 안에 있는 모든 속성값쌍의 값은 그것이 값으로 시작하도록 인용하여 검색된다. 따라서, 행은 다음과 같이 구성요소 A로 식별될 수 있다.
<component name="A" type="tr"></component>
구성요소의 양식은 HTML 태그에 대응한다.
구성요소는 중첩된 구성요소 표기법을 사용하는 구성요소를 순환적으로 포함할 수 있다. 따라서, 다음 표현법은 구성요소 A가 구성요소 B 내에 포함된다는 것을 나타낸다:
<component name="B" type="tyble">
<component name="A" type="tr"></component>
<component>
또한, 구성요소들은 "idloop" 요소를 사용하여 여러번(multiple times) 반복될 수 있다. 따라서, 다음 표기법은 A라고 명시된 구성요소 여러번 나타날 수 있다는 것을 의미한다.
<idloop name="aloop">
<component name="A" type="tr">
</component>
</idloop>
구성요소는 두 가지 대체 구성요소로 이루어질 수 있다. 다음 표기법은 구성요소 A가 구성요소 X 또는 구성요소 Y중 어느 하나로 이루어진다는 것을 나타낸다.
<component name="A" type="form">
<idswitch name="switch1">
<idcase define="pattern1">
<component name="X" type="tr"="input">
</component>
</idcase>
<idcase define="pattern2">
<component name="Y" type="tr"="select">
</component>
</idcase>
<idswitch>
</component>
이것은 정규표현을 나타내기 위한 능력의 준비를 예시한다.
부모-자식 관계는 중첩시킴으로써 나타난다; 속기 표기법에서 A(B)는 A 가 B의 부모임을 나타낸다.
반복은 idloop 에 의하여 표시된다; 속기 표기법에서 A*는 A가 반복된다는 것을 나타낸다.
OR은 스위치에 의하여 표시된다; 속기법에서 A/B는 A 또는 B 중 어느 하나가 존재한다는 것을 나타낸다.
AND는 연결에 의하여 표시된다. 속기 표기법에서, AB는 A 다음에 B가 온다는 것을 나타낸다.
예를 들어, 정규표현A(B/C)*D - 여기서 A는 idloop 의 부모이고 즉, 구성요소 B 및 C 표시 다음에는 구성요소 D 가 따르고 다음과 같이 기록될 수 있다.
<component name="X"type="type1">
<component name="A"type="type2">
<idloop name="loop1>
<idswitch name="switch1">
<idcase define="pattern1">
<component name="B"
type="type3"></component>
</idcase>
<idcase define="pattern2">
<component name="C"
type="type4"></component>
</idcase>
</idswitch>
</idloop>
</component>
<component name="D"type="type5"></component>
</component>
구성요소의 네임 즉, idswitch 또는 idloop 는 변수로서 사용될 수 있다. idloop 내에서 정의된 변수는 여러가지 인스턴스를 갖는다. 인스턴스(instance)는 변수 네임을 첨자로된 idloop 네임으로 알맞게 함으로써 나타난다. 예를 들어, "Ioop1[0].C"는 idloop"loop1'의 첫번째 반복시 식별되는 "C"의 인스턴스를 나타낸다. 일반적으로, 변수의 인스턴스는 변수의 네임을 폐쇄 idloops 의 첨자화된 네임으로 알맞게 함으로써 나타난다.
변수는 <amlvar>요소를 사용하여 명백히 나타내고/정의될 수 있다.
C1. 변수정의
변수는 amlvar 요소를 사용하여 생성된다. 변수의 범위는 오디오 페이지(audio page)에서 광범위하다. 그것의 존속기간은 오디오페이지가 사용자 세션에서 참조될 때까지가 된다. 변수의 네임은 오디오페이지에서 독특해야만 한다. 변수는 상기 변수의 네임, 양식등의 정의를 돕는 다음의 속성을 가진다.
name #name of the variable
format = mmddy4/y4/etc #how is this variable in HTML page
render = mmddy4/y4/etc. #how do you want to audio-render it?
type = date/time/int/chart/money #type of variable
visible #visible part of text, i.e., what you see on
#the screen, see Section 5.5 essentially
#stripping out the HTML tags from the
string
다음 표기법은 형태의 필드 "date"를 인코드하는 변수 x를 나타낸다.
<amlvar name = xtype='date' format='mmddt4'render='y4'>
</amlvar>
C.2. 변수 이용법
모든 변수는 다음 요소를 포함하는 객체이다.
vector = yes/no //yes=>vector, no=>scalar
length = 1 //legnth of vector
rowspan //if tr variable, length of row
colspan //if td variable, length of column
action //action method of form, see Section 5.4
define //used to define value of case, see
Section 5.7
anchor //associated anchor element, see
Section 6.2.1
따라서, 루프(name), 네임화된 varl(named varl)은 변수 $amlvar(var1)을 사용하여 액세스될 수 있다. 다음은 varl 에서 적용될 수 있다.
varl { vector=yes; length=# elements in loop}
유사하게 테이블에서의 셀 요소를 나타내는 변수 cell1은 표기법 $amlvar(cell1)을 사용하여 액세스될 수 있고, 그것의 필드는 $amlvar(cell1. vector),$amlvar(cell1). colspan 등으로 액세스될 수 있다. cell1 이 loop var1의 5번째 반복에 있었다면 그 다음 cell1과 관련된 anchor 요소는 $amlvar(varl[4]cell1.anchor)로서 액세스될 수 있다.
C.2.1. 글로벌 시스템 변수
변수는 "global"로 표시될 수 있다. 그들의 정의는 연속적으로 가로지르는 모든 페이지에 걸쳐 이용될 수 있다. 변수의 접근 순서는: 지역변수(루프 인덱스), 페이지변수(페이지로부터 추출된 변수), 그 다음 글로벌 변수 순이다.
amlerror
amleror 변수는 사용자에게 오류를 노출시키는 시스템변수이다. 변수는 객체이고 다음필드를 가진다.
amlerror={
ERROR type; //type of current error
int number_errors_step; // number of errors of this
type in the current step
int number_errors_page; // number of errors of this
type in the current page
int number_errors_session; // number of errors of this
type in the phone session
}
사용자는 $amlvar(amlerror.type)로서 오류양식을 참조할 수 있다. 오류는 다음과 같은 양식들 중 하나일 수 있다.
ERROR= {
RECOGNITION_FAILURE,
CALLER_TIMEOUT,
OTHER_ERROR,
WRONG_NUMBER_DIGITS
}
다음 테이블은 다음의 오류조건에서 오류가 갖는 디폴트동작을 기술한다.
오류양식 입력
RECONGITION_FAILURE 1) 특정화된 #번을 재시도; 만약 session max 를 초과하지 못한다면, 그 다음에는 결코 시도하지 못한다.
2)그림자 프롬프트(show prompt)를 시도해라
3)호출자에게 네비게이션 메뉴를 나타내라
WRONG_NUMBER_DIGITS
CALLER_TIMEOUT 1)이전 프롬프트를 반복하고 #번 입력
2)네비게이션 메뉴(navigation munu)를 나타내라.
C.3. 구성요소의 식별
구성요소들은 정규표현으로 조합될 수 있다. 구성요소는 양식(form),테이블(table) 및 HTML 페이지상의 리스트(list)등의 구성요소를 포함하여 식별될 수 있다. 구성요소는 2가지 광범위한 기술중 하나를 사용하여 식별될 수 있다.
양식(예를 들어, form, table, tr, td, etc) 및 네임/위치/URL/크기(name/position/URL/dimension)중 하나 이상을 식별하라.
구성요소들 중 "구조(structure)"를 식별하라. 이것이 모든 포함된 방법은 선택된 오직 하나의 방법일 수 있다. 그러나, 양식 식별보다 사용자 상호작용이 더 많이 필요하다. 많은 경우에, 사용자는 다른 메거니즘 중 하나를 사용하는 것이 더 용이할 수 있다. 따라서, 설계자는 식별의 더 쉬운 방식으로부터 더 어려운 방식으로의 이동하는 것을 허용해야만 한다.
설계자에게 워크플로우의 우선권(preference)을 명시시키면서, 식별의 다음 방법이 제공된다.
1)양식(Type): 객체 예를 들어, 양식(form), 테이블(table), 행(row), 셀(cell), 셀(cell), 입력(input)등의 형태인 것, E.g. <component name="keywordserch"type="form">// component is a form
2)ID: 어떤 구성요소는 그것들이 HTML 페이지상에 독특한 <ID>를 부여받기 때문에 독특하게 식별될 수 있다.
<component name="table1"class=class id=table1>
3)HTML 네임: HTML 페이지상의 네임 속성
4)위치: HTML 파스 트리의 서브트리에서의 구성요소의 양식이 부모 aml 구성요소에 대응하는 HTML 노드에 루트되는 서열번호를 나타내라. 문서에서 제1테이블의 두번째 행은 다음과 같이 나타날 수 있다.
<component name="tab1" type="table"position="1">
<component name="interesting_row" type ="tr" position="2">
</component>
</component>
위치는 부모 컨테이너내에서 동일한 양식의 서브 컨테이너들 가운데서의 랭크임을 유의한다.
유사하게, 제2프레임상의 제2테이블은 다음의 중첩된 명세를 사용하여 나타날 수 있다.
<component name="keywordsearchframe" type ="frame" position="2">
<component name="keywordsearchform" type ="form" position="2">
</component>
</component>
유사하게, Table A 는 그것내에 중첩된 Table B 를 가지고, Table B 는 그것내에 중첩된 Table C 를 갖고, 그 다음 Table C 는 중첩된 구성요소 명세로 나타날 수 있다.
<component name="A"type="table"position="1">
<component name="B"type="table"position="1">
<component name="C"type="table"position="1">
</component>
</component>
</component>
5)URL: 고정된 양식은 action URL을 사용하여 나타낼 수 있다. E.g.,
<component name ="keywordsearch"type="form"
url ="www.amazon.com/keyword-search>"
6)크기: 고정된 양식(Fixed fomrs), 테이블(tables), 행(rows) 및 리스트 (lists)는 그것들의 크기를 사용하여 나타낼 수 있다. 테이블 및 양식의 크기는 다음과 같이 나타낼 수 있다;
<component name ="keywordsearch"type="form"dimension="3">//
form with 3 visible controls
<component name ="stockquotes"type="table"dimension="3">//
table with 3rows
<component name ="row1"type="tr"
dimension="2"> //2cells in the row
7)구조: 이것은 마지막 리소트(resort), 즉 구성요소에 대하여 서브 구성요소 레벨 정보가 바람직한가에 대한 선택이다. 구성요소에서의 텍스트는 객체의 두 양식과 관련하여 나타날 수 있다.
(a) 정확하게 매치된 인용된 텍스트, 및
(b)tag amlvar에 의하여 나타난 임의의 텍스트
양식은 다음과 같이 나타날 수 있다.
structure="<form><amlvar name='formbody'></form>"
여기서, "<form> 및 </form>"은 정확히 매치되고, 상기 양식의 전체 바디는 변수-텍스트 요소<amlvar>에 의하여 매치되고 변수 양식바디에 할당된다.
다중조건이 페이지를 나타내는데 사용되면, 그 다음에는 그것들 모두가 적용되어야 한다. 예를 들어, 다음 식별에서, 식별되는 구성요소는 형태양식이고"www.amazon.com/keyword-search. has3inputs, and is the first form on the page";값인 action 방식을 가진다.
<component
name="keywordsearch"
url="www.amazon.com/keyword-search"
type="form"
position="1"
dimension="3">
어떤 경우에는, 구성요소가 자체적으로 명백하게 식별될 수 없다. 이 경우, 명백하게 식별될 수 있는 조상(ancestor)에 이를 때까지 그 부모 서브트리를 참조하여야 한다. 파스(parse) 트리를 고려하면, 테이블 레벨2의 두번째 행의 두번째 셀을 식별하고, 테이블 레벨1의 어떤 행의 셀의 수가 미리 결정되지 않은 경우를고려할 필요가 있다. 레벨1의 마지막 행의 마지막 셀이 그 안에 내장된 테이블 레벨2를 가진다는 것은 모두 주지된 사실이다. 가장 낮은 셀은 다음과 같이 식별될 수 있다.
<component name="level1"type="table"position="1">
<component name="level1_row"type="tr"position="2">
//[comment:It may not be necessary to specify the row in the above line]
<component name="cell2"type="td"position="2">
<component name="level2"type="table"position="1">
// position is relative to parent
<idloop ignore="ALL_BUT_LAST">
<component name="first_rows"type="tr">
</component>
</idloop>
//[comment:The above is the first set of rows]
<component name="last_row"type="tr">
<idloop ignore="ALL_BUT_LAST">
//[comment:The above is the first set of cells]
<component name="first_cells"type="td"></component>
</idloop>
<component name="last_cell"type="td">
</component>
</component>
</component>
</component>
</component>
</component>
일단 구성요소가 식별되면, 상기 구성요소내의 데이터가 추출될 수 있다.
C.4 추출:양식
브로커(broker)의 사인-온 페이지와 같은 예시적인 양식을 고려하자. 이 양식은 사용자에 의하여 명세화된 2개의 입력을 가진다. 남아있는 입력들은 사용자에 관한 한 히든 요소(hidden element)들이다. 또한, 사용자가 세션을 시작하기 원하는 경우를 명세화하는 옵션 리스트도 있다.
이러한 양식을 위한 HTML 코드를 아래에 도시한다.
<FORM NAME="SignonForm"
ACTION="https://trading2.schwab.com/trading/signon/."METHOD="POST"
TARGET=_"self">
<table>
<tr><td>Account Number</td><td><INPUT TYPE="text"
NAME="SignonAccountNumber"SIZE=11 MAXLENGTH=9></td></tr>
<tr><td>Password</td><td><INPUT TYPE="password"
NAME="SignonPassword"SIZE=11 MAXLENGTH=8></td></tr>
<tr><td>Select</td><td>
<SELECT NAME=StartAnchor>
<option Value=CCbodyi>Account Overview
<option Value=TradingEQ>Stock Trading
<option Value=TradingOpt>Options Trading
<option Value=TradeMF>Mutual Fund Trading
<option Value=TradeCorpBonds>Corporate Bond Trading
<option Value=Quotes>Real-Time Quotes
<option Value=Balance>Account Balances
<option Value=Position>Positions
</select>
<INPUT TYPE=HIDDEN NAME=PARMS VALUE="">
<INPUT TYPE=HIDDEN NAME=ShowUN VALUE="YES">
<INPUT TYPE=HIDDEN NAME=SANC VALUE="">
<INPUT TYPE=HIDDEN NAME=NewsURL>
<INPUT TYPE=HIDDEN NAME="QCdata">
<INPUT TYPE=HIDDEN NAME="page">
<INPUT TYPE=HIDDEN NAME="story">
<INPUT TYPE=HIDDEN NAME="symbols">
<INPUT TYPE=HIDDEN NAME="watch_list">
<INPUT NAME="SignonSubmit"TYPE="Submit"VALUE="Submit">
</td></tr></table></form>
상기 구성요소는 본 페이지에 하나의 해당 양식이 있다는 것을 명세화하고, 상기 페이지에 첫번째 양식으로서 배치된다. 즉,
<component Name = "Logon"TYPE = "FORM"
position="1"></component>
상기 양식의 동작방법은 다음과 같은 구조 명세(태그 amlvar가 어떤 프리-매치(free-matched) 텍스트를 기술하는 경우)를 사용하여 추출될 수 있다:
structure="<form><amlvar>action=<amlvar
name='url'>METHOD<amlvar>">
이것은 다음과 같이 해석된다.
<form, then there is text until you match action="을 매칭하여 시작한 다음, 다음 부분이 HTML 페이지로부터의 변수가 되는데, 이는 METHOD에 도달할 때 종료한다. 구성요소 Logon을 명명하자. 변수 "url"은 $amlvar(Logon.url)로 참조하자.
페이지에서 다음의 텍스트를 고려하자.
상기 테이블을 위한 소스 HTML 언어는 다음과 같다.
<TABLE BORDER=0 WIDTH=430 CELLPADDING=0 CELLSPACING=2>
<TR ALIGN=LEFT>
<TD VALIGN=TOP><FONT COLOR="#000000"
FACE="ARIAL,HELVETICA"CALSS="NORM"SIZE=2>11/11/98</FONT></TD>
<TD WIDTH="5"><IMG
SRC="http"//gsf.quote.com/fast/graphics/trading3/blank.gif"WIDTH="1"HEIGHT="1"
BORDER=0></TD>
<TD VALIGN=TOP><FONT COLOR="#000000"
FACE="ARIAL,HELVETICA"CALSS="NORM"SIZE=2>16:47</FONT></TD>
<TD WIDTH="5"><IMG
SRC="http"//gsf.quote.com/fast/graphics/trading3/blank.gif"WIDTH="1"HEIGHT="1"
BORDER=0></TD>
<TD VALIGN=TOP><FONT FACE="ARIAL,HELVETICA"
CLASS="NORM"SIZE=2><U><A HREF="/fq/trading3/news?
story=8176218&symbols=csco">(UPDATE)VocalTec, Cisco To Develop
Products For Voice Calls Over Internet</A></U></FONT>&nbsp;<FONT
COLOR="#000000"FACE="ARIAL,HELVETICA"CLASS="SMALL"
SIZE=1>[&nbsp;Dow&nbsp;Jones&nbsp;Online&nbsp;News&nbsp;]</F
ONT></TD>
</TR>
<!---- The rest of the rows are cut. -->
<!-- They all have the same syntax. -->
</TABLE>
상기 테이블은 행의 변수번호를 가지는데, 이들 각각은 5셀을 가진다. 상기 테이블의 셀 1, 3, 5만이 사용하도록 되어 있다. 테이블의 구조는 다음과 같이 기술될 수 있다.
<component name="headline"type="table"position="1">
<idloop name="headlines">
<component name='news_item'type='tr'>
<component name="cell1"type="td" position="1"
structure="<amlvar>SIZE=2><amlvar name='date'
type='date'></FONT></TD>">
</component>
<component name="cell3"type="td"position="3"
structure="<amlvar>SIZE=2><amlvar name='time'
type='time'></FONT></TD>">
</component>
<component name="cell5"type="td"position="5"
structure="<amlvar>SIZE=2><amlvar name='headline'
type='text'></A></U><amlvar>">
</component>
</component>
</idloop>
</component>
구조 메커니즘을 사용하는 각 셀의 명세는, 상기 명세에 나타나는 HTML 구성 때문에 컨볼루트(convolute)된 것처럼 보인다. 단순화(simplification)의 일례는 상기 셀의 "visible" 부분(사용자가 정규 웹 브라우저상에서 보는 것)을 참조하는구조를 가지는 것이다.
상기 변수들은 $amlvar(headlines[index].date), $amlvar(headlines[index]. time), $amlvar(headlines[index].news)로 참조될 수 있다. 또한, 다섯번째 열의 앵커 요소(anchor element)는 $amlvar(headlines[index].url)로 참조될 수 있다.
C.6 추출: 반복(looping) 변수 구성요소(예를 들면, 리스트)
변수 구성요소는 그 구조가 HTML 페이지의 한 버전으로부터 또 다른 버전으로 변경될 수 있는 것이다. 예를 들어, amazon.com에서 책을 검색할 때, 그 결과들은 변수 구성요소를 구성하는데, 이는 상기 구성요소들이 테이블의 행/셀로서 식별될 수 없기 때문이다. 구성요소의 서브구성요소들이 어떻게 정의되는지에 대한 일반적인 명세를 가지는 것도 가능하다. 소스 HTML에 있어서, 각 구성요소는 <dt> 태그로 시작되고, <p> 태크로 종료된다.
상기는 amazon.com 레이블을 가진 사이트의 구성요소의 일례이다. 그 결과 구성요소는 다음과 같이 명세화될 수 있다.
상기 명세에서는, 반복 구성요소 앞에 고정 헤더 구성요소 "<dl>"가 있다.반복 구성요소의 각각의 반복에서는, 다음과 같은 섹션을 식별하는 것이 필요하다.
상기 섹션을 추출하기 위하여는, 그 결과적인 구성요소가 다음과 같이 기술될 수 있다.
상기 타이틀 텍스트는 $amlvar(loop1[index].title)로 참조될 수 있고, 상기 타이틀에 대한 정보는 $amlvar(loop1[index].detail)로 액세스될 수 있다.
C.7 추출: 대체 구조
최적의 경우에는, 사용자에 대한 당해 구성요소가 정확하게 한가지 방법을 사용하여 식별될 수 있다. 하지만, 동일한 양식이 페이지에서 첫번째/세번째 양식으로 나타나거나, 테이블이 3 또는 4셀로 나타날 수 있는 경우가 있을 수 있다. 대체 구조를 갖는 구성요소의 식별을 위하여 특유한(unique) 구조를 사용하여 구성요소의 식별을 확장하는 것은 다음과 같은 예시를 산출한다.
예시 1
행들이 3가지 상이한 형식인 경우의 아래와 같은 테이블(주식시세 사이트로부터의 거래 이력 테이블)를 고려하자.
이 경우, 상기 행들은 거래의 동일한 "types"을 표현하지 않기 때문에, 상이한 포맷으로 읽어내야 할지도 모른다. 또한, 그들의 입력은 상이하게 조직화된다. 상기 테이블을 위한 규칙은 다음과 같을 수 있다.
<component name="transaction"type="table"position="1">
<idloop name="transactionList"loopindex="index"><idswitch name="switch1">
<idcase define="INTEREST">
<component name="intrst"type="tr"
structure="<amlvar>interest<amlvar>">
<component name=icol1 type="td"position=1></component>
<component name=icol2 type="td"position=2></component>
<component name=icol3 type="td"position=3></component>
<component name=icol4 type="td"position=4></component>
<component name=icol5 type="td"position=5></component>
</component>
</idcase>
<idcase define="DIVIDEND">
<component name="dvdnc"type="tr"
structure="<amlvar>dividend<amlvar>">
<component name=dcol1 type="td"position=1></component>
<component name=dcol2 type="td"position=2></component>
<component name=dcol3 type="td"position=3></component>
<component name=dcol4 type="td"position=4></component>
<component name=dcol5 type="td"position=5></component>
</component>
</idcase>
<idcase define="default">
<component name="dvdnc"type="tr">
<component name=col1 type="td"position=1></component>
<component name=col2 type="td"position=2></component>
<component name=col3 type="td"position=3></component>
<component name=col4 type="td"position=4></component>
<component name=col5 type="td"position=5></component>
</component>
</idcase>
</idloop>
</component>
지금까지 본 발명은 특정 실시예를 참조하여 기술되었다. 본 기술분야의 당업자라면 다른 실시예가 가능하다는 것은 명백하다. 따라서, 청구범위에 기재된 것을 제외하고도, 본 발명을 제한하려는 것은 아니다.

Claims (28)

  1. 소스데이터를 위한 저장수단과 상기 소스테이터의 식별을 위한 수단을 구비하는 컴퓨터 네트워크 시스템에서, 수학적으로 정규화된 표현(regular expression)의 부분이며, 제1시각포맷(visual format)에서 재래식으로 제시되는 당해 요소의 상기 소스데이터를, 청각형식 및 제2시각형식을 포함하는 대체형식으로 상기 소스데이터를 렌더링하기 위한 정규 표현(canonical representation)으로 변환시키는 방법에 있어서,
    상기 저장수단내의 수학적으로 정규화된 표현양식의 2차원 데이터인 상기 소스데이터를 소스로부터 검색하는 단계;
    상기 수학적으로 정규화된 표현의 파스 트리(parsed tree)내의 당해 요소의 특유한 컨테이너(unique container)를 위치시키는 단계;
    상기 당해 요소의 서명(signature)을 얻기 위하여 상기 파스 트리내의 상기 당해 요소의 특유한 로컬 루트(unique local route)를 뒤따르는 단계로서, 상기 서명은 상기 정규 표현이며, 상기 서명은 상기 특유한 컨테이너 및 상기 특유한 로컬 루트를 포함하는 단계; 및
    상기 당해 요소의 값을 검색 및 렌더링시에, 차후 사용을 위한 상기 저장수단에 상기 서명을 저장하는 단계를 포함하는 것을 특징으로 하는 변환방법.
  2. 제1항에 있어서,
    상기 요소의 반복된 표현을 검색하는 단계; 및
    상기 서명을 참조하여 상기 반복된 표현을 모두 식별하는 단계를 더 포함하는 것을 특징으로 하는 변환방법.
  3. 제1항에 있어서,
    상기 선택된 요소의 반복된 예시문(instantiation)을 검색하는 단계; 및
    상기 예시문 중 단지 하나의 표현만 저장하는 단계를 더 포함하는 것을 특징으로 하는 변환방법.
  4. 제3항에 있어서,
    상기 하나의 예시문은 반복된 상기 제1요소인 것을 특징으로 하는 변환방법.
  5. 제1항에 있어서,
    상기 선택된 요소 각각을 식별하는 단계를 더 포함하는 것을 특징으로 하는 변환방법.
  6. 제1항에 있어서,
    의도된 문맥을 위하여 상기 선택된 요소를 렌더링하기 위한 상기 선택된 요소의 저장된 표현을 맞춤화(customize)하는 단계를 더 포함하는 것을 특징으로 하는 변환방법.
  7. 소스데이터를 위한 저장수단과 상기 소스테이터의 식별을 위한 수단을 구비하는 컴퓨터 네트워크 시스템에서, 수학적으로 정규화된 표현(regular expression)의 부분이며, 제1시각형식(visual format)에서 재래식으로 제시되는 당해 요소의 상기 소스데이터를, 청각형식 및 제2시각형식을 포함하는 대체형식으로 상기 소스데이터를 렌더링하기 위한 정규 표현(canonical representation)으로 변환시키는 방법에 있어서,
    디자이너에 의하여 선택된 소스언어 구성요소를 위한 타겟언어 구성요소를 생성하는 단계;
    상기 타겟언어 구성요소의 속성을 위한 값을 얻는 단계;
    타겟언어 속성들이 특유하게 그 부모 컨테이너내의 상기 타겟 구성요소를 명세화하는지의 여부를 결정하도록 상기 타겟언어 속성들을 테스트하는 단계;
    그렇지 않다면, "left" 형제(sibling) 구성요소의 시퀀스를 선택하여, 상기 타겟언어 구성요소에 앞선 상기 시퀀스가 상기 부모 컨테이너의 문맥에서 독특한 서명을 가지는 단계;
    상기 타겟언어 구성요소의 명세에 상기 시퀀스를 포함하는 단계;
    상기 기타 구성요소들이 현 레벨에서 명세화될 필요가 있는지를 결정하도록 현 레벨에서 기타 타겟언어 구성요소를 테스트하는 단계;
    상기 현 레벨에서 당해 상기 기타 구성요소의 명세를 얻는 단계;
    상기 현 레벨에서 명세의 특유성(uniqueness)에 대하여 테스트하는 단계; 및
    명세의 특유성을 수립하면서, 상기 타겟언어의 스크립트를 출력하는 단계를 포함하는 것을 특징으로 하는 변환방법.
  8. 제7항에 있어서,
    명세의 특유성을 위한 상기 테스트는,
    주제(subject) 명세가 상기 현 레벨에서 케이스형 명세의 부분인지를 결정하는 단계;
    상기 현 레벨에서 기타 모든 패턴을 위한 명세를 얻는 단계; 및
    상기 얻어진 모든 패턴을 포괄하도록 ID전환구성요소(identification switch component)를 정의하는 단계를 포함하는 것을 특징으로 하는 변환방법.
  9. 제8항에 있어서,
    명세의 특유성을 위한 상기 테스트는,
    상기 명세가 반복하는 패턴의 부분인지를 결정하는 단계; 및
    만일 그렇다면, 상기 현 명세를 포괄(enclose)하는 ID 루프(identification loop)를 정의하는 단계를 더 포함하는 것을 특징으로 하는 변환방법.
  10. 제9항에 있어서,
    명세의 특유성을 위한 상기 테스트는,
    상기 현 명세가 특유한지를 결정하도록 동일한 HTML 페이지상의 기타 명세에대하여 현재-정의된(currently-defined) 명세를 테스트하는 단계와 그렇지 않다면, 조상 컨테이너에 대한 타입 정보를 얻는 단계; 및
    상기 HTML 페이지의 견제 특성(containment property)을 반영하도록 AML 구성요소를 포괄(enclosing) AML 구성요소를 정의하는 단계를 더 포함하는 것을 특징으로 하는 변환방법.
  11. 호스트 웹 서버로부터 웹 요소를 명세화하는 소스언어 정보를 수신하는 수단;
    상기 소스언어 정보로부터 웹 요소를 선택하는 수단;
    상기 웹 요소를 식별하는 서명을 생성하는 수단;
    상기 웹 요소에 대한 런타임 엔진 프롬프트(runtime engine prompt)를 생성하는 수단; 및
    지속 저장소(persistent store)에 상기 서명 및 상기 런타임 엔진 프롬프트를 저장하는 수단을 포함하는 것을 특징으로 하는 시스템.
  12. 제11항에 있어서,
    상기 소스언어 정보는 HTML 데이터를 포함하는 것을 특징으로 하는 시스템.
  13. 제11항에 있어서,
    상기 서명은 상기 선택된 웹 요소를 식별하도록 위치 정보를 포함하는 것을특징으로 하는 시스템.
  14. 제11항에 있어서,
    상기 서명은 상기 선택된 웹 요소를 식별하도록 속성 정보를 포함하는 것을 특징으로 하는 시스템.
  15. 제11항에 있어서,
    상기 서명은 1이상의 웹 요소의 ID 정보를 포함하고, 상기 ID 정보는 상기 선택된 웹 요소의 속성 정보를 결정하는데 사용할 수 있는 속성 정보를 가지는 것을 특징으로 하는 시스템.
  16. 제11항에 있어서,
    상기 서명은, 상기 선택된 웹 요소를 식별하는데 사용할 수 있는 속성 정보를 가지는 1이상의 웹 요소의 ID 정보를 포함하는 것을 특징으로 하는 시스템.
  17. 제11항에 있어서,
    상기 서명은 상기 선택된 웹 요소를 식별하도록 좌측 형제 정보를 포함하는 것을 특징으로 하는 시스템.
  18. 제11항에 있어서,
    상기 서명은 상기 선택된 웹 요소를 식별하도록 패턴 정보를 포함하는 것을 특징으로 하는 시스템.
  19. 제11항에 있어서,
    상기 런타임 엔진 프롬프트는 청각 프롬프트를 포함하는 것을 특징으로 하는 시스템.
  20. 제11항에 있어서,
    상기 런타임 엔진 프롬프트는 사용자-선택가능 옵션을 포함하는 것을 특징으로 하는 시스템.
  21. 제11항에 있어서,
    상기 런타임 엔진 프롬프트에 대한 사용자-액세스가능 응답을 생성하는 수단을 더 포함하는 것을 특징으로 하는 시스템.
  22. 제11항에 있어서,
    런타임 엔진 디자인 객체를 생성하는 수단을 더 포함하는 것을 특징으로 하는 시스템.
  23. 제21항에 있어서,
    상기 런타임 엔진 디자인 객체로부터 스크립트를 생성하는 수단을 더 포함하는 것을 특징으로 하는 시스템.
  24. 제22항에 있어서,
    상기 소스언어 정보는 웹 페이지를 명세화하고, 상기 스크립트는 상기 웹 페이지를 식별하는 URL을 포함하는 것을 특징으로 하는 시스템.
  25. 제11항에 있어서,
    상기 웹 요소를 선택하는 수단은 복수의 웹 요소를 선택하는 수단을 포함하고, 사용자-선택가능 웹 요소간의 제어흐름(control flow) 런타임 엔진 프롬프트를 생성하는 수단을 더 포함하는 것을 특징으로 하는 시스템.
  26. 호스트 웹 서버로부터 웹 요소를 명세화하는 소스언어 정보를 수신하는 단계;
    상기 소스언어 정보로부터 웹 요소를 선택하는 단계;
    상기 웹 요소를 식별하는 서명을 생성하는 단계;
    상기 웹 요소에 대한 런타임 엔진 프롬프트를 생성하는 단계; 및
    지속 저장소에 상기 서명 및 상기 런타임 엔진 프롬프트를 저장하는 단계를 포함하는 것을 특징으로 하는 방법.
  27. 제26항에 있어서,
    상기 서명은,
    웹 요소 타입을 지시하는 타입 식별자,
    소스언어 정보 웹 요소 ID에 대응하는 ID 식별자,
    웹 페이지에 대한 네임(name) 속성에 대응하는 네임 식별자,
    웹 페이지에 대한 상기 웹 요소의 위치를 지시하는 위치 식별자,
    action URL을 지시하는 URL 식별자,
    상기 웹 요소의 서브요소의 구조를 지시하는 디멘젼(dimension) 식별자, 및
    상기 웹 요소의 속성을 지시하는 구조 식별자를 포함하는 그룹 가운데 선택된 웹 요소의 식별자를 포함하는 것을 특징으로 하는 방법.
  28. 호스트 웹 서버로부터 웹 요소를 명세화하는 소스언어 정보를 수신하는 단계;
    상기 소스언어 정보로부터 웹 요소를 선택하는 단계;
    상기 웹 요소를 식별하는 서명을 생성하는 단계;
    상기 웹 요소에 대한 런타임 엔진 프롬프트를 생성하는 단계; 및
    지속 저장소에 상기 서명 및 상기 런타임 엔진 프롬프트를 저장하는 단계를 컴퓨터가 수행하도록 하는 프로그램 코드를 저장하는 컴퓨터-읽기가능 저장매체.
KR1020027003142A 1999-09-10 2000-09-08 2차원 데이터를 정규표현으로 변환하는 방법 KR20020043580A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US39412099A 1999-09-10 1999-09-10
US09/394,120 1999-09-10
PCT/US2000/024578 WO2001018679A2 (en) 1999-09-10 2000-09-08 Method for converting two-dimensional data into a canonical representation

Publications (1)

Publication Number Publication Date
KR20020043580A true KR20020043580A (ko) 2002-06-10

Family

ID=23557640

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020027003142A KR20020043580A (ko) 1999-09-10 2000-09-08 2차원 데이터를 정규표현으로 변환하는 방법

Country Status (8)

Country Link
US (2) US6446098B1 (ko)
EP (1) EP1210671A2 (ko)
JP (1) JP2003510674A (ko)
KR (1) KR20020043580A (ko)
CN (1) CN1379882A (ko)
AU (1) AU7356100A (ko)
CA (1) CA2384730A1 (ko)
WO (1) WO2001018679A2 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017188534A1 (ko) * 2016-04-26 2017-11-02 (주)시큐레이어 비정형 데이터의 정규화를 수행하도록 지원하는 방법 및 이를 이용한 컴퓨팅 장치

Families Citing this family (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6728934B1 (en) * 2000-02-10 2004-04-27 Philip M. Scopes Touch tone voice internet service
US7103563B1 (en) * 2000-03-21 2006-09-05 America Online, Inc. System and method for advertising with an internet voice portal
US7974875B1 (en) * 2000-03-21 2011-07-05 Aol Inc. System and method for using voice over a telephone to access, process, and carry out transactions over the internet
US7406658B2 (en) * 2002-05-13 2008-07-29 International Business Machines Corporation Deriving menu-based voice markup from visual markup
US7216287B2 (en) * 2002-08-02 2007-05-08 International Business Machines Corporation Personal voice portal service
US7694219B2 (en) * 2002-12-20 2010-04-06 Oracle International Corporation Dynamic tree representation for internet enterprise applications
US7272818B2 (en) * 2003-04-10 2007-09-18 Microsoft Corporation Creation of an object within an object hierarchy structure
US9881308B2 (en) * 2003-04-11 2018-01-30 Ebay Inc. Method and system to facilitate an online promotion relating to a network-based marketplace
US7421649B1 (en) 2003-04-28 2008-09-02 Adobe Systems Incorporated Enhanced visual table editing
US7519621B2 (en) * 2004-05-04 2009-04-14 Pagebites, Inc. Extracting information from Web pages
US20050273450A1 (en) * 2004-05-21 2005-12-08 Mcmillen Robert J Regular expression acceleration engine and processing model
WO2006031921A2 (en) * 2004-09-15 2006-03-23 Adesso Systems, Inc. System and method for managing data in a distributed computer system
US8302074B1 (en) * 2004-10-15 2012-10-30 Oracle America, Inc. “If” and “switch” as drag and drop objects
US7958164B2 (en) * 2006-02-16 2011-06-07 Microsoft Corporation Visual design of annotated regular expression
US7860881B2 (en) * 2006-03-09 2010-12-28 Microsoft Corporation Data parsing with annotated patterns
US10345922B2 (en) * 2006-04-21 2019-07-09 International Business Machines Corporation Office system prediction configuration sharing
US8600916B2 (en) * 2006-04-21 2013-12-03 International Business Machines Corporation Office system content prediction based on regular expression pattern analysis
US7512634B2 (en) * 2006-06-05 2009-03-31 Tarari, Inc. Systems and methods for processing regular expressions
US7899904B2 (en) 2007-04-30 2011-03-01 Lsi Corporation Hardware processing of regular expressions
US9170778B2 (en) * 2008-11-18 2015-10-27 Adobe Systems Incorporated Methods and systems for application development
US8924921B2 (en) * 2009-04-20 2014-12-30 International Business Machines Corporation Abstracting business logic into centralized database controls
US20120110003A1 (en) * 2010-11-03 2012-05-03 Microsoft Corporation Conditional execution of regular expressions
KR101299670B1 (ko) * 2012-04-16 2013-08-27 권오석 웹페이지의 동적 변환 시스템, 방법 및 컴퓨터 판독 가능한 기록 매체
US10223362B2 (en) * 2016-03-31 2019-03-05 International Electronic Business Iii, Inc. Methods and systems for converting business to business data to a canonical format
CN108197687A (zh) * 2017-12-27 2018-06-22 江苏集萃智能制造技术研究所有限公司 一种网页二维码生成方法
CN111324844A (zh) * 2020-02-20 2020-06-23 重庆锐云科技有限公司 数据导出控制方法、装置、营销管理平台及存储介质

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6115723A (en) 1995-04-27 2000-09-05 International Business Machines Corporation System and method for converting a coordinate based document to a markup language (ML) based document
AU1566497A (en) * 1995-12-22 1997-07-17 Rutgers University Method and system for audio access to information in a wide area computer network
US5953392A (en) * 1996-03-01 1999-09-14 Netphonic Communications, Inc. Method and apparatus for telephonically accessing and navigating the internet
US6167409A (en) 1996-03-01 2000-12-26 Enigma Information Systems Ltd. Computer system and method for customizing context information sent with document fragments across a computer network
US5915259A (en) 1996-03-20 1999-06-22 Xerox Corporation Document schema transformation by patterns and contextual conditions
JPH1078952A (ja) * 1996-07-29 1998-03-24 Internatl Business Mach Corp <Ibm> 音声合成方法、音声合成装置、ハイパーテキストの制御方法及び制御装置
US6282511B1 (en) * 1996-12-04 2001-08-28 At&T Voiced interface with hyperlinked information
US6018710A (en) * 1996-12-13 2000-01-25 Siemens Corporate Research, Inc. Web-based interactive radio environment: WIRE
US5884266A (en) * 1997-04-02 1999-03-16 Motorola, Inc. Audio interface for document based information resource navigation and method therefor
US5899975A (en) * 1997-04-03 1999-05-04 Sun Microsystems, Inc. Style sheets for speech-based presentation of web pages
JP3195279B2 (ja) * 1997-08-27 2001-08-06 インターナショナル・ビジネス・マシーンズ・コーポレ−ション 音声出力システムおよびその方法
US6154754A (en) 1997-09-25 2000-11-28 Siemens Corporate Research, Inc. Automatic synthesis of semantic information from multimedia documents
US6279015B1 (en) 1997-12-23 2001-08-21 Ricoh Company, Ltd. Method and apparatus for providing a graphical user interface for creating and editing a mapping of a first structural description to a second structural description
US6085196A (en) 1997-12-23 2000-07-04 Ricoh Company, Ltd. Object-oriented system and computer program product for mapping structured information to different structured information
US6078924A (en) * 1998-01-30 2000-06-20 Aeneid Corporation Method and apparatus for performing data collection, interpretation and analysis, in an information platform
US6115686A (en) 1998-04-02 2000-09-05 Industrial Technology Research Institute Hyper text mark up language document to speech converter
US6167448A (en) 1998-06-11 2000-12-26 Compaq Computer Corporation Management event notification system using event notification messages written using a markup language
US6269336B1 (en) 1998-07-24 2001-07-31 Motorola, Inc. Voice browser for interactive services and methods thereof
US6185535B1 (en) 1998-10-16 2001-02-06 Telefonaktiebolaget Lm Ericsson (Publ) Voice control of a user interface to service applications
US6266615B1 (en) 1999-09-27 2001-07-24 Televigation, Inc. Method and system for an interactive and real-time distributed navigation system
US6349132B1 (en) * 1999-12-16 2002-02-19 Talk2 Technology, Inc. Voice interface for electronic documents

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017188534A1 (ko) * 2016-04-26 2017-11-02 (주)시큐레이어 비정형 데이터의 정규화를 수행하도록 지원하는 방법 및 이를 이용한 컴퓨팅 장치

Also Published As

Publication number Publication date
JP2003510674A (ja) 2003-03-18
CA2384730A1 (en) 2001-03-15
EP1210671A2 (en) 2002-06-05
US6569208B2 (en) 2003-05-27
WO2001018679A2 (en) 2001-03-15
AU7356100A (en) 2001-04-10
WO2001018679A3 (en) 2001-12-20
US20020116419A1 (en) 2002-08-22
US20020103831A1 (en) 2002-08-01
CN1379882A (zh) 2002-11-13
US6446098B1 (en) 2002-09-03

Similar Documents

Publication Publication Date Title
US6446098B1 (en) Method for converting two-dimensional data into a canonical representation
US7165073B2 (en) Dynamic, hierarchical data exchange system
US6470349B1 (en) Server-side scripting language and programming tool
US7493260B2 (en) Method and system for building/updating grammars in voice access systems
US6986104B2 (en) Method and apparatus for normalizing and converting structured content
US6559861B1 (en) Displaying computer interfaces in multiple languages
US6857102B1 (en) Document re-authoring systems and methods for providing device-independent access to the world wide web
US20030151633A1 (en) Method and system for enabling connectivity to a data system
US20070208769A1 (en) System and method for generating an XPath expression
US20020032706A1 (en) Method and system for building internet-based applications
US7805464B2 (en) Web viewer setup dialog and grammar for generating web addresses
US6779152B1 (en) Method for rotating a dynamic HTML table
JP2005507523A (ja) 文書生成に関する改良
JP2009070372A (ja) 動的ウェブページコンテンツファイルからのサーバ側コード生成
US20060184352A1 (en) Enhanced Chinese character/Pin Yin/English translator
US20020052895A1 (en) Generalizer system and method
US20070094289A1 (en) Dynamic, hierarchical data exchange system
WO2001018630A2 (en) Xml dynamic content retrieval using style and content definition sheets
EP1652118A2 (en) Diagrammatic method and system to build repository queries
US7458016B1 (en) Framework for declarative customization of web presentation formats
KR20020042831A (ko) 선택된 데이터 필드의 맞춤화 및 렌더링 방법
US20010012007A1 (en) Method, system and user interface for inputting and manipulating tokenised strings
US7647227B1 (en) Machine assisted speech generation for a conversational voice response system
Staudacher et al. Web-Interface for Natural Language Parsers
Ghode Web application tool (Master of Software Engineering)

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid