The present invention relates to an internet-based knowledgebase service website, mainly comprised of a knowledgebase (FAQs, help pages, discussion forums) that is created and maintained by a client (business or institution or individual) and accessible by a user (end-user of the business or patron of the institution or end-user targeted by the individual) using a series of intelligent sorting and search algorithms (query bot, case-insensitive word and phrase search), which in-turn relays usage information through a series of reports back to the client, who is then able to modify the knowledgebase and their website content accordingly.
Business professionals such as store owners, physicians, lawyers, dentists, mechanics, and service providers have many tools and services at their disposal when creating a static website or e-commerce website. In addition educators and other individuals have at their disposal a series of options when creating a website for their students or other target audience. However, these individuals and establishments do not have any readily available means of creating and maintaining any intelligent knowledgebase service online presence themselves if given limited funds and resources. They will typically create a series of FAQs that they determine to be useful and potentially a contact form, to allow end-users to find answers to questions and assist end-users online. This invention allows the individual, establishment, or institution to create and maintain an extensive knowledgebase consisting of FAQs, help pages, and discussion forums (in addition to several supplementary features) using a back-end interface. The back-end information populated by the client is automatically made available to their end-users via a front-end interface created by the aforementioned invention (for the individual, establishment, or institution). The end-users are given several tools to query the knowledgebase in an intelligent manner using natural English, case-insensitive word and phrase searches, and an interactive contact method to directly contact the individual, establishment, or institution should further assistance be needed. Furthermore, the front-end interface serves to transparently provide a detailed level of feedback to the client, available through a series of reports in the backend, that indicates to the client how to best maintain their knowledgebase and website to most effectively serve their end-users.
Automated natural language understanding systems are known. U.S. Pat. No. 5,895,466 to Goldberg, et al. discloses a method implemented by a computer-based querying system that allows an end-user service agent to query a knowledgebase using keyword extraction. The system in Goldberg, however, does not disclose a method for analyzing keywords based on phonetics, but rather based on exact keyword matches and syntactic and semantic similarity alone.
A method and apparatus for information retrieval from a database by replacing domain specific stemmed phases in a natural language to create a search query is known. U.S. Pat. No. 5,265,065 to Turtle discloses a method implemented by a computer-based querying system that builds a query string by removing stop words from the query, and then reducing all remaining words to their basic roots and comparing the resulting query to existing queries in a database. The system in Turtle does not disclose a method for analyzing keywords based on phonetics, but rather based on stop word removal and root words and synonym matching.
FAQ matching systems are also known. U.S. Pat. No. 6,028,601 to Machiraju, et al. discloses a method implemented by a computer-based FAQ system, which matches end-user questions to answers based on a coupling system where similar questions are searched. The system in Machiraju does not disclose a method for using a keyword matching system to phonetically match questions regardless of pre-existing similar questions in the database, and furthermore limits answers to those found in FAQs alone. The aforementioned system also does not disclose a method of dynamically generating a unique key for each FAQ created, which would in turn aid in the matching and searching process.
Another FAQ matching system is also known. U.S. Pat. No. 5,842,221 to Schmonsees discloses a method implemented by a computer-based FAQ interface which stores FAQ question and answer pairs, sorted by pre-defined topics in a database. Schmonsees fails to disclose a method for retrieving and sorting FAQs using a natural language parsing system to directly query FAQ questions, and also fails to disclose a method to automatically email an FAQ question and answer to a third party, a method to ask further questions about a FAQ, or a method to open a print friendly version of a given FAQ.
The present invention relates to an Internet based knowledge system with many discrete features, each of which contributes to maintaining a larger client knowledgebase, made accessible to the client's end-users. The application runs on a remote computer, the remote computer being electronically coupled to the user interface via the Internet. The client accesses the application via the Internet by accessing a predefined URL (Uniform Resource Locator). The client creates an account on the remote computer and is able to log into a back-end system which allows them to create and maintain content that is automatically posted to a front-end website. The front-end website is hosted on the same remote computer and made accessible to the client's users and all other Internet users. All information and content maintained by the client through the back-end and made available to the user on the front-end is stored in a database middle layer, which is electronically coupled to computer software on the front-end and back-end. An application web page server is used to control requests to the server. The application server interacts with a back-end interpreter or compiler that receives requests from the application server to interpret or compile files using information supplied by the client's/user's Internet browser, and any required database interactions are made (dependent on the file being accessed). The compiler/interpreter returns a compiled file, formatted in HTML (Hyper Text Markup Language) which is returned and interpreted by the client's/user's Internet browser. This process is illustrated in
The subheadings used herein are meant only so as to aid the reader and are not meant to be limiting or controlling upon the invention. Generally, the contents of each subheading are readily utilized in the other subheadings.
The Web Server
The software application is accessed via the Internet, a network of electronic signals which in part couples a remote user's computer to a remote server, hosting (running) the software application described here-in. Electronic requests are sent from the user's computer (
Overview
Business owners, professionals (such as doctors, physicians, lawyers, accountants, and veterinarians), and service providers often have very limited resources at their disposal, and cannot afford to devote the required resources to provide a rich online knowledgebase system to their customer base. In addition educators and other individuals do not have at their disposal an intelligent knowledgebase system capable of assisting end-users automatically via the internet. An affordable and often used alternative is a static website with a list of FAQs and a contact form. The present invention, allows the individual, establishment, or institution to easily create and maintain a dynamic, and rich knowledgebase system capable of adapting to future end-user needs using an interactive knowledgebase comprised of FAQs, help pages, and discussion forums.
The back-end system allows the client to optionally create and maintain content, such as custom web pages, news ticker events, downloadable documents, and custom calendar events, in addition to the aforementioned knowledgebase items. The client is also able to customize several front-end features, including the color/style of the front-end website, the query bot name and appearance, the front-end website home page, and the modules (as listed above) accessible to the end-user on the front-end website. The client, at their discretion, can create additional account administrative user accounts in the system, capable of accessing the back-end maintenance modules. Each additional account user created is given a set of permissions, which defines which modules they have access to and is editable by the client.
The front-end system gives the end-user and all other Internet users access to the client's front-end website, and is accessed using a unique Internet URL generated by the system for each client upon account creation.
The client's URL is generated by parsing the client's establishment name (
The end-user can potentially have access to the FAQs, help pages, discussion forums, custom web pages, document download center, a custom calendar, query bot search assistant, case-insensitive word and phrase search, and news and event ticker, dependent on the configuration set up by the client.
Client Categories and Topics
FAQs, help pages, and dictionary words (described below) are all sorted by client defined categories and topics stored in the database. The client can create a limited or unlimited number of categories and topics determined by their account type. Categories and topics are meant to broadly represent or describe subfields and parts of the client's industry type.
A client can create categories and topics using a create/edit category graphical user interface (GUI) web page. To add a new category or topic field, the client clicks the “Add” HTML button. The page reloads with a new HTML text box at the bottom of the page, in which the client types in the new category. To edit an existing category, the client must click the corresponding “Edit” HTML button next to the category/topic text they wish to edit. An editable HTML text box (previously hidden in a HTML DIV layer hidden using JavaScript embedded on the page) with the current category text appears underneath the category text. The client is able to make any changes to the category in the text box. All changes (new categories and edits to existing categories) are saved to the database when the client clicks the “Submit” HTML button.
The Client Dictionary
The client dictionary is typically a list of phrases and words common the client's industry, but is not restricted. The client can create a limited or unlimited number of dictionary words determined by their account type. The client dictionary may automatically be generated when FAQs and help pages are created, determined by their account type.
The client may optionally manually create and edit their dictionary using a back-end dictionary maintenance GUI web page, depending on their account type. The maintenance page consists of one HTML text area for each category that the client has created in the category editor GUI web page. The client types dictionary words in each category field and may elect to distribute them any way amongst the category sections. If no categories have been created, no dictionary words can be created manually and the client is prompted to create a set of categories before creating a dictionary. A dictionary word or phrase may only be used once in each field, and all dictionary words must be separated by commas (“,”). The client saves their current dictionary by clicking the “Submit” HTML button, which submits the page to the server. Once the page has been submitted, a JavaScript check breaks apart all dictionary words and checks for duplicates. If any duplicates are found, the page submission is aborted, and the client is informed and told which dictionary word is a duplicate and category section in which it appears. Furthermore, if too many dictionary words exist (depending on the client's account type), the client is prompted and asked to remove any excess dictionary words. Dictionary words may also optionally be created automatically by the application when a client creates a new FAQ or help page. If a new FAQ or help page contains no defined dictionary words, valid words are extracted using a process defined below in the FAQs section, and dictionary words are automatically inserted into the database.
Upon successful submission, all dictionary words are separated by commas (“,”) where they are individually inserted into the database, and sorted according to the categories in which they were created. The list of categories (
The Knowledgebase
he knowledgebase is comprised of FAQs, help pages and discussion forums, each of which is deployable by the client. The client populates the knowledgebase in the back-end, at which time it becomes available to the end-user on the front-end, as illustrated in
The end-user is able to interact with the knowledgebase in several ways: Query Bot: The end-user phrases a question to the query bot in natural language (English or another accepted language). The query bot then parses the question using a deterministic finite state automaton (DFS) as illustrated in
Case-insensitive Word and Phrase Search: The end-user can search the knowledgebase using a basic case-insensitive word and phrase search. The end-user will enter the word or phrase in a HTML text box, select the module(s) to search (depending on their account type) by checking HTML checkboxes corresponding to the modules they wish to search, and submit their search by clicking a HTML button. If any matches are found, the relevant information is returned to the end-user with a highlighted snippet of text from the corresponding data source (FAQ, help page, or discussion forum).
FAQs and Help Pages: When an end-user clicks a FAQ title or help page link in order to view it, a record is made of the click and this record is later reported as part of the usage statistics. To handle the data collection, a special data collection module known as the DCTM (Data Collection and Transmission Module) is deployed to gather and sort the information into the database for retrieval at a later date, as illustrated in
Each method and module is explained in greater detail below.
The DCTM
The DCTM (Data Collection and Transmission Module) acts as a listening layer that sits between the end-user-facing front-end website and back-end accessible by the client. As the end-user interacts with front-end modules (
FAQs
The FAQ system allows the client to create and maintain frequently asked questions and answers on their end-user-facing front-end website using a back-end GUI web page. The GUI consists of a FAQ listing that lists the FAQs sorted by their respective categories presented in a HTML table. The client may delete any number of FAQs by checking the HTML checkbox corresponding to each FAQ title and clicking the “Delete” HTML button. Each FAQ title is a HTML hyperlink which opens the second state of the GUI, the FAQ create/edit page. The create/edit GUI web page is also accessible using the “Create New FAQ” HTML button, which opens a blank GUI form that allows the client to create a new FAQ.
The FAQ create/edit GUI web page allows the client to specify the FAQ question (a HTML text box), answer (a HTML text area), and a category to filter it into (presented as a HTML pull-down select box). The FAQ answer can optionally be edited/created using a HTML WYSIWYG editor. The editor allows the client to create rich text and format the text. Formatting options include (but are not limited to) bolding, italicizing, underlining, justifying (left, center, right, absolute), font, size, text color, background color, image insertion (from the client-defined image library), superscripting, subscripting, strikethrough, copy, paste, cut, undo, redo, search, insert number list, insert bulleted list, indent, and un-indent.
Once a client submits the create/edit FAQ GUI web page, the information for the FAQ is submitted to the server, saved in the database and a key is generated for the FAQ using the DFS and the client-defined set of dictionary words. The key is then stored with the FAQ in the database and used by the query bot. If no key is generated, the client may optionally be alerted (depending on the client's account type) via a JavaScript alert after the page submission that there were no valid dictionary words found in the current question, and thus no key was generated by the DFS. The client can then choose to be taken directly to the dictionary word create/edit GUI web page where several valid dictionary words are suggested (based on the content of the question of their last FAQ) that they can place in their dictionary. Valid dictionary words are suggested by removing all question words, punctuation, and common English words (all of which are stored in internal dictionary files in the system on the host server) from the FAQ. All remaining words are then suggested as valid dictionary words and the client can choose to use any of them in their dictionary. This process is illustrated in
Once a client has created FAQs, they are made accessible via the front-end web site (
Each end-user-facing FAQ has three additional functionalities associated with it:
Email: Each FAQ (
Printer Friendly Display: Every FAQ is available in a printer-friendly format. When an end-user clicks the printer-friendly icon button, a new Internet browser window opens, containing a printer-friendly formatted page. The page consists of the question in bold font, followed by the answer underneath, and “Print” and “Close” HTML buttons at the bottom of the page. If the “Print” button is clicked, a JavaScript function on the page performs a print command, which instructs the browser to attempt to print the current printer-friendly page. If “Close” is clicked, the window is closed.
Was this FAQ helpful: Every FAQ is appended with a question asking the end-user to indicate whether or not that specific FAQ was helpful, and a “Yes” and “No” HTML hyperlink. If the end-user clicks either “Yes” or “No”, the page is submitted and their answer recorded in the database for later use in the statistics compilation.
Help Pages
The help page system allows the client to create and maintain help pages on their front-end website using a back-end GUI. The GUI is comprised of a help page listing page that lists the help pages displayed in their hierarchical order. It also allows the client to delete any help page by clicking the HTML “delete” hyperlink at the end of each help page title. Each help page title is a HTML hyperlink, which when clicked opens the second part of the GUI—the help page creation/edit page. This create/edit page is also accessible using the “Create New Help Page” HTML button, which opens a blank GUI, allowing the client to create a new help page.
The create/edit help page GUI web page allows the client to specify the help page title (in a HTML text box), body (in a HTML text area), a parent topic (from a HTML select menu), a list of related topics (from a HTML select menu), and a category to filter it into (from a HTML select menu). The parent topics list and related topics list are presented as HTML select boxes, and consist of existing help topics already created by the client and stored in the database. Furthermore, the help page body can optionally be edited/created using a HTML WYSIWYG editor. The editor allows the client to create rich text, and format the text of the editor. Formatting options include (but are not limited to) bolding, italicizing, underlining, justifying (left, center, right, absolute), font, size, text color, background color, image insertion (from the client defined image library), superscripting, subscripting, strikethrough, copy, paste, cut, undo, redo, search, insert number list, insert bulleted list, indent, and un-indent.
Once a client submits the create/edit help page GUI web page, the information for the help page is saved in the database and a key is generated for the help page using the DFS. The key is then stored with the help page information in the database, and is used as a search element by the query bot. If no key is generated, the client may optionally be alerted (depending on the client's account type) after the page has been submitted via JavaScript that there were no valid dictionary words found in the current title, and thus no key was generated by the DFS. The client can then choose to be taken directly to the dictionary word form where they are given several suggestions (based on the content of their last help page) of valid dictionary words to place in their dictionary. Valid dictionary words are suggested by removing all question words, punctuation, and common English words (all of which are hard coded into an internal dictionary in the system) from the help page title, and all remaining words are then suggested as valid dictionary words and the client can choose to use any of them in their dictionary. This process is illustrated in
Once a client has created help pages, they are made accessible via the front-end website to the end-user and all Internet users. The help pages are displayed in the order they were created in hierarchical fashion, as illustrated in
When an end-user clicks a help page title on the front-end website, the DCTM records the click in the database for use in the statistical information and the corresponding help page opens in a new browser window. The new window displays the help page title, body, a “Back” HTML button, a “Forward” HTML button, and a list of related topic titles (hyperlinked to their corresponding help pages). The end-user may use the back and forward buttons to navigate between help pages. By clicking any of the help page titles in the related help topics list, the end-user is taken to the corresponding help page.
Discussion Forums
The discussion forum system allows the client to create, edit, and generally maintain a limited or unlimited number of discussion forums (dependent on their account type) for use by their end-users on the front-end website. There are two main interfaces available through the back-end that the client uses to create and maintain the discussion forums. The first GUI web page allows the client to create new discussion forums, edit the forum names and descriptions, delete forums, and open a micromanagement window for each forum. When a new discussion forum is created a forum name must be supplied and brief description may optionally be supplied. If the client wishes to edit any forum name and/or description, they may do so by clicking an “Edit” HTML button located to the left of each name/description pair. Once the “Edit” HTML button is clicked, a text box for each value appears underneath the corresponding value. When the client submits the page, the information is updated on the server and the page reloads. To delete a forum, the client may click the “Delete” HTML button corresponding to each forum. Once clicked, the page is submitted, the forum and all corresponding posts and information are deleted from the database and the page reloads.
To edit a forum, the client may click the “Manage Forum” HTML button corresponding to each of the discussion forums listed on the edit discussion forum GUI web page. Upon clicking the button, the corresponding discussion forum manager GUI web page opens. The window contains:
Allowed postees: When an end-user posts to a discussion forum, they are required to have a valid user account (externally created and independent of this system). When their end-user record id is recorded in the database, it is treated as a valid postee, and is allowed to post the current forum. All external users listed in the allowed postee's HTML select box list are allowed to post to the corresponding discussion forum on the front-end website. End-users may be moved from the allowed postee list to the banned postee list by selecting the end-user's username in the HTML select box and clicking the “Move” button. The end-user's usernames will not be saved in the banned postee list until the page has been submitted and the information saved in the database. Banned postee's: Once an end-user has already posted to a discussion forum, the discussion forum manager can move that end-user's username from the allowed postee's list to the banned postee's list. All end-users on the banned postee's list are banned from posting to or creating new threads in all discussion forums. End-user username's may be moved from the banned postee's list to the allowed postee's list by selecting the username in the HTML select box and clicking the “Move” HTML button. The end-user username's will not be saved in the allowed postee's list until the page has been submitted and the information saved in the database.
Forum thread list: A list of threads for the corresponding discussion forum. The forum manager may click on any thread title (which is a HTML hyperlink) to view it in its entirety. When the title is clicked, the corresponding thread opens in a new Internet browser window, with the thread contents visible. The client may post a reply to the thread from this page by click the “Reply” button and filling in the corresponding HTML text area using the WYSIYG. Upon clicking the “Post” button the new post is appended to the thread. To delete any number of threads, the HTML checkbox corresponding to each thread can be checked, and upon clicking the “Delete” HTML button, the page is submitted, and all thread information corresponding to the checked boxes is removed from the database and the page reloads.
On the front-end website, the end-user is given access to all forums created by the client on the back-end interface. Each forum consists of a series of threads. An end-user can create a new thread or add to an existing one. In both cases, the end-user uses the create thread GUI web page. The end-user must supply a thread title (in a HTML text box) and a body for the thread (in a HTML text area). Only end-users with existing end-user accounts and usernames (external to this system) may post to forums. The end-user may optionally use a HTML WYSIWYG editor to create the body of the thread. The editor allows the end-user to create rich text, and format the text of the editor. Formatting options include (but are not limited to) bolding, italicizing, underlining, justifying (left, center, right, absolute), font, size, text color, background color, superscripting, subscripting, strikethrough, copy, paste, cut, undo, redo, search, insert number list, insert bulleted list, indent, and un-indent. Once all information has been filled in, the end-user submits the page, at which point the information is saved to the database and the page reloads. None of the threads are editable once they have been created.
All discussion forum threads are made searchable through the case-insensitive word and phrase search tool on the front-end website. When a search is performed on the discussion forums, each thread title and body is searched.
All forum threads may be tracked by the end-user. Under the title of each thread in a given forum a hyperlink titled “Track Thread” is displayed. If the end-user has a valid end-user account and username they may click the “Track Thread” hyperlink and track the thread. Once a thread is tracked, any updates to that thread result in an email being sent to all end-users tracking it.
Custom Web Pages
The custom web page system allows the client to create and maintain custom web pages and website menu sections on their front-end website using a back-end graphical user interface (GUI). The number of custom web pages available to a client depends on the client account type. The GUI consists of a custom web page listing web page, which lists the web pages sorted in a client-defined order. Clients may delete any number of web pages by checking the HTML checkbox corresponding to each web page title and clicking the “Delete” HTML button. Each web page title is a HTML hyperlink that opens the web page create/edit page. The create/edit GUI web page is also accessible using the “Create Webpage” HTML link, which opens a blank GUI, allowing the client to create a new web page.
The custom web page create/edit GUI web page allows the client to specify the web page title (in a HTML text box), web page body (in a HTML text area), website menu section (create a new section or select from a list of existing website menu sections), and whether or not to make the page visible on the end-user-facing website (using an HTML select box). Furthermore, the web page body can optionally be edited/created using a HTML WYSIWYG editor. The editor allows the client to create rich text, and format the text of the editor. Formatting options include (but are not limited to) bolding, italicizing, underlining, justifying (left, center, right, absolute), font, size, text color, background color, image insertion (from the client defined image library), superscripting, subscripting, strikethrough, copy, paste, cut, undo, redo, search, insert number list, insert bulleted list, indent, and un-indent. Once a client submits the create/edit web page GUI web page, the information for the web page is saved in the database.
The custom web page display web page allows the client to view and sort their web pages and website menu sections vertically by moving them up and down. Once sorted the client may click “Save Layout” to save their current configuration.
The client may also create a new website menu section by clicking “Create Menu Section”, or they may edit an existing menu section by clicking the “Edit” link corresponding to the website menu section they wish to edit. Once either “Create Menu Section” or the aforementioned “Edit” is clicked, the edit/create menu section web page is displayed. From this page the client is presented an HTML text box where they may edit or specify a website menu section. Upon clicking “Submit” the information for this website menu section is saved in the database.
Once a client has created custom web pages, they are made accessible via the front-end web site to the end-user and all Internet users. Hyperlinks to the custom web pages are organized in the website menu in their corresponding website menu sections. The end-user navigates to the custom web pages by clicking web page title (which is a HTML hyperlink) website menu sections. Upon clicking the website page title, the end-user browser reloads with the content of the web page pulled from the database and displayed.
Query Bot
The query bot is a search engine located on the front-end. It is designed to search only the client's knowledgebase using queries written in natural English. Valid queries are of the following form:
(<QUESTION_WORD> or <SECONDARY_QUESTION_WORD>) <SENTENCE> (<CLOSING_PUNCTUATION> or <END_OF_QUEUE>)
A defined set of <QUESTION_WORD> and <SECONDARY_QUESTION_WORDS> words are provided to the query bot, along with a list of valid <CLOSING_PUNCTUATION> characters, all stored in local library files. The <SENTENCE> portion is validated using the DFS illustrated in
The back-end query bot report available to the client lists the 50 most recent unanswered queries asked by end-users on the front end. Each query (question) is displayed as a HTML hyperlink in a HTML table along with a “Remove” HTML hyperlink. If the client clicks the query hyperlink, they are taken to the FAQ creation GUI web page. The “Question” field is populated with the query that was clicked in the query bot report page, and the rest of the form remains blank. The client is then able to create the FAQ as described above.
The Deterministic Finite State Machine (DFS)
The DFS is the underlying engine that parses end-user queries and comments. It receives a query string as input. It then processes the string in several steps, as illustrated in
During the pre-processing step, the DFS breaks up the string by spaces, separating it into individual words, placing them onto a sentence queue. Step 1 (
No match is found→The DFS pops the next value from the queue and stays at step 1 (
A question word is matched→The word is added to the main key, and the DFS proceeds to step 2. The remainder of the sentence queue is passed to the next step (
A secondary question word is matched AND this is the first item in the queue→The word is added to the main key, and the DFS proceeds to step 2. The remainder of the sentence queue is passed to the next step (
Step 2 (
A question word is matched→The word is parsed by the key word extractor (illustrated in
A dictionary word is matched→The word is parsed by key word extractor, added to the main key, the next word is popped off the queue, and the DFS remains at step 2 (
A closing punctuation character is matched→The character is parsed by key word extractor, added to the main key, and the DFS proceeds to step 3. The remainder of the sentence queue is passed to the next step (
The end of the queue is encountered→The DFS is finished and the question key is returned.
No match is made→The next word is popped off the queue, and the DFS remains at step 2 (
Step 3 (
A question word is matched→The word is parsed by the key word extractor, added to the main key, and the DFS returns to step 1. The remainder of the sentence queue is passed back to step 1 (
A closing punctuation character is matched→The character is parsed by key word extractor, added to the main key, the next word is popped off the queue, and the DFS remains at step 3 (
The end of the queue is encountered→The DFS is finished and the question key is returned.
No match is made→The next word is popped off the queue, and the DFS remains at step 3 (
The DFS will continue operating and processing as long as the sentence queue is non-empty. As soon as it becomes empty, the DFS will check to see if it has recorded at least one pass through step 3. If so, it returns the main key. If not, it returns boolean false.
The Key Word Extractor
The keyword extractor works in conjunction with the DFS. It receives a single string as input, and returns a formatted key word. There are three steps involved in parsing a key word (illustrated in
The word is cleaned: The word is formatted by removing all non-alpha-numeric characters using a regular expression (
Remove all vowels: All vowels (
Build the key word: The remaining consonants and number of recorded syllables are concatenated with a colon (“:”) (
<CONSONANTS>:<SYLLABLE_COUNT>
Create key: All parsed keywords are combined using the bell ASCII character (binary 00000110) and returned as the complete keyword (
Client Defined Custom Calendar
The custom calendar is designed to let the client create and maintain an annual calendar with a series of custom calendar events, and also deploy other content (such as a news ticker event or an uploaded documents) automatically on a given calendar day.
The client may view their calendar with all calendar events (custom events and information deployments) displayed. Any calendar event may be edited by clicking the corresponding calendar event title. Any calendar event may be deleted by clicking the “Delete” link corresponding to the calendar event the user wishes to delete. The client may create a new calendar event by clicking the “Add Calendar Event” link. If a calendar event (custom or otherwise) has an end date (specified by the client, described below) that has already passed, the calendar event may only be viewed, and not edited. All other calendar events may be edited.
The back-end allows the client to customize the front-end display of a calendar event using a calendar event GUI web page. The client can select from three types of calendar events:
Ticker Announcement: The client may specify a start date (in an HTML input box), an end date (in an HTML input box), and select a ticker event from a list of existing ticker events (in an HTML select box). Upon clicking the “Submit” button the calendar event is saved to the database. At midnight (00:00:00) on the specified start date the ticker event is automatically deployed to the end-user facing website. At midnight (00:00:00) on the specified end date the ticker event is automatically removed from the end-user facing website.
Uploaded Document: The client may specify a start date (in an HTML input box), an end date (in an HTML input box), and select a document title from a list of existing documents (in an HTML select box). Upon clicking the “Submit” button the calendar event is saved to the database. At midnight (00:00:00) on the specified start date the document is automatically deployed to the end-user facing website on the document downloads section. At midnight (00:00:00) on the specified end date the document is automatically removed from the end-user facing website on the document downloads section.
Custom Calendar Event: The client may specify a start date (in an HTML input box), an end date (in an HTML input box), an event title (in an HTML input box), and may input a custom event body (in an HTML text area) using the WYSIWYG editor. Upon clicking the “Submit” button the calendar event is saved to the database. At midnight (00:00:00) on the specified start date the custom event is automatically displayed the end-user facing website on the calendar web page. At midnight (00:00:00) on the specified end date the custom event is automatically removed from the end-user facing website on the calendar web page.
On the front-end, an end-user may view any custom calendar event visible on the website by clicking the calendar event title. Upon clicking the title the event body is pulled from the database and displayed to the user in a new browser window.
The News and Event Ticker
The news and event ticker is used to display FAQs, help pages, advertisements, and custom messages to the end-user in a single event ticker displayed on every page of the client's front-end website.
The news and event ticker is modified by the client through a back-end news and event ticker GUI web page. The GUI allows the client to create a limited or unlimited number of events to display in the ticker based on their account type. The client enters a title for the event in a HTML text box, and selects an item type to display from a HTML pull down select menu. When an item type is selected, a JavaScript function reloads the page, instructing the page to load an appropriate subset of selections. The following items are selectable (dependent on the clients account type):
FAQ: Once a FAQ is selected, a list of all existing FAQs in the clients account are displayed in a HTML pull down select menu. Help Page: Once a help page is selected, a list of all existing help pages in the clients account are displayed in a HTML pull down select menu. Custom Message: If a custom message is selected, a text box is displayed where the client can write in custom text to display when the event is clicked. Furthermore, the custom message text can optionally be edited/created using a HTML WYSIWYG editor. The editor allows the client to create rich text, and format the text of the editor. Formatting options include (but are not limited to) bolding, italicizing, underlining, justifying (left, center, right, absolute), font, size, text color, background color, image insertion (from the client defined image library), superscripting, subscripting, strikethrough, copy, paste, cut, undo, redo, search, insert number list, insert bulleted list, indent, and un-indent.
Once the page is submitted, all information about the event is recorded in the database. If the item type selected was a custom message, the message text is written to the database, otherwise the corresponding id of the item type (FAQ, help page, or advertisement) is recorded in the database, and effectively becomes “linked” to the corresponding item type. Thus if the client should modify any corresponding item, the modifications are made effective in all corresponding data in the news and event ticker.
On the front-end, all events are displayed in a news and event ticker. Each event's title is displayed in a HTML text box and is modified using JavaScript embedded on the web page. If an end-user clicks an event's title, a new Internet browser window opens, where the corresponding information is displayed and the click is recorded by the DCTM module. If the event was linked to a non-custom message, the corresponding event's information (text, title, etc) is read from the database and displayed on the web page. If the event was a custom message, the message is read from the database and displayed on the page. The client can close the window using a “Close” button located at the bottom of the page.
Document Center
The document center system allows the client to upload files to their front- website for download and viewing by the end-user. The client accesses the file upload and maintenance GUI web page on the back-end website. The initial state of the page displays to the client a list of current files that are uploaded on their website and a list of document groups in which the files and documents are sorted and grouped. Files displayed include information about the file name, file size, file type, file description, and the visibility status of the file.
The client can click the “Upload New File” button to upload a new file to their website. The upload/edit file GUI web page allows the client to specify a file to be uploaded (using a HTML Browse button), enter a file title (in a HTML text box), write a short description of the file (in a HTML text box), a document group to place the file into (selected from a list of existing groups or created within the webpage), and choose to make the file visible on the front-end website (using a HTML select menu). When specifying a file to upload, the client can choose to search their local computer for a file using the “Browse” HTML button, or they can type in an Internet URL (in a HTML text box) that directly points the location of the file. The client must click the “Submit” HTML button to submit the page and upload the file. Once the information is submitted, all relevant data is saved. If the client chose to upload a file from their local computer using the “Browse” HTML button, the file is uploaded to their website directly, otherwise the URL they specified is saved in the database, without the physical file being uploaded. Each file name in the file list in the initial state of the GUI is presented as a HTML hyperlink, which takes the client to the upload/edit file GUI web page when clicked. Once there, the client can edit all file information including the title, description, and visibility status using the same GUI they used to create the file. If the file being edited was uploaded directly from the client's computer, the uploaded file may not be altered. If, however, a URL pointing the file was supplied, the URL may be edited. The two choices are mutually exclusive. Following each file name listing is a “View” link, which opens the file in a new Internet browser window when clicked. To remove a file, the client can check the corresponding HTML checkbox next to the file(s) they wish to delete, and click the “Delete” HTML button. The page is then submitted, and the physical file is removed from the hosting server, and all information recorded about the file is deleted from the database. Files and document groups may be sorted on file upload and maintenance web page by moving them vertically up and down. Once moved the client must click “Save Layout” to save the sorted configuration.
The end-user can access all files uploaded by the client using a front-end GUI on the front-end website. The end-user is supplied with a list of all files uploaded by the client and whose visible flag is set to “Yes”, sorted into respective document groups by the client on the back-end. All files with visible flags set to “No” are not displayed to the end-user, but are still accessible to the client on the back-end website. A client can access any file by clicking the file title (which is presented as a HTML hyperlink), at which point a new Internet browser window opens with the contents of the file. The way in which the file is displayed is determined by the browser used by the end-user. For example some browsers will display the file in the browser itself, while others might prompt the end-user to save or open the file locally, dependent on the type of file. This distinction is independent of the current application being described.
Statistics Tracking
The statistics report compiles several statistics about system usage, mainly using data collected by the DCTM module during end-user interactions with their front-end website. The client can query the data recorded in the database by the DCTM by viewing the statistics report GUI web page. There are several major metrics that are optionally recorded and tracked for each major module (FAQs, help pages, home page, discussion forums, query bot, news and event ticker) and displayed to the client. Some of the information presented on the statistics web page includes:
FAQs: The total number of clicks (views) registered, and the percentage of FAQs that have been indicated by the end-users to be helpful. Help pages: The total number of clicks (views) registered. Advertisements: The total number of clicks (views) registered.
Query bot: The total number of clicks (views) registered, the percentage and number of questions successfully answered, the percentage and number of service requests successfully answered and intercepted before submission, and the percentage of visitors who have queried the query bot.
Discussion forums: the total number of clicks (views) registered. News Ticker Clicks: the total number of clicks (views) registered. Custom Web Pages: the total number of custom web pages clicks (views) registered.
In addition to the aforementioned statistics, the client has the ability to manually compile a more detailed set of statistical reports. The statistics report GUI web page (