Template-based faceted search experience

Disclosed herein are enterprise applications and platforms that manage databases containing documents and may employ search systems that allow users to retrieve documents based on queries. The search systems may be configured to retrieve data from several different data sources and may be associated with many of the applications. Furthermore, the search systems may include a faceted interface based on database or document attributes for further search refinement. The faceted interface may be template-based and modular, allowing reconfiguration of the interfaces without substantial rewriting of the application code base.

BACKGROUND

The present disclosure relates in general to systems and methods for digitally searching databases. More specifically, the present disclosure is related to systems and methods that allow modular, template-based configuration of search interfaces for knowledge systems and other document databases.

Certain organizations may employ computer resources hosted in networked environments (e.g., local network servers, remote data centers, cloud-computing environments, etc.) as a repository for organizational knowledge. These repositories may include databases that store documents (e.g., knowledge articles), and that may be used to provide knowledge applications such as technical support pages, knowledge base pages, internet forums, wikis, and other applications that facilitate distribution of knowledge. An example of such applications include peer-to-peer knowledge sharing platforms (e.g., “community pages”) that provide forums and other pages for users of software resources to post and interact with content (e.g., forums, questions and answers, blogs, videos, polls, events, etc.) regarding use of software resources in the organization. Knowledge applications, such as peer-to-peer knowledge sharing platforms may be used to provide customer support documents for clients of a corporation and to provide training, internal policy, and procedure documents for members of the corporation or other organization. As a result, the knowledge applications may improve customer satisfaction, decrease support costs, increase productivity, and facilitate quality control procedures in the organization.

These applications and platforms often include use cases for searching the database(s) for specific articles based on user queries. However, different applications may have different user interface specifications related to the context of the application. Moreover, in some situations, the search may be performed over multiple data sources that may be dynamically added or removed. Changes in the search system and in the customer interface that result from these modifications in user interface specifications and data source availability may require costly and lengthy alterations in the code base.

SUMMARY

Enterprise applications and platforms that allow exchange of knowledge between users may employ search systems to facilitate information retrieval. The applications, such as forums, blogs, wikis, support pages, etc., may manage the information through storage of documents that may be stored in multiple databases. Embodiments described herein are directed to search systems, which may search for these documents across multiple databases based on a user query, and furthermore may refine the search results using faceted interactions. These facet interactions may provide refinement options to a user based on attributes of the documents stored in the database, and on the architecture of the application and/or platform. Moreover, the facets and their user interfaces may be reconfigured by an administrator without substantial recoding (e.g., no coding, or little coding) of the application and/or platform, by resorting to facet templates.

With the foregoing in mind, in an embodiment a search system is described. The system may include non-transitory memory devices and hardware processors that are configured to perform operations related to the search system, which may include receiving queries, retrieving search results from a database based on the search query, identifying facets from the database based on the search query, and displaying the search results along with the facets. Each facet identified may have multiple facet values associated with an attribute, which may be used to refine the search results. Furthermore, each facet may also be associated with a configurable facet template that is chosen from a set of facet templates. The facet templates of a particular facet may be replaced.

In another embodiment, a system for reconfiguration of facets is described. The system may include a non-transitory memory and hardware processors that are configured to perform operations related to configure the search system, including receiving a facet to be of the search system that a user wishes to configure, receiving at least one attribute that is associated with the facet, and receiving at least one facet template for the facet that is chosen from a set of facet templates.

DETAILED DESCRIPTION

Many enterprises employ collections of networked computing devices to provide enterprise applications that can improve productivity and/or customer satisfaction. Knowledge applications are applications that may be used to manage, store, index, and distribute documents that may contain information related to products and processes of the enterprise. Knowledge applications may, for example, manage and distribute documents related to product manuals, articles, internal processes, quality control practices, and several other types of information that are part of the enterprise. Examples of knowledge application include customer-facing applications or internal applications, such as knowledge bases, support documentation, forums, wikis, personnel directory, and many other customer-facing applications and/or internal applications.

