KR20150058237A - 간략화된 지식공학 방법 및 시스템 - Google Patents
간략화된 지식공학 방법 및 시스템 Download PDFInfo
- Publication number
- KR20150058237A KR20150058237A KR1020157007009A KR20157007009A KR20150058237A KR 20150058237 A KR20150058237 A KR 20150058237A KR 1020157007009 A KR1020157007009 A KR 1020157007009A KR 20157007009 A KR20157007009 A KR 20157007009A KR 20150058237 A KR20150058237 A KR 20150058237A
- Authority
- KR
- South Korea
- Prior art keywords
- page
- content
- wizard
- user interface
- widget
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N5/00—Computing arrangements using knowledge-based models
- G06N5/02—Knowledge representation; Symbolic representation
- G06N5/022—Knowledge engineering; Knowledge acquisition
- G06N5/025—Extracting rules from data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N5/00—Computing arrangements using knowledge-based models
- G06N5/02—Knowledge representation; Symbolic representation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N5/00—Computing arrangements using knowledge-based models
- G06N5/04—Inference or reasoning models
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N7/00—Computing arrangements based on specific mathematical models
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Evolutionary Computation (AREA)
- Computing Systems (AREA)
- Data Mining & Analysis (AREA)
- Mathematical Physics (AREA)
- Artificial Intelligence (AREA)
- Computational Linguistics (AREA)
- Mathematical Analysis (AREA)
- Computational Mathematics (AREA)
- Algebra (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- User Interface Of Digital Computer (AREA)
- Digital Computer Display Output (AREA)
- Stored Programmes (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Human Computer Interaction (AREA)
Abstract
지식 기반 시스템을 관리하고 생성하기 위해 컴퓨터 그래픽 에디터를 사용하여 지식 공학을 위한 시스템 및 방법이 개시되며, 지식 기반 시스템은 조건부 콘텐츠 및 사용자 인터페이스 지식을 갖는 모달 페이지의 가항 그래프를 포함한다. 본 발명으로 컴퓨터 프로그래밍이나 수학적 배경없이 기술적이지 않은 그래픽 환경 내에서 지식공학 작업흐름(workflow)의 전체를 수행할 수 있다. 또한, 모달 페이지와 같은 기술의 표현은 단순한 존재론적 발견(ontological discovery)과 최종 사용자 플레이어 동작(operation)을 허용한다. 편집이 완료되면, 상기 방법은 지식 기반 시스템이 내장된 추론엔진을 포함하는 독립적으로 실행 가능한 지식 기반 시스템 플레이어로 내보내질 수 있도록, 구성되어 있는 페이지의 세트, 변수 및 설정(settings)을 고려한다.
Description
관련출원에 대한 상호 참조
본 출원은 2012년 9월 20일자 미국 임시출원에 대한 정규출원이며, 그 임시출원에 대한 우선권을 함유하며, 그 임시출원의 전체 내용이 본원에 참고로 편입된다.
저작권에 관한 고지
ⓒ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은 본 발명과 일치하는 예시적인 시스템의 기능적 컴포넌트를 도시한 것이다.
도 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의 직관적인 그래픽 인터페이스는 어떠한 프로그래밍이나 기술 경험 없이 전문적인마법사를 만들 수 있으며, 다음을 포함한다.
IfWizard는 수백개의 유용한 기능의 지식 공학에 많은 개선책을 실행한다. 예를 들면 다음과 같다.
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에서만 이용가능하므로 주의한다.)
각 마법사는 오직 자신의 요소에만 액세스 및 사용할 수 있으며, 다른 마법사의 변수, 페이지 및 위젯에 액세스 할 수 없다. 사이드 바에 있는 마법사 탭을 사용하면 마법사에 대해 다음의 다른 설정들을 편집할 수 있다.
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)
- 지식공학을 위한 컴퓨터 프로그램이 저장되어 있는 비-일시적(non-transitory) 기계(machine) 판독 가능 저장매체에 있어서,
상기 컴퓨터 프로그램은, 도메인 지식을 반영하는 모달 페이지들의 세트를 생성하고 구성하는 것을 가능하게 하는 에디터 컴포넌트; 및
사용자와의 상호 작용하고, 그 사용자와의 상호작용에 기초하여 상기 모달 페이지들의 세트 중 정확히 하나씩 조건적으로 디스플레이하도록 배치된 플레이어 컴포넌트;를 포함하는, 비-일시적 기계 판독 가능 저장매체. - 제1항에 있어서,
상기 플레이어 컴포넌트는 추론 엔진을 포함하며 상기 모달 페이지들에 포함된 로직을 실행하기 위해 상기 추론 엔진을 사용하는, 비-일시적 기계 판독 가능 저장매체. - 제1항에 있어서,
에디터 컴포넌트는 가항(navigable) 그래프에 모달 페이지를 배열할 수 있으며, 추론 엔진은 상기 모달 페이지들에서 정의된 것과 같이 사용자와의 상호작용에 반응하여 상기 그래프를 탐색하는, 비-일시적 기계 판독 가능 저장매체. - 제1항에 있어서,
상기 모달 페이지들 중 적어도 하나는 조건부 콘텐츠를 포함하는, 비-일시적 기계 판독 가능 저장매체. - 제1항에 있어서,
상기 에디터 컴포넌트는 상기 모달 페이지들의 세트와 관련된 변수들의 정의, 초기화 및 할당을 더 가능하게 하는, 비-일시적 기계 판독 가능 저장매체. - 제5항에 있어서,
상기 에디터 컴포넌트는 이동이 쉬운 형식(portable format)으로 상기 페이지들의 세트 및 관련된 변수들을 내보내는 것을 더 가능하게 하는, 비-일시적 기계 판독 가능 저장매체. - 제6항에 있어서,
내보내진 상기 페이지들의 세트 및 상기 관련된 변수들은 독립적인, 비-일시적 기계 판독 가능 저장매체. - 제7항에 있어서,
상기 모달 페이지들은 콘텐츠 및 사용자 인터페이스 요소를 포함하는, 비-일시적 기계 판독 가능 저장매체. - 제8항에 있어서,
모달 페이지의 상기 콘텐츠 및 사용자 인터페이스 요소들은 상기 요소와 관련된 조건부의 참값에 기초하여 플레이어 컴포넌트에 의해 조건부로 처리되는, 비-일시적 기계 판독 가능 저장매체. - 제8항에 있어서,
상기 사용자 인터페이스 요소는 사용자 상호 작용 제어들 및 특정한 추론 엔진 액션(action)들을 포함한, 비-일시적 기계 판독 가능 저장매체. - 지식공학을 위한 컴퓨터 프로그램이 저장되어 있는 비-일시적(non-transitory) 기계(machine) 판독 가능 저장매체에 있어서,
상기 컴퓨터 프로그램은 지식 기반 응용 프로그램을 구축하기 위한 그래픽 에디터를 포함하며,
상기 그래픽 에디터는 :
인가된 사용자에게 지식 기반 시스템("wizard")(200)을 선택 가능하도록 처리된 전문가 시스템 관리자 요소(102);
상기 선택된 마법사에 대응하는 변수 목록;
상기 선택된 마법사에 대응하는 페이지 목록;
페이지 에디터 컴포넌트;
테스트 서브시스템; 및
이동이 쉬운 형식(portable format)으로 상기 선택된 마법사를 내보내도록 처리된 내보내기(export) 서브시스템;을 포함하는, 비-일시적 기계 판독 가능 저장매체. - 제11항에 있어서,
상기 페이지 에디터 컴포넌트는 콘텐츠 영역에서 상기 선택된 마법사의 페이지를 생성, 삭제 및 편집할 수 있도록 처리된 사용자 인터페이스를 구현하는, 비-일시적 기계 판독 가능 저장매체. - 제11항에 있어서,
상기 에디터는 사이드바 영역 및 상기 선택된 마법사 편집을 위한 콘텐츠 영역을 디스플레이하는 에디터 인터페이스를 구현하는, 비-일시적 기계 판독 가능 저장매체. - 제13항에 있어서,
상기 디스플레이의 상기 콘텐츠 영역은 상기 선택된 마법사 페이지의 콘텐츠 요소와 사용자 인터페이스 요소를 포함하는, 비-일시적 기계 판독 가능 저장매체. - 제14항에 있어서,
상기 페이지 에디터 컴포넌트는 사용자가 상기 페이지의 상기 사용자 인터페이스 요소에서 위젯 컴포넌트를 추가, 편집 또는 삭제 가능하도록 하고,
상기 위젯 컴포넌트는 적어도 하나의 선택된 사용자 상호 작용 제어(control)를 구현하는, 비-일시적 기계 판독 가능 저장매체. - 제15항에 있어서,
상기 사용자 상호 작용 제어는 버튼, 체크 박스 및 텍스트 영역 중 적어도 하나를 포함하는, 비-일시적 기계 판독 가능 저장매체. - 제14항에 있어서,
상기 콘텐츠 영역은 선택된 텍스트를 포함하도록 편집 가능하고, 상기 선택된 텍스트에서 선택된 변수 값을 포함할 수 있으며,
상기 변수는 상기 선택된 마법사에 대응되는 상기 변수 목록에 포함된 것 중 하나인, 비-일시적 기계 판독 가능 저장매체. - 제14항에 있어서,
상기 사용자 인터페이스는 적어도 하나의 위젯 컴포넌트를 포함하며,
상기 위젯 컴포넌트는 적어도 하나의 선택된 사용자 상호 작용 제어를 구현하는, 비-일시적 기계 판독 가능 저장매체. - 제14항에 있어서,
상기 에디터 모듈은 전적으로 직접 조작 그래픽 사용자 인터페이스를 통해 동작되며, 어떠한 컴퓨터 단말기 조작 또는 프로그램 소스 코드 입력을 필요로 하지 않는, 비-일시적 기계 판독 가능 저장매체. - 제14항에 있어서,
상기 에디터 모듈은 다른 프로그램과는 독립적으로 동작하는, 비-일시적 기계 판독 가능 저장매체. - 지식공학을 구현하는 컴퓨터 프로그램이 저장되어 있는 비-일시적(non-transitory) 기계(machine) 판독 가능한 기록매체에 있어서,
상기 컴퓨터 프로그램은 상기 기계로 하여금 동작들(operations)을 수행하기 위한 일련의 명령어들을 포함하고,
상기 동작들은 :
페이지들의 세트 및 관련된 변수를 포함하는 지식 기반 시스템 데이터 로딩하고;
상기 세트의 현재 페이지에 콘텐츠 요소가 있는지 여부를 확인하고;
상기 현재 페이지에 적어도 하나의 콘텐츠 요소가 있다면, 상기 페이지의 첫 번째 콘텐츠 요소가 관련된 콘텐츠 조건(conditions)들을 구비하는지의 여부를 판단하고;
상기 관련된 콘텐츠 조건들이 모두 충족되는 경우에만 상기 첫 번째 콘텐츠 요소를 디스플레이하고;
상기 현재 페이지에 사용자 인터페이스 요소가 있는지 여부를 확인하고;
상기 현재 페이지에 적어도 하나의 사용자 인터페이스 요소가 있다면, 첫 번째 사용자 인터페이스 요소가 관련된 사용자 인터페이스 조건들을 구비하는지 여부를 판단하고; 그리고
상기 관련된 사용자 인터페이스 조건(414)이 모두 충족되는 경우에만 상기 첫 번째 사용자 인터페이스 요소(416)를 디스플레이하는 것을 포함하는, 비-일시적 기계 판독 가능 저장매체. - 제21항에 있어서,
상기 명령어들의 실행은 상기 기계로 하여금 ,
상기 현재 페이지가 적어도 하나의 사용자 인터페이스 요소를 갖는다면, 상기 첫 번째 사용자 인터페이스 요소가 위젯을 포함하는지 여부를 결정하고;
상기 첫 번째 사용자 인터페이스 요소가 위젯을 포함한 경우, 사용자와의 상호 작용을 위해 상기 위젯을 디스플레이하고; 그리고
상기 위젯과의 사용자 상호 작용의 결과를 기록하는 것을 더 포함하는 동작들(operations)을 수행하도록 하는, 비-일시적 기계 판독 가능 저장매체. - 제21항에 있어서,
상기 명령어들의 실행은 상기 기계로 하여금,
상기 현재 페이지의 콘텐츠 요소가 위젯과 연관된 액션(action)을 포함하는 경우, 상기 사용자 상호 작용에 기초하여 상기 액션(action)을 수행하는 것을 더 포함하는 동작들(operations)을 수행하도록 하는, 비-일시적 기계 판독 가능 저장매체. - 제22항에 있어서,
상기 명령어들의 실행은 상기 기계로 하여금,
상기 위젯과의 상기 사용자 상호 작용에 기초하여 결과(result) 테스트를 실시하고; 그리고
상기 결과(result) 테스트의 결과에 응답하여 탐색(navigation)을 진행하는 것을 더 포함하는 동작들(operations)을 수행하도록 하는, 비-일시적 기계 판독 가능 저장매체. - 제24항에 있어서,
상기 명령어들의 실행은 상기 기계로 하여금,
상기 결과(result) 테스트의 결과와 관련된 목적 페이지(destination page)로 진행하는 것을 더 포함하는 동작들(operations)을 수행하도록 하는, 비-일시적 기계 판독 가능 저장매체. - 제25항에 있어서,
상기 명령어들의 실행은 상기 기계로 하여금,
상기 콘텐츠 요소가 적어도 하나의 콘텐츠 조건(condition)/테스트를 갖는 경우, 하나의 테스트가 적어도 실패할 때 까지 나열된 순서대로 모든 상기 테스트를 수행하는 것을 더 포함하는 동작들(operations)을 수행하도록 하는, 비-일시적 기계 판독 가능 저장매체. - 제21항에 있어서,
상기 명령어들의 실행은 상기 기계로 하여금 ,
상기 사용자 인터페이스 요소가 적어도 하나의 관련된 테스트를 갖는 경우, 하나의 테스트가 적어도 실패할 때 까지 나열된 순서대로 모든 상기 테스트를 수행하는 것을 더 포함하는 동작들(operations)을 수행하도록 하는, 비-일시적 기계 판독 가능 저장매체. - 제21항에 있어서,
상기 콘텐츠들은 관련된 콘텐츠 테스트(206)가 통과될 때에만 디스플레이 되는, 비-일시적 기계 판독 가능 저장매체. - 제28항에 있어서,
상기 관련된 콘텐츠 테스트는,
참/거짓 통과 조건(true/false pass condition);
첫 번째 값의 선택된 유형;
관계 연산자; 및
두 번째 변수;를 포함하고, 그리고
상기 조건 테스트의 통과/실패(pass/fail) 결과는 상기 통과 조건과 상기 관계 연산자를 상기 두 번째 변수의 값에 적용을 기초로 하여 결정되는, 비-일시적 기계 판독 가능 저장매체.
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 true KR20150058237A (ko) | 2015-05-28 |
KR102016161B1 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) | CN104823158B (ko) |
BR (1) | BR112015006336B1 (ko) |
GB (1) | GB2521567A (ko) |
IN (1) | IN2015KN00491A (ko) |
MX (1) | MX2015003376A (ko) |
SG (2) | SG11201501846XA (ko) |
WO (1) | WO2014046861A2 (ko) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
MX2015003376A (es) * | 2012-09-20 | 2016-06-24 | Ifwizard Corp | Metodo y sistema para simplificar ingenieria del conocimiento. |
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 |
EP3552357A4 (en) * | 2016-12-07 | 2020-08-05 | Northrup, Charles | OBJECT-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 (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4972328A (en) * | 1988-12-16 | 1990-11-20 | Bull Hn Information Systems Inc. | Interactive knowledge base end user interface driven maintenance and acquisition system |
US20110161941A1 (en) * | 2009-12-29 | 2011-06-30 | Microgen Plc | Creation of form-based applications |
Family Cites Families (45)
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 |
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 |
CA2204736A1 (en) * | 1994-11-08 | 1996-05-23 | Charles H. Ferguson | 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 |
WO2000067230A1 (en) * | 1999-05-05 | 2000-11-09 | Accenture Properties (2) B.V. | System, method and article of manufacture for creating collaborative simulations with multiple roles for a single student |
US6611822B1 (en) * | 1999-05-05 | 2003-08-26 | Ac Properties B.V. | System method and article of manufacture for creating collaborative application sharing |
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 |
US20080313215A1 (en) * | 2007-06-13 | 2008-12-18 | R-Web, Inc. | System and method for the generation and storage of contextually anchored links and for navigation within information systems based on such 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 |
EP2616974A4 (en) * | 2010-09-24 | 2016-03-02 | Ibm | ESTIMATION AND CONFIDENCE APPLICATION OF LEXICAL TYPE OF RESPONSE |
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 |
MX2015003376A (es) * | 2012-09-20 | 2016-06-24 | Ifwizard Corp | Metodo y sistema para simplificar ingenieria del conocimiento. |
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 |
-
2013
- 2013-08-29 MX MX2015003376A patent/MX2015003376A/es unknown
- 2013-08-29 SG SG11201501846XA patent/SG11201501846XA/en unknown
- 2013-08-29 WO PCT/US2013/057379 patent/WO2014046861A2/en active Application Filing
- 2013-08-29 KR KR1020157007009A patent/KR102016161B1/ko active IP Right Grant
- 2013-08-29 CN CN201380060284.7A patent/CN104823158B/zh active Active
- 2013-08-29 SG SG10201702093PA patent/SG10201702093PA/en unknown
- 2013-08-29 CN CN201811351188.9A patent/CN109583591A/zh active Pending
- 2013-08-29 BR BR112015006336A patent/BR112015006336B1/pt not_active IP Right Cessation
- 2013-08-29 US US14/014,073 patent/US10068172B2/en active Active
- 2013-08-29 GB GB1506415.7A patent/GB2521567A/en not_active Withdrawn
-
2015
- 2015-02-25 IN IN491KON2015 patent/IN2015KN00491A/en unknown
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4972328A (en) * | 1988-12-16 | 1990-11-20 | Bull Hn Information Systems Inc. | Interactive knowledge base end user interface driven maintenance and acquisition system |
US20110161941A1 (en) * | 2009-12-29 | 2011-06-30 | Microgen Plc | Creation of form-based applications |
Also Published As
Publication number | Publication date |
---|---|
US20140081892A1 (en) | 2014-03-20 |
MX2015003376A (es) | 2016-06-24 |
BR112015006336A2 (pt) | 2017-07-04 |
CN109583591A (zh) | 2019-04-05 |
SG10201702093PA (en) | 2017-05-30 |
BR112015006336B1 (pt) | 2020-01-28 |
WO2014046861A2 (en) | 2014-03-27 |
GB2521567A (en) | 2015-06-24 |
IN2015KN00491A (ko) | 2015-07-17 |
US10068172B2 (en) | 2018-09-04 |
KR102016161B1 (ko) | 2019-08-29 |
SG11201501846XA (en) | 2015-04-29 |
GB201506415D0 (en) | 2015-05-27 |
CN104823158B (zh) | 2018-11-20 |
CN104823158A (zh) | 2015-08-05 |
WO2014046861A3 (en) | 2014-06-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102016161B1 (ko) | 간략화된 지식공학 방법 및 시스템 | |
Rädle et al. | Codestrates: Literate computing with webstrates | |
IL257245A (en) | A system for combining the creation of applications for mobile devices, their editing and distribution with a system for building websites | |
Paternò et al. | A unified method for designing interactive systems adaptable to mobile and stationary platforms | |
US20120221998A1 (en) | Screenflow designer with automatically changing view | |
KR20110127686A (ko) | 리치 웹 사이트 저작 및 디자인 | |
JP7373563B2 (ja) | ウェブサイト構築システム用の構成可能なアプリケーションの作成および処理のためのシステムおよび方法 | |
Hillar et al. | Microsoft Sharepoint 2010 Developer's Compendium: The Best of Packt for Extending Sharepoint | |
Lybecait et al. | A tutorial introduction to graphical modeling and metamodeling with CINCO | |
Snell et al. | Microsoft Visual Studio 2012 Unleashed: Micro Visua Studi 2012 Unl_p2 | |
CN109313662B (zh) | 到本机应用体验中的对网页的解构和呈现 | |
Eng | Qt5 C++ GUI Programming Cookbook: Practical recipes for building cross-platform GUI applications, widgets, and animations with Qt 5 | |
Rizzo et al. | Professional SharePoint 2010 Development | |
Au-Yeung | Vue. js 3 By Example: Blueprints to learn Vue web development, full-stack development, and cross-platform development quickly | |
Wellman | jQuery UI 1.7: The User Interface Library for jQuery: The User Interface Library for Jquery | |
Freeman | Pro jQuery 2.0 | |
Banavar et al. | Tooling and system support for authoring multi-device applications | |
Clark et al. | Sencha Touch Mobile JavaScript Framework | |
Firmenich et al. | Distributed Web browsing: supporting frequent uses and opportunistic requirements | |
Niranga | Mobile web performance optimization | |
Rode et al. | An end-user development perspective on state-of-the-art web development tools | |
Pitt | React Components | |
Woodruff | Learning ServiceNow: Administration and development on the Now platform, for powerful IT automation | |
US20240086159A1 (en) | System integrating a mobile device application creation, editing and distribution system with a website design system | |
Casalánguida et al. | User interface design for responsive web 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) |