text:
|Publication number
|Publication type
|Application number
|Publication date
|May 1, 2007
|Filing date
|Jun 18, 2001
|Priority date
|Jun 18, 2001
|Fee status
|Also published as
|Publication number
|Pavitra Subramaniam, Jason Zoss, Jian-Jung Ying, Marc Caltabiano
|Original Assignee
|Siebel Systems, Inc.
|Export Citation
|BiBTeX, EndNote, RefMan
|Patent Citations (53), Referenced by (23), Classifications (21), Legal Events (8)
|External Links: USPTO, USPTO Assignment, Espacenet
The present invention relates generally to the field of data processing. More specifically, the present invention relates to an apparatus, method, and system for remote client search indexing.
As technology continues to advance and the business environments have become increasingly complex and diverse, more and more companies have relied on various customer relationship management (CRM) software and eBusiness applications to conduct and manage various aspects of their enterprise business. In general, eBusiness applications are designed to enable a company or enterprise to conduct its business over an interactive network (e.g., Internet, Intranet, Extranet, etc.) with its customers, partners, suppliers, distributors, employees, etc. eBusiness applications may include core business processes, supply chain, back-office operations, and CRM functions. CRM generally includes various aspects of interaction a company has with its customers, relating to sales and/or services. At a high level, customer relationship management is focused on understanding the customer's needs and leveraging this knowledge to increase sales and improve service. CRM application and software is generally designed to provide effective and efficient interactions between sales and service, and unify a company's activities around the customer in order to increase customer share and customer retention through customer satisfaction.
Typically, CRM implementation strategy needs to consider the following:
Knowledge Management: one of the important factors of an effective CRM implementation is the acquisition of information about a customer, its analysis, sharing and tracking. Also integral to the use of knowledge for competitive advantage is for employees to know what actions to take as a result of this knowledge.
Database Consolidation: another important aspect of an effective and efficient CRM solution is the consolidation of customer information in a single database and the re-engineering of business processes around the customer. The goal here is to have all interactions with a customer recorded in one place to drive production, marketing, sales and customer support activities.
Integration of Channels and Systems: it is very important for a CRM application/software to provide the capability to respond to customers in a consistent and high-quality manner through their channel of choice, whether that is the e-mail, the phone, web-based user interfaces, etc. This may require the seamless integration of various communication channels with the customer or enterprise database. It also may require the integration of CRM with other parts of a company's business systems and applications.
Technology and Infrastructure: to enhance customer services, a CRM application/software may include various tools to automate and streamline online customer service. For example, a self-help model typically can be implemented using a combination of tools (e.g. knowledge bases with an intuitive search capability, agent technology or automated email, etc.).
Generally, eBusiness applications are designed to allow organizations to create a single source of customer information that makes it easier to sell to, market to, and service customers across multiple channels, including the Web, call centers, field, resellers, retail, and dealer networks. Advanced eBusiness applications are typically built on a component-based architecture and are designed to be Web-based and to deliver support for various types of clients on multiple computing platforms including mobile clients, connected clients, thin clients, and handheld clients, etc.
Intense competition for customer attention, pervasive channel expansion, and the Internet explosion have spawned unprecedented levels of customer choice. With the right solution in place, each interaction presents an opportunity to better understand the unique needs of the customer or extended household. By capitalizing on customer information captured during each interaction (e.g., through a call center), organizations can suggest the best combination of products and services to meet the customer's objectives and thereby increasing the chances that the customer will remain loyal.
Traditionally, the role of the call center has been limited to handling telephone calls from customers who were reporting service outages, activating or canceling service, or inquiring about standard billing and collection issues. The metrics of success were based on efficient delivery of service and operating the customer call center as inexpensively as possible. Customer interaction was considered a "cost" of doing business.
However as customers demand consistent service and sales support through every channel of communication, call centers are quickly evolving into complete customer contact centers. The call center's importance is rapidly escalating as it increasingly provides support for all customer interactions. Call centers now typically implement solutions providing the following capabilities:
In order to support the aforementioned capabilities, an extensive database is required to store customer related information. At times, it is critical for users of this extensive database to be able to search the database and quickly retrieve a record or piece of information. In an exemplary scenario, a manager for a computing support group receives a call from a customer trying to find out information about the customer's account and also requesting a specific marketing literature item. In this exemplary scenario, it is highly desirable to have a central facility that could quickly and efficiently peruse through the extensive database to locate the information that the customer requested.
The features and advantages of the present invention will be more fully understood by reference to the accompanying drawings, in which:
In the following detailed description numerous specific details are set forth in order to provide a thorough understanding of the present invention. However, it will be appreciated by one skilled in the art that the present invention may be understood and practiced without these specific details.
I. System Overview and Overall Architecture
In one embodiment, a system in which the teachings of the present invention are implemented can be logically structured as a multi-layered architecture as shown in
In one embodiment, the user Interface layer 110 may provide the applets, views, charts and reports, etc. associated with one or more applications. In one embodiment, various types of clients can be supported via the user interface layer 110. These various types of clients may include traditional connected clients, remote clients, thin clients over an intranet, Java thin clients non-Windows-based operating systems, and HTML clients over the Internet, etc.
In one embodiment, the object manager layer 120 is designed to manage one or more sets of business rules or business concepts associated with one or more applications and to provide the interface between the user interface layer 110 and the data manager layer 130. In one embodiment, the business rules or concepts can be represented as business objects. In one embodiment, the business objects may be designed as configurable software representations of the various business rules or concepts such as accounts, contacts, opportunities, service requests, solutions, etc.
In one embodiment, the data manager layer 130 is designed to maintain logical views of the underlying data and to allow the object manager to function independently of underlying data structures or tables in which data are stored. In one embodiment, the data manager 130 may also provide certain database query functions such as generation of structure query language (SQL) in real time to access the data. In one embodiment, the data manager 130 is designed to operate on object definitions in a repository file 160 that define the database schema. In one embodiment, the data storage services 170 provide the data storage for the data model associated with one or more applications.
In one embodiment, the data exchange layer is designed to handle the interactions with one or more specific target databases and provide the interface between the data manager layer 130 and the underlying data sources.
In one embodiment, the multi-layered architecture allows one or more software layers to reside on different machines. For example, in one embodiment, the user interface, the object manager, and the data manager can all reside on the connected and mobile clients. For thin clients, in one embodiment, the object manager and data manager can reside on a system server. As another example, the user interface resides on a system server for HTML clients. It should be appreciated and understood by one skilled in the art that the system configuration shown in
In one embodiment, the system environment illustrated in
In one embodiment, the database 290 is designed to store various types of data including predefined data schema (e.g., table objects, index objects, etc.), repository objects (e.g., business objects and components, view definitions and visibility rules, etc.), and user's or customer's data. In one embodiment, connected clients and server components, including those that operate in conjunction with the thin clients, can connect directly to the database 290 and make changes in real time. In one embodiment, mobile clients can download a subset of the server's data to use locally, and periodically synchronize with the server database through the system server to update both the local and the server database.
In one embodiment, the file system 295 is a network-accessible directory that can be located on an application server. In one embodiment, the file system 295 stores the physical files created by various applications, such as files created by third-party text editors, and other data that is not stored in the database 290. In one embodiment, physical files stored in the file system 295 can be compressed and stored under various naming conventions. In one embodiment, connected clients read and write files directly to and from the file system 295. In one embodiment, mobile clients can have a local file system, which they synchronize with the server-based file system 290 periodically. In one embodiment, thin clients access the file system 290 via the system server.
In one embodiment, the enterprise server 250 is a logical grouping of the system servers 255 that share a common table owner or a database, point to a common gateway Server, and can be administered as a group using server manager 260. In one embodiment, the connection to the gateway server can be established via TCP/IP. In one embodiment, the enterprise server 250 can be scaled effectively by deploying multiple system servers 255 in the enterprise server 250, thus providing a high degree of scalability in the middle tier of applications.
In one embodiment, the server 255 runs one or multiple server programs. It handles the incoming processing requests and monitors the state of all processes on the server. In one embodiment, server programs are designed and configured to perform one or more specific functions or jobs including importing and exporting data, configuring the database, executing workflow and process automation, processing to support mobile clients for data synchronization and replication, and enforcing business rules, etc. In one embodiment, the server 255 can be an NT Service (under Windows NT operating system) or a daemon (e.g., a background shell process) under UNIX operating system. In one embodiment, the server 255 supports both multi-process and multi-threaded components and can operate components in batch, service, and interactive modes.
In one embodiment, the server manager is configured as a utility that allows common control, administration and monitoring across disparate programs for the servers 255 and the enterprise server 250. In one embodiment, the server manager can be used to perform the following tasks: start, stop, pause, and resume servers 255, components, and tasks; monitor status and collect statistics for multiple tasks, components, and servers within an enterprise server; and configure the enterprise server, individual servers individual components, and tasks, etc.
In one embodiment, the gateway server can be configured as a logical entity that serves as a single entry point for accessing servers. In one embodiment, it can be used to provide enhanced scalability, load balancing and high availability across the enterprise server. In one embodiment, the gateway server may include a name server and a connection brokering component. In one embodiment, the name server is configured to keep track of the parameters associated with the servers. For example, the availability and connectivity information associated with the servers can be stored in the name server. The various components in the system can query the name server for various information regarding the servers' availability and connectivity. In a Windows NT environment, the name server can be run as a NT service. In a UNIX environment, the name server can run as a daemon process. In one embodiment, the connection brokering component is used to perform load balancing function such as directing client connection requests to an appropriate server (e.g., the least-busy server).
In one embodiment, as illustrated in
In one embodiment, connected (also called dedicated) clients are connected directly to a database server for data access via a LAN or WAN connection. In one embodiment, these connected or dedicated clients do not store data locally. These connected clients can also access the file system directly. In one embodiment, the mobile clients are designed and configured for local data access and thus can have their own local database and/or local file system. In one embodiment, mobile clients can interact with other components within the system via the gateway server. Through synchronization, the modifications from the local database and the server database can be exchanged.
In one embodiment, HTML thin clients may include a set of components used to customize and implement web-based applications. These HTML thin clients, in one embodiment, are part of a larger system configuration that may include a server, a database, and a web server, etc. The major components of a HTML thin client system configuration are shown in
II. eSearch Application/System and Related System Components:
Edit button 410 is typically used to open the Search Frame to allow the user to modify or delete items in the dropdown list 405. Search Icon 410 is generally used to open the Search Center Frame or Pane. Additional details on the Search Center Frame or Pane are provided below in
Search Objects
Prior to performing a search, certain Search objects may need to be configured or created.
Each of the aforementioned actions will be described below in more details.
Search Engine
Each Search Engine has a default set of Result Fields related to it. Additional Result Fields may be created and added to the default set of Result Fields. A Result Field object is generally used to associate a Result Field with each Search Engine. In one embodiment, each Result Field object operates under the following rules and assumptions. First, the defined Result Field is generally created for the Search Tables belonging to the parent Search Engine object or the Search Engine to which the Result Field relates. Second, some of the defined Result Field can be customized per search definition. A description of Custom Result Fields, which are used to customize Result Fields per search definition, will be provided below.
Column Name 905 is generally the name of the physical column in a Search Index. Column Name 905 may differ for different types of database software. Name 925 is generally a logical name of the Result Field. Type 935 represents a pick list displaying valid values. Create Column Flag 910 denotes whether a column needs to be explicitly created by the user. Data Type 915 specifies a data type of a column. Exemplary values for a Data Type 915 may include "varchar", "character", and "apvarchar". Index Mode 920 specifies the index mode of a column. Exemplary values for an Index Mode 920 may include "literal", "none", and "normal". Text Length 930 specifies the amount of storage bytes that should be allocated for the Result Field.
Search Index
Creating and configuring each Search Table object for each defined Search Index object (block 1015 of
It should be noted that Index Field Type 1325 can specify a file attachment denoting that a full-text search is to be performed on one or more attached documents or files. In other words, if Index Field Type 1325 specifies a file attachment, a full-text search will be performed on the one or more attached files denoted by the file attachment.
Creating or configuring a Filter Field object generally involves identifying and defining the fields of the Business Component that are to be indexed into the parent Search Table separately and in addition to the Result Fields. In other words, each Search Table will inherit the mandatory set of Result Fields defined for a selected Search Engine plus Filter Fields defined for the Search Table. In general, Filter Field objects generally define Filter Fields which are used to constrain results of searches. These Filter Fields typically are indexed into the Search Table as defined by the Search Table object.
Search Category
Each Search Category object generally represents a Search Category against which a search can be performed. It should be noted that each Search Category object generally maps to a Search Index object. It should also be noted that a particular Search Index object can be associated or can relate to one or more Search Category objects.
Using Search Category objects, users can define several Search Categories based on the same Search Index so that different Drilldown Views and Pick Views can be defined. As examples, a Solution Call Center category can drill down to a Solution Resolution Documents View, and the Solution eService Category can drill down to a Solution Resolution eService View. Furthermore, Pick Views can be defined differently for different Search Categories.
Creating one or more Pick View objects for a parent Search Category object generally includes identifying applets to which the Search Results can be associated.
Search Definition
Creating one or more Custom Result Field objects for a parent Search Definition object generally includes specifying the search execution or display properties for the result fields.
Search Administration
Search Administration is generally a common tool for creating and administrating Search Indices for a selected search engine (e.g., Fulcrum). In one embodiment, the creating and administrating Search Indices encompasses two main areas, including Search Indices Administration for administrating table and indices (e.g., creation, indexing, refreshing, etc.) and Search Settings Administration for setting search properties that are used throughout the search process.
Search Indices Administration
To begin the process of administrating Search Indices, the user or administrator navigates to the Search Indices View.
Search Index List Applet 3010 is displayed at the bottom of the Search Indices View 3000. In one embodiment, Search Index List Applet 3010 is implemented as a read-only applet. Search Index List Applet 3010 generally displays a list of all available Search Index objects. A description of a Search Index object is provided above in the Search Objects section. In one embodiment, Search Index List Applet supports a number of methods, including Index, Refresh, and Refresh-All. Index can generally be used to create a new search index. Refresh can generally be used to re-index a selected search index. Refresh-All can generally be used to re-index all valid and existing search indices.
Search Settings Administration
The administration of search settings can be divided into two main areas, including Search Execution Settings to configure run-time properties and Search Administration Settings to configure properties used during the administration or creation of Search Indices.
Search Settings List Applet 3105 is displayed at the top of the Search Execution Settings View 3100. Search Settings List Applet 3105 generally shows a list of available settings. Search Settings Properties List Applet 3105 is displayed at the bottom of the Search Execution Settings View 3100. Search Settings Properties List Applet 3105 generally shows a list of basic and advanced search execution properties. Exemplary properties can include values for synonym searching, word stemming, spell checking, and relevance ranking.
Search Execution
To perform a search, a user generally selects or specifies search criteria through the Search Center User Interface. In one embodiment, the search criteria may include a Search Category and a search text or keyword. It should be noted that the user can select multiple Search Categories at the same time. Search Category objects representing Search Categories can be created and associated with Search Indices or Search Definitions, as described above in the Search Objects section. After the user selects a Search Category (or Search Categories) and enters a search text or keyword, the user would then select the Search button to execute the search. In block 2210 of
In block 2215 of
Once the Search Category or Categories and the search text or keyword are passed to the Search Execution VBC 2305 (shown in
Business services 2315,2320,2325,2330 use property sets for input and output. A property set is generally a hierarchical data structure that can include name-value pairs. An example of a name-value pair can be (FontColor=Green), where FontColor is a property and the name-value pair sets the value of the FontColor property to the value of Green. A property set can also include one or more child property sets. Each child property set can in turn include one or more grandchildren property sets.
Once the user performs a search to generate Search Results, these Search Results are persistent for a user session. In other words, the content of the Search Results are cached and saved until the user session is terminated (block 2225 of
The persistency of the Search Results allows the user to perform certain actions on the Search Results. As an example, the user can further refine a search. For example, assuming that the user performs a search on the keyword "modem" and receives Search Results relating to "modem". The user then realizes that she was really looking for "58K modems". The user could perform a refined search on the Search Results for "58K modems." Additional details on refining a search will be provided below.
As another example of the usefulness of the persistency of Search Results, the user can preview the Search Results. When the user receives Search Results generated from a search, the user could select the "Preview" button to view a selected Search Result record in a popup view. By previewing the Search Result record in the popup view, the user does not have to use the current window generated by the client. The user essentially has and can look at two separate views, including a window generated by the client and a popup view displaying the preview of a Search Result record. Additional details on previewing Search Results will be provided below.
As an additional example of the usefulness of the Search Results persistency, the user can attach Search Results to another object. A typical scenario in which attaching Search Results is useful would be a user trying to resolve a current service request. In this scenario, the user would begin by performing a search for existing "Solutions". After the prior solutions resulting from the search are available, the user can then go through the solutions to find an appropriate solution for the current service request. Once the appropriate solution is found, the user can select the "Attach" button to attach the appropriate solution to the current service request. Additional details on attaching Search Results will be provided below.
In one embodiment, a cached Business Service is employed to support persistent Search Results. The cached Business Service employed to execute searches is called the Search Execution Business Service. Once the search center is opened or a search is started from the search toolbar, an instance of a cached Business Service in general (and Search Execution Business in particular) is invoked. The invoked Business Service instance will generally remain in existence until the user session is terminated. In other words, the invoked Business Service instance maintains information about the executed search (e.g., Search Categories and search text or keyword) until the user session terminates. As examples, the user session can terminate when the user signs off or times out.
In one embodiment, the component that determines the begin or end of a user session is the Application Object Manager 120 (shown in
As stated above, the Business Service used to perform searches is called the Search Execution Service 2315 (shown in
::ExecuteSearch generally performs the search using the selected search adapter. For example, if the Fulcrum Search Engine 2340 is selected, ::ExecuteSearch would start the search adapter for Fulcrum and would use the Fulcrum search adapter to perform the search. ::IsSearchExecuted generally checks whether the search was executed or performed. ::GetNumberOfResults generally returns the number of results available from executing or performing the search. ::GetResultFields generally returns the result fields that need to be displayed on a particular search result row. In one embodiment, the result fields are generated dynamically during runtime. ::GetResultFieldValues is generally used to retrieve the values of the result fields.
In one embodiment, the Search Execution Service 2315 also support some internal interfaces, including ::CreateSearchAdapter and ::InitializeSearchAdapter. It should be noted that external interfaces supported by the Search Execution Service 2315 can only be invoked by components that are internal to the Search Execution Service. ::CreateSearchAdapter generally selects the search engine to be used by examining configuration information and dynamically invokes the search adapter appropriate for the search engine. ::InitializeSearchAdapter is generally used to initialize the invoked search adapter.
In one embodiment, search adapter classes can be derived from the generic base class CSSSearchAdapter 2335. CSSSearchAdapter 2335 supports interfaces that are common to search engines 2340,2345,2350. In this embodiment, the interfaces supported by CSSSearchAdapter 2335 can be grouped in the following categories: interfaces for initializing the search engine, interfaces for executing or performing the search, interfaces for allocating buffers to store results of the search if the search is successful, interfaces for filling the allocated buffers with results of the search, and interfaces for error handling. Interfaces for executing or performing the search can include methods for parsing search keywords, methods for parsing filter search specifications, and methods for constructing Visibility queries. Additional details on Visibility will be provided below.
Interfaces for initializing the search engine can include methods for initializing results buffers, methods for initializing Search Categories buffers, and methods for initializing Filter Field buffers. A results buffer generally holds results that the search engine generates for a search. In one embodiment, the results buffer includes an array of search result rows. Each search result row is stored in a Result Row. Accordingly, the Result Row contains values for one search result row. These values are stored in a hash table of name-value pairs. For example, a Result Row can include the following fields: RowId, Summary, Relevance, and File Size. Exemplary values for the aforementioned fields can be "10-2344A", "How to create a Service Request", "90%", and "150 KB" respectively.
Result Field Information is generally a data structure that is used for caching definitions of the result fields for the currently selected search engine. In one embodiment, these definitions of the result fields are cached once every user session. Each result field is generally an abstraction of the actual physical column in the table pertaining to the currently selected search engine (e.g., Fulcrum).
Each Result Field Information data structure can generally include fields that store information that can be used while constructing queries to be executed by the currently selected search engine or while displaying results available for the search. Accordingly, each Result Field Information data structure can contain fields pertaining to user interface (UI) functions or non-UI functions.
In one embodiment, fields in the Result Field Information data structure that can be used while constructing queries (i.e., non UI functions) can include Name, Column Name, Data Type, Index Mode, and Text Length. Name generally represents the name of the result field. Column Name generally holds the name of the physical column in the table pertaining to the currently selected search engine (e.g., Fulcrum). Data Type generally specifies the data type of the result field. Exemplary values for Data Type can include "varchar", "character", and "apvarchar". Index Mode specifies the index mode of a column. Exemplary values for Index Mode can include "normal", "literal", or "none".
In one embodiment, fields in the Result Field Information data structure that can be used while displaying results (i.e., UI functions) can include Display Name, Text Alignment, and Visible. Display Name generally contains a label that is to be displayed on the user interface (UI). Text Alignment generally represents the alignment that is to be employed when displaying the value of the result. Exemplary values for Text Alignment can include "left", "center", and "right". Visible is generally a boolean flag which should be set to TRUE if the result field should be displayed and FALSE if the result field should not be displayed.
Search Categories buffers are generally used to hold Search Category Information data structures. Each Search Category Information data structure is generally used to cache all the information pertaining to a Search Category on which a search can be performed for the current application.
Each Search Category Information data structure can generally include fields that store information that can be used while constructing queries to be executed by the currently selected search engine or while displaying results available for the search. Accordingly, each Result Field Information data structure can contain fields pertaining to user interface (UI) functions or non-UI functions.
In one embodiment, fields in the Search Category Information data structure that can be used while constructing queries (i.e., non UI functions) can include Name, Index Name, Table Name, Filter Field Object Array. Name generally represents the name of a Search Category. Index Name is generally the name of the underlying Search Index. It should be noted that many Search Categories can be associated to the same Search Index. As a result, users of various applications can customize Search Categories to fit the users' needs based on their application. Table Name generally represents the name of the underlying table corresponding to the Search Index. Filter Field Object Array generally holds one or more Filter Field objects. Each Filter Field object represents a Filter Field, which is generally used to constrain or restrict a search.
In one embodiment, fields in the Search Category information data structure that can be used while displaying results (i.e., UI functions) can include Display Name, Drilldown View, and Drilldown Business Component. Display Name is generally a label that is to be displayed on the UI. Drilldown View generally represents a view to which the user will be navigated when the results available from the search are displayed. When the view specified in Drilldown View is displayed, the view typically includes various Business Components. Drilldown Business Component generally represents the Business Component to which the user should be navigated when results available from the search are displayed within the view specified in Drilldown View.
Filter Field Information is generally a data structure used to cache the definition of a Filter Field defined for a particular Search Index. Each Filter Field Information data structure can include the following fields: Name, Column Name, Data Type, Index Mode, and Text Length. Name generally represents the name of the result field. Column Name generally holds the name of the physical column in the table pertaining to the currently selected search engine (e.g., Fulcrum). Data Type generally specifies the data type of the result field. Exemplary values for Data Type can include "varchar", "character", and "apvarchar". Index Mode specifies the index mode of a column. Exemplary values for Index Mode can include "normal", "literal", or "none".
Once the appropriate search adapter is invoked or started, default basic and advanced search settings for the selected search engine (e.g., Fulcrum) would be set. It should be noted that the search settings are defined by an administrator. Furthermore, data buffers are initialized and primed for searching.
The search category and search text are then extracted from input parameters. The search text are parsed for special keywords such as AND, OR, NEAR or the like. Search SQL statements are then constructed by combining Visibility rules query, Filter Field Specification query, and actual keyword query. These constructed SQL statements are executed to perform the search. After the search has been performed or executed, results available from the search are retrieved from the selected search engine (e.g., Fulcrum) and cached in the search adapter.
After results available from the executed or performed search have been retrieved from the selected search engine and cached in the search adapter, a notification is sent to the Search Center Frame 500 (shown in
The Search Execution Virtual Business Component 2305 calls the Search Execution Business Service 2315 (shown in
Upon receiving the search results from the Search Execution Service 2315, the Search Execution Virtual Business Component 2305 sends the search results to the Search Center Frame 500 (shown in
It should be noted that even if the user closes the Search Center, the results available from the search are still cached and can be used the next time the user opens the Search Center since the Search Execution Service 2315 have cached the search results. The last cached search results would be retained until the user terminates the user session.
Search Center User Interface
Turning back to
Search Frame 515 further includes an update region 2415. Depending on what the user select from the "Look For" box, a set of controls is displayed in boxes 2415A, 2415B, 2415C, and 2415D.
In one embodiment, Search Frame 515 also includes the following action buttons: Search 2420A, Save 2420B, and Reset 2420C. Search button 2420A can be used to go forward with the search. Save button 2420B is generally used to save the current search to the dropdown list. Reset button 2420C is typically used to clear the content of boxes 2415A, 2415B, 2415C, and 2415D.
Through the Basic Search Applet 2610, the user can enter search text or keyword and select the Search button 2615. Once the user selects the Search button 2615, the entered search text or keyword is saved in the Search Selection Service. Then the Search Execution Business Service starts or invokes a search adapter corresponding to the currently chosen search engine. The search adapter then executes the search and retrieves search results available from the executed search. The Basic Search Results View will then be built.
Basic Search Results View includes Search Selection Applet 2605 and Basic Search Applet 2610, which are described above. Basic Search Results View also includes a Search Results List Applet 2620. Search Results List Applet 2620 retrieves the search results from the Search Execution Service. Search Results List Applet 2620 then creates dynamic fields on the business components and sets these dynamic fields with values from the search results.
An Advanced Search Results View is then built to list the search results. Advanced Search Results View includes Search Selection Applet 2605 and Advanced Search Entry Applet 2710, which are described above. Advanced Search Results View also include Advanced Search Results Applet 2730. Advanced Search Results Applet 2730 retrieves the search results from the Search Execution Service, creates dynamic fields for business component based on the current search definition, and displays these dynamic fields on the user interface.
Each of the Advanced Search View and the Basic Search View includes a View Options Search Tab 2625. View Options Search Tab 2625 enables the user to override a search setting or certain properties of the search setting. View Options Search Tab 2625 includes the following controls, including Search Setting, Search Term Separator, and Search Refining. In one embodiment, Search Setting is a dropdown list. Users with advanced status can utilize the Search Setting control to override the default search setting created in the Search Settings View.
It should be noted that Search Execution settings are usually created by the administrator. One of the Search Execution settings is marked as a default for each language. View Options Search Tab 2625 allows administrators or users to override the default Search Execution setting or certain properties of the setting.
III. Search Visibility:
Single/Multi Org Visibility on Search Results
In one embodiment, a business enterprise or a customer organization that spans multiple user groups, both internal and external to their enterprise, may have a need for controlling access and/or visibility to application data within and between those groups. In one embodiment, the search system described herein uses a mechanism or method referred to as multiple organizational (multi-org) visibility to provides the business enterprise or the customer organization with an ability to manage and control access to application within and between the various groups. In one embodiment, visibility to data can be controlled or limited at the individual level within a single organization or group. For example, visibility of various types of data (e.g., records) such as accounts, contacts, and opportunities, etc. can be controlled or limited at the individual level within a single organization or group. In one embodiment, access to those kinds of records can be limited to those individuals whose positions have been placed on virtual teams for each record. In one embodiment, access to additional data or information such as products and price lists can also be limited. In one embodiment, these limitations of visibility are implemented and controlled at the level of business organizations or groups rather than at the level of individual users.
In one embodiment, multi-org visibility provides a logical layer above the visibility controls at the enterprise, limited, and personal levels. In one embodiment, the multi-org visibility method described herein provides the ability to limit visibility to data based on the organization or organizations to which user positions are assigned. In one embodiment, multi-org visibility can be applied to user data within various applications, including transactional data (e.g., accounts, contacts, and opportunities, etc.), reference data (e.g., price lists, etc.), and run-time configuration data (e.g., assignment manager rules and product configurator models, etc.).
As described herein, the multi-org visibility method/mechanism can be used to support the following functions or tasks:
In one embodiment, multi-org visibility is one of the ways in which data access is restricted to different users. If "organizational visibility" is turned on then a user, through his pre-assigned positions, can only see records or data that pertain to his organization. In one embodiment, when directly accessing data stored in database tables through views in an application, organizational visibility rules can be applied as part of a database query (e.g., part of an SQL query). For example, if a business component called "Opportunity" is enabled for multi-org visibility control (multi-org enabled), then a user who chooses a view called "All Opportunities View" will see all opportunities that belong to his/her organization. Since the "All Opportunities View" view is a lookup on a corresponding database table called "Opportunity" table in the database, the SQL query used to populate the data for the view includes the multi-org query. These visibility rules are used to ensure that users belonging to different organizations or groups only see the records or data that they are allowed to see (e.g., records or data to which they have visibility).
In one embodiment, as described herein, to support full-text search, the various database tables in the system are indexed using a third party search engine, for example "Fulcrum" search engine. In one embodiment, records in the database are indexed into search indices, irrespective of whether a particular record can be viewed by a user or not. This type of indexing poses a problem for searching because if visibility rules are not applied on the search indices, then users will be able to see records that they don't have access to. In one embodiment, to overcome this problem, visibility rules need to be enforced during searching.
The discussion below illustrates, in one embodiment, how visibility rules can be implemented and enforced for searching. It should be understood and appreciated by one skilled in the art that the specific examples discussed herein are for illustration and explanation purposes and should not be construed to limit the scope of the present invention. The following example uses a business component called "Literature" to illustrate how search visibility is implemented. In this example, it is assumed that the "Literature" business component needs to be indexed for searching and is enabled for multi-org visibility.
In one embodiment, the solution for search visibility can be implemented at various levels, for example during search administration time, when the admin creates the search indices and during search execution time when the corresponding visibility rules are applied on the search results.
Search Configuration and Administration Time:
In one embodiment, during search configuration time the search index is configured by the admin based on the following specifications:
In one embodiment, the search index configuration can be performed using a set of search configuration and administration tools as described herein.
After configuring the search index, the admin can use the Search Administration screens to create search indices based on the configuration defined above. In one embodiment, if the table being indexed is multi-org enabled then the records can be de-normalized by also including all organizations that are associated to each record. In one embodiment, the de-normalization of records can be done by using an intersection table, as shown in
In the example of Literature business component, while indexing the required fields pertaining to the Literature table, for example Name, Description, etc., indexing is also done for all the Organization IDs that are associated to each literature record. Thus, de-normalization can be done by using the Literature-Organization Intersection table, as shown in
LITERATURE (DB table) ==→ FULCRUM_LITERATURE L1 O1, O2, O3 L1 O1 L2 O3, O5 L1 O2 L1 O3 L2 O3 L2 O5
Search Execution Time:
In one embodiment, during search execution time, a search is not only performed based on the search specification (e.g., the keyword(s) entered by the user) but also based on the visibility rules associated with the users. For example, when a user enters a search text containing keyword(s) for searching, a search is performed based on the keyword(s) entered by the user but is restricted to only those rows/records that pertain to the current user's organization. In one embodiment, since a user can only belong to one organization at a time, there will not be duplicate search results.
In one embodiment, the searching based on keyword and visibility rules (e.g., organizational visibility) includes the following:
For customers with very large volumes of master data such as literature and products, the simple task of searching for an item of master data (or referential data) in a flat list could become a difficult task. In one embodiment, master data are grouped and organized. The introduction of catalog and categories will enable various customers to categorize their data hierarchically and to navigate through the data more easily. In one embodiment, a catalog is the root category and there can be multiple categorizations (also called catalogs). In one embodiment, the same catalog can contain two or more master data objects (e.g., Literature, Solution, etc.). In one embodiment, there can also be several category levels. In one embodiment, the ability to access (e.g., read/update/insert/delete) or restrict access to master data can be done by associating user groups to any category in the hierarchy.
User Groups
In one embodiment, various users of the system are organized into various user groups. This allows people and accounts to be organized into groups that can be assigned to have, or not have, visibility to various categories of master data. In one embodiment, the association of users to various categories of master data is established in various user interfaces called the Catalog Administration screens. For example, when an end user browses through a catalog or invokes a pick list, the user will only see the accessible categories or items in those accessible categories.
In one embodiment, when data (stored in database tables) are being accessed directly through various views in an application, category access control visibility rules are applied as part of the database SQL query. For example, if the business component "Literature" is access control enabled, then a user will only see categories and literature items under categories that he or she has access to. The list of categories that a user has access to is determined at runtime by determining the user groups he belongs to and the access type.
But since full-text searches are performed against the 3rd party search indices rather the system or internal database, the access control in this context is implemented slightly differently as described below. As discussed above with respect to the organization visibility rules, records in the database are indexed into search indices of a particular search engine (e.g., Fulcrum search indices), irrespective of whether a particular record can be viewed by a user or not. Access control visibility rules are applied on the search results as described in more details below.
The following example illustrates one embodiment of the access control visibility rules. In this example, assuming that the Literature business component is a business component that needs to be indexed and is access control enabled. This means that all Literature records in the corresponding database table have been assigned to various categories and user groups already have been assigned access to these categories of master data.
The processes described below are similar to the processes described above with respect to the search organizational visibility rules except that "Organization" is now "Content Category". In one embodiment, a difference is that the search results may repeat for the same search. For example, if the same Literature item is associated with two different categories and if the same user has access to these two different categories, then the search results for this Literature item will appear twice with the difference being the categories that they belong to.
The discussion below illustrates, in one embodiment, how category access control visibility on search can be implemented. It should be understood and appreciated by one skilled in the art that the specific examples discussed herein are for illustration and explanation purposes and should not be construed to limit the scope of the present invention. In one embodiment, category access control visibility can be implemented at various levels, for example during search administration and configuration time when search indices are created and during search execution time when the corresponding access control visibility rules are applied or enforced.
Search Configuration & Administration Time:
In one embodiment, during search configuration time the search index is configured by the admin based on the following specifications:
In one embodiment, the search index configuration can be performed using a set of search configuration and administration tools described herein.
After configuring the search index, the admin can use the Search Administration screens to create search indices based on the configuration as described above. In one embodiment, if the table being indexed is access control enabled then the records can be de-normalized by including all categories that are associated to each record. In one embodiment, the de-normalization of records can be done by using an intersection table (e.g., the Literature-Category intersection table as shown in
In the example of Literature business component, while indexing the required fields pertaining to the Literature table, for example Name, Description, etc., indexing is also done for all the Category IDs that are associated to each literature record. Thus, de-normalization can be done by using the Literature-Category Intersection table, as shown in
LITERATURE (DB table) ==→ FULCRUM_LITERATURE L1 C1, C2, C3 L1 C1 L2 C3, C5 L1 C2 L1 C3 L2 C3 L2 C5
Search Execution Time:
In one embodiment, at search time, a search is not only performed based on the search specification or criteria (e.g., the keyword(s) entered by a user) but also based on the access control visibility rules associated with that particular user. For example, when a user enters a search text containing keyword(s) for searching, a search is performed based on the keyword(s) entered by the user but is restricted to only those rows/records that are accessible to the user based on the access control visibility rules. In one embodiment, since a user can have access to multiple categories, search results can have duplicate entries (e.g., the same entry can belong to two different categories).
In one embodiment, "invisible" or "implicit" search filters are built so that search results will be automatically filtered out based on the invisible/implicit query.
Invisible Search Filters:
In one embodiment, for each search index (and more specifically a search table) object, users can define filter fields. These filter fields are used specifically for the purpose of filtering search results. In the case of using a search engine such as Fulcrum, these business component fields map directly to a Fulcrum column (e.g., in the Fulcrum search table) and are indexed as part of the regular indexing process as described herein. In one embodiment, the indexing is done directly at the database level and not at the business component level.
The concept of invisible/implicit filtering is introduced to solve a problem explained in the following example. In one embodiment of the system configuration, different types of documents may be stored in the same table. For example, Solutions and Resolution documents may be saved in the same table called S_RESITEM. Currently, records of different types of documents are distinguished using a flag field or flag column (e.g., a flag called SOLUTION_ITEM_FLG). For example, a "Y" value in this flag column indicates a solution record. In order to filter search results that pertain only to solutions, at runtime, some filter search specifications need to be used. In one embodiment, filter search specifications are similar to business component search specifications and work similarly. The process of creating and using filter fields for filtering of search results are discussed in more details below.
Search Configuration Time
At block 4135: create a search definition under the search engine (e.g., search engine Fulcrum). For example, create a search definition called "Call Center Search Definition". As described above, a search definition is a group of search categories
In one embodiment, at search execution time, a search is not only performed based on keyword entered by a user but also the filter search specification. For example, when the user enters a search text containing the keyword(s), a search is performed based on the keyword entered by the user but is restricted to only those rows/records that satisfy the filter search specification clause. In one embodiment, the filter search specification can co-exist with the visibility search specification described above (e.g., organizational visibility search specification or category access control visibility search specification).
In one embodiment, the filter search specification syntax that are supported are shown below:
[filter expression] {<Boolean operator> [filter expression] . . . } [filter expression] :: [Filter Field Name] [operator] [Value] [filter field name] name of the filter field belonging to the search category [operator]: =, < >, LIKE, NOT LIKE LIKE and NOT LIKE support the wildcards * and & [value]: the value of the field. For e.g., 'Y'. or it could be a function "LookupValue (<LOV Name>, <Independent LOV code>)" <Boolean Operator> : : OR, AND Examples: ([Type] = LookupValue ("SALES_TOOL_TYPE" "Sales Tool" ) OR [Type] = LookupValue ("SALES_TOOL_TYPE", "Sales Tool Brochure") ) AND [Flag] = 'Y'
Search Results Attachment/Preview
In one embodiment, a record in the search results list applet or find results list applet can be attached or associated to an active parent object in the content area. In one embodiment, in order to attach a record in the search results list applet or find results list applet to an active parent object in the content Area, the relationship between them is required to be M-to-M relationship. In one embodiment, this relationship is implemented by creating a link between the two business components with an intersection table. In one embodiment, if a search category or find object is one of the business components of a business object and there is an M-to-M link between them, the search result record or row can be attached to the respective object.
In one embodiment, the attachment (also called association) is created in the business object layer in the multiple-layered system architecture. In one embodiment, to provide the user with the ability to go to a view directly to verify the association or attachment, a feature called "Pick View" is added to a corresponding search category or find object. The pick view defines the view that user can go to after association happens, as well as the candidate association. Accordingly, new Pick Views can be added to search category or find object using search tools that are described above.
As described above, in search tools, pick view can be accessed under Search Category and Find Object. These pick views' business objects are able to accept the association as described above. In one embodiment, the applet name defined in a pick view is the applet where users add a search result record.
In one embodiment, the association of external documents to a pick view is supported. Generally, this pick view is called "XXX Attachment." The restriction of this association is different from the association of database record. In one embodiment, this applet should be based on CSSSWEFrameListFile and its business component should be based on CSSBCFile. This applet may contain optional fields, such as description. In one embodiment, these fields will not be filled when the attachment is created.
As described herein, each search category has an attribute called search index. In one embodiment, an attribute called "DB Table" of search index is used to determine if search result row/record is an external document or database record. For example, if this attribute is set to a particular value such as false, then the corresponding search category is assumed to be an external document.
In one embodiment, preview of a result record is included as a feature of the search system described herein. In one embodiment, in order to preview a result record, a drilldown view is required. In one embodiment, the drilldown view, drilldown business component and destination field are defined using search tools in search category or find object. In one embodiment, the drilldown view will show up in a popup browser. As mentioned above, in one embodiment, preview of external documents is also supported.
User Procedures
The following illustrates an example of how customer support personnel uses the preview and attachment features included in the search system described herein. In this example, a customer support personnel in "XYZ" company runs the system call center web client and goes to a screen called the service screen. Assuming that he has a service request in his queue regarding networks card product. He reads the description of the problem. He notices that it might be a known problem and there is already a solution for it. He then opens the search center pane, selects solution, and types in keyword "Networks Card". He then executes the search and gets a lot of solution items. He identifies an appropriate solution for the current problem by clicking the Preview button for each row/record in the result list. After he identifies the appropriate solution, he then clicks the Attach button. This operation attaches the result row/record to the current service request, and then brings him to the correct view to review the association. He then writes to his customer (e.g., via an email) with the solution he found and updates the status of the service request.
Administrator Procedures
As described above, new pick views for an existing search category or a new search category can be configured using search tools as described above. In one embodiment, the following pick views are implemented in the search system described herein:
In one embodiment, the following Find Object Pick Views are also implemented in the search system described herein:
In one embodiment, to configure a new pick view for a search category or find object, the requirements are as follows:
In one embodiment, the data model specification is as follows:
1. "VIEW_NAME" as VARCHAR2 (75)
2. "APPLET_NAME" as VARCHAR2 (75)
In one embodiment, this table will be compiled into a repository file and is configurable using search tools as described above. The parent object for Search Pick View is search category. Accordingly, a Search Category can have multiple Pick Views.
In one embodiment, VIEW_NAME maps to attribute View Name. It is used to compare the view in the Content Area in Web client. In one embodiment, APPLET_NAME maps to attribute Applet Name. It is used to specify the applet to which a search result record can be added.
In one embodiment, the system described herein also includes a feature or mechanism to enable downloads of search index files to a remote client. The system currently provides the capability for creating search indices through a search administration screen for both mobile as well as connected clients.
Currently mobile users need to use the search administration screen to create indices locally on their machines. Since creating search indices is a time-consuming task, the present invention provides a new mechanism so that the mobile users can create search indices more efficiently. In one embodiment, search indices will be created on the server and saved as file attachments in the database. During synchronization time these files can be downloaded to the mobile client's machine.
In one embodiment, at least a new table is required to support the new functionality. The schema for the new table is described in the Data Model section below.
In one embodiment, before actually executing a search, it is necessary to make sure that the indices are copied to the correct search directories on the local machine. In one embodiment, a view called the Search Index Request View is used to get the search indices to the correct directory.
Upload Indices to DB and File Server:
In one embodiment, subsequent downloads from the server to the DB table will only happen if the Revision Number has changed on the Search Index Files. In this case, the user will have to once again uncompress the index files as described above.
Data Model Specification
In one embodiment, the schema for the tables used according to the teachings of the present invention are illustrated below:
In one embodiment, this is a table to hold search index related information. This table may include the index name, engine name and character set (or code page), etc.
CREATE TABLE S_SRCH_INDXINFO (ROW_ID VARCHAR2 (15) not null ,CREATED DATE default sysdate not null ,CREATED_BY VARCHAR2 (15) not null ,LAST_UPD DATE default sysdate not null ,LAST_UPD_BY VARCHAR2 (15) not null ,MODIFICATION_NUM NUMBER (10, 0) default 0 not null ,CONFLICT_ID VARCHAR2 (15) default '0' not null ,INDEX VARCHAR2 (75) not null - name of the index ,SRCH_ENGINE_CD VARCHAR2 (75) not null - name of search engine ,CHARACTER_SET VARCHAR (75) not null - name of the character set ); create unique index S_SRCH_INDXINFO_P1 on S_SRCH_INDXINFO (ROW_ID); create unique index S_SRCH_INDXINFO_U1 on S_SRCH_INDXINFO (CHARACTER_SET, SRCH_ENGINE_CD, INDEX);
In one embodiment, this is a table to hold all search index related file attachments for a search engine+search index+character set (or codepage) combination.
not null
default sysdate not null
not null
default sysdate not null
not null
default 0 not null
default '0' not null
not null -- FK to S_SRCH_INDXINFO
default true
-- a flag that indicates if the
index file
-- attachments have
changed/refreshed --- since the
last synch.
-- file name
- and other file related columns
create unique index S_SRCH_INDXINFO_ATT_P1 on S_SRCH_INDXINFO_ATT
create index S_SRCH_INDXTNFO_ATT_F1 on S_SRCH_INDXINFO_ATT
It should be noted that the functional components, as shown above in the figures and described in the text accompanying the figures, could be implemented using software code segments. If the aforementioned functional components are implemented using software code segments, these code segments can be stored on a machine-readable medium, such as floppy disk, hard drive, CD-ROM, DVD, tape, memory, or any storage device that is accessible by a computing machine.
The invention has been described in conjunction with the preferred embodiment. It is evident that numerous alternatives, modifications, variations and uses will be apparent to those skilled in the art in light of the foregoing description.
|Cited Patent
|Filing date
|Publication date
|Oct 25, 1983
|Jun 28, 1988
|Keycom Electronic Publishing
|Method and apparatus for assisting user of information retrieval systems
|Jul 31, 1987
|Nov 27, 1990
|Syntellect Software Inc.
|Adaptive natural language computer interface system
|Jun 4, 1990
|Nov 3, 1992
|Neuristics, Inc.
|Apparatus for generating a feature matrix based on normalized out-class and in-class variation matrices
|Oct 23, 1989
|Nov 3, 1992
|International Business Machines Corporation
|Persistent stream for processing time consuming and reusable queries in an object oriented database management system
|Sep 15, 1992
|Nov 9, 1993
|Digital Equipment Corporation
|Filters in license management system
|Sep 15, 1995
|Feb 10, 1998
|Infonautics Corporation
|Method for categorizing documents into subjects using relevance normalization for documents retrieved from an information retrieval system in response to a query
|Sep 23, 1996
|Oct 27, 1998
|J. D. Edwards World Source Company
|Menu control in a graphical user interface
|Oct 2, 1997
|Dec 1, 1998
|Advanced Health Med-E-Systems Corporation
|Prescription management system
|Nov 17, 1995
|May 25, 1999
|Microsoft Corporation
|Information retrieval system in an on-line network including separate content and layout of published titles
|Feb 19, 1997
|Jun 15, 1999
|Seymour I. Rubinstein
|Browse by prompted keyword phrases with an improved method for obtaining an initial document set
|Jul 25, 1997
|Aug 10, 1999
|Oracle Corporation
|Integrating relational databases in an object oriented environment
|Mar 17, 1995
|Nov 2, 1999
|Csg Systems, Inc.
|Method and apparatus for transaction processing in a distributed database system
|Jul 8, 1997
|Jan 11, 2000
|Nizzari; Marcia M.
|Customer interaction tracking
|Nov 26, 1997
|Jan 11, 2000
|International Business Machines Corporation
|Configurable briefing presentations of search results on a graphical interface
|Oct 16, 1997
|Feb 15, 2000
|Imarket, Incorporated
|System and methods for searching and matching databases
|Sep 26, 1996
|Feb 15, 2000
|Blumenthal; Joshua O.
|System and method for search and retrieval of digital information by making and scaled viewing
|Apr 17, 1997
|Mar 21, 2000
|International Business Machines Corporation
|Information search method, information search device, and storage medium for storing an information search program
|Jan 29, 1996
|May 30, 2000
|Artnet Worldwide Corporation
|Non-linear database set searching apparatus and method
|Dec 29, 1997
|Jun 6, 2000
|Bull Hn Information Systems Inc.
|Method and apparatus for improving the performance of a database management system through a central cache mechanism
|Oct 29, 1998
|Dec 26, 2000
|Genesys Telecommunications Laboratories, Inc
|Method and apparatus for creating specialized multimedia threads in a multimedia communication center
|Jul 31, 1998
|May 29, 2001
|The Regents Of The University Of California
|Method and apparatus for detecting and summarizing document similarity within large document sets
|Feb 23, 1999
|Sep 18, 2001
|Clinical Focus, Inc.
|Method and apparatus for improving access to literature
|May 9, 2000
|Sep 18, 2001
|Hewlett-Packard Company
|Methods and system for using web browser to search large collections of documents
|Aug 1, 1994
|Oct 9, 2001
|Texas Instruments Incorporated
|Method and system for managing access to a plurality of data objects
|Oct 1, 1998
|Dec 25, 2001
|Ventro Corporation
|Techniques for improving index searches in a client-server environment
|Apr 22, 1999
|Jan 8, 2002
|International Business Machines Corporation
|Relational database extender that supports user-defined index types and user-defined search
|Nov 3, 1998
|Mar 19, 2002
|Inktomi Corporation
|Method and apparatus for retrieving documents based on information other than document content
|Oct 16, 1997
|Apr 16, 2002
|I2 Technologies Us, Inc.
|Modeling of object-oriented database structures, translation to relational database structures, and dynamic searches thereon
|Nov 3, 1998
|May 7, 2002
|E-Centives, Inc.
|Presentation of search results using dynamic categorization
|Aug 13, 1998
|Jun 4, 2002
|Online Monitoring Services
|Method and computer program product for an online monitoring search engine
|Feb 29, 2000
|Sep 3, 2002
|Hitachi, Ltd.
|Document retrieval assisting method and system for the same and document retrieval service using the same
|Sep 2, 1999
|Sep 10, 2002
|Xware Compliance, Inc.
|Health care policy on-line maintenance dissemination and compliance testing system
|Mar 30, 1999
|Nov 5, 2002
|Koninklijke Philips Electronics N.V.
|Method and apparatus for controlling browser functionality in the context of an application
|Dec 6, 1999
|Dec 3, 2002
|International Business Machines Corporation
|Distributed network search engine
|Dec 7, 1999
|Dec 3, 2002
|International Business Machines Corporation
|Method and system for managing multiple lightweight directory access protocol directory servers
|Aug 13, 1999
|Apr 8, 2003
|International Business Machines Corporation
|Method and apparatus for indexing and searching content in hardcopy documents
|Nov 14, 2000
|Apr 22, 2003
|Hewlett-Packard Company
|Method of and apparatus for topologically based retrieval of information
|Jul 14, 2000
|May 13, 2003
|Time Warner Entertainment Company, L.P.
|Method and apparatus for archiving in and retrieving images from a digital image library
|May 15, 2000
|May 20, 2003
|International Business Machines Corporation
|Interactive automated response system
|Sep 29, 2000
|Sep 9, 2003
|Pharsight Corporation
|Method and mechanism for data screening
|Apr 27, 2001
|Nov 4, 2003
|Brio Software, Inc.
|Method and apparatus for implementing search and channel features in an enterprise-wide computer system
|Sep 19, 2000
|Feb 17, 2004
|Hitachi, Ltd.
|System and method for query processing using virtual table interface
|Jun 18, 2001
|Mar 23, 2004
|Siebel Systems, Inc.
|Method, apparatus, and system for previewing search results
|Jul 30, 1999
|Apr 6, 2004
|Accenture Llp
|System, method and article of manufacture for an activity framework design in an e-commerce based environment
|Jun 18, 2001
|Jul 13, 2004
|Siebel Systems, Inc.
|Method, apparatus, and system for attaching search results
|Mar 22, 2000
|Aug 3, 2004
|Amazon.Com, Inc.
|Search query refinement using related search phrases
|Jun 18, 2001
|Aug 24, 2004
|Siebel Systems, Inc.
|System and method to implement a persistent and dismissible search center frame
|Feb 21, 2001
|Sep 6, 2001
|Game James Douglas
|Indexation system for electronic addresses
|Mar 23, 2001
|Sep 26, 2002
|International Business Machines Corporation
|Searching product catalogs
|Jan 24, 2001
|Oct 10, 2002
|International Business Machines Corporation
|System and method for searching disparate file systems
|Feb 16, 2001
|Oct 24, 2002
|Elliott Margaret E.
|Internet search engine
|May 9, 2001
|Nov 14, 2002
|Melmon Kenneth L.
|System & method for facilitating knowledge management
|Jun 17, 2002
|Dec 27, 2002
|Siebel Systems Inc
|System, method to implement persistent search center
|Citing Patent
|Filing date
|Publication date
|Aug 2, 2006
|Jul 14, 2009
|Sap Ag
|Business object search using multi-join indexes and extended join indexes
|Mar 30, 2006
|Dec 8, 2009
|Microsoft Corporation
|Unified searching and running of files
|Apr 29, 2005
|Mar 23, 2010
|International Business Machines Corporation
|Sharing of full text index entries across application boundaries
|May 1, 2007
|Apr 13, 2010
|Siebel Systems, Inc.
|Method, apparatus, and system for remote client search indexing
|Apr 19, 2004
|May 25, 2010
|Siebel Systems, Inc.
|Method, apparatus, and system for searching based on search visibility rules
|Jun 24, 2006
|Aug 24, 2010
|Goldberg Mark S
|Directory display and configurable entry system
|Jun 30, 2006
|Mar 29, 2011
|Microsoft Corporation
|Updating adaptive, deferred, incremental indexes
|Sep 10, 2007
|Jun 14, 2011
|Siebel Systems, Inc.
|Method, apparatus, and system for searching based on search visibility rules
|May 11, 2009
|Oct 4, 2011
|Red Hat, Inc.
|Federated document search by keywords
|May 11, 2009
|Oct 4, 2011
|Red Hat, Inc.
|Searching documents for successive hashed keywords
|Oct 31, 2006
|Dec 20, 2011
|Lycos, Inc.
|Preview panel
|Oct 27, 2005
|Nov 27, 2012
|Kabushiki Kaisha Square Enix
|Data extraction system, terminal, server, programs, and media for extracting data via a morphological analysis
|Sep 4, 2008
|Jun 4, 2013
|International Business Machines Corporation
|Processing query conditions having filtered fields within a data abstraction environment
|Feb 28, 2005
|Feb 25, 2014
|Microsoft Corporation
|CRM office document integration
|Aug 24, 2012
|Apr 15, 2014
|Kabushiki Kaisha Square Enix
|Data extraction system, terminal apparatus, program of the terminal apparatus, server apparatus, and program of the server apparatus for extracting prescribed data from web pages
|Jun 16, 2009
|May 27, 2014
|Red Hat, Inc.
|Automated and unattended process for testing software applications
|Sep 4, 2008
|May 12, 2015
|International Business Machines Corporation
|Query conditions having filtered fields within a data abstraction environment
|Feb 28, 2005
|Sep 21, 2006
|Microsoft Corporation
|CRM office integration
|Apr 29, 2005
|Nov 2, 2006
|Brooks David A
|Sharing of full text index entries across application boundaries
|Sep 4, 2008
|Dec 25, 2008
|Dettinger Richard D
|Processing query conditions having filtered fields within a data abstraction environment
|Apr 19, 2010
|Aug 12, 2010
|Salesforce.Com, Inc.
|Method and system for allowing access to developed applications via a multi-tenant on-demand database service
|Nov 15, 2012
|May 16, 2013
|Nintendo Co., Ltd.
|Information-processing device, information-processing system, information-processing method, and computer-readable storage medium
|Apr 18, 2013
|Sep 12, 2013
|Salesforce.Com, Inc.
|Method and system for allowing access to developed applications via a multi-tenant on-demand database service
|U.S. Classification
|International Classification
|Cooperative Classification
|European Classification
|Jun 18, 2001
Owner name: SIEBEL SYSTEMS, INC., CALIFORNIA
Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:SUBRAMANIAM, PAVITRA;ZOSS, JASON;YING, JIAN-JUNG;AND OTHERS;REEL/FRAME:011919/0381;SIGNING DATES FROM 20010614 TO 20010615
|Jun 26, 2002
Owner name: EAGLE BROADBAND, INC., TEXAS
Free format text: CHANGE OF NAME;ASSIGNOR:EAGLE WIRELESS INTERNATIONAL, INC.;REEL/FRAME:013031/0547
Effective date: 20020225
|Feb 2, 2004
Owner name: SIEBEL SYSTEMS INC, CALIFORNIA
Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:SUBRAMANIAM, PAVITRA;ZOSS, JASON;YING, JIAN-JUNG;AND OTHERS;REEL/FRAME:014939/0785;SIGNING DATES FROM 20030930 TO 20031027
|Oct 23, 2007
|Certificate of correction
|Dec 6, 2010
|Maintenance fee reminder mailed
|Jan 6, 2011
|Fee payment
Year of fee payment: 4
|Jan 6, 2011
|Surcharge for late payment
|Oct 2, 2014
|Fee payment
Year of fee payment: 8


text:
Angst-Ridden Dating Rant #17
View Single Post
November 14 2013, 05:25 PM
Dr. Sevrin
Location: Melakon's grave
Re: Angst-Ridden Dating Rant #17
Kommander wrote:
As for the current situation, if the ex noticed all the flirtatious comments I was making and felt threatened, he probably wouldn't confront me directly. He'd probably do what they guy in the above example and several others have done; make a point of ignoring me at first and subtly trying to provoke me, and when that doesn't work, confront me directly later.
If this is what that guy was doing, it seemed likely he'd become a bigger problem later. At the time, I did not feel a need to confront him. If he became a bigger problem, that might change.
You're doing it again. All this and more about a guy that apparently you've never met personally, have never even seen in person to observe his behavior, and have never talked to. Yet you're pretending you know how he thinks and acts based on your experiences dealing with other men.
Dr. Sevrin is insane.
Dr. Sevrin
View Public Profile
Send a private message to Dr. Sevrin
Find More Posts by Dr. Sevrin

subset: commoncrawl


text:
Originally posted on The PensNation | Last updated 6/10/13
Marc-Andre Fleury (left) talks with Gilles Meloche (center) and Dan Bylsma (right). Source: Bruce Bennett/Getty Images Changes are coming. Whether fans like it or not, the Pittsburgh Penguins organization could be look much different for the 2013-14 season after another disappointing exit from the Stanley Cup playoffs. Gilles Meloche, the goaltending coach of the Penguins for the past seven years, plans to leave his position and move on to another job with the organization this week. Meloche, 62, may become a professional scout with the Penguins, according to the Tribune Review's Josh Yohe. With Marc-Andre Fleury's future with the Penguins uncertain, it was probably time for a change anyway. One internal replacement for the goaltending coach is Mike Bales, who had the same position with the Wilkes-Barre/Scranton Penguins for the past two years.
NHL News
Delivered to your inbox
You'll also receive Yardbarker's daily Top 10, featuring the best sports stories from around the web. Customize your newsletter to get articles on your favorite sports and teams. And the best part? It's free!
Follow us on Twitter
|Best of Yardbarker
|NFL News
|MLB News
Today's Best Stuff
For Publishers
Company Info
Follow Yardbarker
|© 2015 Yardbarker, Inc. All rights reserved. Use of this website (including any and all parts and components) constitutes your acceptance of these Terms of Use and Privacy Policy. (What's New?)


text: [Sequel to College Life] One year later and Jesse and Rayne are put to the test when both of them agree to do a reality television show. They both meet for the first time in so long and as expected, it's emotionally draining. Their summer is going to be a very exciting one, because they're joined by two other exes that will help them through their emotional rollercoaster. One Last Chance will be a show that is going to be remembered by many. Three ex couples are put into a beach house for one summer. The drama that awaits them will be their final decision. Will they stay together or will they remain as exes?


text:
United States
- Alabama
- Alaska
- Arizona
- Arkansas
- California
- Colorado
- Connecticut
- Delaware
- Florida
- Georgia
- Hawaii
- Idaho
- Illinois
- Indiana
- Iowa
- Kansas
- Kentucky
- Louisiana
- Maine
- Maryland
- Massachusetts
- Michigan
- Minnesota
- Mississippi
- Missouri
- Montana
- Nebraska
- Nevada
- New Hampshire
- New Jersey
- New Mexico
- New York
- North Carolina
- North Dakota
- Ohio
- Oklahoma
- Oregon
- Pennsylvania
- Rhode Island
- South Carolina
- South Dakota
- Tennessee
- Texas
- Utah
- Vermont
- Virginia
- Washington
- Washington DC
- West Virginia
- Wisconsin
- Wyoming
Terry Gage Chevrolet Inc
Users Rating:
Terry Gage Chevrolet Inc is a business providing services in the field of Auto Dealers - New Cars. Terry Gage Chevrolet Inc is located in Marshall, AR on Highway 65 North.
Terry Gage Chevrolet Inc telephone number is
(870) 448-3314.
Telefax: (870)448-5114
Website: No web address available
Business owner? Moderate reviews or edit this listing.Link to this Page (Permalink):
Promote this listing for your business by linking here.
- (870) 448-3314
- (870)448-5114
Search through the entire category for Auto Dealers - New Cars
Customer Ratings and Reviews
Submit a review for Terry Gage Chevrolet Inc
Helpful Tip for: Auto Dealers - New Cars
'Auto Dealers' (for new cars) in Marshall play an important intermediary role in the promotion of brand value and sale of a particular brand of car. These dealers are an important point of connect between the company and the customers for the cars.
Recent News from the Green Blog
Each year as a tradition to myself and this green movement website, I write on the events of Earth Day (April 22nd) this year is no exception. I will focus more on some new ideas and representations of our planet Earth. The symbols of Earth Day have been similar throughout the years, including an image or drawing of the Earth..


text:
Penske Interview Questions
Interview Experience
Interview Experience
Getting an Interview
Getting an Interview
Interview Difficulty
Interviews for Top Jobs at Penske
- Logistics Analyst (5)
- Operations Supervisor (3)
- Sales and Operations Manager (1)
- Customer Service Representative (1)
- Load Planner (1)
- Management Trainee (1)
- Rental Representative (1)
- Engineering Logistics Intern (1)
- Mateial Coordinator (1)
- Truck Driver - Yard Switcher/Yard Jockey (1)
- Logistics Engineer (1)
- Human Resources Intern (1)
- Project Manager (1)
- Senior Systems Analyst (1)
- Administration (1)
- Administrative Assistant (1)
- Information Technology (1)
Candidate Interview ReviewsSort: Popular Date Difficulty
- Accepted OfferNegative ExperienceEasy Interview
I applied online. The process took 3+ months. I interviewed at Penske (Beachwood, OH) in May 2015.
It was easy the manager was friendly. But it took 3 months for the process to get through. They take a lot of time to reply and follow up. and set interviews on site within a gap of a month minimum.
Interview Questions
- General behavior questions nothing extraordinary Answer Question
Helpful (6)Accepted OfferNeutral ExperienceAverage Interview
I applied online. The process took 2 weeks. I interviewed at Penske.
Interviewed with 2 managers. They ask you the typical interview questions. They then try and figure out what style of thinking you use to place you if they want to hire you.
Interview Questions
- How many quarters could be used to fill this room. Answer Question
- No OfferPositive ExperienceAverage Interview
I applied through a recruiter. I interviewed at Penske (Columbus, GA) in August 2015.
There were three men that Interviewed me for 45 minutes. The Questions were pretty tough and they were one after another. I felt like the interview process went very well overall.
Interview Questions
- Tell us a little bit about yourself. 1 Answer
- Accepted OfferPositive ExperienceEasy Interview
I applied online. The process took 2 weeks. I interviewed at Penske in July 2015.
Applied online one day later received email stating they wanted to do a phone interview. Conducted phone interview to get another email about a in person interview the next week. Had interview with HR and an senior operations supervisor. Next week got another email about a second interview with the GM and HR. Received an offer that same day.
Interview Questions
- General questions about my experiences. Answer Question
- Accepted OfferNegative ExperienceEasy Interview
I applied online. The process took 4 days. I interviewed at Penske (Shelbyville, IN) in January 2014.
They call you, have a phone interview, bring you in for an interview with an operations manager - which they are basically getting the feel for you, making sure you can work in the cold environment (refrigerated warehouse), and work with union employees. Next you interview with the Sr ops mgr. They'll contact you and offer you a position, and if you are interviewed they can't afford to not hire you because they can't keep any supervisors, so they'll make an offer. Before you accept the offer, tremendous to consider in the pay that you'll work apx 60 hrs per week as a minimum. Do not listen to what they tell you about"extra day" pay add they only pay that when they want to and they often threaten to not pay it.
Interview Questions
- Tell me about your experience. 1 Answer
- Accepted OfferNeutral ExperienceEasy Interview
I applied online. The process took 4+ weeks. I interviewed at Penske.
Quite easy process. Not a lot of hard questions. By the book interview. A lot of situation questions were used in mine. Since we are dealing with customers all day they want to know how you will handle inevitable situations. From beginning to end the whole process took about a month before I started my first day.
Interview Questions
- What are some of your weaknesses? Answer Question
- Accepted OfferPositive ExperienceEasy Interview
I applied online. The process took 3+ weeks. I interviewed at Penske (Phoenix, AZ) in February 2013.
Easy, there was the usual 2 phone interviews, then come in for an in person interview, then you come in and to a facility walk through and talk about the operation. STAR questions in first interview.
Interview Questions
- Tell me about a time you were challenged by an employee Answer Question
- Accepted OfferPositive ExperienceEasy Interview
I applied online. The process took a week. I interviewed at Penske.
We sat in an office. The manager started asking questions about what my situation was and he was very understanding about it. They were nice enough to tell me that they really wanted me on their team.
Interview Questions
- Can you go on the day shift? 2 Answers
Helpful (2)No OfferPositive ExperienceEasy Interview
I applied online. The process took 1 day. I interviewed at Penske (Cleveland, OH) in January 2015.
I interviewed In person with the manager. He was very easy going. He explained the job requirements. He asked a few basic interview questions. We then went over any questions I had. That completed the entire interview process.
Interview Questions
- Name a time you made a mistake and how did you avoid it in the future? Answer Question
- Declined OfferPositive ExperienceAverage Interview
I applied online. The process took 2 weeks. I interviewed at Penske in September 2014.
spent time on the phone ( phone screening ) , then scheduled an interview,, very professional, we went over job description , i was asked how i would handle diagnosing and repairs for specific vehicles . Interview lasted just over an hour and a half. we discussed benefit options pay scale and how the penske operation works with regard to repairs.
Interview Questions
- nothing difficult or unexpected Answer Question
Is this helpful? The community relies on everyone sharing – Add Anonymous Interview Review


text:
10/04/15 09:35 pm
Hey Hey!
09/30/15 07:57 pm
Big apology for letting the Bi-Weekly Challenge lapse a bit. Got super busy this past week. Will get caught up again soon!
09/28/15 02:17 pm
Posted on the community forum, would be stoked if y'all could check it out. I could def use some word-spreading! Happy writing, friends.
09/24/15 09:38 pm
ok me_!!
09/23/15 08:22 am
Yay! I'm always happy to see a new update on that. I'll be posting my first entry for the ship-a-thon soon. :)
09/22/15 09:01 pm
hey all i'm working on the next chapter to CTTE!!
09/10/15 01:07 pm
Aw :)
09/09/15 02:27 pm
@tenpetals-otp No problem! I always enjoy reading your ideas and I love seeing activity on Psychfic. Thanks for always interacting with me! I really appreciate it. :-)
09/08/15 11:58 am
New chapters of 100 Themes Challenge posted :D I'm going to be making a full length one shot based on #59
09/08/15 05:21 am
Hey PineappleHead, I haven't gotten around to reading most of your stories but thanks for all of the support you've shown me!! :)
09/01/15 01:38 pm
thanks hun. it'll be okay <3
09/01/15 10:38 am
Thanks, everyone. Psych babe, I'm very sorry for your loss.
08/30/15 06:59 am
Oh my god, I'm so sorry for your loss. I can't even imagine going through that. And Jenn, you've done so great despite those chronic illnesses. We're all here for both of you.
08/29/15 10:10 am
aw jenn its okay. we've been okay been a rough year. my dad dropped dead in front of me from a heart attack. he ended up passing away in the hospital.
08/26/15 12:28 pm
*hugs* no worries Jenn, we are all running cool and sweet!
08/24/15 08:50 pm
Hey, I'm sorry I've been MIA. I'm battling some chronic illnesses that are out of control right now, so I'm here but not, you know? Sleeping a lot. How are you, psych babe?
08/24/15 07:25 pm
hey jenn how ya been
08/24/15 07:05 pm
Glad it worked.
08/24/15 04:47 pm
Thanks for your help Jenn.
08/24/15 04:35 pm
Apologies if you asked for a password. I've changed them and mailed you. I know it has been a while.
08/23/15 03:24 pm
08/21/15 11:36 am
I meant to say "m'kay bye" but it cut off...whatever. I don't even talk like that so I don't even know what I'm saying. Okay bye for real now.
08/21/15 11:35 am
hey y'all just saying that Mrs-N-Uzumaki is a great author and you should definitely read her story One Moment Too Many and probably her others which I don't know if I've read yet m'ka
08/21/15 09:11 am
Wow, I'm sorry. That sucks.
08/20/15 04:59 pm
My computer decided to restart itself and I think I lost some of my writing so that's great
Order any Season of Psych in a DVD boxset. Available below!
Psychfic is a free site and will always remain so, but it does cost money to run. Donate and help us to remain online forever! Any amount helps.
Summary: Shawn Spencer had it all: the girl, his secret, and...
Rated: eT
Categories: Post-season, Alternate Universe
Have You...? by PineappleHead
Summary: When a devil is found murdered, who can Detective Lassiter...
Rated: E
Categories: Crossover
Of Thunderstorms And Psychics [ON HOLD] by tenpetals-otp
Summary: Everyone writes stories about Shawn becoming a real...
Rated: T
Categories: Season, Alternate Universe
Time, Space, a CIA Agent, and Don't Forget the Pineapple by girlinpink44
Summary: When a crime spree hits Santa Barbara that even Shawn...
Rated: eT
Categories: Post-season, Alternate Universe, Crossover
Closer to the Edge by Psych_Babe
Summary: What happens when one morning you wake up, and you're...
Rated: eT
Categories: Season
Premonition by me_
Summary: Shawn isn't a psychic. He knows this. But even non-psychics...
Rated: E
Categories: Season, Short
Psychic Twinges by Redwolffclaw
Summary: This is my collection of one shot stories for...
Rated: T
Categories: Crossover, Pre-season, Season, Post-season, Short
100 Themes and a Hopefully Bright Future by pumpkypie
Summary: This is a response to the 100 themes challenge, since...
Rated: T
Categories: Short, Post-season
Summary: The Chief sends Shawn and Juliet undercover as newlyweds...
Rated: E
Categories: Season
A Funny Thing Happened On the Way Into Hell by Am_I_Zombie
Summary: A sequel to A Road through Abbadon Shawn is given...
Rated: M
Categories: Season
Like Father by SonicH20
Summary: A young girl with a photographic memory like Shawn's...
Rated: T
Categories: Season
I Don't Know How to Say Goodbye by Psychrulz
Summary: It was supposed to just be a training. Nothing more...
Rated: eT
Categories: Season
Yesterday Was Hard On All Of Us by Vindicata
Summary: What if the secret that Shawn is a fake psychic...
Rated: M
Categories: Season, Alternate Universe
Summary: In the space of five minutes, Gus had gained a new respect for the Head Detective.[Missing...
Rated: E
Categories: Season
Welcome to Psychfic.com! Here we have the very first archive of Psych fanfiction for the popular new USA show. Come and follow more adventures into the lives of Shawn and Gus, because we all know they keep on getting into trouble after the credits roll. I hope you enjoy yourself and come back again. And please, spread the word about Psychfic.com!
PLEASE NOTICE: This archive does not allow stories containing slash or stories containing sexually explicit content. The "M" rating on this site is for stories containing graphic violence or sensitive subject matter, not anything sexual. For information on this site's Rating System, go here. To see our Submission Rules, go here.
VISIT and BOOKMARK THE OFFICE
You are visitor number:
Just a reminder, if you've lost your password to the archive or community forum, please email email@example.com with your username and the password you wish to use for the site. I will manually reset your password for you.
As for the site email, there is no eta on when that will be resolved. We apologize for the inconvenience it causes, especially with author updates or review emails. You will have to manually check them for now.
Happy new year to all you Psych-O's out there...
--Jenn1984 on January 03, 2015 12:30 am 0 Comments
A note from Drag, from the Psychfic Community forum:
Hello everyone! I hope you've had a good chance to look over all of the fabulous nominations for this year's Psychfic awards!!
Voting officially opens tomorrow!
To Vote:
Voting dates: December 18th - 21st
--Jenn1984 on December 18, 2014 11:43 pm 0 Comments
Hi PFers! The 6th annual Psychfic awards are going on right now! There are a few days left for nominating, and then the voting will begin. Dragonnan has compiled the info needed on how to nominate and vote for your favorite Psychfic stories:To submit Nominations:
--Jenn1984 on December 05, 2014 6:11 pm 0 Comments
I hope you enjoy the new default skin, Chromium. Let me know what you think!
Also regarding skins, The_Bump and Bounty_Hunters skins have been removed due to layout conflicts. If you really want those two skins back, let me know and I'll remake the layout.
Some additions that you'll notice in the left sidebar area: Psychfic's twitter feed and a Shoutout! box.
- Stay...
--JessicaRae on July 01, 2012 1:17 pm 2 Comments
The results of the 2011 Psychfic Awards are now up. Congrats to all those nominated and the winners! Until next year!
(you may need to refresh the page)
--JessicaRae on June 07, 2011 9:51 pm 0 Comments
Nominating is now OPEN!! Go and nominate your favorite stories and authors! NOMINATE Don't forget to read the Rules before nominating.
Nominating ends April 26th.
(You may have to refresh your browser to see the updated pages on the awards site)
--JessicaRae on April 14, 2011 11:52 pm 4 Comments
It's that time again! Time for the 4th Annual Psychfic Awards. Nominating will begin on April 15th, so start getting your nomination choices ready!
Feel free to ask questions.
--JessicaRae on March 28, 2011 3:07 am 1 Comments
The winning skin is now up and is the default skin! As you can see, Shawn really went to town graffiti-ing the place up. :) Again, congrats to MuteTroubadouR for your winning entry. I think it made a fabulous new skin for the archive!
What do you think?
--JessicaRae on December 12, 2010 6:45 pm 0 Comments
Congratulations to MuteTroubadouR, our first Psychfic Skin Contest winner! Here is the winning entry:
Graffiti by MuteTroubadouR
The new skin featuring MuteTroubadouR's Graffiti header will be up by December 13th. I want to thank everyone...
--JessicaRae on December 11, 2010 2:48 pm 3 Comments
It is time to vote for your favorite header image entry for Psychfic's first Skin Contest!! The winner will have a new Psychfic skin designed around their header image. To VOTE, go to the poll on Psychfic's home page and select the entry you like best.
We had a great turnout for this contest and the entries are fantastic. Great job, everyone! The entries are below. Click the thumbnail for the full sized image.
--JessicaRae on December 03, 2010 7:58 pm 2 Comments
Want to have a part in creating a new Psychfic archive skin?
Enter today!!
How can I help make a skin?
Contest entries will be header images. The winning header image will be the basis of a new Psychfic skin.
How do I enter?
Email your entry to email@example.com. Remember to name your entry. Whatever...
--JessicaRae on November 16, 2010 8:56 pm 3 Comments
Announcing the official Psychfic Twitter!! http://twitter.com/Psychfic
Stay up-to-date on site news, features, challenges, and contests! Follow today!
--JessicaRae on November 14, 2010 8:33 pm 2 Comments