In some enterprises, many knowledge applications may be integrated around a knowledge platform that integrates the multiple applications and allow for sharing resources. For example, in some organizations, software resources may be associated with a significant time investment for users to learn to operate an application or suite of applications. This results in reduced efficiency for software resource customers as users spend time learning how to use the software instead of performing their usual tasks. Furthermore, providers of software resources may invest significant resources to customer training and customer service to help guide their customers through using the provided software resources. A peer-to-peer knowledge-sharing platform (e.g., “community pages”) provides forums and other pages for users of software resources to post and interact with content (e.g., forums, questions and answers, blogs, videos, polls, events, etc.) regarding use of the software resource. Accordingly, users of a software resource may interact with one another via such pages to learn how to best utilize the software resource, thereby reducing redundancies in training, trouble shooting, and customer service. Users of the knowledge-sharing platform may benefit from identifying content through search query based on attributes of the content (e.g., title, author, text, comments, etc.).

In many knowledge applications and platforms, information may be retrieved by employing search systems. Searching provided by the search engines and/or systems may be used to retrieve information quickly, based on a user query. Search systems in knowledge applications may facilitate navigation by allowing direct access to documents for which the user already knows some of the attributes. For example, a user navigating a product manual knowledge application may search directly for the desired document based on the name of the product. In another example, a user navigating a human resources knowledge platform may search directly for content related to the topic across blog posts, wikis, forums, or memorandums managed by different applications. In some situations, the initial user query returns a large number of items as search results. In such situations, a user may want to refine the search results by modifying the query, instead of parsing each item of a potentially long list of items. Search systems may provide user interface (UI) elements (e.g., facets) that allow search refinement in an interactive manner.

The types of UI elements in a search system may depend on the specific knowledge platform/application and on the attributes of its documents. A user querying or refining (e.g., filtering the results) a search in a knowledge application that handles product manuals may, for example, search for a product name, a product family, a manual date. A user querying or refining a search in a support forum may search, for example, for a description of an error, the name of a product, or a rating of provided solutions. A user querying or refining a platform may specify a specific data source (e.g., a database, a table) or a specific application (e.g., a blog, a forum). The different attributes and the different contexts of the knowledge applications and/or platforms may be served by different types of UI elements. Embodiments described herein are related to search engines in which the configuration of the UI elements is facilitated by the use of template-based facets. Using such template-based facets, a search system administrator may seamlessly and dynamically change UI elements of the search system, without substantial rewriting of the code base based on the type of documents and attribute of a facet.

With the preceding in mind and by way of introduction,FIG. 1is a block diagram of a system100that utilizes a distributed computing framework, which may implement one or more of the approaches described herein. As illustrated inFIG. 1, a client102communicates with a platform, such as a cloud service104, over a communication channel106. The client102may include any suitable computing system. For instance, the client102may include one or more computing devices, such as a mobile phone, a tablet computer, a laptop computer, a notebook computer, a desktop computer, or any other suitable computing device or combination of computing devices. The client102may include client application programs running on the computing devices. The client102can be implemented using a single physical unit or a combination of physical units (e.g., distributed computing) running one or more client application programs. Furthermore, in some embodiments, a single physical unit (e.g., server) may run multiple client application programs simultaneously.

The platform104may include any suitable number of computing devices (e.g., computers) in one or more locations that are connected together using one or more networks. For instance, the platform104may include various computers acting as servers in datacenters at one or more geographic locations where the computers communicate using network and/or Internet connections. The communication channel106may include any suitable communication mechanism for electronic communication between the client102and the platform104. The communication channel106may incorporate local area networks (LANs), wide area networks (WANs), virtual private networks (VPNs), cellular networks (e.g., long term evolution networks), and/or other network types for transferring data between the client102and the platform104. For example, the communication channel106may include an Internet connection when the client102is not on a local network common with the platform104. Additionally or alternatively, the communication channel106may include network connection sections when the client and the platform104are on different networks or entirely using network connections when the client102and the platform104share a common network. Although only a single client102is shown connected to the platform104, it should be noted that platform104may connect to multiple clients (e.g., tens, hundreds, or thousands of clients).

Through the platform104, the client102may connect to various devices with various functionality, such as gateways, routers, load balancers, databases, application servers running application programs on one or more nodes, or other devices that may be accessed via the platform104. For example, the client102may connect to an application server107and/or one or more databases108via the platform104. The application server107may include any computing system, such as a desktop computer, laptop computer, server computer, and/or any other computing device capable of providing functionality from an application program to the client102. The application server107may include one or more application nodes running applications such as the knowledge management systems described herein, whose functionality is provided to the client locally or via the platform104. The application nodes may be implemented using processing threads, virtual machine instantiations, or other computing features of the application server107. Moreover, the application nodes may store, evaluate, or retrieve data from the databases108and/or a database server.

