KR20160058947A - 데이터에 적용되는 규칙 평가 - Google Patents

데이터에 적용되는 규칙 평가 Download PDF

Info

Publication number
KR20160058947A
KR20160058947A KR1020167010780A KR20167010780A KR20160058947A KR 20160058947 A KR20160058947 A KR 20160058947A KR 1020167010780 A KR1020167010780 A KR 1020167010780A KR 20167010780 A KR20167010780 A KR 20167010780A KR 20160058947 A KR20160058947 A KR 20160058947A
Authority
KR
South Korea
Prior art keywords
user interface
conditions
rule
data set
subsets
Prior art date
Application number
KR1020167010780A
Other languages
English (en)
Other versions
KR102349573B1 (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 KR20160058947A publication Critical patent/KR20160058947A/ko
Application granted granted Critical
Publication of KR102349573B1 publication Critical patent/KR102349573B1/ko

Links

Images

Classifications

    • G06F17/246
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0487Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser
    • G06F3/0489Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using dedicated keyboard keys or combinations thereof
    • G06F3/04895Guidance during keyboard input operation, e.g. prompting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/166Editing, e.g. inserting or deleting
    • G06F40/177Editing, e.g. inserting or deleting of tables; using ruled lines
    • G06F40/18Editing, e.g. inserting or deleting of tables; using ruled lines of spreadsheets
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24564Applying rules; Deductive queries
    • G06F17/245
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • G06F3/0482Interaction with lists of selectable items, e.g. menus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
    • G06F3/04842Selection of displayed objects or displayed text elements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/166Editing, e.g. inserting or deleting
    • G06F40/174Form filling; Merging
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/166Editing, e.g. inserting or deleting
    • G06F40/177Editing, e.g. inserting or deleting of tables; using ruled lines

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Artificial Intelligence (AREA)
  • Health & Medical Sciences (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • User Interface Of Digital Computer (AREA)
  • Stored Programmes (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

데이터세트의 요소들의 필드들에 포함되는 데이터를 처리하기 위해 규칙들을 지정하는 것은 사용자 인터페이스 요소들(224)을 렌더링하는 것 - 상기 사용자 인터페이스 요소들은 사용자 인터페이스 요소들의 제1 서브세트들(232), 적어도 하나의 필드(218)로부터 도출된 입력 값과 관련된 것들 중 적어도 일부, 그리고 사용자 인터페이스 요소들의 제2 서브세트들(230)을 포함하고, 각각은 각각의 조건(236)과 관련된 사용자 입력을 수신하도록 구성됨 - 을 포함한다. 첫번째 필드와 관련된 제1 사용자 인터페이스 요소(302)에 대한 사용자 입력을 수신하는 것에 응하여, 조건들이 사용자 인터페이스 요소들로부터의 사용자 입력에 기초하여 상기 데이터세트의 적어도 제1 요소(244)에 적용된다. 각각의 사용자 인터페이스 요소들과 관련된 선택된 조건들을 적용하기 위해 명령들이 생성되고, 상기 선택된 조건들은 상기 제1 사용자 인터페이스 요소와 관련된 조건이고, 하나 이상의 추가적인 조건들이 다른 조건들 사이의 잠재적인 종속성들을 지정하는 정보(430)에 기초하여 선택된다.

Description

데이터에 적용되는 규칙 평가 {EVALUATING RULES APPLIED TO DATA}
본 출원은 2013년 9월 27일에 출원된 US 출원번호 61/883,399에 대해 우선권을 주장한다.
본 설명은 데이터에 적용되는 논리적 규칙들을 평가하는 것과 관련된다.
예를 들어, 한 형식으로부터 또 다른 형식으로 데이터를 변환하기 위해, 데이터에 대한 결정을 내리기 위해, 또는 입력 데이터의 세트에 기초하여 새로운 데이터를 생성하기 위해 규칙들이 사용될 수 있다. 다양한 결정들을 내리기 위한 규칙들은 입력 데이터에 기초하여 생성하기 위한 출력 데이터 또는 수행하기 위한 동작들을 결정할 수 있다.
본 발명의 목적은 데이터세트의 복수의 요소들의 각각의 요소의 적어도 하나의 필드들에 포함되는 데이터를 처리하기 위해 적어도 하나의 규칙들을 지정하기 위한 컴퓨팅 시스템을 제공하기 위한 것이다.
본 발명의 목적은 데이터세트의 복수의 요소들의 각각의 요소의 적어도 하나의 필드들에 포함되는 데이터를 처리하기 위해 적어도 하나의 규칙들을 지정하기 위한 방법을 제공하기 위한 것이다.
본 발명의 목적은 데이터세트의 복수의 요소들의 각각의 요소의 적어도 하나의 필드들에 포함되는 데이터를 처리하기 위해 적어도 하나의 규칙들을 지정하기 위한, 컴퓨터 판독가능 매체 상에 비-일시적인 형태로 저장된 소프트웨어를 제공하기 위한 것이다.
일 측면에서, 일반적으로, 컴퓨팅 시스템이 데이터세트의 복수의 요소들의 각각의 요소의 하나 이상의 필드들에 포함되는 데이터를 처리하기 위해 하나 이상의 규칙들을 지정한다. 상기 컴퓨팅 시스템은 각각의 조건과 관련된 복수의 사용자 인터페이스 요소들을 렌더링하도록 구성된 사용자 인터페이스 모듈을 포함한다. 상기 사용자 인터페이스 요소들은 상기 사용자 인터페이스 요소들의 하나 이상의 제1 서브세트들(상기 하나 이상의 제1 서브세트들 중 적어도 일부 서브세트들은 상기 데이터세트의 복수의 요소들 중 한 요소의 적어도 하나의 필드로부터 도출된 입력 값과 관련됨), 그리고 상기 사용자 인터페이스 요소들의 다수의 제2 서브세트들(상기 다수의 제2 서브세트들 중 하나 이상의 각각의 사용자 인터페이스 요소는 각각의 조건과 관련된 사용자 입력을 수신하도록 구성됨)을 포함한다. 상기 컴퓨팅 시스템은
첫번째 필드와 관련된 제1 사용자 인터페이스 요소에 대한 사용자 입력을 수신하는 것에 응하여, 상기 사용자 인터페이스 요소들 중 적어도 일부로부터 수신된 사용자 입력에 기초하여 상기 데이터세트의 적어도 제1 요소에 조건들을 적용하도록 구성되는 처리 모듈을 포함한다. 상기 조건들을 적용하는 것은 각각의 사용자 인터페이스 요소들과 관련된 선택된 조건들을 적용하기 위해 컴퓨터 실행가능한 명령들을 생성하는 것(상기 선택된 조건들은 상기 제1 사용자 인터페이스 요소와 관련된 조건이고 하나 이상의 추가적인 조건들이 상이한 조건들 사이의 잠재적 종속성들을 지정하는 정보에 기초하여 선택됨), 그리고 상기 생성된 명령들을 실행하는 것과 상기 데이터세트의 제1 요소의 첫번째 필드에 포함된 데이터에 상기 제1 사용자 인터페이스 요소와 관련된 조건을 적용하는 것에 기초하여 결과와 관련된 피드백을 제공하는 것을 포함한다.
측면들은 다음 특징들 중 하나 이상을 가질 수 있다.
상기 사용자 인터페이스 요소들은 제1축과 제2축을 가지는 그리드에 배열된 셀들에 포함되고, 상기 사용자 인터페이스 요소들의 하나 이상의 제1 서브세트들은 상기 그리드의 제1축을 따르는 방향으로 연장되는 셀들의 각각의 서브세트들에 포함되고, 그리고 상기 사용자 인터페이스 요소들의 다수의 제2 서브세트들은 상기 그리드의 제2축을 따르는 방향으로 연장되는 셀들의 각각의 서브세트들에 포함된다.
상기 처리 모듈은 상이한 사용자 인터페이스 요소들과 관련된 조건들에 대한 평가 순서의 사양(specification)을 생성하도록 하고 - 상기 사양은 상이한 조건들 사이의 잠재적인 종속성들을 지정하는 정보임 - ; 그리고 상기 평가 순서의 사양에 따라 상기 선택된 조건들을 적용하기 위한 상기 생성된 컴퓨터 실행가능한 명령들을 실행하도록 하고, 상기 평가 순서의 사양에 따라 상기 제1요소의 하나 이상의 필드들에 포함된 데이터에 상기 선택된 조건들을 적용하는 것에 응하여 결과들과 관련된 피드백을 생성하도록 더 구성된다.
상기 평가 순서의 사양은 상이한 조건들을 나타내는 상태들을 포함하고 적용되도록 허용된 조건들의 순서를 정의하는 상태들 간 전이들을 포함하는 상태 전이도를 포함한다.
상기 조건들을 적용하는 것은 상기 생성된 명령들을 저장하는 것; 그리고 상기 데이터세트의 제2 요소의 첫번째 필드에 포함된 데이터에 상기 제1 사용자 인터페이스 요소와 관련된 조건을 적용하도록 상기 저장된 생성된 명령들을 실행하는 것을 더 포함한다. 예를 들어, 데이터세트의 제2 요소가 선택된 때 편집되지 않은 사용자 인터페이스 요소들(예를 들어, 셀들)에 대해, 제1 사용자 인터페이스 요소(예를 들어, 셀)가 편집되었다면, 하기에 더 상세히 설명된 바와 같이, 그 셀들의 규칙 조건들에 대한 저장된 생성된(예를 들어, 컴파일된) 명령들이 데이터세트의 제2 요소에 대한 새로운 입력 값에 대해 검색되고 재-실행될 수 있다.
상기 조건들을 적용하는 것은 상기 데이터세트의 제1 요소의 첫번째 필드에 포함된 데이터에 상기 제1 사용자 인터페이스 요소와 관련된 조건을 적용하는 것에 기초하여 결과를 저장하는 것; 그리고 상기 데이터세트의 제1 요소의 첫번째 필드에 포함된 데이터와 동일한 상기 데이터세트의 제2 요소의 첫번째 필드에 포함된 데이터에 상기 제1 사용자 인터페이스 요소와 관련된 조건을 적용하는 것에 응하여 상기 저장된 결과를 검색하는 것을 더 포함한다. 예를 들어, 상기 데이터세트의 제2 요소에 대해 특정 트리거 컬럼에 대한 입력 값이 상기 데이터세트의 제1 요소에 대해 그 특정 트리거 컬럼에 대한 입력 값과 같다면, 하기에 더 상세히 설명된 바와 같이, 상기 컴파일된 명령들을 재실행할 필요조차 없이 그러한 셀들의 규칙조건들에 대한 저장된 결과들이 검색되고 재사용된다.
상기 제1축을 따르는 방향으로 연장되는 셀들의 하나 이상의 서브세트들은 셀들의 열들이다.
상기 제2축을 따르는 방향으로 연장되는 셀들의 다수의 서브세트들은 셀들의 행들이다.
상기 요소의 첫번째 필드에 포함된 데이터에 상기 조건을 적용한 결과가 통과/실패 결과를 포함한다.
상기 피드백을 제공하는 것은 상기 결과가 실패 결과라면 상기 제1 사용자 인터페이스 요소에 음영을 적용하는 것을 포함한다.
상기 조건들을 적용하는 것은 상기 데이터세트의 다수의 요소들에 포함된 데이터에 하나 이상의 셀들과 관련된 조건들을 적용하는 것과 관련된 피드백을 제공하는 것을 더 포함한다.
상기 처리 모듈은 조건의 구문을 검증하도록 더 구성된다.
필드 및 검증 규칙과 관련된 상기 적어도 일부 사용자 인터페이스 요소들은 상기 조건의 구문의 검증 결과와 관련된 피드백을 제공한다.
상기 데이터세트는 데이터베이스의 하나 이상의 테이블들을 포함하고 상기 데이터세트의 요소들은 데이터베이스 레코드들을 포함한다.
또다른 측면에서, 일반적으로, 데이터세트의 복수의 요소들의 각각의 요소의 하나 이상의 필드들에 포함되는 데이터를 처리하기 위해 하나 이상의 규칙들을 지정하기 위한 방법은 각각의 조건과 관련된 복수의 사용자 인터페이스 요소들을 렌더링하는 단계 - 상기 사용자 인터페이스 요소들은 상기 사용자 인터페이스 요소들의 하나 이상의 제1 서브세트들(상기 하나 이상의 제1 서브세트들 중 적어도 일부 서브세트들은 상기 데이터세트의 복수의 요소들 중 한 요소의 적어도 하나의 필드로부터 도출된 입력 값과 관련됨), 그리고 상기 사용자 인터페이스 요소들의 다수의 제2 서브세트들(상기 다수의 제2 서브세트들 중 하나 이상의 각각의 사용자 인터페이스 요소는 각각의 조건과 관련된 사용자 입력을 수신하도록 구성됨)을 포함함- ; 그리고 첫번째 필드와 관련된 제1 사용자 인터페이스 요소에 대한 사용자 입력을 수신하는 것에 응하여, 상기 사용자 인터페이스 요소들 중 적어도 일부로부터 수신된 사용자 입력에 기초하여 상기 데이터세트의 적어도 제1 요소에 조건들을 적용하는 단계 - 상기 조건들을 적용하는 단계는 각각의 사용자 인터페이스 요소들과 관련된 선택된 조건들을 적용하기 위해 컴퓨터 실행가능한 명령들을 생성하는 단계(상기 선택된 조건들은 상기 제1 사용자 인터페이스 요소와 관련된 조건이고 하나 이상의 추가적인 조건들이 상이한 조건들 사이의 잠재적 종속성들을 지정하는 정보에 기초하여 선택됨), 그리고 상기 생성된 명령들을 실행하는 단계와 상기 데이터세트의 제1 요소의 첫번째 필드에 포함된 데이터에 상기 제1 사용자 인터페이스 요소와 관련된 조건을 적용하는 것에 기초하여 결과와 관련된 피드백을 제공하는 단계를 포함함- 를 포함한다.
또다른 측면에서, 일반적으로, 데이터세트의 복수의 요소들의 각각의 요소의 하나 이상의 필드들에 포함되는 데이터를 처리하기 위해 하나 이상의 규칙들을 지정하기 위한, 컴퓨터 판독가능 매체 상에 비-일시적인 형태로 저장된 소프트웨어를 포함한다. 상기 소프트웨어는 컴퓨팅 시스템이 각각의 조건과 관련된 복수의 사용자 인터페이스 요소들을 렌더링하도록 하고 - 상기 사용자 인터페이스 요소들은 상기 사용자 인터페이스 요소들의 하나 이상의 제1 서브세트들(상기 하나 이상의 제1 서브세트들 중 적어도 일부 서브세트들은 상기 데이터세트의 복수의 요소들 중 한 요소의 적어도 하나의 필드로부터 도출된 입력 값과 관련됨), 그리고 상기 사용자 인터페이스 요소들의 다수의 제2 서브세트들(상기 다수의 제2 서브세트들 중 하나 이상의 각각의 사용자 인터페이스 요소는 각각의 조건과 관련된 사용자 입력을 수신하도록 구성됨)을 포함함 -; 그리고 첫번째 필드와 관련된 제1 사용자 인터페이스 요소에 대한 사용자 입력을 수신하는 것에 응하여, 상기 사용자 인터페이스 요소들 중 적어도 일부로부터 수신된 사용자 입력에 기초하여 상기 데이터세트의 적어도 제1 요소에 조건들을 적용하도록 하는 - 상기 조건들을 적용하는 것은 각각의 사용자 인터페이스 요소들과 관련된 선택된 조건들을 적용하기 위해 컴퓨터 실행가능한 명령들을 생성하는 것(상기 선택된 조건들은 상기 제1 사용자 인터페이스 요소와 관련된 조건이고 하나 이상의 추가적인 조건들이 상이한 조건들 사이의 잠재적 종속성들을 지정하는 정보에 기초하여 선택됨), 그리고 상기 생성된 명령들을 실행하는 것과 상기 데이터세트의 제1 요소의 첫번째 필드에 포함된 데이터에 상기 제1 사용자 인터페이스 요소와 관련된 조건을 적용하는 것에 기초하여 결과와 관련된 피드백을 제공하는 것을 포함함- 명령들을 포함한다.
측면들은 다음 장점들 중 하나이상을 포함할 수 있다.
일부 시스템에서, 규칙들을 편집하고 테스트하는 프로세스는 실행을 위해 편집된 규칙들을 준비하는 비효율성에 의해 방해될 수 있다. 예를 들어, 규칙을 만드는 다양한 조건들을 지정하는 규칙 사양(rule specification)은 사용자 입력에 기초하여 규칙을 수정하기에 적합한 형식으로 저장될 수 있다. 그러나, 그 규칙 사양은 규칙들이 효과적으로 입력 데이터에 적용될 수 있기 전에 실행가능한 형태(예를 들어, 컴퓨터 실행가능한 명령들)로 컴파일될 필요가 있을 수 있다. 추가적으로, 규칙들이 사용될 분야에서 전문가들일 수 있으나 전문 컴퓨터 프로그래머들이 아닌 사용자들에 의한 규칙들의 개발을 용이하게 하기 위해, 규칙 사양이 편집되는 시간과 지정된 규칙이 테스트 입력 데이터를 테스트할 준비가 되는 시간 사이에 비교적 짧은 지연을 주는 데 도움이 된다. 규칙 편집기 인터페이스 내에서 사용자의 입력에 효과적이고 호응하는 규칙 컴파일 절차는 이러한 규칙 개발을 방해하는 특정 기술적 문제들이 극복될 수 있게 한다.
본원에서 기술된 시스템은 사용자 입력 수신에 응하여 규칙을 적용하기 위한 명령들을 효과적으로 컴파일할 수 있다. 예를 들어, 사용자 입력은 규칙 사양의 일부를 편집하는 것과 관련될 있다. 시스템은 전체 규칙 사양에 대한 명령들을 재-컴파일하지 않고 규칙 사양의 부분들에 대한 명령들을 선택적으로 재-컴파일할 수 있다. 이러한 선택은 규칙 편집에 대한 효과적인 피드백을 가능하게 한다. 예를 들어, 규칙은 다른 논리 표현식들(logical expressions)에 의해 표현된 다양한 조건들을 사용하여 지정될 수 있다. 사용자가 표현식을 입력할 때, 그 표현식을 평가하기 위한 컴파일된 명령들이 생성되고 저장될 수 있다. 그 표현식들을 입력 데이터에 적용한 결과들이 편집기 내에서 디스플레이될 수 있다. 이 표현식들의 일부는 다른 표현식들의 결과에 의존할 수 있다. 표현식들을 입력 데이터에 적용한 결과들(다른 표현식들의 결과들을 포함함), 또는 입력 데이터에 의존하지 않는 표현식들을 평가한 결과들 또한 저장될 수 있다. 전체 규칙 사양은 그 표현식을 재-컴파일하고 입력 값들이 사용자 편집에 의해 영향받았을 수 있는 표현식들에 대한 저장된 명령들을 선택적으로 재실행하는 것에 의해 사용자가 특정 표현식을 편집한 후에 다시 평가될 수 있다. 표현식들이 평가되는 순서의 계통 표현(lineage representation)은 편집된 표현식에 잠재적으로 의존하는 표현식들을 결정하기 위해 사용될 수 있다. 표현식이 편집에 의해 영향받지 않도록 결정된다면, 그 저장된 결과들이 그 표현식을 재-컴파일 또는 재-평가할 필요 없이 사용될 수 있다.
본 발명의 다른 특징들과 장점들은 다음 설명으로부터, 그리고 청구항들로부터 명백하게 될 것이다.
도 1은 데이터에 적용되는 규칙들을 평가하기 위한 시스템의 블록도이다.
도 2a는 데이터를 분석하기 위해 규칙들을 지정하기 위한 사용자 인터페이스이다.
도 2b는 사용자 피드백을 포함한 데이터를 분석하기 위해 규칙들을 지정하기 위한 사용자 인터페이스이다.
도 2c는 수정된 규칙 케이스(rule case)와 함께 도 2b의 사용자 인터페이스를 도시한다.
도 3은 규칙들을 지정하기 위한 사용자 인터페이스의 스크린 캡처(screen capture)이다.
도 4a는 효과적으로 규칙들을 컴파일하고 적용하기 위한 계통도(lineage diagram)이다.
도 4b는 계통도의 규칙에 대한 사용자 인터페이스이다.
도 4c와 도 4d는 도 4b의 규칙에 대한 상태 전이도들(state transition diagrams)이다.
도 1은 규칙 평가 기술들이 사용될 수 있는 예시 데이터 처리 시스템(100)을 도시한다. 상기 시스템(100)은 저장 디바이스들 또는 온라인 데이터 스트림들에 대한 연결들과 같은 데이터의 하나 이상의 소스들을 포함할 수 있는 데이터 소스(102)를 포함하고, 그것들 각각은 다양한 저장 형식들(예를 들어, 데이터베이스 테이블들, 스프레드시트 파일들, 플랫 텍스트 파일들(flat text files), 또는 메인프레임에 의해 사용되는 원시 형식(native format))중 임의의 것으로 데이터(때론 “데이터세트”라고 함)를 저장할 수 있다. 실행 환경(104)는 사용자 인터페이스(UI) 모듈(106)과 처리 모듈(108)을 포함한다. 상기 UI 모듈(106)은 상기 데이터 소스(102)로부터 데이터를 처리하기 위해 상기 처리 모듈(108)에 의해 사용될 규칙들을 지정하기 위해 사용자 인터페이스(112)(예를 들어, 디스플레이 스크린 상의 그래픽 뷰(graphical view))를 통해 사용자(110)로부터 수신되는 입력을 관리한다.
상기 실행 환경(104)은 UNIX 운영 시스템 같은, 적절한 운영 시스템의 제어하의 하나 이상의 범용 컴퓨터들에 호스팅될 수 있다. 예를 들어, 상기 실행 환경(104)은 지역(예를 들어, SMP 컴퓨터들 같은 멀티프로세서 시스템들) 또는 지역적으로 분산된(예를 들어, 클러스터들 또는 MPPs처럼 결합된 멀티 프로세서들), 또는 원격, 또는 원격적으로 분산된(예를 들어, 지역 네트워크(LAN) 및/또는 광역 네트워크(WAN)을 통해 결합된 멀티 프로세서들) 또는 그 임의의 조합인 여러 중앙 처리 유닛들(CPUs)을 사용하는 컴퓨터 시스템들의 구성을 포함하는 다중-노드 병렬 컴퓨팅 환경을 포함할 수 있다.
상기 처리 모듈(108)은 상기 데이터 소스(102)로부터 데이터를 판독하고 상기 UI 모듈(106)에 의해 획득된 입력에 의해 정의된 규칙 사양에 기초하여 데이터에 적용되는 규칙들을 평가한다. 규칙 평가를 위한 준비에서, 상기 처리 모듈(108)은 이하에서 더 상세히 설명된 바와 같이, 규칙 사양의 여러 규칙 조건들 간 적어도 일부의 순서를 정의하는 평가 순서를 생성한다. 상기 평가 순서는 예를 들어, 상이한 규칙 조건들이 평가될 순서를 결정하는 상태 전이도로 표현될 수 있다. 상기 데이터 소스(102)를 제공하는 저장 디바이스들은,예를 들어, 상기 실행 환경(104)을 운영하는 컴퓨터에 연결된 저장 매체(예를 들어, 하드 드라이브(114)) 상에 저장되는 상기 실행 환경(104)에 지역적일 수 있고, 또는 예를 들어, 원격 연결을 통해, 상기 실행 환경(104)을 운영하는 컴퓨터와 통신하는 원격 시스템(예를 들어, 메인프레임(116)) 상에 호스팅되는 상기 실행 환경(104)에 원격적일 수 있다.
일반적으로, 상기 데이터 소스(102)로부터 액세스되는 데이터세트는 다수의 데이터 요소들(예를 들어, 소정의 레코드 구조에 따라 포맷된 레코드들, 또는 데이터베이스 테이블의 행들)을 포함한다. 상기 다수의 데이터 요소들의 각각의 요소는 아마도 널(null) 또는 빈(empty) 값들을 포함하는, 다수의 필드들(예를 들어, 레코드 구조 내에서 정의된 속성들, 또는 데이터베이스 테이블들의 열들)(예를 들어, “이름(first name)”, “성(last name)”, “이메일 주소(email address)”, 등)에 대한 값들을 포함할 수 있다. (예를 들어, 콘텐츠 또는 데이터 유형에 관련된) 상기 필드들의 값들의 다양한 특성들, 또는 특정 필드들의 값들의 존재 또는 부재는 유효 또는 무효로 간주될 수 있다. 예를 들어, 비어있는 “성” 필드가 무효로 간주될 수 있는 반면, 문자열 “스미스(Smith)”를 포함하는 “성” 필드는 유효로 간주될 수 있다.
일부 규칙들은 유효 값들 또는 데이터 값들의 다른 특성들에 대한 테스트에 적용될 수 있다. 데이터세트가 하나 이상의 무효 필드들을 가지는 상당한 수의 데이터 요소들을 포함한다면 상기 데이터 소스(102)로부터의 데이터세트를 사용하는 어플리케이션의 성능에 악영향을 미칠 수 있다. 상기 처리 모듈(108)은 상기 데이터세트가 검증 규칙들에 의해 정의되는 품질 제약들(quality constraints)을 만족하는지 확인하기 위해 상기 데이터세트에 데이터 검증 규칙들을 적용할 수 있다. 상기 데이터 처리 시스템(100)은 데이터세트의 품질이 품질 제약을 만족시키는 데 실패한다면 시스템 관리자에게 알린다. 일부 예에서, 상기 처리 모듈(108)은 가능하다면 무효 데이터를 복구하도록, 또는 클린징된 요소들(cleansed elements)의 데이터세트를 생성하기 위해 다양한 데이터 클린징 절차들을 수행하도록 구성될 수 있다. 또 다른 예에서, 상기 처리 모듈(108)은 무효 데이터로부터 보고서들이 생성될 수 있도록 무효 데이터를 포함하는 필드들의 목록을 생성하도록 구성될 수 있다. 일부 예에서, 상기 보고서들은 필드들의 목록의 필드들 중 하나 이상에 대한 무효 데이터가 포함된 레코드들의 카운트(count)를 포함한다. 다른 예에서, 무효 필드들의 집계가 필드들의 목록으로부터 계산된다.
일반적으로, 상이한 어플리케이션들은 데이터의 상이한 유형들을 처리한다. 따라서, 어플리케이션에 따라, 데이터세트의 요소들은 상이한 필드들을 포함할 수 있다. 상기 UI 모듈(106)은 규칙들의 세트가 지정될 수 있고 데이터세트를 처리하는데 사용될 수 있는, 사용자 인터페이스(112)를 제공한다. 상기 사용자 인터페이스(112)는 특정 데이터 요소 구조의 여러 필드들(일부 구현에서, 모든 사용가능한 필드들)을 포함하는 단일 뷰(single view)를 제공할 수 있다. 따라서, 주어진 어플리케이션에 대해, 상기 사용자(110)(예를 들어, 시스템 관리자)는 데이터에 대해 적절한 검증 규칙들을 지정할 수 있다.
일부 시스템에서, 데이터 품질의 특정 표준들에 따라 데이터를 검증하기 위해 규칙들이 데이터에 적용된다. 많은 현대의 어플리케이션들은 다양한 소스들로부터 컴파일될 수 있는, 데이터의 큰 세트들(즉, “데이터세트”)을 처리한다. 데이터세트에 데이터를 제공하는 다양한 소스들은 상이한 수준의 데이터 품질을 가질 수 있다. 어플리케이션이 제대로 기능하는지 확인하기 위해, 데이터세트의 데이터 품질의 적절한 수준이 유지되어야만 한다. 데이터 품질의 적절한 수준을 유지하기 위해, 데이터세트는 데이터 검증 시스템에 의해 처리될 수 있다. 이러한 시스템은 어플리케이션에 제공되기 전에 검증 규칙들을 데이터세트에 적용한다. 일부 예에서, 데이터 검증 시스템은 데이터 품질의 측정치를 계산하기 위해 그리고 데이터 품질의 측정치가 소정의 임계값 이하로 떨어진다면 어플리케이션의 관리자에게 알리기 위해 검증 규칙들의 결과를 사용한다. 다른 예에서, 데이터 검증 시스템은 검증 규칙들 중 하나 이상이 실패한 데이터를 다루기 위한 모듈들을 포함한다. 예를 들어, 데이터 검증 시스템은 검증 규칙들 중 하나 이상이 실패한 데이터를 버리거나 복구할 수 있다. 일반적으로, 데이터 검증 시스템에 의해 적용되는 검증 규칙들은 데이터 검증 시스템의 관리자에 의해 정의된다.
일부 시스템에서, 데이터의 콘텐츠에 기초하여 결정하기 위해 규칙들이 데이터에 적용된다. 예를 들어, 비행기 예약 시스템의 레코드는 승객의 이름, 승객이 올해 비행한 마일(miles), 티켓의 클래스, 그리고 그들이 앉게 되는 행을 표시할 수 있다. 이러한 승객이 탑승 그룹 1에 배정되어야 함을 표시하도록 규칙이 구성될 수 있다. 규칙은 일반적으로 인간이 이해하기 용이하다, 즉, “퍼스트 클래스 승객들은 그룹 1이다”, 그러나 데이터를 조작하는데 사용될 수 있기 전에 컴퓨터가 이해할 수 있는 무언가로 번역될 필요가 있을 수 있다.
검증 규칙들을 편집하기 위한 인터페이스는 다른 규칙들이 규칙을 적용하기 위한 명령들을 효과적으로 생성하기 위해 특징들(features)을 포함할 수 있고, 규칙 편집에 대한 효과적인 피드백을 가능하게 한다. 비전문적 사용자들을 위해 규칙들의 생성을 단순화하기 위해, 인터페이스는 이러한 사용자들이 규칙 세트로 지칭되는, 규칙들의 세트를 익숙한 형식으로 지정하도록 제공된다. 규칙 세트는 데이터세트에 적용되기 위한 규칙들의 세트이다(예를 들어, 사용자 인터페이스에서 사용자 입력에 기초하여 정의된 검증 규칙들). 규칙 세트 내 규칙은 입력에 따라 규칙의 출력에 대해 상이한 값들을 계산하는 하나 이상의 규칙 케이스들로 구성될 수 있다. 규칙은 또한 예를 들어, 다른 규칙들에 의해 계산되는 값들을 참조하여, 다른 규칙들을 참조한다.
도 2a를 참조하면, 사용자 인터페이스의 일 예는 사용자(110)가 데이터세트의 각각의 요소의 하나 이상의 필드에 포함된 데이터를 처리하기 위한 하나 이상의 규칙들을 지정하는 것을 용이하게 하도록 구성된 규칙 그리드(rule grid)(212)이다.
상기 UI 모듈(106)은 제1축(226)과 제2축(228)을 가지는 이차원 그리드(225)에 배열된 다수의 셀들(224)을 사용하여 (예를 들어, 컴퓨터 모니터 상에) 사용자 인터페이스(212)를 렌더링한다. 이 예에서, 사용자 인터페이스(212)의 각각의 셀은 사용자에 의해 (예를 들어, 텍스트 입력 필드, 또는 사용자 인터페이스 요소의 다른 유형을 사용하여) 입력되는, 텍스트와 같은, 입력을 수신하도록 구성된다. 셀들의 하나 이상의 서브세트들(상세한 설명의 나머지 부분에서 열들 또는 트리거 열들(232)로 지칭됨)은 이차원 그리드(225)의 제2축(228)을 따르는 방향으로 연장된다. 트리거 열들(232) 각각은 선택적으로 데이터세트의 데이터 요소의 필드로부터의 값과 같은 데이터 요소의 데이터로부터 도출된, 또는 다른 소스들로부터 도출된 입력 값과 관련될 수 있다. 예를 들어, 트리거 열과 관련된 입력 값은 또한 다른 규칙들에 의해 계산된 값들(예를 들어, 중간 값들 및/또는 출력 값들), 또는 또다른 데이터 소스 또는 사용자 입력으로부터 값들, 또는 이들 중 임의의 조합을 참조할 수 있다. 일부 예에서, 열들(232) 각각의 첫번째(즉, 가장 위) 셀은 필드(218) 또는 트리거 열(232)과 관련된 입력 값(242)의 다른 소스의 이름을 포함한다. 사용자 인터페이스(212)는 또한 사용자 인터페이스(212)에서 현재 선택된 요소에 대해 트리거 열(232)과 관련된 입력 값(242)을 디스플레이하도록 구성된다.
셀들(224)의 여러 서브세트들(230)(상세한 설명의 나머지 부분에서 행들 또는 규칙 케이스 행들(230)로 지칭됨)은 이차원 그리드(225)의 제1축(226)을 따르는 방향으로 연장된다. 규칙 케이스 행들(230) 중 하나 이상은 트리거 열들(232)와 관련된 사용가능한 입력 값들과 관련되는 조건들의 각각의 세트와 관련된다. 일부 예에서, 제1축(226)과 제2축(228)의 방향이 바뀔 수 있고, 입력 값들과 관련된 열들(232)이 행들(230)이 되도록 하고 규칙 조건(236)과 관련된 행들(230)은 열들(232)이 되도록 하는 것에 유의해야 한다. 대안적으로, 규칙 케이스에 대응하는 셀들(또는 다른 사용자 인터페이스 요소들)의 서브세트들의 다른 그루핑들(groupings)은 그리드 배열을 사용하지 않을 수 있고, 대신에 예를 들어, 사용자 탐색(user navigation)에 응하여 배열되거나 선택적으로 제시되는 상이한 스크린 영역들(예를 들어, 윈도우즈)을 사용할 수 있다.
하나 이상의 데이터 요소들에 규칙을 적용하기 위해, 처리 모듈(108)은 이하에서 더 상세하게 설명된 바와 같이, 그리드 내에서 행들과 열들의 배열에 기초하여 규칙에 대한 상태 전이도(또는 평가 순서의 다른 표현)을 생성할 수 있다. 처리 모듈(108)은 규칙 케이스가 만족될 때까지 규칙 케이스의 규칙 조건들을 연속적으로 평가하기 위해 상태 전이도를 사용한다. 규칙 케이스가 조건을 가지는 각각의 트리거 열(232)에 대해, 데이터 요소로부터 도출된 입력 값들(242)이 트리거링 조건들을 만족한다면 주어진 규칙 케이스 행(230)에서 지정된 규칙 케이스는 주어진 데이터 요소에 대해 만족된다(즉, 만족되는 입력 값들의 조건들 모두를 가지는 규칙 케이스가 “트리거됨(triggered)”으로 지칭될 수 있다). 규칙 케이스(230)가 트리거된다면, 출력은 하나 이상의 출력 열들(250)에 기초하여 생성된다. 일부 구현에서, 규칙 케이스 행들의 평가는 첫번째 규칙 케이스가 트리거된 후에 멈춘다. 각각의 출력 열(250)은 잠재적인 출력 변수에 대응할 수 있고, 적용가능한 행(230)의 대응하는 셀에서 출력 열 값은 만약에 있다면, 그 변수에 대해 출력을 결정한다. 셀은 상기 변수에 할당되는 값을 포함할 수 있거나 아래 논의된 바와 같이, 출력 값을 생성하도록 평가되어야만 하는 표현식을 포함할 수 있다. 도 2a에 하나만 도시된 것에도 불구하고, 하나 이상의 출력 열이 있을 수 있다.
규칙 케이스 행들의 그리드의 스프레드시트와의 유사성은 규칙을 시각화하기 위한 사용자의 능력을 도울 수 있는 반면, 그리드 내 배열에 기초한 셀들 간 암시적 종속성들은 스프레드시트의 셀들과 그들이 참조하는 다른 셀들 사이의 명시적 종속성과는 다르다. 예를 들어, 일부 구현에서, 규칙 케이스 행의 규칙 조건들도 평가되는지 여부는 그 규칙 행 위의 규칙 케이스가 이미 트리거되었는지 여부에 따라 달라진다.
다른 유형의 조건들에 대응하는 셀들을 가지는 몇 몇 다른 유형의 트리거 열들(232)이 있을 수 있다. 일부 트리거 열들(예를 들어, “비교 열들”)은 트리거 열과 관련된 입력 값에 비교되는 값 또는 값들의 범위를 정의하는 셀들을 포함할 수 있고, 비교의 결과는 참 또는 거짓을 평가한다. 일부 트리거 열들(예를 들어, “프리-폼 열들(free-form columns)”)은 입력 값과 관련되지 않고, 대신에 입력값에 대한 비교를 요구하지 않고 참 또는 거짓을 평가하는 조건을 정의하는 셀들을 포함한다. 그러므로, 각각의 비어있지 않은 셀은 (명시적으로 또는 암시적으로) 조건이 데이터 요소에 종속적이던 아니던, 참 또는 거짓으로 평가하는 조건을 정의한다. 프리-폼 트리거 열들은 예를 들어, 다음 중 하나를 포함하는 셀들을 포함할 수 있다:
● 표현식. 표현식의 평가가 0이 아닌, 널(NULL)이 아닌 값으로 평가된다면 조건이 참으로 간주될 것이다.
● 키워드 “any” 또는 빈 문자열. 조건이 항상 참이다. 트리거 열의 각각의 빈 셀은 키워드 “any”를 명시적으로 포함하는 것과 동등하다.
● 키워드 “else”. 왼쪽에 있는 모든 셀들이 동일한 행들에서, “else”를 포함하는 셀 위의 그리고 임의의 빈 셀들 아래의 셀들 중 어느 것도 참이 아니면 조건은 참이다.
● 키워드 “same”. 위의 셀이 참이면 조건이 참이다.
비교 열들은 두 유형의 셀들을 포함할 수 있다. 한 유형의 셀은 표현식 셀이다. 그 셀들은 상기 설명된 바와 같이, 정확히 프리-폼 열의 셀들처럼 행동한다. 그러나, 키워드 “this”는 열 입력 값을 참조하기 위해 표현식에서 사용될 수 있다. 나머지 유형의 셀은 열과 관련된 입력 값에 비교되기 위한 값 또는 값들의 범위를 정의하는 비교 셀이다. 비교 셀들에 대한 예시 문법은 다음과 같다:
Figure pct00001
여기서 “*”는 용어가 0회 이상 반복되는 것을 의미한다. 어떤 연산자도 셀에서 정의되지 않는다면, “equals”같은 기본 연산자가 암시될 수 있다.
임의의 적절한 프로그래밍 언어 또는 구문이 사용될 수 있다. C, Java, Prolog가 예로 포함될 수 있다. 일부 구현에서, 프로그래밍 언어가 또한 데이터 형식들을 정의하고 다양한 데이터 처리 연산들을 사용하여 데이터를 조작하기 위한 구문을 포함하는 데이터 조작 언어(DML)일 수 있다.
주어진 트리거 열에 대한 비교 셀을 평가하기 위해, 열(232)와 관련된 값(242)이 연산자, 함수, 또는 멤버십 표현식에 따라 비교 셀 값 또는 범위에 비교된다. 도 2a의 예에서, 처음 두 트리거 열들(232a, 232b)는 연산자 “>=”를 가지는 비교 셀들을 포함하고, 그러므로 그 열에 대한 값이 대응하는 수와 같거나 더 크다면 조건이 충족된다. 열(232c) '좌석 클래스(Seat Class)'에서와 같이 연산자가 없다면, “equals”가 가정된다. 상수는 어떤 프로그래밍 언어나 구문이 기본 시스템에서 사용되던지 임의의 법정 상수(legal constant)가 될 수 있다. 표현식은 열 입력 값에 대해서 비교될 호환되는 데이터 유형을 반환하는 사용되는 언어의 임의의 법정 표현식이다. 일부 예에서, 비교 셀들 내부의 표현식들이 모호함을 피하기 위해 괄호에 넣어진다. simple_function에 대해, 그 함수가 열 입력 값에 적용되고, 그래서 “is_null” 키워드가 표현식 “is_null(this)”와 같다.
도 2a의 예에서, 첫번째 행(230a)은 단지 하나의 열(즉, '전체 상용 고객 마일(Total Frequent Flyer Miles')의 조건을 가지고, 그것은 상용 고객 마일의 총 숫자가 1,000,000이상이라면, 그 규칙 케이스가 임의의 다른 열들이 가질 수 있는 값이 무엇인지에 무관하게 적용된다. 그 경우에, 사용자에 대한 “탑승 그룹(Boarding Group)” 출력 값이 그룹 1로 설정된다. 마찬가지로, 두번째 규칙(232b)은 퍼스트 클래스의 임의의 고객이 그룹 1에 있는 것을 표시한다. 일부 예에서, 규칙들은 순서대로 평가되고, 그래서 1,000,000 마일 이상과 퍼스트 클래스 티켓을 가지는 여행자가 그룹 1에 있을 것이나, 단지 첫번째 규칙 케이스만 트리거될 것이다. 규칙 케이스가 트리거되면, 그 규칙의 나머지 규칙 케이스가 평가될 필요가 없다.
세번째 규칙 케이스(230c)는 두 입력 값들에 기초한다(즉, '전체 상용 고객 마일'과 '현재 상용 고객 마일(Current Frequent Flyer Miles)' 열들(232a, 232b)) - 전체 상용 고객 마일과 올해 마일 모두에 대해 정의된 조건들이 충족된다면, 고객은 그룹 2에 있다. 네번째 규칙 케이스(230d)에서, 임의의 비즈니스 클래스 고객들이 또한 그룹 2에 있다. 나머지 규칙 케이스(230e-230g)는 나머지 규칙 케이스들에 관련된 조건들, 즉, “else”와 “same”을 포함한다. 상기 설명된 바와 같이, 키워드 “else”는 트리거 열의 조건들 중 어떤 것도 그 위에 그리고 임의의 빈 셀들 아래에 있었고 왼쪽으로 동일한 조건을 가졌던 행들에서 충족되지 않았다는 것을 표시하고, 그것은 이 예에서 좌석 클래스가 “비즈니스”가 아닌 것을 의미한다. 키워드 “same”은 그 트리거 열에 대해 그 위의 규칙 케이스가 적용된 경우 그 규칙 케이스가 적용되는 것을 표시한다. 그러므로, 나머지 규칙 케이스들(230e-230g)은 임의의 더 높은 규칙 케이스에 일치하지 않았던, 그리고 적절한 “좌석 행(seat row)” 값을 가지는, 데이터 요소들에 적용된다.
일부 예에서, 도 2a의 예의 규칙 케이스들(230a-g)은 또한 각각 그들의 그리드에 있는, 개별 단순 규칙들(도시되지 않음)로 표현될 수 있다. 사용자는 도 2a에서 도시된 전체 테이블을 생성하기 보다는, 별개로 이러한 개별 규칙들을 생성할 수 있다.
일부 예에서, 도 2a에 도시된 편집기 인터페이스는 표현식들을 포함하는 셀들을 그래픽으로 식별할 수 있고, 그 자체의 참 또는 거짓으로 평가될 표현식과 열 입력 값에 비교되는 값을 반환하는 표현식 사이를 그래픽으로 구별할 수 있다. 사용자(110)가 타이핑할 때, 그것들은 예를 들어, 시작에서 별표를 타이핑하여 특정 셀이 표현식 셀이 되기 위한 것임을 표시할 수 있다.
일부 예에서, 값들과 표현식들은 DML 표현식들이다. 필드들과 값들에 대한 논리적 이름들(logical names)과 특별 키워드들이 DML 표현식들로부터 전-처리된 문자열들로 인코딩된다. 표현식들이 변수들에 대해 논리적 이름들을 사용할 수 있으나, 또한 실제 물리적 이름들(physical names)을 참조할 수도 있음에 유의한다.
출력 변수들에 대응하는 열들에 대해, 셀들은 예를 들어, 다음 중 하나를 포함할 수 있다:
● 값. 출력 변수에 할당될 값
● 표현식. 표현식의 값이 출력 변수에 할당된다. 표현식이 널(NULL)로 평가하면 출력 필드가 널 입력이 가능하지 않은 경우가 아니라면, 필드는 NULL 값을 획득한다. 이 경우에, 에러가 생성된다.
● 키워드 “null”. 출력 필드가 널 입력이 가능하면, 필드는 널(NULL)로 할당될 것이다. 그렇지 않다면, 에러가 생성된다.
● 빈 문자열. 출력 필드가 기본 값을 가지면, 기본 값이 할당된다. 그렇지 않다면, 셀은 키워드 “null”을 포함한 것처럼 취급된다.
● 키워드 “same”. 출력 필드는 위 셀에서 계산된 동일한 값이 할당된다.
가능하다면, 에러들은 가능한 빨리 보고된다(예를 들어, 널 입력이 불가능한 필드에 대한 출력에 “null”을 넣음). 그러나, 일부 에러들은 테스트-타임 또는 런-타임까지 보고되지 않는다.
표현식들에 추가하여, 사용자들은 규칙의 임의의 셀에 코멘트를 덧붙이도록 허용될 수 있다. 코멘트는 마이크로소프트 엑셀 같은 스프레드시트 프로그램의 셀에 덧붙여진 코멘트처럼 디스플레이될 수 있다.
일부 예에서, 규칙 편집기 인터페이스는 사용자가 인터페이스의 기술적 요구사항들이 필요로 하는 것보다 더 정확하게 입력할 수 있는 것을 제한하도록 구성될 수 있다. 예를 들어, 인터페이스는 더 단순하고 더 제한된 사용자 인터페이스를 제공하기 위해 입력 값들의 특정 유형들 또는 표현식들의 특정 유형들을 허용하도록만 구성될 수 있다. 인터페이스는 또한 사용자 역할 또는 사용자 ID에 기초하여, 규칙의 어떤 셀들이 변경될 수 있는지를 제한하도록 구성될 수 있다. 이러한 제약들은 관리자에 의해 설정된 규칙에 적용될 수 있다.
규칙들은 처리 모듈(108)이 규칙을 평가할 때 다양한 방법들로 규칙 그리드에 기초하여 정의될 수 있다. 일부 예에서, AND되는 행들과 OR되는 열들과 함께, 규칙들이 상기 설명된 것과 반대의 방식으로 평가될 수 있다. 즉, 규칙은 매 행이 트리거(행들을 AND함)하지만, 트리거하기 위해 각각의 행들에 대해 단일 셀만이 참이 될 필요가 있을 때(열들을 OR함)만 출력을 생성한다.
도 2b를 참조하면, 도 2a의 사용자 인터페이스(212)는 사용자(110)에게 피드백을 제공하기 위해 보강될 수 있다. 특히, 이차원 그리드(225)의 셀들 각각이 셀에 대한 규칙 조건(236)이 사용자 인터페이스(112)에 의해 현재 선택된 요소(244)에 대해 통과되었거나 실패되었는지를 표시하도록 구성된다. 일부 예에서, 통과/실패 표시는 관련된 규칙 조건(236)을 실패했던 셀들을 음영처리하는 것으로 사용자(110)에게 제공된다. 예를 들어, 첫번째 규칙 케이스(230a)와 첫번째 트리거 열(232a)와 관련된 셀은 첫번째 트리거 열(232a)(즉, '전체 상용 고객 마일' 트리거 열)과 관련된 필드(218)의 값(242)이 1,000,000이상이라면 통과 결과를 반환하는 규칙 조건을 포함한다. 검사로부터, 첫번째 트리거 열(232a)과 관련된 필드(218)의 실제 값(242)이 1,000,000보다 적은 750,000인 것을 볼 수 있다. 그러므로, 규칙 조건(236)이 실패하고 첫번째 규칙 케이스(230a)와 첫번째 트리거 열(232a)과 관련된 셀이 실패된 결과를 표시하도록 음영처리된다. 다양한 다른 셀들이 도면에서 음영처리되어 그것들이 실패된 규칙 조건들을 포함하는 것을 표시한다. 출력 열(250)의 출력 셀들은 그 규칙 케이스 행이 적어도 하나의 실패된 규칙 조건을 가진다면 음영처리된다. 그러므로, 첫번째 음영처리 되지 않은 출력 셀이 트리거된 규칙 케이스에 대응할 것이다. 사용자(110)는 지정된 규칙들이 예상대로 기능하고 있는지를 확인하기 위해 피드백을 활용할 수 있다.
일부 예에서, 사용자(110)는 내비게이션 콘트롤(navigation control)(246)을 사용하여 데이터세트의 요소들을 탐색할 수 있다. 일부 예에서, 내비게이션 콘트롤(246)은 사용자(110)가 그들이 보길 원하는 데이터세트 요소 번호를 입력할 수 있게 하는, 숫자 필드와 사용자(110)가 한번에 하나씩 데이터세트의 요소들을 거쳐갈 수 있게 하는, 화살표들을 포함할 수 있다. 사용자(110)는 내비게이션 콘트롤(246)을 사용하여 상이한 요소를 탐색할 때마다, 처리 모듈(108)은 새롭게 선택된 요소의 값들에 지정된 규칙 케이스들을 실행한다.
일부 예에서, 사용자 인터페이스는 처리 모듈(108)이 데이터세트의 요소들 모두에 지정된 규칙 케이스들을 적용하도록 허용하는, 테스트 콘트롤(test control)(248)을 포함한다. 데이터세트에 규칙 케이스들을 적용하는 것이 종료될 때, 처리 모듈(108)은 데이터세트에 규칙 케이스들을 적용한 결과들을 UI 모듈(106)에 제공하고, 그것은 사용자(110)에 대한 사용자 인터페이스(212)에 결과들을 차례로 디스플레이한다. 예를 들어, 규칙 케이스가 트리거했던 요소들의 숫자가 사용자 인터페이스(212)에 디스플레이될 수 있다. 결과들은 예를 들어, 동일한 규칙 케이스들의 다른 버전들 또는 다른 시스템에 의해 적용되는 규칙들 또는 규칙 케이스들의 다른 세트로부터 생성된 미리 저장된 기준 결과들에 비교될 수 있다. 필터링된 데이터 요소들의 세트는 또한 데이터 세트의 데이터 요소들 모두에 규칙 케이스들을 적용한 결과들과 함께 제시될 수 있다. 예를 들어, 필터는 기준 결과들에 비교되는 결과들에서 일부 차이가 있는 요소들만 디스플레이할 수 있거나, 필터는 특정 표현식이 참(또는 거짓)이거나 특정 규칙 또는 규칙 케이스가 트리거되었던(또는 트리거되지 않았던) 요소들만 디스플레이할 수 있다. 일부 예에서, 결과들의 요약이 별개 사용자 인터페이스(도시되지 않음)에서 사용자에게 디스플레이될 수 있다.
일부 예에서, 규칙이 사용자 인터페이스(212) 내에서 편집되고 있는 동안, 상기 설명된 피드백이 제공될 수 있다. 규칙 케이스 행 내에서 편집된 규칙 조건을 트리거 열(232)의 대응하는 값(242)에 적용하기 위해 UI 모듈(106)이 사용자 인터페이스(212)의 셀들로 입력된 정보를 처리 모듈(108)로 제공한다. 처리 모듈(108)은 선택적으로 어떤 다른 규칙 조건들이 그 트리거 열들의 각각의 값들에 적용되어야만 하는지를 결정하기 위해 본원에서 설명된 기술들을 사용한다.
일부 예에서, 규칙 케이스가 추가되거나, 제거되거나, 그 셀들 중 임의의 것이 사용자 인터페이스(212)를 통해 사용자(110)에 의해 수정될 때, 이하에서 더 상세히 설명된 바와 같이, UI 모듈(106)은 변경된 규칙 조건들, 그리고 평가 순서에서 그 규칙 조건들 뒤에 오는 임의의 다른 규칙 조건들을 재-적용하는, 처리 모듈(108)로 변경사항들을 전달한다. 규칙 케이스가 추가되거나 그 셀들 중 임의의 것이 수정된다면, 처리 모듈(108)은 데이터세트의 적어도 하나의 요소에 새롭게 추가되거나 수정된 규칙 케이스를 적용하도록 구성된다. 일부 예에서, 추가되거나 수정된 규칙 케이스는 사용자 인터페이스(212)에서 현재 디스플레이된 데이터세트의 요소에만 적용된다. 추가되거나 수정된 규칙 케이스와 임의의 다른 선택된 규칙 케이스들을 적용한 결과는 그런 다음 그 결과들을 디스플레이하도록 사용자 인터페이스(212)를 차례로 업데이트하는, UI 모듈(106)로 전달된다. 예를 들어, 새롭게 추가되거나 수정된 규칙 케이스가 데이터세트의 요소에 대해 실패된 결과를 생성했던 조건(236)을 포함한다면, 상기 조건(236)을 포함하는 셀은 실패된 결과를 표시하도록 음영처리된다. 반대로, 새롭게 추가되거나 수정된 규칙 케이스가 데이터세트의 요소에 대해 통과 결과를 생성했던 조건(236)을 포함한다면, 상기 조건(236)을 포함하는 셀은 음영처리되지 않아서, 통과 결과를 표시한다.
규칙 조건들 간의 잠재적 종속성들에 기인하여, 하나의 규칙 조건을 변경하는 것은 그것들이 그 규칙 조건 이후에 평가되기 때문에 변경된 규칙 조건의 결과에 의존하는 다른 규칙 조건들의 결과들에 영향을 미칠 수 있다. 그러므로, 일부 예에서, 처리 모듈(108)은 정해진 평가 순서에 새롭게 추가되거나, 제거되거나, 수정된 규칙 조건 뒤에 정렬된 모든 규칙 조건들을 재-적용하도록 구성된다. 선택된 규칙 조건들을 재-적용한 결과들은 또한 사용자 인터페이스(212)에서 사용자에게 디스플레이된다.
도 2c를 참조하면, 사용자(110)는 도 2b의 사용자 인터페이스(212)를 통해 첫번째 규칙 케이스(230a)와 첫번째 열(232a)과 관련된 셀을 수정했다. 특히, 상기 셀은 상기 셀과 관련된 규칙 조건이 '전체 상용 고객 마일'의 값이 1,000,000의 이전 값보다는 500,000이상이라면 만족되는 것으로 표시하도록 변경된다.
첫번째 규칙 케이스(230a)의 수정은 처리 모듈(108)이 현재 선택된 요소에 대해 상기 규칙 케이스를 재-적용하도록 한다. 현재 선택된 요소에 대한 '전체 상용 고객 마일' 필드의 값이 750,000이기 때문에, 처리 모듈(108)에 의해 첫번째 규칙 케이스(230a)의 수정된 셀에 대해 통과 결과가 반환되고 사용자 인터페이스(212)에 의해 음영처리되지 않은 셀로 디스플레이된다. 첫번째 규칙 케이스가 통과되었기 때문에 '탑승 그룹' 출력 값이 1로 변경된다. 이 예에서, 다른 규칙 케이스들 중 어떤 것도 재-적용될 필요가 있는 조건들을 가지지 않는다.
다음 예에서, 처리 모듈(108)은 사용자가 셀을 편집한 후에 규칙 케이스들의 효과적인 재-평가를 위해 어떤 규칙 케이스들이 재-적용되어야 하는지 선택적으로 결정할 것이다. 처리 모듈(108)은 각각의 규칙 조건들을 트리거 열과 관련된 값(242), 또는 다른 셀들과 관련된 값들 같은, 조건이 의존하는 임의의 입력 값들의 함수로서 적용하기 위해 실행가능한 명령들을 생성한다(예를 들어, 컴파일함). 실행가능한 명령들, 입력 값들, 그리고 상기 실행가능한 명령들을 상기 입력 값들에 적용한 결과들이, 규칙 조건들에 대한 평가의 순서에 기초하여 상이한 규칙 조건들 사이의 잠재적 종속성들을 지정하는 정보와 함께, 추후 사용을 위해 저장될 수 있다.
도 3을 참조하면, 스크린 캡처(300)는 도 2a-2c의 사용자 인터페이스(212)의 일 구현을 도시한다. 스크린 캡처(300)에서 구현된 사용자 인터페이스는 상기 데이터세트(또는 다른 테스트 데이터세트)에 대해 상기 규칙들의 어플리케이션으로부터의 피드백을 수신하는 동안 사용자(110)가 데이터세트에 대한 규칙들을 지정할 수 있도록 구성된다.
사용자 인터페이스(212)에 대해 상기 설명된 바와 같이, 스크린 캡처(300)에서 묘사된 사용자 인터페이스는 셀들의 이차원 그리드를 포함한다. 상기 그리드는 다수의 행들을 포함하고, 각각의 행들은 규칙 케이스들과 관련된다. 상기 그리드는 또한 다수의 트리거 열들을 포함한다. 각각의 입력 값의 이름은 열들 각각의 맨 위에 포함된다(예를 들어, “Avg Monthly Balance”, “Avg Monthly Charges”, 등). 이 예는 각각의 셀이 공통 입력 값에 대한 규칙 조건을 제공하는데 한정되지 않고, 오히려 임의의 계산된 값(규칙 케이스 행 8에 대한 “Airplane Ticket Buys” 또는 규칙 케이스 행 9에 대한 “Restaurant Meal Buys”같은)에 대해 규칙 조건을 제공하는 것에 대한 것인, 맞춤형 트리거 열(custom trigger column)(320)을 포함한다.
이 예에서, 사용자(110)는 다수의 규칙 케이스 조건들을 지정했고, 각각은 각각의 규칙 케이스 및 트리거 컬럼과 관련된다. 그러기 위해, 사용자(110)는 셀을 선택하고 선택된 셀로 표현식을 입력한다. 예를 들어, 도면에서, 사용자(110)는 8번째 규칙 케이스와 관련된 행과 “Avg Monthly Charges” 필드과 관련된 열의 교차에서의 셀(302)을 선택했고 표현식 “>=5000”을 입력했다. 선택된 셀로 입력된 표현식은 데이터 요소에 대한 “Avg Monthly Charges” 필드의 값이 5000이상이라면 상기 규칙 케이스가 주어진 데이터 요소에 대해서만 통과하는 것을 표시한다. 내비게이션 콘트롤(304)에서 현재 선택된 데이터 요소에 대한 “Avg Monthly Charges” 필드의 현재 값이 트리거 열 상부(trigger column heading)(306)에 디스플레이된다. 선택된 데이터 요소의 번호가 변경되면(예를 들어, “1”로부터 “2”로), 처리 모듈(108)은 반드시 셀들 모두로부터의 규칙 조건들 모두를 재-컴파일하고 재-평가할 필요가 없다. 예를 들어, 다음 데이터 요소가 선택된 때 편집되지 않았던 셀들에 대해, 상기 셀들의 규칙 조건들에 대한 저장된 컴파일된 명령들은 다음 데이터 요소에 대해 새로운 입력에 대해 검색되고 재-실행될 수 있다. 또한, 다음 데이터 요소에 대해 특정 트리거 열에 대한 입력 값이 이전 데이터 요소에 대해 특정 트리거 컬럼에 대한 입력 값과 동일하다면(예를 들어, “Years as Customer”는 동일한 값 “21”을 가진다), 그러한 셀들의 규칙 조건들에 대해 저장된 결과들이 컴파일된 명령들을 재-실행할 필요조차 없이 검색되거나 재-사용될 수 있다.
피드백은, 사용자가 셀들을 편집할 때, 특정 셀들의 조건들이 만족되는지 여부에 관해 사용자 인터페이스 내에서 제공될 수 있다. 다른 색들이 다른 결과들을 표시할 수 있다. 한 색이 셀의 조건이 만족되지 않음을 표시하는데 사용될 수 있고, 규칙이 선택된 데이터 요소에 실행될 때 규칙 케이스가 트리거될 경우에, 또다른 색이 셀들의 조건들 모두가 만족되는 전체 규칙 케이스 행에 대해 사용될 수 있다(도 3의 8번째 규칙 케이스에 대해서 그런 것처럼).
도 4a-4c를 참조하면, 표현식이 편집되고 있는 규칙의 선택된 셀로 입력된 후, (예를 들어, 그 셀을 선택하지 않거나 또 다른 셀을 탐색하여) 편집을 종료하는 사용자(100)에 응하여 처리 모듈(108)은 예를 들어, 계통도(400)(도 4a)와 상태 전이도(430)(도 4d)에 의해 표현되는 바와 같이, 편집된 규칙과 동일한 규칙 세트의 다른 규칙들 또는 편집된 규칙의 다른 셀들과 관련된 다른 규칙 조건들 사이의 잠재적인 종속성의 지정에 기초하여 규칙 조건들을 선택적으로 재-적용한다. 계통도 400A의 노드들 402A-402J는 값들(필드 값들 또는 다른 입력 값들, 출력 변수들, 및/또는 계산에서 사용되는 값들을 저장하는 다른 변수들)을 나타내고, 노드들 404A-404D는 각각 규칙 케이스들의 임의의 수를 포함하는 규칙들을 나타낸다. 노드들 404A-404D에 의해 표현되는 규칙들은 함께 예를 들어, 전체 규칙 세트에 대응할 수 있다. 다이어그램(400)의 노드 404B는 편집된 규칙 조건을 가지는 규칙을 나타낸다. 계통도(400)와 상태 전이도(430)는 규칙들과 규칙 조건들이 각각 평가되는 순서를 나타낸다. 그러므로, 평가 순서의 이러한 유형의 사양에 의해 지정되는 잠재적 종속성들은 이전 평가된 항목들의 결과에 종속적인 이후 평가된 항목들에 대한 잠재성에 기인한다. 이러한 종속성들은 그러므로 이후 평가된 (“다운스트림”) 항목이 이전 평가된 (“업스트림”)항목에 의해 영향을 받지 않는 것이 가능하다는 점에서 잠재적인 종속성들이다.
도 4b는 이러한 규칙(410)의 단순화된 예를 도시한다. 규칙(410)은 두개의 트리거 열들의 입력값 A와 B에 대한 규칙 조건들에 대한 세 개의 규칙 케이스 행들, 그리고 단일 출력 열의 출력 변수 V를 포함한다. 상이한 규칙 조건들이 평가될 수 있는 순서를 나타내는 상태 전이도(420)는 도 4c에 도시된다. 각각의 상태는 규칙(410)의 특정 셀에 대한 특정 규칙 조건의 평가에 대응한다. 전이들은 참(T) 또는 거짓(F) 중 하나가 되는 평가 결과에 대응한다. 이러한 상태 전이도(420)는 예를 들어, 다음 행에 대한 상태들의 체인의 첫번째 상태로 가는 체인의 각각의 상태로부터의 F 링크들과 함께, 각각의 행의 셀들에 대해 T 링크들에 의해 연결되는 상태들의 체인을 제공하여 생성될 수 있다. 상태 전이도를 생성하는 이러한 기술은 트리거 열들의 순서에 의존하는 평가 순서에 대응한다. 상태 전이도에 의해 표현되는 규칙 평가의 효율은 트리거 열들의 순서를 변경하여, 또는 특정 중복 상태들을 제거하여서도 개선할 수 있다. 예를 들어, 도 4d는 동일한 다이어그램(430)에서 이전에 이미 평가되었기 때문에 평가될 필요가 없는 규칙 조건들을 나타내는 상태를 제거하는 상태 전이도(430)을 도시한다. 제거된 상태로의 그리고 그 상태로부터의 링크들은 동일한 기능을 제공하기 위해 수정되는 다른 상태들의 링크들과 함께, 또한 제거될 수 있다. 효율을 향상시킬 수 있는 수정으로도, 상태 전이도는 평가의 최적의 순서를 나타내지 않을 수도 있다. 그러나, 상태 전이도가 차선이라도, 편집동안 규칙 조건들을 선택적으로 재 평가하는 본원에서 설명된 기술들은 여전히 규칙 편집기 인터페이스를 효율적으로 업데이트할 수 있다.
단일 셀의 규칙 조건들만 변경되었을 때, 처리 모듈(108)은 규칙 조건들을 적용하기 위한 실행가능한 명령들을 생성하기 위해 편집된 셀의 규칙 조건을 재 컴파일해야만 할 뿐이다. 처리 모듈(108)은 재 컴파일된 명령들을 실행하고 또한 편집된 셀과 관련된 규칙 조건보다 평가 순서상 더 뒤에 발생하는 규칙 조건들을 적용하기 위해 이전에 저장된 컴파일된 명령들을 실행한다. 그래서 편집된 규칙 조건의 “업스트림”규칙 조건들을 배제한, 편집된 규칙 조건의 “다운스트림” 선택된 규칙 조건들이 재 평가될 수 있다. 이 예에서, 입력 B의 값이 2와 동일한지 여부를 결정하는 규칙 조건(상태 전이도(420)의 “B==2”로 표시된 상태에 대응)이 방금 편집되었다면, 처리 모듈(108)은 그 상태에 대한 명령들을 재 컴파일할 것이고 그런 다음 각각의 규칙 조건의 결과들에 의존하여, 필요에 따라 다운스트림 규칙 조건들을 실행하며, 그 상태로부터 실행을 지속할 것이다. 처리 모듈(108)은 또한 평가 순서, 즉, 계통도(400)에 따라 편집된 규칙 404B에 대한 그들의 관계에 기초하여 다른 규칙들의 규칙 조건들과 값들을 선택적으로 재 평가할 것이다. 그래서, 이 예에서, 편집된 규칙 404B의 모든 다운스트림인 값들 402H와 402J, 그리고 규칙 404D의 규칙 조건들은 재 평가될 것이고, 나머지 값들과 규칙들은 편집된 규칙 404B의 다운스트림(즉, 평가 순서상 이후)이 아니기 때문에 재 평가될 필요가 없다.
피드백은 그런다음 계통도(400)와 상태 전이도(430)에 의해 표현된 바와 같이 평가 순서에 따라 이러한 다운스트림 규칙 조건들을 입력 데이터에 선택적으로 적용하는 것에 응하여 제공될 수 있다. 실행 결과들은 사용자 인터페이스에서의 디스플레이를 위해 다시 UI 모듈(106)로 전달된다. 사용자로의 피드백은 실패된 규칙 조건을 포함하는 임의의 셀들을 음영처리하고 성공한 규칙 조건을 포함하는 셀들을 음영처리하지 아니하여 사용자(110)에게 제공된다. 스크린 캡처(300)에 의해 묘사된 사용자 인터페이스의 구현은 다수의 음영처리된 셀들(규칙 조건들의 재 적용 후에 음영처리되었음)을 포함하고, 그것은 그 음영처리된 셀에서 지정된 규칙 조건이 현재 선택된 데이터 요소에 대해 실패하였음을 표시한다. 사용자 인터페이스는 또한 사용자 인터페이스 윈도우에서 제시되도록, 편집되는 규칙과 입력 및 출력 값들 그리고 다른 규칙들 사이의 관계들을 도시하는, 계통도의 생성을 개시하기 위해 콘트롤(308)을 포함한다.
일부 구현에서, 처리 모듈(108)은 상이한 셀들에 대해 실행가능한 명령들을 관리하기 위해 필요로 되는 자원들과 재-컴파일을 수행하기 위해 필요로 되는 자원들 사이의 트레이드 오프에 기초하여 엄밀히 필요한 것보다 더 자주 선택적으로 규칙 조건들을 재 컴파일한다. 일부 상황에서(예를 들어, 상대적으로 적은 셀들을 가지는 규칙들의 단순 세트에 대해), 펀집되지 않았던 셀들에 대해서조차 규칙 조건들이 재 컴파일될 수 있다. 더 나아가, 처리 모듈(108)은 편집 셀들이 항상 모든 셀들을 재 컴파일하게 될 이러한 상황들에 대해 컴파일된 명령들의 상이한 세트들(초기 컴파일 후에 또는 재 컴파일 후에 생성됨) 간 종속성들을 추적하는 종속성 정보를 저장할 필요가 없을 수 있다.
일반적으로, 사용자 인터페이스에서 지정된 규칙들의 세트가 데이터 요소에 적용될 때, 첫번째 규칙 케이스(즉, 규칙 케이스들의 첫번째 행에서 지정된 규칙 케이스)가 상기 데이터 요소의 필드들의 값들에 대해 평가된다. 첫번째 규칙 케이스의 조건들 모두가 만족되면, 규칙 세트의 출력은 첫번째 규칙 케이스와 관련된 출력들의 세트(310)이다. 첫번째 규칙 케이스의 조건들 중 임의의 것이 만족되지 않는다면, 두번째 규칙 케이스(즉, 규칙 케이스들의 두번째 행에서 지정된 규칙 케이스)가 상기 데이터 요소의 필드들의 값들에 대해서 평가된다. 두번째 규칙 케이스의 조건들 모두가 만족된다면, 규칙 세트의 출력은 두번째 규칙 케이스와 관련된 출력들의 세트(312)이다. 이러한 평가 프로세스는 출력들의 세트가 결정될 때까지 계속된다. 시각적으로, 출력 케이스와 관련된 규칙 케이스는 어떤 실패된 규칙 조건들도 포함하지 않고, 그러므로 어떤 음영처리된 셀들도 포함하지 않는다.
전술한 바와 같이, 사용자(110)는 내비게이션 콘트롤(304)을 사용하여 데이터세트의 요소들을 탐색할 수 있다. 사용자(110)가 내비게이션 콘트롤(304)을 사용하여 상이한 요소를 탐색할 때마다, UI 모듈(106)은 새롭게 선택된 요소의 값들에 지정된 규칙 케이스들을 실행한다.
더 나아가, 사용자 인터페이스는 UI 모듈(106)이 데이터세트의 요소들 모두에 지정된 규칙 케이스들을 적용하게 허용하는, 테스트 콘트롤(test control)(314)을 포함한다. 데이터세트에 규칙 케이스들의 적용 종료시, 처리 모듈(108)은 사용자(110)에게 사용자 인터페이스에서 결과들을 순서대로 디스플레이하는, UI 모듈(108)로 데이터세트에 대해 규칙 케이스들을 적용한 결과들을 제공한다. 일부 예에서, 상기 결과들의 요약이 별개 사용자 인터페이스(도시되지 않음)에서 사용자에게 디스플레이된다.
다양한 대안적 구현들이 사용될 수 있다. 예를 들어, 상기 설명이 음영처리된 셀들로 사용자들에게 피드백을 제공하는 것을 기술하는 반면, 피드백 메커니즘의 다른 유형들(예를 들어, 사운드, 팝-업 윈도우, 특별 심볼들, 등)이 활용될 수 있다. 상기 설명은 전체 데이터세트에서 작업하는 동안 규칙들을 지정하는 것을 기술한다. 그러나, 일부 예에서, 축소된 더 관리가능한 크기를 가지고 전체 데이터세트를 대표하는 테스트 데이터세트가 사용될 수 있다.
상기 설명된 기술들은 예를 들어, 적절한 소프트웨어 명령들을 실행하는 프로그래머블 컴퓨팅 시스템을 사용하여 구현될 수 있거나 필드 프로그래머블 게이트 어레이(FPGA) 같은 적절한 하드웨어 또는 일부 하이브리드 형태로 구현될 수 있다. 예를 들어, 프로그램된 접근법에서 소프트웨어는 각각이 적어도 하나의 프로세서, 적어도 하나의 데이터 저장 시스템(휘발성 및/또는 비 휘발성 메모리 및/또는 저장 요소들), 적어도 하나의 사용자 인터페이스(적어도 하나의 입력 디바이스 또는 포트를 사용하여 입력을 수신하기 위한, 그리고 적어도 하나의 출력 디바이스 또는 포트를 사용하여 출력을 제공하기 위한)를 포함하는 하나 이상의 프로그램된 또는 프로그래머블 컴퓨팅 시스템(분산, 클라이언트/서버, 또는 그리드 같은 다양한 구조가 될 수 있음) 상에서 실행하는 하나 이상의 컴퓨터 프로그램들의 절차들을 포함할 수 있다. 소프트웨어는 예를 들어, 데이터플로우 그래프의 디자인, 구성, 및 실행과 관련된 서비스들을 제공하는 더 큰 프로그램의 하나 이상의 모듈들을 포함할 수 있다. 상기 프로그램의 모듈들(예를 들어, 데이터플로우 그래프의 요소들)은 데이터 저장소에 저장된 데이터 모델을 따르는 데이터 구조들 또는 다른 체계화된 데이터로 구현될 수 있다.
상기 소프트웨어는 (예를 들어 범용 또는 특별 목적 컴퓨팅 시스템 또는 디바이스에 의해 판독 가능한) CD-ROM 또는 다른 컴퓨터 판독 가능 매체같은 유형의, 비 일시적인 매체상에 제공될 수 있거나 또는 그것이 실행되는 컴퓨팅 시스템의 유형의, 비 일시적 매체에 네트워크 통신 매체를 통해 (예를 들어, 전파 신호에 인코딩되어) 전달될 수 있다. 상기 처리의 일부 또는 전부는 특별 목적 컴퓨터 상에서 또는 코프로세서(coprocessors) 또는 필드 프로그래머블 게이트 어레이(field-programmable gate array, FPGA), 또는 전용, 주문형 반도체(dedicated, application-specific integrated circuit, ASIC) 같은 특별 목적 하드웨어를 사용하여 수행될 수 있다. 상기 처리는 소프트웨어에 의해 명시된 계산의 다른 부분들이 다른 컴퓨팅 요소들에 의해 수행되는 분산 방식으로 실행될 수 있다. 각각의 이러한 컴퓨터 프로그램은 저장 장치 매체가 본원에서 기술된 처리를 수행하도록 컴퓨터에 의해 판독될 때 컴퓨터를 구성하고 작동하기 위해, 바람직하게는 범용 또는 특별 목적 프로그래머블 컴퓨터에 의해 액세스 가능한 저장 장치의 컴퓨터 판독 가능 저장 매체(예를 들어, 솔리드 스테이트 메모리(solid state memory) 또는 매체, 또는 자기 또는 광 매체)에 저장되거나 다운로드된다. 본 발명 시스템은 또한 컴퓨터 프로그램으로 구성되는, 유형의, 비 일시적 매체로서 실현될 수 있고, 그렇게 구성된 매체는 컴퓨터가 본원에서 기술된 처리 단계들 중 하나 이상을 수행하도록 구체적이고 미리 정의된 방식으로 동작하게 한다.
본 발명의 다수의 실시 예가 기술되었다. 그럼에도 불구하고, 전술한 설명은 예시를 위한 것이며 다음의 청구항들의 범위에 의해 정의되는 본 발명의 범위를 한정하는 것이 아닌 것으로 이해되어야 한다. 따라서 다른 실시 예들이 또한 다음 청구항들의 범위 내에 있다. 예를 들어, 다양한 변형이 본 발명의 범위를 벗어남 없이 만들어질 수 있다. 부가적으로, 전술된 단계들의 일부는 순서 독립적이므로 기술된 것과 다른 순서로 수행될 수 있다.

Claims (16)

  1. 데이터세트의 복수의 요소들의 각각의 요소의 적어도 하나의 필드들에 포함되는 데이터를 처리하기 위해 적어도 하나의 규칙들을 지정하기 위한 컴퓨팅 시스템에 있어서, 상기 컴퓨팅 시스템은:
    각각의 조건과 관련된 복수의 사용자 인터페이스 요소들을 렌더링하도록 구성된 사용자 인터페이스 모듈 - 상기 사용자 인터페이스 요소들은
    상기 사용자 인터페이스 요소들의 적어도 하나의 제1 서브세트들(상기 적어도 하나의 제1 서브세트들 중 적어도 일부 서브세트들은 상기 데이터세트의 복수의 요소들 중 한 요소의 적어도 하나의 필드로부터 도출된 입력 값과 관련됨), 그리고
    상기 사용자 인터페이스 요소들의 다수의 제2 서브세트들(상기 다수의 제2 서브세트들 중 적어도 하나의 각각의 사용자 인터페이스 요소는 각각의 조건과 관련된 사용자 입력을 수신하도록 구성됨)을 포함함 - ; 및
    첫번째 필드와 관련된 제1 사용자 인터페이스 요소에 대한 사용자 입력을 수신하는 것에 응하여, 상기 사용자 인터페이스 요소들 중 적어도 일부로부터 수신된 사용자 입력에 기초하여 상기 데이터세트의 적어도 제1 요소에 조건들을 적용하도록 구성되는 처리 모듈 - 상기 조건들을 적용하는 것은
    각각의 사용자 인터페이스 요소들과 관련된 선택된 조건들을 적용하기 위해 컴퓨터 실행가능한 명령들을 생성하는 것(상기 선택된 조건들은 상기 제1 사용자 인터페이스 요소와 관련된 조건이고 적어도 하나의 추가적인 조건들이 상이한 조건들 사이의 잠재적 종속성들을 지정하는 정보에 기초하여 선택됨), 그리고
    상기 생성된 명령들을 실행하는 것과 상기 데이터세트의 제1 요소의 첫번째 필드에 포함된 데이터에 상기 제1 사용자 인터페이스 요소와 관련된 조건을 적용하는 것에 기초하여 결과와 관련된 피드백을 제공하는 것을 포함함- 을 포함하는, 적어도 하나의 규칙들을 지정하기 위한 컴퓨팅 시스템.
  2. 제1항에 있어서,
    상기 사용자 인터페이스 요소들은 제1축과 제2축을 가지는 그리드에 배열된 셀들에 포함되고,
    상기 사용자 인터페이스 요소들의 적어도 하나의 제1 서브세트들은 상기 그리드의 제1축을 따르는 방향으로 연장되는 셀들의 각각의 서브세트들에 포함되고, 그리고
    상기 사용자 인터페이스 요소들의 다수의 제2 서브세트들은 상기 그리드의 제2축을 따르는 방향으로 연장되는 셀들의 각각의 서브세트들에 포함되는, 적어도 하나의 규칙들을 지정하기 위한 컴퓨팅 시스템.
  3. 제1항 또는 제2항에 있어서, 상기 처리 모듈은
    상이한 사용자 인터페이스 요소들과 관련된 조건들에 대한 평가 순서의 사양(specification)을 생성하도록 하고 - 상기 사양은 상이한 조건들 사이의 잠재적인 종속성들을 지정하는 정보임 - ; 그리고
    상기 평가 순서의 사양에 따라 상기 선택된 조건들을 적용하기 위한 상기 생성된 컴퓨터 실행가능한 명령들을 실행하도록 하고, 상기 평가 순서의 사양에 따라 상기 제1요소의 적어도 하나의 필드들에 포함된 데이터에 상기 선택된 조건들을 적용하는 것에 응하여 결과들과 관련된 피드백을 제공하도록 더 구성되는, 적어도 하나의 규칙들을 지정하기 위한 컴퓨팅 시스템.
  4. 제3항에 있어서, 상기 평가 순서의 사양은 상이한 조건들을 나타내는 상태들을 포함하고 적용되도록 허용된 조건들의 순서를 정의하는 상태들 간 전이들을 포함하는 상태 전이도를 포함하는, 적어도 하나의 규칙들을 지정하기 위한 컴퓨팅 시스템.
  5. 제1항 내지 제4항 중 어느 한 항에 있어서, 상기 조건들을 적용하는 것은
    상기 생성된 명령들을 저장하는 것; 및
    상기 데이터세트의 제2 요소의 첫번째 필드에 포함된 데이터에 상기 제1 사용자 인터페이스 요소와 관련된 조건을 적용하도록 상기 저장된 생성된 명령들을 실행하는 것을 더 포함하는, 적어도 하나의 규칙들을 지정하기 위한 컴퓨팅 시스템.
  6. 제1항 내지 제5항 중 어느 한 항에 있어서, 상기 조건들을 적용하는 것은
    상기 데이터세트의 제1 요소의 첫번째 필드에 포함된 데이터에 상기 제1 사용자 인터페이스 요소와 관련된 조건을 적용하는 것에 기초하여 결과를 저장하는 것; 및
    상기 데이터세트의 제1 요소의 첫번째 필드에 포함된 데이터와 동일한 상기 데이터세트의 제2 요소의 첫번째 필드에 포함된 데이터에 상기 제1 사용자 인터페이스 요소와 관련된 조건을 적용하는 것에 응하여 상기 저장된 결과를 검색하는 것을 더 포함하는, 적어도 하나의 규칙들을 지정하기 위한 컴퓨팅 시스템.
  7. 선행하는 제2항의 종속항들 중 어느 한 항에 있어서, 상기 제1축을 따르는 방향으로 연장되는 셀들의 적어도 하나의 서브세트들은 셀들의 열들인, 적어도 하나의 규칙들을 지정하기 위한 컴퓨팅 시스템.
  8. 선행하는 제2항의 종속항들 중 어느 한 항에 있어서, 상기 제2축을 따르는 방향으로 연장되는 셀들의 다수의 서브세트들은 셀들의 행들인, 적어도 하나의 규칙들을 지정하기 위한 컴퓨팅 시스템.
  9. 선행하는 제2항의 종속항들 중 어느 한 항에 있어서, 상기 요소의 첫번째 필드에 포함된 데이터에 상기 조건을 적용한 결과가 통과/실패 결과를 포함하는, 적어도 하나의 규칙들을 지정하기 위한 컴퓨팅 시스템.
  10. 제9항에 있어서, 피드백을 제공하는 것은 상기 결과가 실패 결과라면 상기 제1 사용자 인터페이스 요소에 음영을 적용하는 것을 포함하는, 적어도 하나의 규칙들을 지정하기 위한 컴퓨팅 시스템.
  11. 선행하는 제2항의 종속항들 중 어느 한 항에 있어서, 상기 조건들을 적용하는 것은 상기 데이터세트의 다수의 요소들에 포함된 데이터에 적어도 하나의 셀들과 관련된 조건들을 적용하는 것과 관련된 피드백을 제공하는 것을 더 포함하는, 적어도 하나의 규칙들을 지정하기 위한 컴퓨팅 시스템.
  12. 제1항 내지 제11항 중 어느 한 항에 있어서, 상기 처리 모듈은 조건의 구문을 검증하도록 더 구성되는, 적어도 하나의 규칙들을 지정하기 위한 컴퓨팅 시스템.
  13. 제12항에 있어서, 필드 및 검증 규칙과 관련된 상기 적어도 일부 사용자 인터페이스 요소들은 상기 조건의 구문의 검증 결과와 관련된 피드백을 제공하는, 적어도 하나의 규칙들을 지정하기 위한 컴퓨팅 시스템.
  14. 제1항에 있어서, 상기 데이터세트는 데이터베이스의 적어도 하나의 테이블들을 포함하고 상기 데이터세트의 요소들은 데이터베이스 레코드들을 포함하는, 적어도 하나의 규칙들을 지정하기 위한 컴퓨팅 시스템.
  15. 데이터세트의 복수의 요소들의 각각의 요소의 적어도 하나의 필드들에 포함되는 데이터를 처리하기 위해 적어도 하나의 규칙들을 지정하기 위한 방법에 있어서, 상기 방법은:
    각각의 조건과 관련된 복수의 사용자 인터페이스 요소들을 렌더링하는 단계 - 상기 사용자 인터페이스 요소들은
    상기 사용자 인터페이스 요소들의 적어도 하나의 제1 서브세트들(상기 적어도 하나의 제1 서브세트들 중 적어도 일부 서브세트들은 상기 데이터세트의 복수의 요소들 중 한 요소의 적어도 하나의 필드로부터 도출된 입력 값과 관련됨), 그리고
    상기 사용자 인터페이스 요소들의 다수의 제2 서브세트들(상기 다수의 제2 서브세트들 중 적어도 하나의 각각의 사용자 인터페이스 요소는 각각의 조건과 관련된 사용자 입력을 수신하도록 구성됨)을 포함함- ; 및
    첫번째 필드와 관련된 제1 사용자 인터페이스 요소에 대한 사용자 입력을 수신하는 것에 응하여, 상기 사용자 인터페이스 요소들 중 적어도 일부로부터 수신된 사용자 입력에 기초하여 상기 데이터세트의 적어도 제1 요소에 조건들을 적용하는 단계 - 상기 조건들을 적용하는 단계는
    각각의 사용자 인터페이스 요소들과 관련된 선택된 조건들을 적용하기 위해 컴퓨터 실행가능한 명령들을 생성하는 단계(상기 선택된 조건들은 상기 제1 사용자 인터페이스 요소와 관련된 조건이고 적어도 하나의 추가적인 조건들이 상이한 조건들 사이의 잠재적 종속성들을 지정하는 정보에 기초하여 선택됨), 및
    상기 생성된 명령들을 실행하는 단계와 상기 데이터세트의 제1 요소의 첫번째 필드에 포함된 데이터에 상기 제1 사용자 인터페이스 요소와 관련된 조건을 적용하는 것에 기초하여 결과와 관련된 피드백을 제공하는 단계를 포함함- 를 포함하는, 적어도 하나의 규칙들을 지정하기 위한 방법.
  16. 데이터세트의 복수의 요소들의 각각의 요소의 적어도 하나의 필드들에 포함되는 데이터를 처리하기 위해 적어도 하나의 규칙들을 지정하기 위한, 컴퓨터 판독가능 매체 상에 비-일시적인 형태로 저장된 소프트웨어에 있어서, 상기 소프트웨어는 컴퓨팅 시스템이
    각각의 조건과 관련된 복수의 사용자 인터페이스 요소들을 렌더링하도록 하고 - 상기 사용자 인터페이스 요소들은
    상기 사용자 인터페이스 요소들의 적어도 하나의 제1 서브세트들(상기 적어도 하나의 제1 서브세트들 중 적어도 일부 서브세트들은 상기 데이터세트의 복수의 요소들 중 한 요소의 적어도 하나의 필드로부터 도출된 입력 값과 관련됨), 그리고
    상기 사용자 인터페이스 요소들의 다수의 제2 서브세트들(상기 다수의 제2 서브세트들 중 적어도 하나의 각각의 사용자 인터페이스 요소는 각각의 조건과 관련된 사용자 입력을 수신하도록 구성됨)을 포함함 - ; 및
    첫번째 필드와 관련된 제1 사용자 인터페이스 요소에 대한 사용자 입력을 수신하는 것에 응하여, 상기 사용자 인터페이스 요소들 중 적어도 일부로부터 수신된 사용자 입력에 기초하여 상기 데이터세트의 적어도 제1 요소에 조건들을 적용하도록 하는 - 상기 조건들을 적용하는 것은
    각각의 사용자 인터페이스 요소들과 관련된 선택된 조건들을 적용하기 위해 컴퓨터 실행가능한 명령들을 생성하는 것(상기 선택된 조건들은 상기 제1 사용자 인터페이스 요소와 관련된 조건이고 적어도 하나의 추가적인 조건들이 상이한 조건들 사이의 잠재적 종속성들을 지정하는 정보에 기초하여 선택됨), 및
    상기 생성된 명령들을 실행하는 것과 상기 데이터세트의 제1 요소의 첫번째 필드에 포함된 데이터에 상기 제1 사용자 인터페이스 요소와 관련된 조건을 적용하는 것에 기초하여 결과와 관련된 피드백을 제공하는 것을 포함함- 명령들을 포함하는, 적어도 하나의 규칙들을 지정하기 위한, 컴퓨터 판독가능 매체 상에 비-일시적인 형태로 저장된 소프트웨어.
KR1020167010780A 2013-09-27 2014-09-25 데이터에 적용되는 규칙 평가 KR102349573B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201361883399P 2013-09-27 2013-09-27
US61/883,399 2013-09-27
PCT/US2014/057336 WO2015048212A2 (en) 2013-09-27 2014-09-25 Evaluating rules applied to data

Publications (2)

Publication Number Publication Date
KR20160058947A true KR20160058947A (ko) 2016-05-25
KR102349573B1 KR102349573B1 (ko) 2022-01-10

Family

ID=51862520

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020167010780A KR102349573B1 (ko) 2013-09-27 2014-09-25 데이터에 적용되는 규칙 평가

Country Status (9)

Country Link
US (2) US9984059B2 (ko)
EP (1) EP3049913B1 (ko)
JP (1) JP6526632B2 (ko)
KR (1) KR102349573B1 (ko)
CN (1) CN106133675B (ko)
AU (1) AU2014326734B2 (ko)
CA (1) CA2924826A1 (ko)
SG (1) SG11201602296WA (ko)
WO (1) WO2015048212A2 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190087841A (ko) * 2018-01-17 2019-07-25 (주)비아이매트릭스 그리드 인터페이스 기반 데이터 입출력 시스템

Families Citing this family (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021161104A1 (en) 2020-02-12 2021-08-19 Monday.Com Enhanced display features in collaborative network systems, methods, and devices
WO2021024040A1 (en) * 2019-08-08 2021-02-11 Mann, Roy Digital processing systems and methods for automatic relationship recognition in tables of collaborative work systems
WO2021144656A1 (en) 2020-01-15 2021-07-22 Monday.Com Digital processing systems and methods for graphical dynamic table gauges in collaborative work systems
WO2021099839A1 (en) 2019-11-18 2021-05-27 Roy Mann Collaborative networking systems, methods, and devices
US11410129B2 (en) 2010-05-01 2022-08-09 Monday.com Ltd. Digital processing systems and methods for two-way syncing with third party applications in collaborative work systems
SG11201703061XA (en) 2014-10-20 2017-05-30 Ab Initio Technology Llc Specifying and applying rules to data
USD780205S1 (en) * 2015-04-06 2017-02-28 Domo, Inc. Display screen or portion thereof with a graphical user interface for analytics
US10394964B2 (en) * 2016-04-04 2019-08-27 Oslabs Pte. Ltd. Gesture based system for translation and transliteration of input text and a method thereof
US10579753B2 (en) 2016-05-24 2020-03-03 Ab Initio Technology Llc Executable logic for processing keyed data in networks
US10339480B2 (en) 2016-08-15 2019-07-02 International Business Machines Corporation Executing a set of business rules on incomplete data
CN107730385B (zh) * 2017-07-27 2020-04-21 深圳壹账通智能科技有限公司 订单信息的模拟处理方法、装置、存储介质和计算机设备
TWI669668B (zh) * 2018-03-21 2019-08-21 兆豐國際商業銀行股份有限公司 資料管理裝置及資料管理方法
US11244063B2 (en) * 2018-06-11 2022-02-08 Palantir Technologies Inc. Row-level and column-level policy service
US11436359B2 (en) 2018-07-04 2022-09-06 Monday.com Ltd. System and method for managing permissions of users for a single data type column-oriented data structure
US11698890B2 (en) 2018-07-04 2023-07-11 Monday.com Ltd. System and method for generating a column-oriented data structure repository for columns of single data types
SG11202103228WA (en) * 2018-10-03 2021-04-29 Visa Int Service Ass A real-time feedback service for resource access rule configuration
WO2020077152A1 (en) * 2018-10-11 2020-04-16 Dealvector, Inc. Effective deployment of spreadsheets in browser environments
US11429557B2 (en) * 2018-10-11 2022-08-30 Dealvector, Inc. Templatization of spreadsheets in browser environments
US11429558B2 (en) 2018-10-11 2022-08-30 Dealvector, Inc. Mapping tests of spreadsheets in server-browser environments
US10936801B2 (en) * 2019-03-25 2021-03-02 International Business Machines Corporation Automated electronic form generation with context cues
US11449493B2 (en) * 2019-08-08 2022-09-20 Sap Se Persistent and configurable multidimensional data constraints
US20210150481A1 (en) 2019-11-18 2021-05-20 Monday.Com Digital processing systems and methods for mechanisms for sharing responsibility in collaborative work systems
US11341324B2 (en) * 2019-11-18 2022-05-24 Docusign, Inc. Automatic template generation with inbuilt template logic interface
EP4143732A1 (en) 2020-05-01 2023-03-08 Monday.com Ltd. Digital processing systems and methods for enhanced collaborative workflow and networking systems, methods, and devices
US20240184989A1 (en) 2020-05-01 2024-06-06 Monday.com Ltd. Digital processing systems and methods for virtualfile-based electronic white board in collaborative work systems systems
US11277361B2 (en) 2020-05-03 2022-03-15 Monday.com Ltd. Digital processing systems and methods for variable hang-time for social layer messages in collaborative work systems
US11449668B2 (en) 2021-01-14 2022-09-20 Monday.com Ltd. Digital processing systems and methods for embedding a functioning application in a word processing document in collaborative work systems
US11741071B1 (en) 2022-12-28 2023-08-29 Monday.com Ltd. Digital processing systems and methods for navigating and viewing displayed content
US11886683B1 (en) 2022-12-30 2024-01-30 Monday.com Ltd Digital processing systems and methods for presenting board graphics
US11893381B1 (en) 2023-02-21 2024-02-06 Monday.com Ltd Digital processing systems and methods for reducing file bundle sizes

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008124319A1 (en) * 2007-04-10 2008-10-16 Ab Initio Technology Llc Editing and compiling business rules
US20120209800A1 (en) * 2011-02-11 2012-08-16 Microsoft Corporation Business rules

Family Cites Families (82)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01277939A (ja) 1988-04-30 1989-11-08 Meidensha Corp 推論トレース方式
JPH01296354A (ja) 1988-05-25 1989-11-29 Hitachi Ltd ルール型推論のデバッグ方式
JPH02275539A (ja) 1989-04-17 1990-11-09 Fuji Xerox Co Ltd デバッグ処理方式
US5204939A (en) * 1989-12-14 1993-04-20 Fujitsu Limited Rule base processing system and rule evaluation control method therein
JPH04352029A (ja) 1991-05-29 1992-12-07 Hitachi Ltd ソースプログラム自動生成装置
JPH07334371A (ja) 1994-06-10 1995-12-22 Fujitsu Ltd 推論装置
US5615359A (en) 1994-06-23 1997-03-25 Candle Distributed Solutions, Inc. Data server with data probes employing predicate tests in rule statements
US5734886A (en) 1994-11-16 1998-03-31 Lucent Technologies Inc. Database dependency resolution method and system for identifying related data files
US5832497A (en) 1995-08-10 1998-11-03 Tmp Worldwide Inc. Electronic automated information exchange and management system
US5848393A (en) 1995-12-15 1998-12-08 Ncr Corporation "What if . . . " function for simulating operations within a task workflow management system
US5966072A (en) 1996-07-02 1999-10-12 Ab Initio Software Corporation Executing computations expressed as graphs
JP2000029899A (ja) 1998-07-14 2000-01-28 Hitachi Software Eng Co Ltd 建物と地図とのマッチング方法および記録媒体
US6782374B2 (en) 1998-12-22 2004-08-24 Accenture Global Services Gmbh System, method and article of manufacturing for a runtime program analysis tool for a simulation engine
US6477520B1 (en) 1999-02-22 2002-11-05 Yatra Corporation Adaptive travel purchasing optimization system
US6728879B1 (en) 1999-06-02 2004-04-27 Microsoft Corporation Transactional log with multi-sector log block validation
US6268853B1 (en) * 1999-09-30 2001-07-31 Rockwell Technologies, L.L.C. Data structure for use in enterprise controls
JP2001100999A (ja) 1999-09-30 2001-04-13 Mitsubishi Electric Corp ルールベースシステム
US8332740B2 (en) 2000-01-19 2012-12-11 Graham John D Systems and method for management of intangible assets
JP2001331362A (ja) 2000-03-17 2001-11-30 Sony Corp ファイル変換方法、データ変換装置及びファイル表示システム
US7215637B1 (en) 2000-04-17 2007-05-08 Juniper Networks, Inc. Systems and methods for processing packets
GB2383866A (en) 2000-05-09 2003-07-09 Fair Isaac And Company Approach for generating rules
US7164422B1 (en) 2000-07-28 2007-01-16 Ab Initio Software Corporation Parameterized graphs with conditional components
JP2002157262A (ja) 2000-11-20 2002-05-31 Hitachi Ltd 分類ルール定義支援方法
US7020869B2 (en) 2000-12-01 2006-03-28 Corticon Technologies, Inc. Business rules user interface for development of adaptable enterprise applications
GB0110326D0 (en) * 2001-04-27 2001-06-20 Ibm Method and apparatus for interoperation between legacy software and screen reader programs
US20030120593A1 (en) 2001-08-15 2003-06-26 Visa U.S.A. Method and system for delivering multiple services electronically to customers via a centralized portal architecture
JP2003099855A (ja) 2001-09-20 2003-04-04 Mitsubishi Electric Information Systems Corp 会員カード装置、会員カード処理方法、会員カード処理プログラム、及び、会員カード処理プログラムを記録した記録媒体
JP2003208307A (ja) 2002-01-16 2003-07-25 Hitachi Software Eng Co Ltd ソースプログラム生成システム
US7107285B2 (en) 2002-03-16 2006-09-12 Questerra Corporation Method, system, and program for an improved enterprise spatial system
US20040008140A1 (en) 2002-04-15 2004-01-15 Sengupta Louise C. Frequency agile, directive beam patch antennas
WO2003090164A2 (en) 2002-04-19 2003-10-30 Computer Associates Think, Inc. System and method for providing inferencing services
US8612404B2 (en) 2002-07-30 2013-12-17 Stored Iq, Inc. Harvesting file system metsdata
AU2003265335A1 (en) 2002-07-30 2004-02-16 Deepfile Corporation Method and apparatus for managing file systems and file-based data storage
US8417678B2 (en) 2002-07-30 2013-04-09 Storediq, Inc. System, method and apparatus for enterprise policy management
WO2004015627A2 (en) 2002-08-09 2004-02-19 Corticon Technologies, Inc. Rule engine
US7676387B2 (en) 2002-10-31 2010-03-09 Computer Sciences Corporation Graphical display of business rules
US20040085357A1 (en) 2002-10-31 2004-05-06 Childress Allen B. Method of generating a graphical display of a business rule and associated business rule elements
US7266763B2 (en) 2002-11-26 2007-09-04 Microsoft Corporation User defined spreadsheet functions
US20040210661A1 (en) 2003-01-14 2004-10-21 Thompson Mark Gregory Systems and methods of profiling, matching and optimizing performance of large networks of individuals
JP2004227396A (ja) 2003-01-24 2004-08-12 Nippon Steel Corp プログラムテスト支援装置、コンピュータプログラム、及びコンピュータ読み取り可能な記憶媒体
US7912842B1 (en) 2003-02-04 2011-03-22 Lexisnexis Risk Data Management Inc. Method and system for processing and linking data records
AU2004252837A1 (en) 2003-06-04 2005-01-06 Fair Isaac Corporation Relational logic management system
AU2004258622A1 (en) 2003-07-08 2005-01-27 Us Lynx Llc An automated publishing system that facilitates collaborative editing and accountability through virtual document architecture
JP2005038253A (ja) 2003-07-16 2005-02-10 Nec Electronics Corp テスト方法、テストシステム、及び、プログラム
US8307109B2 (en) 2003-08-27 2012-11-06 International Business Machines Corporation Methods and systems for real time integration services
US20050049924A1 (en) 2003-08-27 2005-03-03 Debettencourt Jason Techniques for use with application monitoring to obtain transaction data
CN102982065B (zh) 2003-09-15 2016-09-21 起元科技有限公司 数据处理方法、数据处理装置及计算机可读存储介质
JP2005122509A (ja) 2003-10-17 2005-05-12 Hitachi Ltd 階層構造データ分析方法、分析装置および分析プログラム
EP1574990B1 (fr) 2003-12-31 2017-11-01 Dassault Systèmes Procédé d'édition d'un modèle explicatif
JP2007537512A (ja) 2004-04-30 2007-12-20 マイクロソフト コーポレーション エンドユーザルールロジックを定義し、実行するルールフレームワーク
US20060112061A1 (en) 2004-06-24 2006-05-25 Masurkar Vijay B Rule based engines for diagnosing grid-based computing systems
US7899833B2 (en) 2004-11-02 2011-03-01 Ab Initio Technology Llc Managing related data objects
US7426688B2 (en) * 2004-11-02 2008-09-16 Hewlett-Packard Development Company, L.P. Embedded spreadsheet commands
US7428520B2 (en) 2004-11-15 2008-09-23 Becton, Dickinson And Company Graphical user interface for use with open expert system
US7461042B2 (en) 2004-11-17 2008-12-02 Long Jeffrey G Method, system, and program for defining and managing complex contingent rules, and exceptions thereto, in a rule-based computer system
US8468125B2 (en) 2005-04-12 2013-06-18 International Business Machines Corporation Automatically moving multidimensional data between live datacubes of enterprise software systems
US7571192B2 (en) 2005-06-15 2009-08-04 Oracle International Corporation Methods and apparatus for maintaining consistency during analysis of large data sets
US7877350B2 (en) 2005-06-27 2011-01-25 Ab Initio Technology Llc Managing metadata for graph-based computations
US7584205B2 (en) 2005-06-27 2009-09-01 Ab Initio Technology Llc Aggregating data with complex operations
US20070021995A1 (en) 2005-07-20 2007-01-25 Candemir Toklu Discovering patterns of executions in business processes
WO2007046013A2 (en) 2005-10-18 2007-04-26 Koninklijke Philips Electronics, N.V. Patient scan time optimization for pet/spect imaging
US7634717B2 (en) * 2006-01-23 2009-12-15 Microsoft Corporation Multiple conditional formatting
US7243097B1 (en) * 2006-02-21 2007-07-10 International Business Machines Corporation Extending relational database systems to automatically enforce privacy policies
GB0617449D0 (en) 2006-09-06 2006-10-18 Ibm An apparatus for providing a visual representation of a sub-set of a visual program
US7836004B2 (en) * 2006-12-11 2010-11-16 International Business Machines Corporation Using data mining algorithms including association rules and tree classifications to discover data rules
US8595231B2 (en) * 2007-04-26 2013-11-26 International Business Machines Corporation Ruleset generation for multiple entities with multiple data values per attribute
US7610294B2 (en) * 2007-05-31 2009-10-27 International Business Machines Corporation Multidimensional data cube validation
US8347207B2 (en) 2007-07-16 2013-01-01 International Business Machines Corporation Automatically moving annotations associated with multidimensional data between live datacubes
US8190562B2 (en) 2007-10-31 2012-05-29 Microsoft Corporation Linking framework for information technology management
US8645434B2 (en) 2008-03-18 2014-02-04 Apple Inc. Techniques for schema production and transformation
US8112377B2 (en) * 2008-05-15 2012-02-07 Sap Ag Client-side rule engine for executing business rules in rich internet applications
US8073801B1 (en) 2008-05-30 2011-12-06 The Decision Model Licensing, LLC Business decision modeling and management system and method
US8429614B2 (en) 2008-06-23 2013-04-23 International Business Machines Corporation Method and apparatus of effective functional test data generation for web service testing
CN105243422B (zh) 2009-01-30 2018-07-06 起元技术有限责任公司 使用矢量字段处理数据
US8725660B2 (en) 2009-07-30 2014-05-13 Hewlett-Packard Development Company, L.P. Applying non-linear transformation of feature values for training a classifier
KR101688555B1 (ko) 2009-09-16 2016-12-21 아브 이니티오 테크놀로지 엘엘시 데이터세트 요소의 매핑
US8301413B2 (en) 2009-10-30 2012-10-30 Bank Of America Corporation Testing analytics tool
WO2011053891A2 (en) 2009-10-31 2011-05-05 Rutgers, The State University Of New Jersey Virtual flow pipelining processing architecture
US20110258150A1 (en) 2010-01-15 2011-10-20 Copanion, Inc. Systems and methods for training document analysis system for automatically extracting data from documents
US8438533B2 (en) 2010-04-26 2013-05-07 Sag Ag Performance-related decision support for compositions of process modeling environments
US20120005144A1 (en) 2010-06-30 2012-01-05 Alcatel-Lucent Canada, Inc. Optimization of rule entities
US9298687B2 (en) * 2010-11-29 2016-03-29 Red Hat, Inc. Automatic spreadsheet formula output validation

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008124319A1 (en) * 2007-04-10 2008-10-16 Ab Initio Technology Llc Editing and compiling business rules
US20120209800A1 (en) * 2011-02-11 2012-08-16 Microsoft Corporation Business rules

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190087841A (ko) * 2018-01-17 2019-07-25 (주)비아이매트릭스 그리드 인터페이스 기반 데이터 입출력 시스템

Also Published As

Publication number Publication date
US9984059B2 (en) 2018-05-29
CN106133675B (zh) 2019-11-08
WO2015048212A3 (en) 2015-07-30
WO2015048212A2 (en) 2015-04-02
EP3049913B1 (en) 2022-05-11
CA2924826A1 (en) 2015-04-02
US20180260375A1 (en) 2018-09-13
AU2014326734B2 (en) 2018-09-27
US10540436B2 (en) 2020-01-21
SG11201602296WA (en) 2016-04-28
AU2014326734A1 (en) 2016-04-14
EP3049913A2 (en) 2016-08-03
CN106133675A (zh) 2016-11-16
EP3049913A4 (en) 2017-07-05
US20150095752A1 (en) 2015-04-02
JP2017506371A (ja) 2017-03-02
KR102349573B1 (ko) 2022-01-10
JP6526632B2 (ja) 2019-06-05

Similar Documents

Publication Publication Date Title
US10540436B2 (en) Evaluating rules applied to data
AU2019213302B2 (en) Filtering data lineage diagrams
JP6216757B2 (ja) ビジネスルールの編集およびコンパイルの、方法、コンピュータプログラム、およびシステム
JP2018501538A (ja) 影響分析
AU2016219421B2 (en) Filtering data lineage diagrams
WO2010088523A1 (en) Processing data using vector fields
AU2021201067B2 (en) Editing and compiling business rules
AU2015203863B2 (en) Processing data using vector fields

Legal Events

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