KR102016161B1 - 간략화된 지식공학 방법 및 시스템 - Google Patents

간략화된 지식공학 방법 및 시스템 Download PDF

Info

Publication number
KR102016161B1
KR102016161B1 KR1020157007009A KR20157007009A KR102016161B1 KR 102016161 B1 KR102016161 B1 KR 102016161B1 KR 1020157007009 A KR1020157007009 A KR 1020157007009A KR 20157007009 A KR20157007009 A KR 20157007009A KR 102016161 B1 KR102016161 B1 KR 102016161B1
Authority
KR
South Korea
Prior art keywords
page
content
interface
result
widget
Prior art date
Application number
KR1020157007009A
Other languages
English (en)
Other versions
KR20150058237A (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 KR20150058237A publication Critical patent/KR20150058237A/ko
Application granted granted Critical
Publication of KR102016161B1 publication Critical patent/KR102016161B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/02Knowledge representation; Symbolic representation
    • 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]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/02Knowledge representation; Symbolic representation
    • G06N5/022Knowledge engineering; Knowledge acquisition
    • G06N5/025Extracting rules from data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/04Inference or reasoning models
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N7/00Computing arrangements based on specific mathematical models

Abstract

지식 기반 시스템을 관리하고 생성하기 위해 컴퓨터 그래픽 에디터를 사용하여 지식 공학을 위한 시스템 및 방법이 개시되며, 지식 기반 시스템은 조건부 콘텐츠 및 사용자 인터페이스 지식을 갖는 모달 페이지의 가항 그래프를 포함한다. 본 발명으로 컴퓨터 프로그래밍이나 수학적 배경없이 기술적이지 않은 그래픽 환경 내에서 지식공학 작업흐름(workflow)의 전체를 수행할 수 있다. 또한, 모달 페이지와 같은 기술의 표현은 단순한 존재론적 발견(ontological discovery)과 최종 사용자 플레이어 동작(operation)을 허용한다. 편집이 완료되면, 상기 방법은 지식 기반 시스템이 내장된 추론엔진을 포함하는 독립적으로 실행 가능한 지식 기반 시스템 플레이어로 내보내질 수 있도록, 구성되어 있는 페이지의 세트, 변수 및 설정(settings)을 고려한다.

Description