The databases108may contain a series of tables containing information about assets and enterprise services controlled by a client102and the configurations of these assets and services. The assets and services may include computers and/or other devices on a client accessible network112(or group of networks) separate from or contiguous with the cloud based resources. As such, the assets and services may include a combination of physical resources or virtual resources. The virtual resources and/or the other connected devices may operate knowledge applications having facet-based search systems, such as the ones described herein. These applications may also manage and retrieve data from storage devices, such as the databases108.

Although the system100is described as having the application servers107, the databases108, the communications channel128, the gateway server126, and the like, it should be noted that the embodiments disclosed herein are not limited to the components described as being part of the system100. Indeed, the components depicted inFIG. 1are merely provided as example components and the system100should not be limited to the components described herein. Instead, it should be noted that other types of server systems may implement the knowledge applications, the knowledge databases, and the search systems described herein. Further, it should be noted that server systems described herein may communicate with each other via a number of suitable communication protocols, such as via wired communication networks, wireless communication networks, and the like. In the same manner, the client102may communicate with a number of server systems via a suitable communication network without interfacing its communication via the platform104.

In any case, to perform one or more of the operations described herein, the client102, the application server107, the gateway server126, and other server or computing system described herein may include one or more of the computer components depicted inFIG. 2.FIG. 2generally illustrates a block diagram of example components of a computing device200and their potential interconnections or communication paths, such as along one or more busses. As briefly mentioned above, the computing device200may be an embodiment of the client102, the application server107, a database108, other servers or processor-based hardware devices present in the platform104, a device running the gateway server126, and/or any of the CIs110. As previously noted, these devices may include a computing system that includes multiple computing devices and/or a single computing device, such as a mobile phone, a tablet computer, a laptop computer, a notebook computer, a desktop computer, a server computer, and/or other suitable computing devices.

As illustrated, the computing device200may include various hardware components. For example, the device includes one or more processors202, one or more busses204, memory206, input structures208, a power source210, a network interface212, a user interface214, and/or other computer components useful in performing the functions described herein. The one or more processors202may include a processor or other circuitry capable of performing instructions stored in the memory206or in other accessible resources. For example, the one or more processors may include microprocessors, system on a chip (SoCs), or any other performing functions by executing instructions stored in the memory206. Additionally or alternatively, the one or more processors202may include application-specific integrated circuits (ASICs), field-programmable gate arrays (FPGAs), and/or other devices designed to perform some or all of the functions discussed herein without calling instructions from the memory206. Moreover, the functions of the one or more processors202may be distributed across multiple processors in a single physical device or in multiple processors in more than one physical device. The one or more processors202may also include specialized processors, such as a graphics processing unit (GPU).

The one or more busses204include suitable electrical channels to provide data and/or power between the various components of the computing device. For example, the one or more busses204may include a power bus from the power source210to the various components of the computing device. Additionally, in some embodiments, the one or more busses204may include a dedicated bus among the one or more processors202and/or the memory206. The memory206may include any tangible, non-transitory, and computer-readable storage media. For example, the memory206may include volatile memory, non-volatile memory, or any combination thereof. For instance, the memory206may include read-only memory (ROM), randomly accessible memory (RAM), disk drives, solid-state drives, external flash memory, or any combination thereof. Although shown as a single block inFIG. 2, the memory206can be implemented using multiple physical units in one or more physical locations. The one or more processors202access data in the memory206via the one or more busses204.

The input structures208provide structures to input data and/or commands to the one or more processors202. For example, the input structures208include a positional input device, such as a mouse, touchpad, touchscreen, and/or the like. The input structures208may also include a manual input, such as a keyboard and the like. These input structures208may be used to input data and/or commands to the one or more processors202via the one or more busses204. The input structures208may alternative or additionally include other input devices. For example, the input structures208may include sensors or detectors that monitor the computing device200or an environment around the computing device200. For example, a computing device200can contain a geospatial device, such as a global positioning system (GPS) location unit. The input structures208may also monitor operating conditions (e.g., temperatures) of various components of the computing device200, such as the one or more processors202.

The power source210can be any suitable source for power of the various components of the computing device200. For example, the power source210may include line power and/or a battery source to provide power to the various components of the computing device200via the one or more busses204. The network interface212is also coupled to the processor202via the one or more busses204. The network interface212includes one or more transceivers capable of communicating with other devices over one or more networks (e.g., the communication channel106). The network interface may provide a wired network interface, such as Ethernet, or a wireless network interface, such an 802.11, Bluetooth, cellular (e.g., LTE), or other wireless connections. Moreover, the computing device200may communicate with other devices via the network interface212using one or more network protocols, such as Transmission Control Protocol/Internet Protocol (TCP/IP), power line communication (PLC), Wi-Fi, infrared, and/or other suitable protocols. A user interface214may include a display that is configured to display images transferred to it from the one or more processors202. The display may include a liquid crystal display (LCD), a cathode-ray tube (CRT), a light emitting diode (LED) display, an organic light emitting diode display (OLED), or other suitable display. In addition and/or alternative to the display, the user interface214may include other devices for interfacing with a user. For example, the user interface214may include lights (e.g., LEDs), speakers, and the like.

With the foregoing in mind,FIG. 3provides a schematic diagram300of a search system302that may be used in a knowledge application303. In the search system302, a user304may enter a query306to search system302, and the search system may return search results308to a user based on the query306. Search system302may identify documents in data store310that may be associated with query306. Note that a document in data store310may have particular attributes that may assist indexing. Examples of attributes include article author, article text, draft date, content, rating, title, title, associated product, or any other identifier. If data store310employs a relational database, the documents may be stored in tables, and the attributes may correspond to columns of the table. In non-relational databases (e.g., non-SQL databases, noSQL databases), attributes may correspond to metadata (e.g., tags) stored in the documents. Search system302may identify attributes in the query306and improve the quality of search results308. For example, the user304may specify that he is seeking articles authored by a particular author and search system302may search for documents in data store310based on an “author name” attribute.

Search results308may also include attribute data to user304to improve the user experience and search refining. Search results308may include or otherwise be presented with facets, which, as used herein, are data elements assembled from a list of attributes and attribute entries, along with documents identified by the search system302. The user may refine the search based on interaction with these facets. For example, a knowledge application303related to customer support for a consumer goods corporation may have documents that have product names as an attribute. A user304seeking help with the product may enter a query306with an error code in search system302. The search system302may, in response, provide a search result308including list of documents related to that error code as well as a facet based on the product name attributes, generated from the product names in that list of documents. User304may quickly refine the search by choosing the appropriate product from the list of products that may be selected from via the facet.

The knowledge application303may be managed and/or configured by an administrator312. Administrator312may configure various aspects of the knowledge application303, including the search system302. For example, the administrator may configure the specific data store310used by the search system302, and which of the tables of the data store310should be searched. The administrator312may also configure a UI of the search system302that is displayed to the user304during the interaction. For example, administrator312may configure the format and UI of query306. The administrator may also configure the manner in which the search results308are displayed, by adjusting, among other things, how much information is provided in the document list, which facets may be displayed and UI and interaction rules for the facets. As detailed below, administrator312may configure the UI of the various elements of an interface in a seamless and dynamic manner by employing modular templates. Templates may include search results templates, facet templates, query templates, and any other UI elements of the search system302.

The flow chart320inFIG. 4illustrates an example of a use case for search system302. This use case is described along with the UI350illustrated inFIG. 5. In a step322, user304may enter a query306into the search system302. The query306may be entered in a search box352. When user304is entering the query initially, UI350may display only a search box352. The search box352may also be provided in a different part of the knowledge application, with other interfaces. In step324, user304receives a list of results354that result from the search systems processing of the query. The list of results354may consist of various search entries355that preview the content of the documents stored in data store310that are associated with the query306. User304may also manipulate the results of the search by adjusting sorting356or selecting a result page357, to scan the search results354.

User304may also receive in a step326a facet panel360including a multiple of facets362(e.g., facet UI elements). Each facet362provides a list of facet values that may be associated with a particular attribute of the documents stored in data store310. In some implementations, a facet value may be produced by merging multiple attribute values of the documents in data store310. For example, an author's first name and last name may be recorded as two separate attributes in data store310, and a full name facet value may be produced by combining both attributes. Search system may produce facets dynamically based on the documents and/or the search results354. For example, data for a facet362may be produced based on the attributes of the documents in search results354, or based on the attributes of all the documents in data store310. As another example, a facet362may provide as a facet value a link to an article in a data store310(e.g., a knowledge base article). In some implementations, data for the facet may also be pre-stored in the data store310. Administrator312may configure the method to populate data for facets362via a UI, without need for rewriting the code of the search system302.