간략화된 지식공학 방법 및 시스템{Method and system for simplified knowledge engineering}
관련출원에 대한 상호 참조
본 출원은 2012년 9월 20일자 미국 임시출원 제61/703,270호에 대한 정규출원이며, 그 임시출원에 대한 우선권을 함유하며, 그 임시출원의 전체 내용이 본원에 참고로 편입된다.
저작권에 관한 고지
ⓒ2012-2013 IFWIZARD CORPORTION. 본 특허 문서 개시(disclosure)의 일부는 저작권 보호를 받는 자료를 포함한다. 저작권자는 특허청의 포대 또는 기록들(records)에 나타나는 한, 본 특허 문서 또는 특허 개시를 어떤 사람이 팩시밀리로 복제하는 것에 대해 이의가 없다. 하지만, 그 외에는 모든 저작권을 유보한다. 37 CFR §1.71(d).
발명의 기술 분야
본 발명은 지식 공학을 구현하는 방법 및 시스템에 관한 것이다.
지식공학이란 컴퓨터 시스템을 사용하여 복잡하고 기능적인 지식을 모델링하는 것이다. 외부지식(external knowledge)을 나타내는 튜링기계(Turing machine)도 지식공학이라 할 수도 있겠지만, 지식공학과 지식경영 등과 같은 관련분야는 인텐셔널 모델링(intentional modeling)을 위한 문학적 프로그래밍(literate programming) 및 데이터베이스를 결합하는 보다 구체적인 컴퓨터 과학 영역을 포함하며, 인간이 가지고 있는 지식에 접근한다. 실제 지식공학의 예로서, Dublin Core와 같은 시멘틱 웹에서의 온탈로지(Semantic web ontologies)와 Department of the Interior의 WFDSS(Wildland Fire Decision Support System)와 같은 EDSS(Enterprise Decision Support Systems)가 있다.
지식공학은 학술적 및 비즈니스 인공지능(AI)을 통해 1960년대와 1970년대의 전문가 시스템 연구에 역사적 뿌리를 가지고 있다. 전문가 시스템(expert systems)은 내용 전문가(subject matter experts(SME))가 자신의 지식을 기능적인 지식 저장소(functional knowledge store)에 체계화하는 지식 공학의 이전 형태이다. 예를 들면, 스탠포드 체험적 프로그래밍 프로젝트(Stanford Heuristic Programming Project)가 1970년대에 감염성 박테리아를 식별하기 위해 질문에 대한 답을 연계하여 질문을 하고(branching series of questions), 답변을 추론엔진을 통하여 600개 이상의 규칙들의 베이스에 관련 시켜서 가장 유명한 전문가 시스템 중 하나인 MYCIN을 만들었다.
초기 전문가 시스템 및 지식공학에 상당한 발전이 있었지만, 기술적인 문제점과 과도한 복잡성으로 인하여 대규모의 사용이 대체적으로 금지되었다. 예를 들면, MYCIN은 (인간 SMEs의 평균 성능보다 높은) 69%의 정확도를 가지고 있음에도 불구하고, 실사용이 어렵고 시간이 많이 소요되는 탓에 실제로 사용되지 않았다. 실제로, 상대적으로 작은 MYCIN의 생성 규칙 시스템(small production rules system)의 개발만 5년 이상이 걸렸다.
일명 "인공지능의 겨울"은 1980년대에 시작되어 1990년대에 정점을 찍었다. 자연어처리와 기계학습과 같은 분야에서는 인공지능 전망의 정체기로 인해 인공지능 기술의 자금과 흥미가 급격하게 감소하였다. 하지만 인공지능연구의 과장된 결과의 대부분이 비현실적이거나 지나치게 단순화되어 있었음에도 불구하고, 인공지능 연구의 대부분 영역에서 상당한 기술향상 이룩하고 기술 혁신을 가져왔고, 오늘날에는 그 기술을 실제 사용하며 지속적으로 기술 개발하는 중이다. 인공지능의 오명으로 인해, 다시 부활한 인공지능 분야에서는 "전문가 시스템" 대신 "지식공학"이라는 새로운 이름 하에 진행되고 있다.
지식공학의 새로운 관심은 기술적 표현이나 응용의 상당한 개선과 다양화를 가져왔지만, 전문가 시스템의 성공을 제한했던 근본적인 문제는 지식공학의 광범위한 적용의 주요한 장애물로 남아있다 : 실사용에 기술적 복잡성, 특히, 시스템에 기반한 지식 공학은 자신의 지식을 기술적으로 체계화한 프로그래머가 아닌 SME들의 다양한 카테고리의 비전이 실현되지 않아서 사용이 제한되어 왔다.
예를 들면, KADS(Knowledge Acquisition and Documentation Structuring)와 CLIPS(C Language Integrated Production System)와 같은 강력한 기술들은 그 기술들의 많은 현대적인 파생 기술들과 함께 지식공학을 개선하고 확장하기위해 개발되어왔다. 게다가 21세기에 접어들면서 BizTalk와 같은 소프트웨어나 BPEL(Business Process Execution Language)와 같은 규격들을 이용하여 업무규칙 로직에 대한 지식공학 기술의 사용에 많은 관심이 있었다. 그러나 이 상이한 기술적 혁신은 가장 정교하고 기술적인 측들 중에서 전문적 사용방법을 찾았지만, 고도로 복잡한 기술적인 특성으로 인해서 비기술적 SME들 또는 "보통사람(ordinary people)"을 구현하지 못했다.
지식공학의 이 영구적인 기술화가 지속되는 동시에 일상의 생활에서 컴퓨터 기술이 도처에서 증가하며, 그래픽 사용자 인터페이스들(GUIs)에서의 사용성이 빠르게 개선되었다. 컴퓨터 기술이 일상화가 됨에 따라, 많은 연구자들과 기업들은 더욱 인체공학적인 GUI들을 통해 대중들이 더 강력한 디지털 콘텐츠 제작을 사용할 수 있도록 노력해왔다.
HyperCard 또는 Squeak와 같은 것을 통해 컴퓨터 프로그램 개발에 이런 더 간단한 인터페이스를 적용하기 위한 시도가 이루어지고 있다. 이러한 프로그래밍 환경들은 지식 모델링 및 지식공학의 표현 개념들을 제공하지 않으며, 그래서 지식 기반의 발전에 적절하지 않다. 하지만 이러한 시스템은 규칙들을 성공적으로 체계화할 수 있는 반면, 복잡한 지식을 쉽게 캡처링 하여 최종 사용자에게 표현해주는 능력이 부족하여, 외부 확장(extension) 또는 정교한 프로그램 확장(programmatic extension)을 필요로 한다. 그래서 일반의 SME를 위해 액세스 가능한 지식공학을 어떻게 만들 것인가에 대한 것이 지속적으로 문제되어왔다.
본 발명은 상기에 언급된 문제점들 중에서 일부를 해결하기 위한, 간략화된 지식 공학 방법 및 시스템을 제공하는 것을 목적으로 한다.
다음은 본 발명의 몇 가지 기능과 내용에 대한 기본적인 이해를 제공하기 위한 요약이다. 이 요약은 본 발명의 주요 또는 핵심 요소를 식별하거나 본 발명의 범위를 기술하는 것이 아니다. 이것의 단독의 목적은 나중에 제시되는 발명의 더 상세한 설명에 대한 서두로서 본 발명의 개념의 일부를 간략히 제시하는 것이다.
따라서 본 발명의 목적은 지식 공학을 위한 간단하고 더 접근하기 쉬운 시스템을 제공하는 것이다. 본 발명의 또 다른 목적은 지식 기반 시스템의 제품들(products)의 생성 및 편집이 정의(definition), 관계(relation) 및 유지 보수(maintenance)의 모든 필수적인 기능을 수반하는 전체 그래픽 사용자 인터페이스(GUI)를 통해서만 이루어질 수 있도록 하는 것이다.
또한, 본 발명의 목적은 이 지식공학의 제품(products)을 제시하고 이와 상호작용하기 위한 단순화 된 인터페이스를 제공하는 시스템을 제공하는 것이다. 본 발명의 개시에 따르면, 컴퓨터로 구현되는 시스템은 지식 기반 시스템을 통해 탐색용 모달 페이지 메타포(modal page metaphor)를 구현한다. 각 페이지는 사용자의 일관된 경험 및 기대를 고려하여 콘텐츠 요소와 인터페이스 요소로 분할될 수 있다. 상기의 인터페이스는 인라인 도움(inline help)으로 더 단순화 될 수 있고, 더 큰 시스템으로 통합 될 수도 있다. 일반적으로 위와 같은 시스템 실행 중에, 모달(modal) 페이지의 콘텐츠 및 사용자 인터페이스 요소들은 상기 요소들과 관련된 조건들(conditions)의 참값에 기초하여 "플레이어 컴포넌트(player component)"에 의해 조건적으로 처리될 수 있다.
본 발명의 또 다른 특징은 생성, 유지 보수, 실행하는 동안 지식 기반 시스템을 저장하고 모델링하기 위한 완전한 방법을 포함한다. 이 저장 영역을 통해, 이러한 시스템은 독립적이며, 일부 실시 예들에서 표준 OS설치에 의해 제공되는 것을 넘어서 컴파일러 또는 인터프리터 같은 어떠한 외부 도구가 필요로 하지 않을 것이다. 상기 개시된 인터페이스 및 추론 엔진은 이동 가능성이 매우 좋아(highly portable) 웹 브라우저, 데스크탑 응용프로그램 및 모바일 응용프로그램에서 재생이 가능하게 하고, 로컬 응용프로그램과 다른 시스템에 의한 프로그램 리소스로서 추가적인 플러그인 또는 특수한 툴 없이 웹 인터페이스를 통해 원격으로 실행될 수 있다. 이러한 응용 프로그램은 단지 예시적인 것 일 뿐, 이로 한정하는 것은 아니다.
본 발명은 하나 이상의 컴퓨터 프로그램, 루틴, 함수 등의 소프트웨어로 구현되는 것으로 의도된다. 따라서 후술하는 바와 같이 컴퓨터 또는 적어도 하나의 프로세서를 가지고 있고 메모리에 액세스 할 수 있는 다른 장치와 같은 기계(machine)에서 실행되는 것이 가장 좋을 것이다. 따라서, 본 설명에서는 소프트웨어에서 구현될 때 주로 사용되는 "컴포넌트", "서브시스템", "에디터", "관리자" 등의 용어를 사용한다.
본 발명의 효과는 본 명세서에 해당되는 부분들에 개별적으로 명시되어 있다.
상기 개시의 상기 언급된 그리고 다른 특징들이 얻어질 수 있는 방식을 설명하기 위해서, 더욱 자세한 설명은 첨부된 도면에서 설명되어 있는 특정 실시예를 참조하여 이어진다. 아래 도면들이 본 발명의 전형적인 실시예들만을 묘사하여 본 발명의 범위를 제한하는 것으로 간주되지 않는다는 것을 이해하며, 첨부된 도면을 사용하여 본 발명의 추가적인 특이성 및 세부 내용이 기술되고 설명될 것이다.
도 1은 본 발명과 일치하는 예시적인 시스템의 기능적 컴포넌트를 도시한 것이다.
도 2는 도 1의 시스템과 함께 사용될 수 있는 예시적 데이터 모델을 도시한 것이다.
도 3은 도 1의 에디터 컴포넌트가 운용되는 동안의 활동(activity)의 예시적 흐름도를 도시한 것이다.
도 4는 본 발명과 일치하는 지식 기반 시스템의 재생동안의 액티비티 흐름도를 도시한 것이다.
도 5는 실시예의 예시적 실시예의 에디터 사용자 인터페이스를 도시한 것이다.
도 6은 일례의 모달 페이지(modal page)의 상세한 컴포넌트들(components)을 도시한 것이다.
도 7은 예시적 실시예의 조건 메커니즘(condition mechanism)을 도시한 것이다.
도 8은 예시적 실시예의 예시적인 액션 메커니즘(action mechanism)을 도시한 것이다.
도 9는 예시적 실시예에서 제어 가능한 위젯의 일례를 도시한 것이다.
다음의 발명의 상세한 설명은 첨부 도면을 참조한다. 가능하면 동일 또는 유사한 구성요소들을 참고하기 위해 도면 및 이하 설명에서는 동일한 참조 번호를 사용한다. 명확성과 단순성을 위해 명세서에 실제적인 실시예의 모든 특성이 기재되어 있지는 않다. 하지만, 개발자는 특정한 목적을 달성하기 위해 실제적인 실시예를 개발하는 단계에서 많은 실시예-특정 결정을 해야만 하는 것이 예상된다. 본 발명의 실시예들이 설명될 것이지만, 관련 기술 분야의 당업자는 본 발명의 기술적 사상 및 범위를 벗어나지 않고 변형, 개조 및 다른 실시예들이 가능하다는 것을 인지할 수 있다. 예를 들어, 도면에 도시된 요소들을 대체, 추가 또는 수정할 수 있고, 본문에 기재된 방법들을 치환, 재정렬 또는 개시된 방법들에 단계를 추가함으로써 변형할 수 있다. 따라서, 다음의 발명의 상세한 설명은 본 발명을 한정하지 않는다. 대신에, 본 발명의 적절한 범위는 첨부된 청구 범위에 의해 정의된다.
도 1은 지식공학 에디터 컴포넌트(100)과 플레이어 컴포넌트(116)의 기능적 컴포넌트들의 예시를 도시한다. 에디터 컴포넌트(100) 내에는, 사용자가 이용할 수 있도록 지식 기반 시스템 관리자(102)가 지식 기반 시스템(200)의 생성, 삭제, 선택 및 수정을 허용한다. 지식 기반 시스템을 선택하면, 나머지 편집 기능이 이용가능하게 된다.
변수 리스팅(104)는 지식 기반 시스템 내의 변수(220)의 생성, 삭제 및 수정을 허용한다. 마찬가지로, 페이지 리스팅(106)은 지식 기반 시스템 내의 페이지들(202)의 생성, 삭제 및 수정을 가능하게 한다. 일반적으로, 지식 제공 (knowledge presentation)은 페이지를 통해서 진행되고, 재생할 때에는 바람직하게는 지식 기반 시스템은 한번에 하나의 페이지를 디스플레이한다.
페이지 에디터 컴포넌트(108)은 개별 페이지에서 콘텐츠(204) 및 사용자 인터페이스(208)를 편집할 수 있도록 한다. 주로 편집 작업은 페이지 에디터를 통해 진행한다. 지식 기반 시스템에서 수정이 이루어지면, 에디터 내에서 지식 기반 시스템의 프리뷰 및 실행을 가능하게 하기 위해 지식 기반 시스템을 테스트 서브시스템(110)을 통해 테스트 할 수 있다. 원하는 모든 변경과 추가사항이 완료되면, 지식 기반 시스템 데이터(114)와 같은 이동이 가능한 형식으로 페이지를 변환하기 위해 내보내기(export) 서브시스템(112)을 불러올 수 있다.
지식 기반 시스템을 실행시키기 위해, 최종 사용자는 플레이어 컴포넌트(116)를 동작시킨다. 내보내기 서브시스템(112)에 의해 선택되고 환경설정된 웹 페이지 또는 데스크탑 애플리케이션 하네스(harness)와 같은 컨테이너(118)에 플레이어 기술이 내장될 수 있다. 플레이어 컴포넌트는 지식 기반 시스템 데이터(114)에 있는 로직을 실행시키기 위해 추론 엔진(120)을 사용한다. 플레이어는 이 데이터의 명령에 따라 통합 서브시스템(122)을 통해 컨테이너를 호출하거나 미디어 확장자(extension)(124)를 통해 멀티미디어를 디스플레이하거나, 스타일 확장자(126)을 통해 시각적 포맷을 수정할 수 있다. 통합 서브시스템(122)는 다른 응용 프로그램 또는 인터페이스와 전문가 시스템을 통합하기 위해 제공될 수 있다.
도 2는 본 발명의 다른 모습들과 연결하여 적용할 수 있는 데이터 모델의 한 예를 도시하고 있다. 도면은 단순화된 엔티티 관계 다이어그램이며, 이는 시스템의 다른 부분들이 어떻게 내부적으로 모델화 될 수 있는지를 도시하고 있다. 둥근 사각형 각각은 변수의 특성들(속성들("attributes"))의 세트 그리고 다른 엔티티들로부터 혹은 다른 엔티티들로의 포인터(관계들("relationship"))들을 세트를 포함하는 하나의 "엔티티"이다. 부모-자녀/자녀들 및 자녀-부모 관계들 모두 후미 밑줄로 표시된 부모들로 모델링된다. 만약 관계(relationship)가 하나의 객체, 즉, 단일의 부모를 가르키면 한쪽 방향 화살표로 표시하였으며, 관계(relationship)가 다수의 객체들, 즉, 자녀들인 경우에는 양쪽방향 화살표로 표시하였다. 물론, 이 이론 모델의 변형들은 동등한 것으로 여겨질 수 있다. 그리고 다양한 엔티티, 관계(relationship), 속성(atrribute)의 이름 또는 라벨들은 단지 편의를 위한 것이며, 중요하지 않다.
설명을 위해 도 2를 참조하여 "페이지(Page)"(202) 및 "콘텐츠(Content)"(204) 엔티티를 고려한다. "페이지(Page)"엔티티는 엔티티의 모든 특수한 인스턴스를 위해 설정될 수 있는 다섯 개의 속성들(attributes)("help","note","style","title", 그리고 "uid"(unique identifier))를 포함한다. "페이지(Page)"의 5개의 관계들(relationships) 중 "콘텐츠(Content)" 엔티티에 양방향 화살표로 가리키고 있는 것은 "contents" 이다. 이것은 하나의 "페이지(Page)"(202)가 "contents" 관계에서 자녀로 여러개의 "콘텐츠(Content)" 엔티티를 포함할 수 있다는 것을 의미한다.
반대로, "콘텐츠(Content)"엔티티는 부모인 페이지에 거꾸로 한쪽 방향 화살표로 가리키고 있는 "page_"관계(relationship)를 가지고 있다. 그래서 둘 사이의 양방향 참조를 위한"contents"와 "page_" 관계들은 독자가 단일의 "콘텐츠(Content)"또는 "페이지(Page)" 엔티티로부터 각각 자녀 또는 부모를 찾을 수 있도록 한다.
지식 기반 시스템은 설계자 및 제목과 같은 기본적인 정보를 포함하는 "wizard"(200)로서 저장될 수도 있다. 지식 기반 시스템은 (나중에 설명되는)사용자와의 상호작용 후에 사용자 정의-variables(220)의 개수뿐만 아니라, 사용자 상수 및 widgets(210)의 값들을 포함할 수 있다. wizard는 wizard의 모든 가시적이고 논리적 기능을 구현하는 하나 이상의 페이지(Page)(202)를 포함할 수 있다(화살표 230 참고). wizard는 지정된 시작페이지(startpage)로의 운영을 기본으로 시작할 수 있다(화살표 232 참고). 실시예에서, 각 page는 0 또는 다수의 Content(204)를 포함한다. Content들은 텍스트와 미디어의 비상호작용식 정적블럭(non-interactive static blocks)이며, 그 안에 내장된 사용자 정의 변수들(varialbe)(220)을 가질 수도 있다. Contents는 일반적으로 하나 또는 두개의 변수를 "equals"와 같은 조건을 통해 비교하여 자신의 콘텐츠테스트(ContentTest)(206)를 통과한 경우에만 디스플레이된다.
또한 페이지(Page)(202)들은 사용자와의 상호작용을 허용하고 이에 응답하도록 디자인된 0 이상의 사용자인터페이스들(UserInterface)(208)을 포함할 수 있다. 실시예에서, 사용자인터페이스(Userinterface)는 사용자인터페이스테스트(UserInterfaceTest)(212)를 통과하는 경우에만 디스플레이된다(화살표 238 참조). 각각의 사용자인터페이스(Userinterface)는 0개 이상의 사용자인터페이스위젯(UserInterfaceWidget)(210)을 포함할 수 있다. 예를 들면 위젯은 버튼, 선다형(multiple choice), 텍스트 필드(text field) 또는 다른 사용자 컨트롤로 구성될 수 있다. 위젯은 변수들(Variables)(220) 사이에서 위젯 변수에 대응하는 값을 결정하고 이를 할당하기 위해 사용자 입력 값을 사용할 수 있다. (변수(Variable)(220)의 관계들(relationships)에서 userInterfaceWidgets_을 참고)
실시예에서, 사용자가 버튼을 클릭하거나 아무 버튼도 표시되지 않은 경우에는 디폴트 값인 "continue" 버튼을 클릭함으로써 현재 (디스플레이된) 페이지와 상호작용을 마치고, 적어도 하나의 인터페이스가 디스플레이된 후에는, 인터페이스의 결과들(Results)(214)이 0개 이상 수행될 것이다. 결과(Result)에 대응하는 결과테스트(ResultTest)(216)가 통과하면, 목적페이지가 선택되어 있는 경우에는 네비게이션(navigation)은 첫 번째로 통과한 결과(result)의 목적지 페이지(destination page)로 이동하게 된다. 결과들(Results)은 변수 설정, 외부 문서 열람, 다른 서버로 데이터를 업로드, 통합서브시스템(122)을 통해 컨테이너(118)를 통합하는 것과 같은 많은 기능을 수행할 수 있는 결과액션(ResultAction)(218)들을 0개 이상 포함한다. 도 4와 아래에 관련 텍스트를 참고하면, 이 데이터 구조들이 다양한 도메인에서 편리하고 유용한 형태로 전문 지식을 "인코딩(encoding)"하기 위한 정교하고 유연한(flexible) 플랫폼을 제공하는 것을 알 수 있다.
도 3은 에디터 컴포넌트(100)과 같은 지식공학 에디터가 동작하는 동안의 예시적인 액티비티 흐름을 도시한 것이다. 실시예에서, 에디터가 시작하면(300), 지식 엔지니어는 지식 기반 시스템을 편집 또는 생성하거나(302) 지식 기반 시스템의 설명과 같은 일반적인 세팅을 수정하고(304), 지식 기반 시스템의 페이지 관리(306) 또는 변수 관리(308)를 하며, 지식기반 시스템을 테스트하고(310), 지식기반 시스템을 내보내거나(export)(312) 지식기반 시스템의 페이지를 수정(314)할 수 있다.
지식 기반 시스템 페이지를 편집할 때(314), 지식 엔지니어는 페이지의 콘텐츠를 수정하거나(316), 인터페이스를 편집한다(324). 지식 엔지니어는 콘텐츠를 수정(316)하는 것 외에도, 콘텐츠 테스트(318)를 추가하거나 삭제 또는 수정할 수 있고, 스크립트와 같은 것들을 통해 콘텐츠를 통합하거나(320), 이러한 콘텐츠에 이미지, 동영상, VRML 또는 오디오 같은 로컬 혹은 원격 미디어를 가져올 수도 있다(322).
페이지를 편집할 때(314), 지식 엔지니어는 페이지의 사용자 인터페이스를 편집할 수 있다(324). 편집하는 동안, 지식 관리자는 인터페이스의 테스트(326), 위젯(328), 결과들(Results)(332)을 편집할 수 있다. 하나의 위젯과 결과(Result)는 각각 여러개의 위젯 테스트(330)와 결과(Result) 테스트(334)를 가질 수 있다. 각 결과(Result)는 그 결과와 연관된 결과액션(Result Actions)(336)들 임의의 개수만큼 또한 가질 수 있다.
도 4는 지식 기반 시스템의 플레이어(Player) 컴포넌트(116)가 동작하는 동안의 액티비티 흐름을 도시한다. 플레이어가 시작하면(400), 플레이어는 추가적인 확장자(Extension)(404) 또는 스타일(406)을 포함할 수 있는 지식기반 시스템의 데이터를 로드하고(402), 시작페이지를 디스플레이한다(408). 실행하는 과정에서, 각 콘텐츠 요소에 대해, 모든 관련된 콘텐츠 테스트 또는 조건(conditions)을 수행한다(410). 그리고, 만약 모두 통과하게 되면, 콘텐츠를 보여준다(412). 일반적으로, 페이지는 하나이상의 콘텐츠 요소를 포함할 수 있다(그리고 대개는 포함한다). 예를 들어, 도 6에서 조건(Condition)(604)를 보면, 각각의 콘텐츠 요소들은 디스플레이 될 관련된 콘텐츠테스트 또는 조건을 통과해야만 한다. 또한, 복수의 테스트가 있을 수 있으며, 추론 엔진은 그 테스트들이 나타난 순서대로 각각을 실시한다. 실시 예에서, 이 프로세스는 그 테스트들 중 어느 하나의 테스트에 실패하자마자 중단될 수도 있다.
콘텐츠를 렌더링 한 후, 각 인터페이스(208)는 해당 인터페이스테스트(InterfaceTest)(s)(212)에 대항하여 테스트 된다. 인터페이스가 존재하지 않거나 테스트에 통과하지 못한 경우(418), 재생을 종료한다(430). 이는 콘텐츠의 디스플레이에는 영향을 주지 않지만, 커스텀 사용자 인터페이스 또는 다른 페이지를 탐색할 수 있는 "Continue"버튼이 가능하게 되는 결과가 된다. 인터페이스는 인터페이스가 존재하지 않거나 테스트에 통과하지 못한 경우를 제외하고는 디스플레이된다(416). 사용자가 위젯 사용자 제어와 상호작용 할 수 있도록(422) 각 인터페이스와의 위젯(210)은 디스플레이 된다. 사용자가 페이지와의 상호작용을 마치고, 목적 페이지(destination page)를 탐색할 준비가 되면, 결과테스트(ResultTest)(216)을 마친 모든 결과들(Results)(214)을 테스트하고(424), 통과된 모든 결과액션들(ResultActions)(218)을 수행한다(426). 성공한 어느 결과들(Results) 중 목적 페이지(428)를 가진다면, 페이지 디스플레이(page display)(408)의 새로운 사이클을 만들기 위해 이들 중 첫 번째를 탐색(navigation)한다. 만약 목적 페이지가 없다면 재생을 종료한다(430).
도 5는 시스템의 예시적 실시예의 에디터 사용자 인터페이스(500)을 도시한다. 기본 탐색 컨트롤(502)은 지식기반 시스템을 테스트(310) 및 내보내기(312)와 같은 기능에 액세스 할 수 있도록 한다. 상기 인터페이스(500)는 페이지 에디트 영역(page editing area)(506) 그리고 시스템 세팅을 수정(304)하고 페이지를 관리하고(306) 변수를 수정(308) 할 수 있는 사이드바 영역(sidebar area)(504)으로 분할된다.
페이지 에디트 영역(506)은 콘텐츠 테스트 에디터(510)를 포함한 콘텐츠 에디터(508)와, 위젯에디터(514) 및 결과(Result) 에디터(516)를 포함한 인터페이스 에디터(512)를 포함한다. 나아가 결과(Result) 에디터(516)는 자신의 액션(Action) 에디터(518)와 결과테스트(Result Test) 에디터(520)로 세분화 될 수 있다. 액션(Action) 에디터(518)은 "감산(subtract)"과 같은 특정 작업의 선택, 주어진 사용자 정의 변수, 상수들(constants) 또는 위젯 값에 대한 실행, 그리고 옵션으로 그 액션(Action) 반환 값의 변수로의 할당을 허용한다. 콘텐츠, 인터페이스와 결과(Result)들에 대한 테스트 에디터는 "equals"와 같은 조건을 사용하여 사용자 정의 변수, 상수(constants) 또는 (인터페이스와 결과테스트(Result Test)들만을 위한) 위젯 값의 테스트를 가능하게 할 수 있다. 또한 지식공학 에디터(500)는 시스템 요소를 재배열, 추가, 삭제하는 기본 기능과, 스크롤 페이지 에디트 영역과 같은 정보 네비게이팅을 위한 기본 기능을 제공한다. 이 예시적 실시예는 운영 시스템 기능을 통한 복수의 지식 기반 시스템의 관리를 더 허용하고, 예를 들어 데스크톱 응용 프로그램, 웹 응용 프로그램 또는 모바일 응용프로그램을 통한 방법과 같이 에디터의 프리젠테이션에 따라 특수 제작 인터페이스를 허용한다.
도 6은 지식 기반 시스템의 저장 및 편집에 사용될 수도 있는 모달(modal) 페이지(600)의 하나의 비제한적인 예의 추가적인 세부사항을 도시한다. 모달 페이지(600)는 콘텐츠(601)와 사용자 인터페이스(602)를 얼마든지 가질 수 있다. 이 콘텐츠(601)와 인터페이스(602)의 요소는 해당 콘텐츠 조건(604)와 인터페이스 조건(605)이 모두 참인 경우에만 처리된다. 만약 콘텐츠(601) 요소가 나타난 경우, 텍스트 및 멀티미디어 요소(603)는 렌더링 된다. {{name}}이란 변수가 "John"일 때, "The name you entered is {{name}}" 가 "The name you entered is John"으로 렌더링 되도록 하기 위해서, 렌더링의 경우에 따라 {{name}}과 같은 변수의 명명을 통해 저장된 모든 스크립트나 참조 변수(variable references)를 호출 할 수 있다.
실시예에서, 인터페이스(602) 요소는 변수에 할당될 수 있는 사용자 입력을 수집하는데 사용될 수 있는 위젯(606)을 얼마든지 가질 수 있다. 또한, 인터페이스(602) 요소는 결과(Result)(607)를 얼마든지 포함할 수 있다. 결과(Result)(607)는 모든 부수적인 결과(Result) 조건(609) 값들이 참이면 실행되는 많은 액션(Action)(608)과 선택적인 목적 페이지(destination page)로 구성된다. 목적 페이지가 결과(Result)(607)로 설정되면, 목적 페이지는 상기 조건들(609) 모두가 참이라면 액션(Action)(608)이 실행된 다음에 제공된다. 결과(Result)(607)가 이후의 조건부-참 결과(Result)(607)에 도달하기 전에 페이지에서 멀어지게 한다면, 그 이후의 결과의 액션들(result's actions)은 무시되며 첫 번째 - 참 규칙 매칭을 제공한다.
도 7은 그리고 콘텐츠의 조건(604), 인터페이스 조건(605), 또는 결과(Result) 조건(609)이 자신의 참값을 결정하고 연관된 콘텐츠(601), 인터페이스(602) 또는 결과(Result)(607)와 액션(Action)(608)이 처리되고 있는지를 판별하는 메커니즘의 일례를 도시한다. 조건의 진위가 조사되고 있는지 여부를 결정하기 위해 조건은 부정옵션(negation option)(700)을 가질 수 있다. 상기 조건의 동작(Operation)(701)은 논리 값이 결정되는 특정 테스트 액션(Action)을 결정한다. 동작(Operation)(701)은 지명된 변수, 상수 문자(constant literal) 또는 위젯의 입력 값에서 얻을 수 있는 피연산자(702)에 대한 비교 또는 연산을 수행 할 수 있는 문자 값을 동반한다. 예를 들면, 동작(Operation)(701)이 "포함(Contains)"으로 지정된 경우, 피연산자(702)가 주어진 문자를 포함하면 조건(Condition)은 참이 된다. 예로, 피연산자(702)인 "John"이 "oh"를 포함하고 있는지 테스트 했을 때에는 true를 반환하며, 역으로 부정옵션으로 "If not"로 설정된 경우에는 테스트 결과가 false로 반환된다.
도 8은 액션(Action)을 정의하고 처리하는 메커니즘의 일례를 도시한다. 액션(Action) 유형(801)은 가능한 액션(Action)들의 다양한 목록에서 선택한다. 대부분의 액션(Action)유형(801)은 지명된 변수, 상수 문자(constant literal) 또는 위젯의 입력 값에서 얻을 수 있는 하나 이상의 입력 매개변수(802)를 전달한다. 대부분의 액션(Action) 유형(801)은 함수처럼 작용하여 지명된 변수(named variable)로 출력 매개변수(800)를 통해 설정될 수 있는 값을 추가로 반환한다. 예를 들어, 액션(Action) 유형(801)인 "더하기(Add)"는 수치들을 함께 추가하고 출력 매개변수(800)로 그 합을 반환하기 위해 두개의 입력 매개변수(802)와 함께 사용될 수 있다.
도 9는 시스템의 예시적 실시예에서 사용할 수 있는 위젯 제어의 예를 도시한다. 각 위젯은 완성된 지식 기반 시스템을 탐색할 때 사용자로부터의 입력을 수집하고, 조건 피연산자(702) 또는 액션(action) 입력 매개변수(802)에서 그것을 사용할 수 있도록 디자인되었다. 위젯의 정확한 모양은 중요하지 않으며, 렌더링 될 때 스타일 확장자(126)를 통해 변경될 수 있다. 다른 위젯들은 사용자가 위젯과 상호작용하는 방법에 따라 미리 정해진 값으로 설정되는 반면, 몇몇 위젯은 사용자의 명시적인 입력으로부터 직접 자신들의 값을 받는다.
버튼 위젯(900)은 촉구하는 "label" 버튼을 제공한다. 상기 버튼을 클릭하면, 위젯에 "클릭 값"을 저장하고, 그렇지 않으면 그 위젯은 빈 값(empty value)을 가진다. 중요한 것은, 상기 버튼을 클릭하는 것은 페이지 결과들(page results)(607)를 처리하기 시작한다. 따라서 결과(result)(607)의 목적 페이지(destination page) 설정을 통해 페이지(Page)(600) 간 사이를 이동하기 위해서 주요 탐색 메커니즘으로 버튼을 사용한다.
체크박스(checkbox) 위젯(901)은 프롬프팅 "label" 이 있는 on/off 체크박스를 표시한다. 체크박스를 선택하면, "선택된 값"이 위젯에 저장되고, 그렇지 않으면 그 위젯은 빈 값을 가진다.
텍스트영역(Text area) 위젯(903)과 텍스트 필드(Text field) 위젯(904)은 프롬프팅 "label"을 디스플레이하며, 사용자가 직접 입력한 값을 받고, 그 값을 위젯 값으로 설정한다. 텍스트영역(Text area)(903)은 텍스트 필드(Text field)(904)의 단일 및 비분리 텍스트 입력을 위한 보다 큰 멀티라인 텍스트 입력을 제공한다.
드롭다운(Drop down) 위젯(902)과 다중선택(Multiple choice) 위젯(905)은 "옵션 라벨"의 목록과 함께 촉구하는 "label"을 디스플레이 한다. 옵션 라벨을 선택하면, 그에 대응하는 "선택된 값"이 위젯 값으로 설정된다. 다중선택 위젯(905)이 라디오 버튼 스타일 인터페이스에서 사용 가능한 옵션을 모두 디스플레이하는 반면, 드롭다운(902)은 선택되지 않은 옵션을 숨기고, 더 컴팩트한 위젯 렌더링을 제공한다.
맞춤 방식으로 (customized way) 입력(input)을 수집하고 값(value)들을 생성하기 위해 추가적인 위젯이 개발 될 수 있다. 나아가 외부 위젯, 데이터베이스 및 다른 입력 소스들과 상호 작용을 하게 해주는 "Call function" 액션(action) 유형(801)을 사용하여 창의적인 확장(extension)을 이룰 수 있다.
앞서 언급했듯이, 본 발명은 하나 이상의 컴퓨터 프로그램, 루틴, 함수 등과 같은 소프트웨어에서 구현되도록 되어있다. 일반적으로, 본 발명의 모습들은 메모리에 액세스 할 수 있고, 상기 메모리에 저장된 명령이나 "코드(code)"를 실행할 수 있는 디지털 프로세서를 적어도 하나 이상 포함하는 기계나 시스템에 이용될 수 있다. (또한 메모리는 데이터를 저장할 수 있다.) 디지털 프로세서는 마이크로프로세서, 멀티 코어 프로세서, DSP(Digital Signal Processor), 프로세서 어레이, 네트워크 프로세서 등을 포함하지만, 이것에 한정되지 않는다. 디지털 프로세서는 랩탑이나 데스크탑 컴퓨터, PDA, 휴대전화, iPhone PDA, Blackberryㄾ PDA/phone, 또는 사실상 모든 전자 기기와 같은 더 큰 디바이스의 일부일 수 있다.
마이크로프로세서 또는 그와 유사한 것과 함께 집적 회로에 내장된 RAM 또는 플래쉬 메모리와 같이, 연관된 메모리(associated memory)는 프로세서와 함께 통합될 수 있다. 다른 예로, 메모리는 외부 디스크 드라이브, 저장 어레이(storage array) 또는 휴대용 FLASH 전자 열쇠와 같은 독립된 장치를 포함한다. 이러한 경우, 메모리와 디지털 프로세서가 함께 동작되거나, 프로세서가 메모리에 저장된 파일을 읽을 수 있도록 I/O 포트, 네트워크 접속 등과 같은 방법으로 서로 통신하는 경우에는 메모리는 디지털 프로세서와 "연관(associated)"된다. 로컬 및/또는 원격으로 메모리가 위치될 수 있다. 연관 메모리는 디자인 또는 권한 설정에 따라 "읽기 전용"이 될 수도 있고(ROM), 아닐 수도 있다. 다른 예들로 WORM, EPROM, EEPROM, FLASH 등이 있지만, 이것으로 한정되지 않는다. 이러한 기술은 주로 고체 상태의 반도체 디바이스에서 구현한다. 그밖의 메모리는 종래의 회전 디스크 드라이브와 같은 움직이는 부분을 포함할 수 있다. 이러한 모든 메모리는 아래에 추가 설명한 바와 같이 적당한 디지털 프로세서로 읽을 수 있다는 점에서 "기계 판독 가능"하다.
컴퓨터 프로그램 저장
위에서 설명한 바와 같이, 본 발명은 컴퓨터 소프트웨어 ( 또는 이와 상호교환적으로 사용가능한 용어인 컴퓨터 프로그램 또는 코드 등)에서 실행 또는 구현된다. 디지털 프로세서에 의해 판독 될 수 있는 디지털 메모리에 저장될 때에는 프로그램 또는 코드가 가장 유용하다.
우리는 상기 유형의 메모리 뿐 만 아니라 장래에 개발될 수 있는 새로운 기술 모두 포함하기 위해 "컴퓨터 판독 가능 저장 매체" 용어 (또는 "기계 판독 가능 저장 매체"로 대체) 또는 그 밖에 다른 용어를 사용한다. 즉, 메모리는 컴퓨터 프로그램이나 다른 데이터 유형에 디지털 정보를 일시적으로라도 저장할 수 있으면 되고, 저장된 정보가 적절한 디지털 프로세서에 의해 "읽어"질 수 있는 방법이면 된다. "컴퓨터로 판독 가능"이란 용어로 완성된 메인 프레임, 미니 컴퓨터, 데스크탑 또는 노트북 컴퓨터 등을 함축하기 위해 "컴퓨터"의 의미를 한정하지 않는다. 그보다 기억 매체가 디지털 프로세서 또는 디지털 컴퓨팅 시스템에 의해 판독 가능 한 것을 의미하는 뜻으로 "컴퓨터"를 사용한다. 이러한 매체는 컴퓨터 프로세서에 의해 로컬 및/또는 원격으로 액세스 될 수 있는 임의의 이용 가능한 매체일 수 있으며, 비휘발성과 휘발성 매체, 분리형 및 비분리형 매체를 모두 포함한다.
컴퓨터 프로그램 제품
프로그램이 컴퓨터 판독 가능한 기억 매체에 저장되어 있는 경우, 그 기억 매체를 컴퓨터 프로그램 제품으로서 지칭할 수 있다. 예를 들어, 휴대용 디지털 저장 매체는 컴퓨터 프로그램을 저장, 운반(transport)(전달, 구매, 판매, 라이센스) 하기 위한 편리한 수단으로 사용할 수 있다. 과거에 패키지(압축) 프로그램의 소매 판매를 위해 이 방법이 이루어졌다. 이러한 저장 매체는 CD-ROM 및 이와 유사한 것 등으로 제한하지 않는다. 컴퓨터 프로그램 제품의 예로 저장된 컴퓨터 프로그램을 포함하는 CD-ROM을 들 수 있다.
사용자 지침의 동작예
다음 텍스트는 IfWizard로 불리는 컴퓨터 프로그램의 사용자 매뉴얼에서 발췌된 것이며, 이는 본 발명의 특정 기능의 일 실시 예를 나타낸다. 이 부분은 본 발명의 개념을 예시적으로 제시되는 것이며 한정하는 것이 아니다.
다음은 다양한 목적을 충족시킬 수 있는 양방향 마법사(wizard)를 만들 수 있게 해주는 Mac OS X와 iPads 용 응용 프로그램인 IfWizard의 매뉴얼이다. 본 문서는 가장 효과적으로 IfWizard를 사용하는 방법과 개념 부분이 동시에 어떻게 작동하는지에 관한 정보를 제공한다.
IfWizard의 직관적인 그래픽 인터페이스는 어떠한 프로그래밍이나 기술 경험 없이 전문적인마법사를 만들 수 있으며, 다음을 포함한다.
Figure 112015026984021-pct00001
설문 조사(surveys)
Figure 112015026984021-pct00002
교육 퀴즈(Educational Quizzes)
Figure 112015026984021-pct00003
쌍방향 소설(interactive fictions)
Figure 112015026984021-pct00004
문제 해결사 (Troubleshooters)
Figure 112015026984021-pct00005
멀티미디어 전시(Multimedia exhibits)
Figure 112015026984021-pct00006
의사 결정 지원 시스템(Decision support systems)
Figure 112015026984021-pct00007
자신의 어드벤처 선택(Choose your own adventures)
Figure 112015026984021-pct00008
자동화 도우미(Automated assistants)
Figure 112015026984021-pct00009
체계적 모델과 시뮬레이터(Scientific models and simulators)
Figure 112015026984021-pct00010
진단 도구(Diagnosis tools)
Figure 112015026984021-pct00011
형식적 온톨로지(Formal ontologies)
Figure 112015026984021-pct00012
전문적 의료, 금융, 법률 및 과학 전문가 시스템
IfWizard는 수백개의 유용한 기능의 지식 공학에 많은 개선책을 실행한다. 예를 들면 다음과 같다.
Figure 112015026984021-pct00013
효율적이고 멋진 일반 쉬운 영어의 인터페이스
Figure 112015026984021-pct00014
직관적인 페이지 기반 기술
Figure 112015026984021-pct00015
간편하고 풍부한 콘텐츠 서식
Figure 112015026984021-pct00016
하이퍼링크, 이미지, 동영상, 스크립트 등을 포함
Figure 112015026984021-pct00017
버튼, 텍스트 입력, 다항 선택 등을 통한 상호 작용 조성
Figure 112015026984021-pct00018
복잡한 비쥬얼(Visual)과 논리적 상호 작용 지원
Figure 112015026984021-pct00019
유연한 조건부 로직
Figure 112015026984021-pct00020
간단한 변수와 상수
Figure 112015026984021-pct00021
텍스트, 수학 및 기타 함수의 정보를 변환
Figure 112015026984021-pct00022
이메일 또는 웹 서비스로 결과 보고
Figure 112015026984021-pct00023
효과적인 사용자 정의, 확장(Extension) 및 통합
Figure 112015026984021-pct00024
웹사이트로 내보내거나 자신의 웹 사이트에 쉽게 삽입
Figure 112015026984021-pct00025
· 완성된 독립형 OS X 및 Windows 마법사 응용 프로그램의 One-step 내보내기
Figure 112015026984021-pct00026
마법사를 내보내기 위해 플러그인이나 추가 설치 불필요
Figure 112015026984021-pct00027
마법사의 통합된 FTP 업로드
Figure 112015026984021-pct00028
수수료 또는 제한 없이 마법사 사용, 공유, 판매 가능
IfWizard로 에디터(도 1)라 불리는 간단하지만 강력한 시각적 환경으로 사용자 인터페이스 부분을 각각 사용하여 자신의 창작물을 구성하는 방법으로 마법사를 구축할 수 있다. 마법사가 실행되면, 사용자 인터페이스에 이은 콘텐츠 제시를 하면서 하나의 페이지가 디스플레이된다. 사용자 인터페이스 위젯과 함께 사용자의 행동에 기초하여, 마법사는 다른 페이지로 이동 및/또는 기타 작업을 수행한다. 변수를 테스트 할 수 있는 조건을 통해 각 페이지의 부분의 활성을 제어할 수 있다.
이러한 간단한 구성 요소를 이용하여, 고도한 마법사를 특별한 훈련이나 어떠한 프로그래밍 없이 빠르고 쉽게 만들 수 있다. 자신의 웹사이트에 삽입하거나, 독립형 Mac OS X 또는 Windows 응용 프로그램(IfWizard의 Mac OS X 버전만)으로 패키지하기 위해 마법사를 내보낼 수 있다. 고급자는 테마를 수정하거나 마법사가 다른 시스템과 상호작용하게 할 수 있도록 마법사를 사용자 정의 할 수 있다.
첫 번째 마법사
시작을 위해 IfWizard를 실행한다. 마법사가 자동적으로 표시되지 않으면, File→New(IfWizard Professional) 또는 New Wizard(IfWizard Touch)를 선택하여 새로 만든다. 그러면 에디터의 사이드 바, 메인 영역 및 도구 모음이 각각 좌측, 우측, 상단에 디스플레이되면서 도 5와 유사하게 마법사가 나타난다.
도구 모음에서 마법사를 실행하거나(테스트), 온라인 도움말 보기 등과 같은 몇 가지 핵심 기능을 액세스 할 수 있다. 사이드바에서 변수와 페이지 같은 전체 마법사에 적용되는 요소를 수정할 수 있다. 메인 영역에서 대부분의 편집이 이루어지며, 페이지 제목 외에 콘텐츠 및 사용자 인터페이스 영역으로 분할된다.
새로운 마법사를 처음 만들면, 마법사는 하나의 단순한 콘텐츠 요소를 갖는 "New Page"라는 제목의 한 페이지로 생성되며, 사용자 인터페이스 요소는 가지지 않는다. 사이드 바 상단에 있는 페이지 탭을 선택하고 사이드바 하단에 있는 생성 버튼을 눌러 페이지를 추가 할 수 있다. 페이지의 페이지 행을 클릭하면 메인 영역의 정보를 새 페이지에 대한 정보로 교체되면서 그 페이지가 선택된다. 페이지의 제목을 변경하려면 페이지의 기존 제목을 클릭하거나, 페이지를 선택하고 그 메인 영역에서 페이지 제목 영역을 편집한다. 사이드바의 하단에 있는 삭제버튼을 눌러 페이지를 삭제할 수 있다.
변수는 자신의 사이드바 탭을 이용하면 페이지와 매우 유사하게 작동한다. 변수 행의 왼쪽에 있는 텍스트를 클릭하여 변수의 이름을 설정할 수 있을 뿐 아니라, 변수의 초기 값도 설정할 수 있다.
또한 사이드바에는 제목과 마법사의 설계자와 같은 마법사에 대한 일반적인 구성을 설정할 수 있는 탭이 있다. 사이드바에 있는 시작 페이지 선택을 변경함으로써, 마법사가 처음 시작할 때 디스플레이되는 페이지를 선택할 수 있다.
각 페이지에서 메인영역에서 컨트롤을 사용하여 콘텐츠와 인터페이스를 추가하거나 제거할 수 있다. 콘텐츠의 텍스를 선택하고, 원하는 대로 변경하여 편집할 수 있다. (예 : "마법사에 오신 것을 환영합니다.")
IfWizard Professional로 글꼴 변경 같은 포맷의 메뉴를 적용할 수 있으며, 테이블과 목록 등과 같은 고급 HTML 포맷을 복사 혹은 붙여 넣을 수 있다.
마법사 개발
대부분의 마법사는 여러 페이지를 추가하고, 각 페이지에 하나 이상의 콘텐츠와 인터페이스를 생성하여 만들어진다. 페이지 간의 네비게이션은 목적 페이지 세팅과 인터페이스 결과를 추가하여 설정한다. 에디터는 마법사의 실행, 테스트, 내보내기를 위한 많은 기능을 제공한다.
마법사를 완성하면 재생을 위해 마법사를 테스트 하거나 내보낼 수 있다. 웹 페이지 또는 데스크톱 응용 프로그램과 같은 "컨테이너" 내부의 마법사를 실행하여 IfWizard 엔진에서 재생된다. (IfWizardProfessional에서만) 매뉴얼의 나머지부분에 IfWizard의 각 구성요소를 더 자세히 설명한다.
4. 마법사(Wizards)
IfWizards에서, "마법사"는 IfWizard가 프로젝트에 대한 모든 정보를 저장하는데 사용하는 편집 가능한 파일을 말하거나, 웹페이지와 같은 정보를 내보내는 것이 될 수도 있다. 마법사는 .ifwiz 확장자를 갖는 편집 가능한 파일에 있어서, 콘텐츠, 인터페이스, 조건 및 설정을 포함한 마법사에 대한 모든 것을 포함하고 있다. 다만 예외적으로 유일하게 콘텐츠에 삽입된 로컬 미디어는 별도의 내부 저장 폴더에 저장되어 있다. (로컬 미디어는 오직 IfWizard Professional에서만 이용가능하므로 주의한다.)
각 마법사는 오직 자신의 요소에만 액세스 및 사용할 수 있으며, 다른 마법사의 변수, 페이지 및 위젯에 액세스 할 수 없다. 사이드 바에 있는 마법사 탭을 사용하면 마법사에 대해 다음의 다른 설정들을 편집할 수 있다.
Figure 112015026984021-pct00029
마법사 이름(Wizard Title) : 사용하기 쉬운 마법사 이름
Figure 112015026984021-pct00030
시작 페이지(Start Page) : 마법사가 시작했을 때 처음 디스플레이되는 페이지
Figure 112015026984021-pct00031
저자(Author) : 마법사의 설계자(정보제공용)
Figure 112015026984021-pct00032
웹사이트(Website) : 마법사에 대한 설계자 또는 자세한 정보에 대한 링크(정보제공용)
Figure 112015026984021-pct00033
설명(Description) : 마법사의 설명(정보제공용)
5. 페이지(Pages)
사용자가 볼 수 있는 모든 데이터는 페이지에 포함되어 있고, 마법사를 사용하는 것은 기본적으로 일련의 규칙에 따라 하나의 페이지에서 다른 페이지로 탐색하는 과정이다. 각 페이지는 두개의 기본 섹션인 콘텐츠 및 인터페이스로 분할된다. 마법사는 적어도 하나의 페이지를 포함해야 하지만, 페이지 수에는 한계가 정해져있지 않다.
페이지는 사이드 바에 있는 페이지 탭에서 관리한다. 페이지 탭에서 해당되는 행을 클릭하여 페이지를 선택할 수 있고, 해당 콘텐츠와 인터페이스가 메인 영역에 로딩된다. 페이지 행의 제목을 직접 클릭하여 페이지를 변경할 수 있으며, 이와 같은 방법을 통해 메인 영역의 페이지 제목 영역 또한 변경된다. 사이드 바의 생성 버튼으로 새 페이지를 생성하고, 삭제 버튼을 눌러 선택한 페이지를 제거한다.
6. 콘텐츠(Contents)
콘텐츠는 페이지에 디스플레이되는 텍스트와 멀티미디어를 말한다. 페이지는 여러 개의 콘텐츠를 포함하거나 전혀 포함하지 않을 수도 있으며, 콘텐츠의 가시여부(visibility)는 여러 조건에 의해 제어될 수 있다. 콘텐츠는 일반적으로 사용자에게 디스플레이되는 메인 정보이며, 하나 이상의 인터페이스 및 위젯을 수반할 수 있다.
내용을 편집하기 위해, 점선으로 표시된 콘텐츠 영역 내부를 클릭하고 사용자에게 디스플레이 할 정보를 입력하거나 붙여 넣는다. 콘텐츠는 굵기, 중앙 정렬과 IfWizard Professional 버전의 목록 등과 같은 다양한 서식 및 스타일을 포함한다. 서식 메뉴에서 형식 매개 변수에 액세스 할 수 있고, Pages 와 같이 더 복잡한 콘텐츠를 쓰고 싶을 때에는 전용 워드 프로세서를 사용하여 IfWizard에 복사 및 붙여넣기를 할 수 있다.
예를 들어 다음의 버튼으로 콘텐츠에 특별한 기능을 추가할 수 있다.
Insert Link : http 또는 mailto 링크와 같은 원격 리소스에 대해 하이퍼링크를 추가한다. 예를 들어, http://www.domloveskim.com와 같이 URL이 대상이 되고, 레이블은 "our website"와 같이 사용자에게 디스플레이되는 것이다.
Insert Remote Media : 이미지, 오디오 파일 또는 비디오와 같은 원격에 위치한 파일을 인라인으로 디스플레이하기 위해 추가한다. 주의할 것은 이것을 클릭한다고 해서 파일이 다운로드 되거나 로컬로 사용할 수 없다는 것이다. 따라서, 마법사의 사용자는 재생 중에 원격 파일에 액세스 할 수 있어야 한다.
Insert Local Media : 이미지, 오디오 파일 또는 비디오와 같은 로컬 파일을 인라인으로 디스플레이하기 위해 추가한다. 이 파일은 Library/Containers/Application Support/IfWizard/wizard-id에 복사되고, 내보내질 때 마법사에 내장된다.
변수는 콘텐츠 안에 다이내믹 디스플레이(dynamic display)될 수 있다. 이중 중괄호에 변수의 이름을 넣으면 가능하다. 예를 들어, 변수의 이름에 사용자 이름을 넣고 싶다면, {{사용자 이름}}을 입력하여 이를 대체 할 수 있다. 실제는, 다음과 같은 콘텐츠를 갖게 된다.
Welcome, {{사용자 이름}}! Please enter your favorite color.
만약 이전에 사용자 이름이 Kimberly로 설정되었다면, 사용자가 해당 페이지를 탐색하고 콘텐츠를 보면, 다음과 같이 나타날 것이다.
Welcome, Kimberly! Please enter your favorite color.
콘텐츠 추가 버튼을 눌러 새로운 콘텐츠를 추가할 수 있다. 삭제 버튼을 눌러 콘텐츠를 삭제할 수 있으며, 삭제 버튼은 원 안에 "x" 로 있는 모양이다. 콘텐츠는 주 영역에 표시되는 순서대로 디스플레이 된다. 콘텐츠 순서를 바꾸기 위해서 화살표 버튼을 눌러 위아래로 이동시킨다.
7. 사용자 인터페이스(User Interfaces)
사용자 인터페이스는 페이지의 콘텐츠 다음에 디스플레이된다. 인터페이스는 위젯과 결과(result)들을 통해 사용자 상호작용을 제공한다. 페이지는 여러 개의 인터페이스를 포함하거나 전혀 포함하지 않을 수도 있으며, 인터페이스의 가시여부(visibility)는 여러 조건에 의해 제어될 수 있다.
인터페이스 추가 버튼(Add interface)을 눌러 새로운 인터페이스를 추가할 수 있다. 삭제 버튼을 눌러 인터페이스를 삭제할 수 있으며, 삭제 버튼은 원 안에 "x" 로 있는 모양이다. 인터페이스는 메인 영역에 표시되는 순서대로 디스플레이된다. 인터페이스의 순서를 바꾸기 위해서 화살표 버튼을 눌러 위아래로 이동시킨다.
8. 변수(Variables)
변수는 마법사의 지정된 부분으로 사용자가 마법사를 실행하여 변경할 수 있는 값을 보유하고 있다. 예를 들어, 사용자 이름, 주소 및 전화번호와 같은 것을 위한 변수를 가질 수 있고, 사용자는 위젯을 통해 그것들의 값을 해당 변수에 입력한다. 변수는 조건 테스트나 입력과 새로운 값을 저장하는 액션에 사용될 수 있다. 변수는 {{foobar}}와 같이 이중 중괄호 사이에 변수 이름을 입력하여 콘텐츠에 삽입할 수 있다.
변수는 사이드바에 있는 변수 탭에서 관리한다. 사이드바 생성 버튼은 새로운 페이지를 생성하고, 삭제 버튼은 선택된 페이지를 삭제한다. 변수 이름을 직접 클릭하면 변수이름을 변경할 수 있다. 등호 기호의 오른쪽에 있는 입력 상자를 클릭하면 변수의 초기값을 설정할 수 있다. 예를 들어, 카운터라는 변수에 "0"을 설정할 수 있다.
변수 값은 마법사가 동작하는 동안 변하지 않는다. 즉, 변수를 상수처럼 사용할 수 있다. 좀더 복잡한 마법사에서, 액션(action)들의 순서에 사용하기 위해 몇 가지 "일시적(temporary)"변수를 사용할 수 있다. 텍스트 또는 수학 연산 중에 중간 값을 저장하는데 이 일시적 변수를 유용하게 사용할 수 있다.
9. 조건(Conditions)
조건은 마법사의 일부를 선택적으로 보여주거나 수행할 수 있도록 해주는 IfWizard의 중요한 기능이다. 조건은 콘텐츠, 사용자 인터페이스 및 결과에 대해 사용할 수 있다. 요소가 처리될 때 요소(element)에 조건이 있다면, 조건에 통과되는 경우에만 요소가 보여지거나 수행된다. 바람직하게는, 영역에 나열된 것들의 순서대로 이루어지는데, 만약 첫 번째 인터페이스인 "Interface 1" 이 해당 액션(action)에 따라 변수 값을 변경하고, 두 번째 인터페이스인 "Interface 2"가 조건에 따라 같은 변수를 체크한다면 "Interface 1" 에서의 새로운 변수 값을 사용한다. 만약 하나 이상의 조건이 체크된다면, 조건을 모두 통과해야지만 보여지거나 수행된다.
조건은 조건 추가 버튼을 눌러 생성한다. 삭제 버튼을 눌러 조건을 삭제할 수 있으며, 삭제 버튼은 원 안에 "x" 로 있는 모양이다. 조건은 메인 영역에 리스트된 순서대로 실행된다.
조건은 여러 파트를 포함한다. 조건의 첫 번째 부분은 결과가 참 또는 거짓인지의 확인여부를 결정한다.
If : 결과가 참일 때 조건이 통과된다.
If not : 결과가 거짓일 때 조건이 통과한다.
처음 값의 유형은 다음으로부터 특정된다 :
변수(variable) : 값은 변수에서 값이 나온다.
상수(constant) : 값은 조건의 일부로 입력한 리터럴 값에서 나온다.
위젯(widget) : 값은 조건을 포함하는 사용자 인터페이스의 위젯에서 온다.(단 조건 결과)
그러고 나서 값 자체는 상수를 입력하는 빈 칸에 입력되거나 변수 또는 위젯을 선택함으로써 입력된다. 위젯의 경우에는, 메인 영역에 리스트된 순서대로 나열되고 라벨의 첫 번째 부분이 도시된다. 위젯과 변수의 경우, 빈 값을 반환하는 "-none-"이 선택될 수도 있다. 변수나 위젯을 삭제하는 경우, 그에 따른 조건은 자동적으로 "-none-"으로 설정된다.
조건의 키 설정(key setting)은 조건 자체 일 수 있으며, 다음 중 임의의 것일 수 있다. (모든 비교문은 대소문자를 구분한다.)
Contains : value 1 이 value 2를 포함하는지를 테스트 하는 것이다. 예를 들면 아래와 같다.
value1 = "Dom Loves Kim", value2 = "Loves" → true
value1 = "Dom Loves Kim", value2 = "Lampshade" → false
만약 value가 숫자라면, 숫자는 텍스트와 같이 처리된다. 예를 들면 아래와 같다.
value1 = 12345, value2 = 234 → true
ends with : value 1 이 value 2로 끝나는지 여부를 테스트한다. 예를 들면 아래와 같다.
value1 = "Dom Loves Kim", value2 = "Dom" → false
value1 = "Dom Loves Kim", value2 = "Kim" → true
만약 value가 숫자라면, 숫자는 텍스트와 같이 처리된다. 예를 들면 아래와 같다.
equals : value 1 이 value 2와 같은지 여부를 테스트한다. 예를 들면 아래와 같다.
value1 = "Dom Loves Kim", value2 = "Dom" → false
value1 = "Dom Loves Kim", value2 = "Dom Loves Kim" → true
value1 = 434.2, value2 = 434.2 → true
lest than : value 1 이 value 2보다 작은지 여부를 테스트한다. 만약 value 들이 둘 다 텍스트라면, 비교문은 알파벳 순서로 "a"가 "b"보다 작고 "A"가 "a"보다 작은 순서로 진행된다. 그 외에 경우에는, value에 있는 숫자들만 사용된다. (예를 들면 "123abc"는 123으로 변환된다.) 예를 들면 아래와 같다.
value1 = 9, value2 = 6 → false
value1 = 6, value2 = 6 → false
value1 = 6, value2 = 9 → true
value1 = "Dom", value2 = "Kim" → true
less than or equal : value 1 이 value 2보다 작거나 같은지 여부를 테스트한다. 만약 value 들이 둘 다 텍스트라면, 비교문은 알파벳 순서로 "a"가 "b"보다 작고 "A"가 "a"보다 작은 순서로 진행된다. 그 외에 경우에는, value에 있는 숫자들만 사용된다. (예를 들면 "123abc"는 123으로 변환된다.) 예를 들면 아래와 같다.
value1 = 9, value2 = 6 → false
value1 = 6, value2 = 6 → true
value1 = 6, value2 = 9 → true
value1 = "Dom", value2 = "Kim" → true
more than : value 1 이 value 2보다 큰지 여부를 테스트한다. 만약 value 들이 둘 다 텍스트라면, 비교문은 알파벳 순서로 "b"가 "a"보다 크고 "a"가 "A"보다 큰 순서로 진행된다. 그 외에 경우에는, value에 있는 숫자들만 사용된다. (예를 들면 "123abc"는 123으로 변환된다.) 예를 들면 아래와 같다.
value1 = 9, value2 = 6 → true
value1 = 6, value2 = 6 → false
value1 = 6, value2 = 9 → false
value1 = "Dom", value2 = "Kim" → false
more than or equals : value 1 이 value 2 보다 크거나 같은지 여부를 테스트한다. 만약 value 들이 둘 다 텍스트라면, 비교문은 알파벳 순서로 "b"가 "a"보다 크고 "a"가 "A"보다 큰 순서로 진행된다. 그 외에 경우에는, value에 있는 숫자들만 사용된다. (예를 들면 "123abc"는 123으로 변환된다.) 예를 들면 아래와 같다.
value1 = 9, value2 = 6 → true
value1 = 6, value2 = 6 → true
value1 = 6, value2 = 9 → false
value1 = "Dom", value2 = "Kim" → false
pattern matches : value 1 이 value 2 의 펄 스타일(Perl-style) 일반적인 표현을 포함하고 있는지 여부를 테스트한다. 예를 들면 아래와 같다.
value1 = "Dom Loves Kim", value2 = "[a-z]+" → true
value1 = "Dom Loves Kim", value2 = "[0-9]+" → false
starts with : value 1 이 value 2로 끝나는지 여부를 체크한다. 예를 들면 아래와 같다.
value1 = "Dom Loves Kim", value2 = "Dom" → true
value1 = "Dom Loves Kim", value2 = "Kim" → false
만약 value가 숫자라면, 숫자는 텍스트와 같이 처리된다.
그 후 조건은 두 번째 변수, 상수 또는 위젯의 유형과 값을 따른다. 동시에, 이러한 설정으로 테스트는 조건이 통과해야하는 것이란 것을 알 수 있다.
10. 위젯(Widgets)
인터페이스는 하나 이상의 위젯을 포함할 수 있다. 각각의 위젯은 인터페이스의 일부로서 사용자에게 디스플레이 되는 사용자 상호 작용 제어(control)를 나타낸다. 사용자에 의해 주어진 위젯의 선택과 입력은 같은 페이지에 있는 조건과 action에서 이용할 수 있다. 위젯 값은 action의 일부로서 변수에 저장될 수 있고 임의의 페이지에 의해 액세스 될 수 있지만 다른 페이지에 사용될 수 없다. 도 9와 같이 위젯은 일반적인 기본 스타일(default style)로 디스플레이 될 수 있다. 위젯의 모양을 사용자 지정하고 싶다면, 마법사의 스타일링을 사용자 정의 할 수 있다.
위젯 추가 버튼을 이용해 위젯을 추가할 수 있으며, 위젯 디스플레이 상단에 있는 작은 버튼을 눌러 재배열 또는 삭제 할 수 있다. 각 위젯은 위젯 타입과 라벨을 가진다. "Your name:"과 같이 라벨은 위젯 옆에 디스플레이된다. 앞서 설명한 바와 같이 위젯 컨트롤(widget control)의 여러 예는 도 9에 도시되어 있다. 위젯은 다음과 같은 사항을 포함할 수 있지만, 이로 제한되지 않는다. (다시, 관련된 텍스트로 도 9를 참조한다.)
버튼(Button) : 버튼을 누르면, 페이지의 결과가 처리된다. 목적 페이지의 결과가 도시되어 있지만 위젯 버튼이 표시되지 않은 경우, 디폴트인 "Continue" 버튼이 디스플레이된다. 버튼이 클릭되면 위젯의 값은 버튼의 클릭 값으로 설정된다. 다른 위젯과 달리 라벨은 버튼의 텍스트로서 사용된다.
체크박스(Checkbox) : 체크 박스는 on/off 전환을 할 수 있는 간단한 컨트롤러이다. (toggling) 만약 체크 박스가 토글 on이 되면 (예를 들어 체크되면), 위젯의 값은 확인 값(checked value)로 설정된다. 만약 체크 박스가 off 되면 , 위젯의 값은 확인되지 않은 값(unchecked value)으로 설정된다.
드롭 다운(Drop down) : 드롭 다운 컨트롤은 사용자가 여러 옵션 중 하나를 선택할 수 있도록 한다. 시작 버튼을 눌러 옵션을 만들 수 있다. 각 옵션은 사용자에게 디스플레이되는 라벨을 가지고 있고, 옵션 라벨로 에디터에 나타난다. 각 옵션은 선택된 경우 위젯에 설정된 값을 갖고, 이것은 선택된 값이다.
텍스트 영역(Text area) : 텍스트 영역 컨트롤은 사용자가 입력으로 장문의 텍스트를 입력할 수 있도록 한다. 텍스트는 여러 줄을 가질 수 있으며, 입력 키를 누르면 새로운 줄이 생성된다. 위젯 값은 사용자가 입력한 텍스트이다.
텍스트 필드(Text field) : 텍스트 필드는 사용자가 하나의 라인 상에 적은 양의 텍스트를 입력할 수 있도록 한다. 위젯 값은 사용자가 입력한 값이다.
다중 선택 (Multiple choice) : 다중 선택 컨트롤은 사용자가 여러 옵션 중 하나를 선택할 수 있게 한다. 별 버튼을 눌러 옵션을 만들 수 있다. 각 옵션은 사용자에게 디스플레이 되는 라벨을 가지고 있고, 옵션 라벨로 에디터에 나타난다. 각 옵션은 선택된 위젯의 설정된 값을 갖고, 이것은 선택된 값이다.
11. 결과(Results)
하나의 인터페이스는 하나 이상의 결과(result)들을 가질 수 있다. 결과(result)들은 탐색(navigation)을 제어하고 액션(action)들이 수행될 수 있도록 한다. 페이지에 있는 버튼을 누르면, 인터페이스와 결과(result)들이 조건을 통과한 첫 번째 결과(result)의 작업이 수행된다. 결과(Result)가 목적 페이지가 있는 경우, 마법사는 자신의 조건을 통과하더라도 나중의 결과(result)들의 추가 작업을 수행하지 않고 해당 페이지로 이동한다.
액션(action)은 숫자를 요구하는데 텍스트 값이 전달될 때, 숫자가 아닌 모든 문자를 제거하여 숫자로 변환한다. 예를 들어, "a1b2c3"는 123이 된다. 숫자가 없거나 값이 비어있는 경우에는 0의 값으로 처리된다.
액션들(Actions)
각각의 결과(result)는 하나 이상의 액션(action)을 가지고 있어 다양한 기능을 수행할 수 있다. 액션(action)은 일반적으로 변수에 할당 될 수 있는 값을 반환한다. 등호 기호의 왼쪽에 있는 액션(action)의 가장 왼쪽에 있는 설정을 사용하면 변수를 할당할 변수나 결과(result)를 무시하기 위해 "-none-"을 선택 할 수 있다. 등호 기호의 오른쪽은 다음과 같은 유형에서 선택될 수 있는 액션(action)의 유형이며, 변수, 상수 또는 위젯에서 도출된 0에서 3개의 값을 가진다.
Add : value 1과 value 2을 더한다. 두 값 모두 숫자인 경우에는 산술 연산으로 수행되고, 그렇지 않은 경우에는 두 값은 "abc" + "def" = "abcdef" 와 같이 연결된다.
Call Function : 고급 동작인 이것은 텍스트로 value 2를 전달하면서 value 1 에 지정된 자바 스크립트 기능을 수행한다. 함수의 리턴 값이 결과로 주어진다.
Ceiling : value 1의 올림 값을 반환한다.
Divide : value 1을 value 2로 나눈다.
Email : value 1로 모든 변수의 값의 전자메일을 보내도록 생성하고 준비한다. 이 동작에는 반환 값이 없다.
Floor : value 1의 버림 값을 반환한다.
Format Date : value 1의 타임스탬프에서 인간 친화형 날짜와 시간을 반환한다.
Get Date : 현재 타임 스탬프를 반환한다.
Join : value 1과 value 2를 함께 연결하여 결합한다.
Length : value 1의 문자 수를 반환한다.
Lowercase : value 1을 모두 소문자로 변환하여 반환한다.
Maximum : value 1과 value 2중 더 큰 것을 반환한다.
Minimum : value 1과 value 2중 더 작은 것을 반환한다.
Modulo : value 1을 value 2로 나눈 나머지를 반환한다.
Multiply : value 1에 value 2를 곱한다.
Open URL : 별도의 브라우저 차에 value 1에 지정된 URL을 연다. (내보내진(exported) 애플리케이션은, Safari와 같은 기본 응용 프로그램으로 URL을 연다.)
Random : 0.4325와 같은 0과 1 사이의 임의의 실수 값을 반환한다.
Replace : value 3과 함께 value 1에 value 2의 모든 인스턴스를 반환한다. 예를 들어, value 1, 2, 3이 각각 "Dom Loves Kim", "Loves", "Adores" 일 때, "Dom Adores Kim"이 반환된다.
Reverse : value 1 이 반전되어 반환된다. 예를 들어, "abcdef"가 "fedcba"가 된다.
Round : value 1의 반올림된 값을 반환한다. 예를 들어, 1.5는 2가 되고, 1.4999는 1로 반올림된다.
Set : 단순히 value 1을 반환한다. 이는 위젯의 값을 변수에 저장하는 가장 일반적인 방법이다.
Substring : value 2의 문자에서 value 3의 문자까지 value 1의 일부를 돌려준다. 스트링 함수와 마찬가지로 첫 번째 문자의 위치는 1이 아닌 0으로 간주되므로 주의한다.
Subtract : value 1에서 value 2를 뺀다.
Trim : value 1의 시작과 끝에 있는 빈 공간과 같은 "공백"문자를 제거한다.
Upload : 고급 동작인 이것은 쿼리 매개변수로 포함된 각각의 변수와 value 1에 있는 URL을 연다. 현재 페이지의 제목 또한 "_current_page_". 라는 이름의 쿼리 매개 변수로 전달된다. 예를 들어, "Upload Page"라고 타이틀 된 페이지에 있고, "Kim"의 값을 갖는 "name"이라 지명된 변수 하나를 가지고 있으며, value 1이 "http://www.example.org/upload"라면, URL은 http://www.example.org/upload?_current_page_=Upload+Page&name=Kim 이다.
이 작업은 외부 데이터베이스 또는 다른 시스템에 마법사 결과를 출력하기에 적합하다. 이 작업에는 리턴 값이 없다.
Uppercase : value 1을 모두 대문자로 변환하여 반환한다.
12. 마법사 미리보기(Previewing your wizard)
툴바의 마법사 실행 버튼을 누르면 사용자에게 보여질 마법사 내용을 디스플레이하고 마법사의 기능을 테스트 할 수 있도록 미리보기 모드로 전환된다. 마법사 미리보기에 외부 연결(external link)은 무시된다. 마법사 미리보기에서 에디터 화면에 메인 페이지로 돌아갈 수 있는 버튼이 사라진 경우, File→Reload Editor을 선택하여 에디터를 다시 로드 할 수 있다. 마법사를 미리보기하거나 마법사를 확장하면서 일부 사용자 지정 스타일을 사용할 수 없음을 유의한다.
13, 마법사 내보내기(Exporting your wizard)
마법사를 만든 후에는 웹 페이지 또는 데스크탑 응용 프로그램에 내보낼 수 있다. (IfWizard Professional 만) 마법사를 내보내기 위해서 wizard 내보내기 버튼을 누르면, 다음 옵션과 같은 내보내기 유형(export type)을 선택할 수 있다.
폴더로 저장(Save to Folder)
(IfWizard Professional 만 가능) 이 내보내기 유형은 마법사를 파일의 집합으로 특정폴더에 저장한다. index.html 파일은 웹 브라우저를 열어 마법사를 볼 수 있다. 내보내진 파일과 이를 사용자 정의하거나 통합하는 방법에 대한 자세한 내용은 사용자 정의 부분을 참조한다.
폴더에 저장(Save at Folder) : 내보내진 파일을 저장하기 위한 폴더
FTP 에 업로드( Upload to FTP ) : FTP 서버의 위치로 직접 보낸 파일을 저장한다.
FTP 서버 : FTP 서버의 IP 주소의 호스트 이름. 예를 들어 "ftp.example.com".
Remote Path : 업로드 할 수 있는 옵션 디렉토리 경로. 예를 들어 "/html/mysite/".
사용자이름(Username) : FTP 사용자의 로그인. 예를 들어, "mysiteuser".
비밀번호(Password) : FTP 사용자의 비밀번호.
Create Mac OS Application :
(IfWizard Professional 만 가능) 이 내보내기 유형은 마법사 실행 창을 디스플레이 하는 Mac OS X 응용 프로그램으로 마법사를 저장한다. 응용 프로그램은 응용프로그램의 내용(Contents)/리소스(Resources)/콘텐츠 폴더 안에 마법사 정보를 포함한다.
폴더에 저장 : 응용프로그램을 저장할 폴더.
응용프로그램 제목 : Finder와 응용 프로그램 자체 양쪽 모두에서 보여지는 새로 만들어진 응용 프로그램의 제목이다.
Email Zipped File
(IfWizard Professional만 가능) 이 내보내기 유형은 압축된 Zip 파일내에 포함된 다음 이메일로 전송되는 파일의 집합으로 마법사를 저장한다. 마법사를 보기 위해 웹 브라우저를 사용하여 포함된 index.html 파일을 열어야 한다. 이메일이 발송되면, 압축을 풀고 파일을 수정하거나 서버에 업로드 할 수 있다. 내보내진 파일과 이를 사용자 정의하거나 통합하는 방법에 대한 자세한 내용은 사용자 정의 부분을 참조한다.
이메일 주소 : 압축 파일을 이메일로 전송할 이메일 주소를 말한다.
14. 사용자 정의 마법사
마법사를 내보낼 때, 여러 파일들이 생성되어 그 결과들을 사용자정의(customize)하기 위해 수정될 수 있다. 내보내기 부분에서 언급한 바와 같이, 통합 가능성이 다를 수 있지만 사용자 정의는 웹 사이트 뿐만 아니라 데스크톱 응용 프로그램에서도 이루어질 수 있다. 사용자 정의는 Javascript 또는 스타일 시트 같은 다른 기술에 대한 이해를 포함하는 고급 주제이다.
내보내기가 같은 위치에서 이루어졌다면, 이전에 내보내진 모든 파일에 덮어씌워질 수 있다는 점을 주의하여야 한다. 마법사를 편집하는 동안 쉽게 사용자 정의를 유지하기 위해 마법사를 두 번 내보낼 수 있고, 에디터에 의해 생성된 세부 사항을 포함한 새로 내보내진 wizard-data.js 파일을 복사할 수 있다.
스타일
마법사의 모양을 변경하기 위해 CSS(Cascading Style Sheets)를 사용하여 basic.css 파일을 수정할 수 있다. 다음 요소 클래스가 사용된다.
if-wizard : 전체 마법사에 적용.
if-wizard-page: 현재 페이지에 적용.
if-wizard-content-container: 콘텐츠의 전체 구간에 적용.
if-wizard-content: 특정 콘텐츠에 적용.
if-wizard-ui-container: 사용자 인터페이스의 전체 구간에 적용.
if-wizard-ui: 특정 사용자 인터페이스에 적용.
if-wizard-widget: 특정 위젯에 적용. 위젯에 특정 타입 스타일을 적용하기 위해, html 제어 방식을 사용. 예를 들면 "if-wizard-widget button".
if-wizard-widget-label: 위젯에 라벨을 적용.
if-wizard-widget-inner-label: 체크박스에 라벨을 적용.
if-wizard-widget-control: 체크박스와 같이 위젯의 특정한 컨트롤을 적용.
이러한 클래스 뿐만 아니라, 콘텐츠와 같은 마법사의 각 부분은 "ifwizard-page-wifgyjmqa01i"와 같은 id와 별도의 클래스로 두 요소와 관련된 고유한 ID가 있다. 현재, 에디터 자체에서 이 ID를 결정할 수는 없지만, ID의 요소를 검사하여 발견 할 수 있다. ID는 마법사를 내보낼 때마다 무작위로 생성되지 않지만, 저장된 마법사의 일부이며 편집을 통해 유지된다.
임베딩(Embedding)
마법사를 처음 내보낼 때, Ifwizard는 웹 브라우저 또는 응용 프로그램 윈도우의 내용으로 마법사를 디스플레이하기 위해 매우 간단한 index.html 파일을 만든다. IfWizard는 내보내기에 포함되어 있는 jQuery에 따라 달라진다. 자신만의 jQuery 버전을 사용하고 싶다면, 하나의 버전을 참조하여 index.html에 있는 라인을 교체한다. IfWizard는 어떠한 서버 측 스크립트를 필요로 하지 않으며, 자바 스크팁트를 통해 클라이언트를 실행하여 완전히 독립적이라는 점을 주의한다.
웹 페이지에서 마법사를 임베딩하기 하는 방법은 두가지가 있다. 일반적으로 가장 쉽고 좋은 경로는 별도의 폴더에 마법사를 배치하고, iframe로 마법사를 임베드 하는 것이다. 예를 들면,
<iframe src="wizard/index.html" frameborder="0" width="800" height="600"></iframe> 이다.
이 경우, index.html 파일을 변경할 필요는 없지만, 이것은 직접 연결을 의미하는 것은 아니다.
그 대신에, 자신의 웹 페이지에 wizard-data.js와 wizard.js를 순서대로 포함하고 있는 index.htaml의 일부를 복사할 수 있다. basic.css 뿐만 아니라 이 두 파일을 모두 자유롭게 이름을 바꾸거나 이동시킬 수 있다. 그러나, 콘텐츠에 로컬 미디어를 추가한 경우, 로컬 미디어는 /media 폴더에 있게 되고, 이는 사용자가 액세스하는 페이지와 같은 폴더에 있어야 한다.
마법사의 모든 미디어나 내용을 제공하면서 index.html 파일을 자유롭게 추가 또는 수정할 수 있다. 현재 만약 한 페이지에 한개 이상의 마법사를 사용하고 싶다면, 데이터와 미디어를 분리하기 위해 iframe 방법을 사용하는 것을 적극적으로 추천한다. 내보내진 데스트톱 응용프로그램은 콘텐츠에 포함된 index.html 파일을 로드할 것이며, 이 파일 이름을 바꿀 수 없다는 것을 주의한다.
Scripting
실행이 되면 자바 스크립트 함수를 호출할 수 있는 Call Function action을 통한 스크립팅를 통해 마법사를 확장 할 수 있다. "경고"와 같은 내장된 기능용으로 사용할 수 있지만, 또한 사용자 정의 기능에 액세스하기 위해 사용할 수도 있다. 그렇게 함으로써, 더 큰 웹 응용 프로그램으로 마법사를 통합할 수 있다. 함수에 변수를 전달하는 것과 함수의 결과에 변수를 설정하는 것이 모두 가능하듯, 스크립트를 사용하여 마법사를 확장하는 방법에 상당한 유연성이 있다.
본 발명의 근본적인 원리로부터 벗어나지 않고 전술한 실시예의 세부사항을 변경할 수 있다는 것은 해당 분야 기술자에게 자명하다. 따라서 본 발명의 범위는 다음의 청구 범위에 의해 결정되어야 한다.

Claims (29)

  1. 프로세서에 의한 실행을 위한 컴퓨터 프로그램 코드가 저장된 비-일시적 기계 판독 가능 저장 매체에 있어서,
    상기 컴퓨터 프로그램 코드는 지식 기반 시스템을 구축하기 위한 그래픽 에디터를 포함하며,
    상기 그래픽 에디터는 :
    상기 지식 기반 시스템의 페이지 엔티티들을 구축하도록 구성된 페이지 에디터 컴포넌트를 포함하며,
    각 페이지 엔티티는 하나 이상의 콘텐츠 섹션과 및 하나 이상의 인터페이스 섹션으로만 구성되도록 제한되고, 부모 페이지인 각 페이지는 상기 콘텐츠 섹션들을 자녀 콘텐츠 섹션들로 포함하며, 그리고 상기 부모 페이지와 상기 자녀 콘텐츠 섹션들 사이에서는 양방향 참조가 이용 가능하며, 그래서 상기 부모 페이지로부터 상기 자녀 콘텐츠 섹션들을 그리고 상기 자녀 콘텐츠 섹션들로부터 상기 부모 페이지를 찾도록 하며;
    상기 페이지 엔티티들 중 정확히 하나의 페이지 엔티티는 상기 지식 기반 시스템의 실행이 시작될 때 디스플레이되는 시작 페이지로 지정되며;
    각 콘텐츠 섹션은, 임의의 실행 가능한 요소들 또는 상호작용 요소들 없이, 디스플레이를 위한 콘텐츠의 비-상호작용식 정적 블록들만으로 구성되도록 제한되며;
    각 인터페이스 섹션은 상기 프로세서에 연결된 사용자 인터페이스 기기를 통해 입력 데이터를 획득하기 위해 적어도 하나의 위젯, 그리고 적어도 하나의 인터페이스 결과 엔티티를 포함하며;
    상기 위젯은 미리 정의된 위젯들의 세트로부터 선택 가능하여, 상기 위젯들은 단순한 그래픽 사용자 인터페이스에 의해 선택될 수 있으며; 그리고
    상기 인터페이스 결과 엔티티는 (a) 지정된 시작 페이지 이외의 목적지 페이지 및 (b) 0 개 이상의 결과 조건들 중 적어도 하나를 식별하며, 그리고 대응 결과 조건들이 참인 경우에만 수행될 하나 이상의 특정 액션들을 더 식별하는, 저장 매체.
  2. 제1항에 있어서,
    상기 인터페이스 결과 엔티티들 각각은 0 개 이상의 결과액션들을 정의하며,
    상기 결과액션들 각각은 하나 이상의 입력들에 단일의 선택된 액션 메커니즘을 적용하는 것에 기초하여 선택된 출력 변수의 값을 설정하는 것으로 구성되며,
    상기 그래픽 에디터는 선택된 변수, 상수, 그리고 위젯에 의해 획득된 입력 값으로 구성된 제한된 선택 세트로부터 입력을 선택할 수 있게 하는 그래픽 사용자 인터페이스를 구현하며,
    상기 선택된 변수는 지식 기반 시스템의 독점적인 로컬 제어하에 있는 사전 정의된 변수 세트에서 선택되는, 저장 매체.
  3. 제2항에 있어서,
    상기 결과액션은 상기 지식 기반 시스템의 실행 중에 호출될 때, 변수 설정, 외부 문서 열람, 다른 서버로 데이터를 업로드, 상기 그래픽 에디터에 연결된 컨테이너 통합 서브시스템을 통해 컨테이터와 통합 중 하나 이상을 포함하는 미리 결정된 동작을 실행하도록 구성되는, 저장 매체.
  4. 제1항에 있어서,
    각 결과액션은 옵션으로 하나 이상의 결과 조건들과 연관되며, 연관된 결과 조건들이 모두 충족되는 경우에만 대응 결과액션이 실행되며,
    상기 그래픽 에디터는 미리 정해진 조건 메커니즘 세트로부터 각 결과 조건의 선택을 가능하게 하는 그래픽 사용자 인터페이스를 포함하는, 저장 매체.
  5. 제1항에 있어서,
    상기 컴퓨터 프로그램 코드는 플레이어 컴포넌트를 포함하며,
    상기 플레이어 컴포넌트는 :
    먼저 상기 시작 페이지의 콘텐츠 섹션을 디스플레이하고;
    그 다음 상기 위젯을 포함하는 상기 시작 페이지의 인터페이스 섹션을 디스플레이하며;
    상기 위젯을 사용하여, 상기 사용자 인터페이스 기기를 통해 입력 데이터를 획득하며;
    상기 획득된 입력 데이터 및 상기 인터페이스 섹션의 인터페이스 결과 엔티티에 기초하여, 대응 목적지 페이지를 탐색하며(navigating); 그리고
    실행 중에 한번에 상기 지식 기반 시스템의 정확히 하나의 페이지가 디스플레이되도록, 상기 목적지 페이지의 콘텐츠 섹션을 디스플레이하는 것부터 시작하여, 먼저 콘텐츠 섹션을 디스플레이하고, 그 다음 인터페이스 섹션을 디스플레이하며, 상기 위젯을 사용하며, 그리고 대응 목적지 페이지를 탐색하는 것을 반복하도록 구성되는, 저장 매체.
  6. 제5항에 있어서,
    상기 플레이어 컴포넌트는 :
    먼저 상기 시작 페이지로 이동하며;
    상기 디스플레이 스크린에 상기 시작 페이지의 콘텐츠 섹션을 조건적으로 디스플레이하며;
    사용자 상호작용을 위해 해당 위젯을 호출하는 것을 포함하여, 상기 시작 페이지의 인터페이스 섹션을 상기 디스플레이 스크린에 조건적으로 디스플레이하며;
    상기 위젯과의 사용자 상호작용에 기초하여 상기 인터페이스 섹션의 해당 결과들을 조건적으로 실행하며;
    상기 결과와 연관된 목적지 페이지로 이동하며; 그리고
    상기 목적지 페이지를 이용하여 다음 단계들을 반복한 다음, 종료 조건이 도달될 때까지, 먼저 상기 시작 페이지로 이동하며, 상기 시작 페이지의 콘텐츠 섹션을 조건적으로 디스플레이하며, 상기 시작 페이지의 인터페이스 섹션을 조건적으로 디스플레이하며, 상기 인터페이스 섹션의 해당 결과들을 조건적으로 실행하며, 상기 결과와 연관된 목적지 페이지로 이동하는 것을 실행하는 후속 목적지 페이지들로의 순환을 계속하도록 더 구성되는, 저장 매체.
  7. 제1항에 있어서,
    페이지 엔티티는 저장된 변수에 대한 값을 콘텐츠 섹션에 저장하는, 저장 매체.
  8. 제1항에 있어서,
    상기 결과 엔티티는, 상기 지식 기반 시스템의 실행 중에 호출될 때 적어도 하나의 저장된 변수에 값을 할당하는 0 개 이상의 연관 결과액션들을 포함하는, 저장 매체.
  9. 제1항에 있어서,
    상기 페이지 에디터 컴포넌트는 콘텐츠, 사용자 인터페이스 또는 결과에 대한 조건을 제공하도록 조정되며,
    특정 콘텐츠들/인터페이스들의 디스플레이 또는 결과액션들의 실행은 각각 대응 테스트를 조건으로 하는, 저장 매체.
  10. 제9항에 있어서,
    조건은 선택된 연산을 선택된 피연산자에 적용함으로써 대응 참값(truth value)을 결정하며,
    상기 피연산자는 상기 저장된 변수들, 상수 문자(constant literal), 또는 위젯에 대한 입력 값 중 하나를 포함하는, 저장 매체.
  11. 제10항에 있어서,
    상기 선택된 연산은 "패턴 매치(pattern matches)", "이상(more than or equals)", "초과(more than)", "이하(less than or equals)", "미만(less than)", "~로 끝나는(ends with~)", "포함(contains)", "동일(equals)" 및 전술한 것 각각에 대한 부정 결과(negated result)를 포함하는 연산 세트 중 하나인, 저장 매체.
  12. 프로세서에 의한 실행을 위한 컴퓨터 프로그램 코드가 저장된 비-일시적 기계 판독 가능 저장 매체에 있어서,
    상기 컴퓨터 프로그램 코드는 :
    지식 기반 시스템을 구축하기 위한 그래픽 에디터; 및
    추론 엔진을 포함하는 플레이어 컴포넌트를 포함하며,
    상기 그래픽 에디터는 상기 지식 기반 시스템의 페이지 엔티티들을 구축하도록 구성된 페이지 에디터 컴포넌트를 포함하며,
    각 페이지 엔티티는 하나 이상의 콘텐츠 섹션과 및 하나 이상의 인터페이스 섹션으로만 구성되도록 제한되고, 부모 페이지인 각 페이지는 상기 콘텐츠 섹션들을 자녀 콘텐츠 섹션들로 포함하며, 그리고 상기 부모 페이지와 상기 자녀 콘텐츠 섹션들 사이에서는 양방향 참조가 이용 가능하며, 그래서 상기 부모 페이지로부터 상기 자녀 콘텐츠 섹션들을 그리고 상기 자녀 콘텐츠 섹션들로부터 상기 부모 페이지를 찾도록 하며,
    상기 페이지 엔티티들 중 정확히 하나의 페이지 엔티티는 상기 지식 기반 시스템의 실행이 시작될 때 디스플레이되는 시작 페이지로 지정되며,
    각 콘텐츠 섹션은, 임의의 실행 가능한 요소들 또는 상호작용 요소들 없이, 디스플레이를 위한 콘텐츠의 비-상호작용식 정적 블록들만으로 구성되도록 제한되며,
    각 인터페이스 섹션은 상기 프로세서에 연결된 사용자 인터페이스 기기를 통해 입력 데이터를 획득하기 위한 적어도 하나의 위젯, 그리고 적어도 하나의 인터페이스 결과 엔티티로 구성되며,
    상기 위젯은 단순한 그래픽 사용자 인터페이스를 통해 미리 정의된 위젯들의 세트로부터 선택 가능하며,
    상기 인터페이스 결과 엔티티들 중 정확히 하나의 인터페이스 결과 엔티티는 상기 지정된 시작 페이지 이외의 페이지 엔티티들 중 정확히 하나의 페이지 엔티티를 대응하는 목적지 페이지로 식별하는, 저장 매체.
  13. 삭제
  14. 삭제
  15. 삭제
  16. 삭제
  17. 삭제
  18. 삭제
  19. 삭제
  20. 삭제
  21. 삭제
  22. 삭제
  23. 삭제
  24. 삭제
  25. 삭제
  26. 삭제
  27. 삭제
  28. 삭제
  29. 삭제
KR1020157007009A 2012-09-20 2013-08-29 간략화된 지식공학 방법 및 시스템 KR102016161B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201261703270P 2012-09-20 2012-09-20
US61/703,270 2012-09-20
PCT/US2013/057379 WO2014046861A2 (en) 2012-09-20 2013-08-29 Method and system for simplified knowledge engineering

Publications (2)

Publication Number Publication Date
KR20150058237A KR20150058237A (ko) 2015-05-28
KR102016161B1 true KR102016161B1 (ko) 2019-08-29

Family

ID=50275501

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020157007009A KR102016161B1 (ko) 2012-09-20 2013-08-29 간략화된 지식공학 방법 및 시스템

Country Status (9)

Country Link
US (1) US10068172B2 (ko)
KR (1) KR102016161B1 (ko)
CN (2) CN109583591A (ko)
BR (1) BR112015006336B1 (ko)
GB (1) GB2521567A (ko)
IN (1) IN2015KN00491A (ko)
MX (1) MX2015003376A (ko)
SG (2) SG10201702093PA (ko)
WO (1) WO2014046861A2 (ko)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109583591A (zh) * 2012-09-20 2019-04-05 伊夫维泽德公司 用于简化的知识工程的方法与系统
CN104965780A (zh) * 2015-06-04 2015-10-07 北京奇虎科技有限公司 数据处理方法与系统
US10534828B2 (en) * 2016-08-12 2020-01-14 Kiddy Up LLC System and method for collection and storage of community information
US11769062B2 (en) * 2016-12-07 2023-09-26 Charles Northrup Thing machine systems and methods
US11138270B2 (en) * 2017-05-12 2021-10-05 Elumus, LLC Business software platform and kiosk
US10762301B1 (en) * 2018-09-04 2020-09-01 Michael Dudley Johnson Methods and systems for generating linguistic rules
CN109358844A (zh) * 2018-09-30 2019-02-19 仝瑞麟 程序执行方法及装置
CN110632878B (zh) * 2019-10-08 2022-06-28 上海宝阶智能科技有限公司 一种异构嵌入式表格化处理及执行动作流程的方法和装置
CN111522291A (zh) * 2020-04-28 2020-08-11 同方泰德国际科技(北京)有限公司 一种可编程控制方法及可编程控制器
US11307881B1 (en) * 2020-11-11 2022-04-19 Adobe Inc. Systems for generating suggestions with knowledge graph embedding vectors
CN115412452A (zh) * 2022-08-19 2022-11-29 浪潮思科网络科技有限公司 一种基于物理层Fabric场景的配置导航方法、设备及介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110161941A1 (en) * 2009-12-29 2011-06-30 Microgen Plc Creation of form-based applications

Family Cites Families (46)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4658370A (en) * 1984-06-07 1987-04-14 Teknowledge, Inc. Knowledge engineering tool
US4885705A (en) * 1988-02-25 1989-12-05 Eastman Kodak Company Expert system shell for building photofinishing diagnostic systems
US4972328A (en) * 1988-12-16 1990-11-20 Bull Hn Information Systems Inc. Interactive knowledge base end user interface driven maintenance and acquisition system
US5259766A (en) * 1991-12-13 1993-11-09 Educational Testing Service Method and system for interactive computer science testing, anaylsis and feedback
US5644686A (en) * 1994-04-29 1997-07-01 International Business Machines Corporation Expert system and method employing hierarchical knowledge base, and interactive multimedia/hypermedia applications
WO1996015505A2 (en) * 1994-11-08 1996-05-23 Vermeer Technologies, Inc. An online service development tool with fee setting capabilities
US5673369A (en) * 1995-03-02 1997-09-30 International Business Machines Corporation Authoring knowledge-based systems using interactive directed graphs
US5701400A (en) * 1995-03-08 1997-12-23 Amado; Carlos Armando Method and apparatus for applying if-then-else rules to data sets in a relational data base and generating from the results of application of said rules a database of diagnostics linked to said data sets to aid executive analysis of financial data
US5802255A (en) * 1995-06-23 1998-09-01 The United States Of America As Represented By The Administrator Of The National Aeronautics And Space Administration System and method for creating expert systems
US7003528B2 (en) * 1998-02-13 2006-02-21 3565 Acquisition, Llc Method and system for web management
US6542880B2 (en) * 1998-12-22 2003-04-01 Indeliq, Inc. System, method and article of manufacture for a goal based system utilizing a table based architecture
US6611822B1 (en) * 1999-05-05 2003-08-26 Ac Properties B.V. System method and article of manufacture for creating collaborative application sharing
EP1185964A1 (en) * 1999-05-05 2002-03-13 Accenture Properties (2) B.V. System, method and article of manufacture for creating collaborative simulations with multiple roles for a single student
US7181438B1 (en) * 1999-07-21 2007-02-20 Alberti Anemometer, Llc Database access system
US7020697B1 (en) * 1999-10-01 2006-03-28 Accenture Llp Architectures for netcentric computing systems
US6311194B1 (en) * 2000-03-15 2001-10-30 Taalee, Inc. System and method for creating a semantic web and its applications in browsing, searching, profiling, personalization and advertising
US8321356B2 (en) * 2000-05-18 2012-11-27 United Parcel Service Of America, Inc. System and method for calculating real-time costing information
US8725656B1 (en) * 2000-05-18 2014-05-13 United Parcel Service Of America, Inc. Freight rate manager
AU2001275020A1 (en) * 2000-09-21 2002-04-02 Theradoc.Com, Inc. Systems and methods for manipulating medical data via a decision support system
EP1253522A1 (en) * 2001-04-23 2002-10-30 Koninklijke KPN N.V. A knowledge-based system and a method of business modelling and of business process redesign
GB0110326D0 (en) * 2001-04-27 2001-06-20 Ibm Method and apparatus for interoperation between legacy software and screen reader programs
US7094164B2 (en) * 2001-09-12 2006-08-22 Pillar Vision Corporation Trajectory detection and feedback system
US7254528B2 (en) * 2002-05-14 2007-08-07 Sun Microsystems, Inc. Tool for defining verbs and adverbs in a fault injection test creation environment
US7316003B1 (en) * 2002-12-18 2008-01-01 Oracle International Corp. System and method for developing a dynamic web page
US7949957B2 (en) * 2002-12-31 2011-05-24 International Business Machines Corporation Edit selection control
GB0314440D0 (en) * 2003-06-20 2003-07-23 Showbusiness Software Ltd System for facilitating management and organisational development processes
US7107186B2 (en) * 2003-10-31 2006-09-12 Abb Research Ltd. Transformer testing
DE102004028177A1 (de) * 2004-06-04 2005-12-29 Siemens Ag System zum Bedienen einer Anlage durch Editieren von grafischen Objekten
CN1307541C (zh) * 2004-06-17 2007-03-28 威盛电子股份有限公司 产生程序代码的计算机系统及方法
US20070016401A1 (en) * 2004-08-12 2007-01-18 Farzad Ehsani Speech-to-speech translation system with user-modifiable paraphrasing grammars
US20060069995A1 (en) * 2004-09-30 2006-03-30 British Telecommunications Public Limited Company Personalised process automation
US7428520B2 (en) 2004-11-15 2008-09-23 Becton, Dickinson And Company Graphical user interface for use with open expert system
US7343364B2 (en) * 2005-02-04 2008-03-11 Efunds Corporation Rules-based system architecture and systems using the same
US8082539B1 (en) * 2006-12-11 2011-12-20 Parallels Holdings, Ltd. System and method for managing web-based forms and dynamic content of website
US7707508B1 (en) * 2006-12-12 2010-04-27 Adobe Systems Incorporated Methods and apparatus for efficient layout of digital content
US8468244B2 (en) * 2007-01-05 2013-06-18 Digital Doors, Inc. Digital information infrastructure and method for security designated data and with granular data stores
WO2008154042A1 (en) * 2007-06-13 2008-12-18 R-Web, Inc. System and method for the generation, storage and navigation of contextually anchored links
CN100593794C (zh) * 2007-06-13 2010-03-10 北京农业信息技术研究中心 用于农作物生产专家诊断系统的远程控制装置及其方法
US8566353B2 (en) * 2008-06-03 2013-10-22 Google Inc. Web-based system for collaborative generation of interactive videos
CN101833497B (zh) * 2010-03-30 2015-01-21 浪潮电子信息产业股份有限公司 一种基于专家系统方法的计算机故障管理系统
US8689121B2 (en) * 2010-05-06 2014-04-01 Cadence Design Systems, Inc. System and method for management of controls in a graphical user interface
US9180448B2 (en) 2010-07-06 2015-11-10 Becton, Dickinson And Company Method and apparatus for identification of bacteria
CA2812338C (en) * 2010-09-24 2019-08-13 International Business Machines Corporation Lexical answer type confidence estimation and application
US20120317058A1 (en) * 2011-06-13 2012-12-13 Abhulimen Kingsley E Design of computer based risk and safety management system of complex production and multifunctional process facilities-application to fpso's
CN109583591A (zh) * 2012-09-20 2019-04-05 伊夫维泽德公司 用于简化的知识工程的方法与系统
US10120864B2 (en) * 2016-03-29 2018-11-06 Conduent Business Services Llc Method and system for identifying user issues in forum posts based on discourse analysis

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110161941A1 (en) * 2009-12-29 2011-06-30 Microgen Plc Creation of form-based applications

Also Published As

Publication number Publication date
SG10201702093PA (en) 2017-05-30
MX2015003376A (es) 2016-06-24
WO2014046861A3 (en) 2014-06-26
IN2015KN00491A (ko) 2015-07-17
CN104823158B (zh) 2018-11-20
KR20150058237A (ko) 2015-05-28
CN109583591A (zh) 2019-04-05
US10068172B2 (en) 2018-09-04
CN104823158A (zh) 2015-08-05
WO2014046861A2 (en) 2014-03-27
SG11201501846XA (en) 2015-04-29
GB201506415D0 (en) 2015-05-27
US20140081892A1 (en) 2014-03-20
BR112015006336B1 (pt) 2020-01-28
GB2521567A (en) 2015-06-24
BR112015006336A2 (pt) 2017-07-04

Similar Documents

Publication Publication Date Title
KR102016161B1 (ko) 간략화된 지식공학 방법 및 시스템
Rädle et al. Codestrates: Literate computing with webstrates
Galloway et al. Professional ASP. NET MVC 4
Boduch React and react native
Boduch et al. React and React Native: A complete hands-on guide to modern web and mobile development with React. js
Ullman et al. Beginning ajax
US20120221998A1 (en) Screenflow designer with automatically changing view
Cappiello et al. A UI-centric approach for the end-user development of multidevice mashups
KR20110127686A (ko) 리치 웹 사이트 저작 및 디자인
MacDonald Beginning ASP. NET 4 in VB 2010
Kotaru „Angular for Material Design “
Krahn et al. Lively wiki a development environment for creating and sharing active web content
Perkins et al. Beginning C# 7 Programming with Visual Studio 2017
Perkins et al. beginning C# 6 programming with visual studio 2015
de Lange et al. Collaborative wireframing for model-driven web engineering
O'hanlon Advanced TypeScript programming projects: build 9 different apps with TypeScript 3 and JavaScript frameworks such as Angular, React, and Vue
Banavar et al. Tooling and system support for authoring multi-device applications
Firmenich et al. Distributed Web browsing: supporting frequent uses and opportunistic requirements
Boduch et al. React and React Native: Build cross-platform JavaScript applications with native power for the web, desktop, and mobile
Rode et al. An end-user development perspective on state-of-the-art web development tools
Pitt React Components
Casalánguida et al. User interface design for responsive web applications
Van der Westhuizen Bootstrap for ASP. NET MVC
Johnson Training Guide Programming in HTML5 with JavaScript and CSS3 (MCSD)
Manca et al. A Public Tool Suite for Modelling Interactive Applications

Legal Events

Date Code Title Description
A201 Request for examination
AMND Amendment
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
AMND Amendment
X701 Decision to grant (after re-examination)