In some situations, the facet362may include facet values that indicate the databases that a user wants to use as data source. As discussed above, data store310may be distributed across many databases (e.g., enterprise databases). In such situations, search system302may provide a facet362having as facet values the multiple available databases for search. Furthermore, in some situations search system may be shared across multiple applications of a platform. For example, “community pages” platforms may have content distributed across multiple applications, such as question and answers, blogs, videos, polls, events, etc.). A search system302in this platform may be shared by multiple applications. In such situation, the search system302may provide a facet362that allows refinement of search based on the application associated with the content. In this example, the facet values of such application facet may be an application of the platform.

User304may interact with facet362via the UI elements provided in facet panel360to refine the search results in a step328. Refinements of the search results354may narrow the list of returned search documents based on the attributes associated with facets362. In the illustrated example of UI350, the user304may narrow the search by selecting an entry in any of the facets362: the knowledge base, the category, the author, the rating, the modification date or the view count of the documents. Note that each of the facets362may employ different UI elements. Administrator312may configure the UI elements of each facet by selecting a facet template from among a set of interchangeable facets and associating it with the facet. Administrator312may also adjust the order in which elements are displayed as well as the visual style (e.g., style, stylesheet, color palette, fonts) of the facets362UI without substantial recoding. It should be noted that in some implementations, multiple users may use this system. Accordingly, users may share the results of the search and/or of the refinements with some other user via the search system302. This sharing may be facilitated sending the search results to a remote client instance of the application being used by the other user.

The diagram380inFIG. 6provides a schematic diagram of the architecture of template-based faceted search system302. Search results UI350includes a facet panel360that may include UI elements of any of the facet templates382. The search results UI350and the facet templates382may be sourced from data store310. Data store310may include any number of data sources384(e.g., enterprise data, source tables, data repositories). In response to a query, search system may scan data sources384to identify appropriate search result data elements386and facets388, as described above. Search results386may be provided to the front end UI350and displayed to a user. Similarly, each of the facets388is associated with a corresponding facet template382and combined to form a facet panel in the search interface350. Note that the facet templates382are separated (e.g., abstracted) from facets388. This separation allows modular replacement of the facet template382associated with a particular facet388.

Flow chart400inFIG. 7illustrates an example of a use case for configuration of a facet template search system302. An administrator may change and/or configure a facet based on the type of content searched by the facet. For example, a facet template that uses checkboxes for facet values allows the end user to refine the search results by selecting more than one facet value at a time (checkboxes are usually used in multi-select use case scenarios). In contrast, a facet template that includes a link or a radio button allows only one facet value to be chosen at a time. As exemplified by flow chart400, the administrators can declaratively choose what they want for a specific deployment of the search UI350(e.g., a Knowledge Search UI). The option to choose one among many facet templates is provides power and flexibility to the administrator as it allows them to deploy quickly a UI that allows for a high performance and responsiveness in search experience.

Flow chart400is described along with a configuration UI450illustrated inFIG. 8. In a step410an administrator selects a facet452to be configured. The selection of the facet may include the creation of a new facet being added, or may include editing an existing facet or facets. In response to facet selection, UI450may be displayed to the administrator. In the example, facet452is associated with the author of the documents. The administrator may also rename facet452by editing the title454. In a step412, the administrator selects the field and the data source and the attributes that are associated with facet452. In a search system that operates with a relational database, a source table may be selected via a data source UI element462. While the data source in this example refers to a table, other data sources, such as directory in a file system or a universal reference identifier (URI) may be used. Other UI elements may be employed for this entry. The administrator may then choose a field (e.g., attribute) that is associated with the facet via a field selection UI element464. In some implementations, the facet452may include multiple attributes.

In a step414, the administrator selects a look-and-feel of the UI elements of the facet, including a facet template. In UI450, the example includes selection of the order of the facet within the facet panel (order UI element456), selection of a color (color UI element458), and so forth. The administrator may further edit the style (e.g., stylesheet) for the facet by editing a textbox460. The style may be encoded in a particular language or protocol, such as a cascading stylesheet (CSS). The administrator may further configure the UI elements of facet452by choosing a facet template via facet template UI element466. The administrator may choose a template from a list of templates468. The choice of one of the templates may quickly provide a desired look-and-feel for the facet UI with no coding. The administrator may confirm the changes by confirming the configuration in a step416. Note that while the above example is described by way of employing configuration UI450, the use case described in flow chart400may be performed by making changes in a configuration file. This configuration file may be structured in a pre-determined format provided by the search system302or the knowledge application303, and may be performed by modification via plain text editors or other suitable editing tools.

The UI480inFIG. 9illustrates a result of the administrator use case illustrated by flow chart400applied to UI350inFIG. 5. UI480includes search box352, a list of results354, facet panel360, and facets363. UI480inFIG. 9is a result of a modification of the author facet (element482) by means of changing the facet template of the author facet (element363) ofFIG. 5. InFIG. 5, author facet (element363) employs a link facet template, in which the user may interact directly with the facet attributes as listed, as detailed below. The administrator may change the look-and-feel of the author facet via, for example, a configuration UI450, and choose a checkbox facet template, in which the user may choose any number of the facet attribute listed. Changes of look-and-feel of the facets via facet templates allow fast and dynamic modification of the user experience.

As described above, the user experience may be adjusted by choosing one facet template from a list of facet templates.FIGS. 10A-Gprovide some examples of facet templates that may be used in template-based faceted search system, such as the ones described above. It should be noted thatFIGS. 10A-Gare not an exhaustive list of possible facet templates, and are provided to illustrate certain of the features of facets and the relation between facet and facet templates.FIG. 10Adepicts a link facet template402. Link facet template402may display a header404that may be the title of facet. Template402may also have a list of facet values406. Each attribute of list of facet values406may be a clickable or otherwise selectable UI element407. Upon clicking on an element, the search system may refine the search results and return documents in the search result having an attribute that matches the attribute selected through facet template402.

A second example of a facet template is the radio box facet template408inFIG. 10B. Radio button facet template408may have a header404and a list of facet values406, as with the link facet template402. However, in the radio box facet template408, the user will interact with one of the radio buttons410to choose a specific entry from the list of facet values406. Facet templates402and408may display all entries of the list of facet values406at once. In some situations, the administrator may desire a more compact facet UI. Drop down facet template412, illustrated inFIG. 10C, employs a dropdown menu414that, when interacted with, may be used by the user to choose an element from the list of facet values406.

Documents in a data store310may also include numerical attributes. Examples of such instances include a price, a rating, a view count, a download count, among many others. In such instances, facet templates that employ a list of facet values including icons, discrete numbers, or ranges may be used. Rating facet template424illustrated inFIG. 10F, for example, allows the user to refine a search based using a rating facet426. In rating facet template424, the user is provided with multiple rating choices428for selection. Note that instead of presenting the attribute, rating facet template424present graphical representation of the values as facet values. Another example of a facet template for numerical attributes is a range facet template430, illustrated inFIG. 10G. The range facet template430may be associated with an attribute that may be refined by the use of ranges as facet values, instead of a list of the attributes (i.e., the actual numbers stored in the documents). In the example, count view434is illustrated. Search system may produce multiple ranges434(e.g., count view ranges) based on the list of attributes and provide them to the user for selection. Ranges may be generated dynamically based on the search results, or it may be a pre-programmed hard coded range, as configured by the administrator. In some implementations, facets may also provide dates aggregated in discrete periods. For example, in the “Last Modified” facet exemplified in facet panel360ofFIG. 5, the facet may have values such as “Past 2 Years,” “Past Year,” “Past Month,” “Past Week,” and/or “Past 24 Hours.” The aggregated date entries may be statically and/or dynamically determined.

Embodiments describe herein provides a customizable, faceted search experience that is template-based. The embodiments may allow administrators to build sophisticated facet interactions that are independent of the particular facet and may allow users and administrators of knowledge applications to mix and match facets and facet interactions in a declarative manner, with no coding. As a result, search systems may have flexible customization, reduced implementation time, which may improve the return on investment (ROI).

Further, if any claims appended to the end of this specification contain one or more elements designated as “means for [perform]ing [a function] . . . ” or “step for [perform]ing [a function] . . . ” it is intended that such elements are to be interpreted under 35 U.S.C. 112(f). However, for any claims containing elements designated in any other manner, it is intended that such elements are not to be interpreted under 35 U.S.C. 112(f).