SYSTEM FOR PREPARING PROJECT SPECIFICATIONS AND REPORTING USE OF PRODUCT TYPES ON A GEOGRAPHIC BASIS

20230230036 · 2023-07-20

    Inventors

    Cpc classification

    International classification

    Abstract

    A system for preparing PSB that classifies specification sections by specification type is described. The system prepares the PSB from an MSB with the specification sections classified according to the following specification types within each specification: specification section number, specification title, section part, specifications, and styles. The system also provides efficient preparation and utilization of a designer's preferred styles.

    A system for displaying product type information on a geographic basis for use by manufacturers is also described. This allows manufacturers to understand where their products are utilized on a geographic basis, as well as if those products are designer preferred products (base) or alternate preferred products (alternate).

    Claims

    1. A method of creating a project specification book (PSB) via a computer network, the method comprising: receiving a PSB creation input at a first computer system, the PSB creation input having been transmitted via the computer network from a second computer system, the PSB creation input comprising a request to begin PSB creation; based upon the PSB creation input, transmitting via the computer network from the first computer system to the second computer system, a PSB creation output, the PSB creation output configured for causing a project information entry to be displayed by the second computer system, wherein providing the project information entry includes causing a webpage having project information entries to be displayed via a display of the second computer system, the webpage being associated with a website of a service provider; receiving a project information input at the first computer system, the project information input having been transmitted via the computer network from the second computer system, the project information input comprising project information; processing the project information input by the first computer system, the processing comprising creating a project text file in a project index of a service provider database, where the first computer system assigns properties of the project index and the information of the project information input to the text file of the project index; based upon the processing, transmitting via the computer network from the first computer system to the second computer system a project page output for causing project information to be displayed by the second computer system, wherein providing the project information includes causing a webpage having project information to be displayed via the display of the second computer system, the webpage being associated with the website of the service provider; receiving a project page input at the first computer system from the second computer system transmitted via the network, the project page input comprising a selected PSB and a selected PSB style; processing the project page input by the first computer system, the processing comprising creating a text file in a PSB index of the service provider database, where the first computer system assigns properties of the PSB index and the information of the project page input to the text file of the PSB index; based upon the processing, transmitting via the computer network from the first computer system to the second computer system a PSB page output for causing PSB information to be displayed by the second computer system, wherein providing the PSB information includes causing a webpage having PSB information to be displayed via a display of the second computer system, the webpage being associated with a website of the service provider; receiving an add/remove specification section input at the first computer system from the second computer system transmitted via the network, the add/remove specification section input comprising a request for the first computer system to lookup via inverted index search master specification books of a master specification book (MSB) index of the service provider database having a company id associated with a user of the second computer system; based upon the add/remove specification section input, transmitting via the computer network from the first computer system to the second computer system an MSB output for causing an MSB selection to be displayed by the second computer system, wherein providing the MSB selection includes causing a webpage having MSB names of the looked up master specification books to be displayed via a display of the second computer system, the webpage being associated with a website of the service provider; receiving an MSB selection input at the first computer system from the second computer system transmitted via the network, the MSB selection input comprising a selected MSB name and configured for causing the first computer system to search via inverted index search of a published specification index of the service provider database for specification section text files having an MSB id that is associated with the selected MSB name; based upon the processing of the MSB selection input, transmitting via the computer network from the first computer system to the second computer system a specification sections output for causing specification section numbers of the specifications section text files from the looked up specification section text files to be displayed by the second computer system, wherein providing the specification sections includes causing a webpage having specification section numbers to be displayed via a display of the second computer system, the webpage being associated with a website of the service provider; receiving a populate PSB input at the first computer system from the second computer system transmitted via the network, the populate PSB selection input comprising selected specification section numbers and configured for causing the first computer system to process the selected specification sections, wherein the processing includes copying text files of the selected specification sections from a published specification section index of the service provider database having the MSB id and a published specification section id of the selected specification sections to a working specification sections index of the service provider database and assigning the working specification sections index properties; and copying text files of specifications associated with the selected specification sections from a published specification index having the published specification section id to a working specifications index of the service provider database and assigning the working specification index properties; based upon the processing of the populate PSB selection input, transmitting via the computer network from the first computer system to the second computer system a working specification sections output for causing an array of the specification sections of the to be displayed by the second computer system, wherein providing the specification sections array includes causing a webpage having specification section numbers, description, modification date, and user to be displayed via a display of the second computer system, the webpage being associated with a website of the service provider; receiving a specification section edit request input at the first computer system from the second computer system transmitted via the network, the specification section edit request input comprising a selected specification section and configured for causing the first computer system to process the selected specification section for editing, wherein the processing includes identifying specifications associated with the selected specification section via inverted index search using the specification section id of the specification text files of the working specification index; based upon the processing of the specification section edit request, transmitting via the computer network from the first computer system to the second computer system a specification section edit output for causing the specifications of the selected specification section to be displayed by the second computer system, wherein providing the specifications includes causing a webpage having the specification sections to be displayed via a display of the second computer system, the webpage being associated with a website of the service provider; receiving a specification edit input at the first computer system from the second computer system transmitted via the network, the specification section edit input comprising edits to the specifications and configured for causing the first computer system to process the specification edits, wherein the processing includes saving the specification edits in the working specifications index; based upon the processing of the specification section edit input, receiving a publish request input at the first computer system from the second computer system transmitted via the network, the publish request input configured for causing the first computer system to copy all edited text files from the working specification sections index and working specifications index as text files to the published specification sections index and published specifications index and assigning the associated properties to each newly copied text file of the published specifications section and the published specifications to create the PSB.

    2. The method of claim 1, wherein the publish request input is further configured for causing the first computer system to export the edited text files of the published specifications index and published specification sections index to a word processing program to form a complete PSB.

    3. The method of claim 1, wherein the publish request input is further configured for causing the edited text files of the published specification section index to be copied to a reporting index of the service provider database.

    4. The method of claiml, wherein the project index of the service provider database is associated with a designer; wherein the PSB index of the service provider database is associated with the designer; wherein the MSB index of the service provider database is associated with the designer; wherein the published specification index of the service provider database is associated with the designer; wherein the published specification section index of the service provider database is associated with the designer; wherein the working specifications section index of the service provider database is associated with the designer; wherein the working specification index of the service provide database is associated with the designer; wherein the published specification index of the service provider database is associated with the designer.

    5. The method of claim 5, wherein the publish request input is further configured for causing the edited text files of the published specification section index to be copied to a reporting index of the service provider databased that is associated with the designer.

    6. The method of claim 1, wherein the project index of the service provider database is a consolidated project index; wherein the PSB index of the service provider database is a consolidated PSB index; wherein the MSB index of the service provider database is a consolidated MSB index; wherein the published specification index of the service provider database is a consolidated published specification index; wherein the working specifications section index of the service provider database is a consolidated working specifications section index; wherein the working specification index of the service provider database is a consolidated working specification index; wherein the published specification index of the service provider database is a consolidated published specification index.

    7. The method of claim 7, wherein the publish request input is further configured for causing the edited text files of the published specification section index to be copied to a reporting index of the service provider database that is a consolidated reporting index.

    8. A method of determining product use in a geographic area via a computer network, the method comprising: receiving a product search initiation input at a first computer system, the product search initiation input having been transmitted via the computer network from a third computer system being associated with a manufacturer, the product search initiation input comprising a request to begin a product search; based upon the product search initiation input, transmitting via the computer network from the first computer system to the second computer system a product search output for causing a product search entry to be displayed by the second computer system, wherein providing the product search entry causing a webpage having the product search entries of a product name and a product geography to be displayed via a display of the second computer system, the webpage being associated with a website of a service provider; based upon the product search entry, receiving a product search input at a first computer system, the product search input having been transmitted via the computer network from a third computer system, the product search input comprising information entered for a product and a geography of interest and configured for causing the first computer system to process the product search input; processing the product search input by the first computer system, the processing comprising searching a reporting index of a service provider database via inverted index search to identify text files having the product and geography properties equal to the product search input and the manufacturer's name; transmitting via the computer network from the first computer system to the third computer system a product results output for causing product use information in the geography to be displayed by the third computer system, wherein providing the product results causing a webpage having the product search results to be displayed via a display of the second computer system, the webpage being associated with a web site of the service provider.

    9. A method of determining standard use in a geographic area via a computer network, the method comprising: receiving a standard search initiation input at a first computer system, the standard search initiation input having been transmitted via the computer network from a third computer system being associated with a manufacturer, the standard search initiation input comprising a request to begin a standard search; based upon the standard search initiation input, transmitting via the computer network from the first computer system to the second computer system a standard search output for causing a standard search entry to be displayed by the second computer system, wherein providing the standard search entry causing a webpage having the standard search entries of a standard name and a geography to be displayed via a display of the second computer system, the webpage being associated with a website of the service provider; based upon the standard search entry, receiving a standard search input at a first computer system, the standard search input having been transmitted via the computer network from a third computer system, the standard search input comprising information entered for a standard and a geography of interest and configured for causing the first computer system to process the standard search input; processing the standard search input by the first computer system, the processing comprising searching a reporting index of a service provider database via inverted index search to identify text files having the standard and geography properties equal to the standard search input; transmitting via the computer network from the first computer system to the third computer system a standard results output for causing standard use information in the geography to be displayed by the third computer system, wherein providing the standard results causing a webpage having the standard search results to be displayed via a display of the second computer system, the webpage being associated with a web site of the service provider.

    10. A method for identifying changes to a project specification section via a computer network, the method comprising: receiving a comparison input at a first computer system, the comparison input having been transmitted via the computer network from a second computer system, the comparison input comprising a request to process a comparison of a preselected project specification section to an associated master specification section, the first computer system being associated with a service provider, the second computer system being associated with a designer; based upon the comparison input, processing the comparison of the preselected project specification section to the associated master specification section, the comparison being processed by the first computer system, where the processing comprises the first computer system searching a published specifications index of a service provider database to identify published specification ids of a published specification index that match ms parent spec ids of specifications of the preselected specification section; and upon identification of matching published specification ids and ms parent spec ids comparing the content of the text files associated with the ms parent spec ids and published specification ids to generate a comparison of the preselected specification index to the published specification section; transmitting a comparison output from the first computer system to the second computer system via the computer network, the comparison output configured for the comparison of the preselected specification index to the published specification section to be provided to the second computer system, wherein providing the comparison includes causing the webpage having the comparison to be displayed via the display of the second computer system.

    11. The method of claim 10, wherein the request of the comparison input further comprises a comparison of a second preselected project specification section to the associated master specification section; and wherein the processing further comprises the first computer system searching the published specifications index to identify published specification ids of the published specification index that mat ms parent spec ides of sections of the second preselected specification section; and upon identification of matching published specification ids and ms parent spec ids comparing the content of the text files associated with the ms parent spec ids and published specification ids to to produce a comparison of the second preselected specification index to the published specification section; and wherein the processing further comprises comparing the comparison of the preselected specification index to the published specification section to the second preselected specification index to the published specification section to produce a comparison of the preselected specification section to the second preselected specification section; and wherein the comparison output is configured for the comparison of the preselected specification section to the second preselected specification section to be provided to the second computer system.

    Description

    FIGURES

    [0012] FIG. 1 is a block diagram 100 representing a system for preparing PSB and reporting use of product types on a geographic basis.

    [0013] FIG. 2a is a class diagram of a service provider database of the system for preparing PSB and reporting use of product types on a geographic basis. FIG. 2a continues horizontally onto a second page.

    [0014] FIG. 2b is a flow chart representing a method for classifying specifications.

    [0015] FIG. 2c is a flow chart representing a method for classifying products.

    [0016] FIG. 2d is a consolidated class diagram of a service provider database of the system for preparing PSB and reporting use of product types on a geographic basis. FIG. 2d continues horizontally onto a second page.

    [0017] FIG. 2e is a second class diagram of a service provider database of the system for preparing PSB and reporting use of product types on a geographic basis. FIG. 2e continues horizontally onto a second page.

    [0018] FIG. 3a is a flow chart representing a method for assessing use of products on a geographic basis using the system.

    [0019] FIG. 3b is a mock up display of the results of the method for assessing use of a product on a geographic basis.

    [0020] FIG. 3c is a mock up display of a designer's dashboard that is unfiltered.

    [0021] FIG. 3d is a mock up display of a designer's dashboard that is filtered by project name.

    [0022] FIG. 3e is a flow chart presenting a method 310 of determining standards used in a geographic area.

    [0023] FIG. 3f is a mock up display of a manufacturer's dashboard utilizing a standards search.

    [0024] FIG. 4a is a flow chart representing a method for creating a PSB in connection with a project.

    [0025] FIG. 4b. is a mockup of a specification section output of the method 400.

    [0026] FIG. 4c is a mock of a specification section edit output of the method 400.

    [0027] FIG. 5a is a flow chart representing a method for comparing an MSB to a PSB in connection with a project.

    [0028] FIG. 5b is a mockup of a the comparison output of the method 500 showing a comparison of an MSB to a PSB.

    DETAILED DESCRIPTION

    [0029] As used in this application, the following terms have the associated defined meaning:

    [0030] “Master specification book” or “MSB” means a collection of specification sections which are used as a template to apply to future projects. MSBs are not used directly on projects, rather MSBs are used as a starting point for projects. Specification sections of MSBs are copied to create a PSB for a particular project. MSBs are editable by a user with the master specification writer user role, where these revisions will not retroactively apply to previous PSBs, only the subsequent PSBs.

    [0031] “Project specification book” or “PSB” means a collection of specification sections which are used as a starting point for projects. PSBs are often edited during the course of a project as it progresses. PSBs are created by copying an MSB and selecting relevant specification sections. PSBs may also be created by copying an existing PSB and selecting relevant specification sections.

    [0032] “Project” means the construction project that the PSB is directed toward. For example, projects may range from infrastructure to transportation, such as buildings (including commercial and residential), roads, highways, bridges, and the like. Projects may include different modules (i.e. more than one building, structure, road, bridge or the like), where a “module of a project” refers to a single module. Each project has at least one module.

    [0033] “Specification section” means the discrete file containing the specification section number, specification section title, section part, and specifications.

    [0034] “Specification section number” means the number assigned to identify a particular specification section.

    [0035] “Specification section title” means the title of the specification section descriptive of the product to which the specification section pertains. Only a single specification section title is permitted per specification section.

    [0036] Specification sub-title” means the title of a sub-section of the specification section title. Only a single specification section sub-title is permitted per specification section.

    [0037] “Section part” means an identification of a part of the specification section having instructional specifications, where each specification section has at least one section part. A section part may contain section headers. For example, a three part specification contains three section parts including specifications pertaining to (1) general information, (2) product information, and (3) execution. Or for example, a pay item specification contains one section part including specifications pertaining to production information.

    [0038] “Section header” means a specification that designates the beginning of a new specification in the section part. For example, in a three part specification in the general information section part, there may be section headers for related documents, summary, pre-installation meetings, action submittals, informational submittals, quality assurance, delivery/storage/handling, and the like. Or for example, in a pay item specification in the product information section part, there may be section headers for performance requirements, products, fabrication, and the like.

    [0039] “Specification” means the description of the parameters of discrete items of the project and include the following: general specification, product type, product, design preference, manufacture, instruction, and standard.

    [0040] “General Specification” means a specification that communicates a direction or fact about products or processes related to the products.

    [0041] “Product Type” means a specification that identifies the article of manufacture type that will be used on the project, where the product type is the common name for a product that is not specific to a manufacturer. For example, if the product is boutique facial tissue, the product type would be tissue paper. Other examples of product types include compose metal decks, concrete patio, or kitchen counter

    [0042] “Product” means the particular article of manufacture that the specification is directed towards. For example, products may range from Type W2 Formlok (corresponding to a composite metal deck product type), to Formula One, Guard W. (corresponding to a concrete finish product type), to Everform™ Solid Surface (corresponding to a kitchen counter product type).

    [0043] “Design Preference” means a specification that designates the priority of one manufacturer over another. The projection specification writer defines the priority of one manufacturer over another.

    [0044] “Manufacturer” means a specification that designates a particular manufacturer for a product.

    [0045] “Standard” means a specification that references an industry standard that is separate from the PSB.

    [0046] “Instruction” means a specification that is an instruction from the master specification writer to project specification writers.

    [0047] “Style” means an instruction for stylization such as a table, divider symbol (e.g. characters), or colors.

    [0048] “Designer” means an individual or entity that prepares PSB and MSB for projects.

    [0049] “Master Specification Writer” means an individual that prepares the MSB. Master specification writers are associated with the designer.

    [0050] “Project Specification Writer” means an individual that prepares the PSB. Project specification writers are associated with the designer.

    [0051] “Manufacturers” means an individual or entity that creates the product.

    [0052] “Stored” or “storing” means the processing element of the computing device directing the storage of a value or information in the memory using non-transient software code and data stored in the memory of the computing device to carry out the storing of the value or information.

    [0053] “Processing” means the processing element of a computing device using computer readable non-transient software code and data stored in the memory of the computing device to carry out a processing function.

    [0054] “Transmitting” means the processing element of a computing device using computer readable non-transient software code and data stored in the memory of the computing device to carry out transmitting an output.

    [0055] “Receiving” means the processing element of a computing device using computer readable non-transient software code and data stored in the memory of the computing device to carry out receiving an input.

    [0056] “Displaying” means the processing element of a computing device using computer readable non-transient software code and data stored in the memory of the computing device to direct display of an output by a display of the computing device when a non-transitory computer-readable medium having computer executable instructions is installed on a computing device.

    [0057] “Validating” or “validate” means the processing element of a computing device using computer readable non-transient software code and data stored in the memory of the computing device to direct authentication of account login information associated with a registered account.

    [0058] A system for preparing PSB that classifies specification sections by specification type is described. The system prepares the PSB from an MSB with the specification sections classified according to the following specification types within each specification: specification section number, specification title, section part, specifications, and styles. The system also provides efficient preparation and utilization of a designer's preferred styles.

    [0059] A system for displaying product type information on a geographic basis for use by manufacturers is also described. This allows manufacturers to understand where their products are utilized on a geographic basis, as well as if those products are designer preferred products (base) or alternate preferred products (alternate). In the system described herein, a service provider provides a computer-based (e.g. online or installed) program (e.g. via a website of the service provider or through software installed on a computer) for efficiently preparing PSB and displaying product types per geographic area in response to user initiated searches. This system allows project specification writers to efficiently build PSB from MSB, and the system allows manufacturers to determine where there products are being used per geographic location.

    [0060] FIG. 1 is a block diagram 100 representing a system for preparing PSB and reporting use of product types on a geographic basis (referred to as product type reporting). The system may include a first computer system 102, a second computer system 104, and a third computer system 106. The preparation of PSB and product type reporting may be provided as computer-based (e.g. online, web-based) services via an Internet site (e.g. website) associated with a provider of the services (e.g. service provider).

    [0061] A first computer system 102 is associated with the service provider. The first computer system 102 may include one or more computing devices 112 (e.g. servers, nodes, computers). As used herein, the “computing device” may refer to a general purpose device that can be programmed to carry out various sets of arithmetic or logical operations. Further, the computing device may include one or more processing elements 122 (e.g. processors, central processing unit (CPU)) and some form of memory 132 (e.g. data storage device, database), the memory being connected to (e.g. communicatively coupled with) the processing element(s). The computing device may further include one or more user interface devices (e.g. user input devices), such as a keyboard, mouse, display, and/or the like, which are connected to (e.g. communicatively coupled with) the processing element(s). As used herein, the term “server” may refer to software (and suitable computer hardware) which is configured for providing (or helping to provide) a network service. For example, the term “server” may refer to software which is executed on a dedicated computer (e.g. hosted by a networked computer) or executed on a computer in a shared hosting environment. Further, the term “server” may refer to the dedicated computer itself. Further, the term “server” may refer to a computer program which may execute to service the requests of other computer programs. When the first computer system 102 includes multiple computing devices, the multiple computing devices of the first computer system may be connected to (e.g. communicatively coupled with) each other.

    [0062] The computing device 112 of the first computing system includes a service provider database 142. The service provider database 142 is a NoSQL text-based database utilizing index patterns for searching. The database 142 processes text files (e.g. Word documents) and indexes the text files based on the text file properties, where an index having a desired index pattern is searched in connection with utilization of the system. The service provider database 142 is further described in FIG. 2.

    [0063] The first computer system 102 is used by users associated with the service provider, where users have assigned user roles. Service provider user roles include an administrator. The administrator has view and edit rights to all of the service provider indices 202 (as further described in FIG. 2a). The administrator user role has view rights to the products index of the manufacturers indices 206 (as further described in FIG. 2a).

    [0064] A second computer system 104 is associated with a designer that desires to use the system to prepare PSB. The second computer system 104 may include one or more computing devices (e.g. servers, nodes, computers). The second computer system 104 may include multiple computing devices, the multiple computing devices of the second computer system 104 may be connected to (e.g. communicatively coupled with) each other. In examples, the second computer system (e.g. designer computer system) 104 is remotely located from the first computer system (e.g. service provider computer system) 102.

    [0065] The second computer system 104 is used by users associated with the designer, where users have assigned user roles. Designer user roles include a designer administrator, a specification writer, a master specification writer, and a specification viewer. The designer administrator user role has view and edit rights to all of the text files in the designer indices 204 (as described in FIG. 2a), and has view and edit rights to the create and edit designer users text files in the identity users index, and to view and edit the company name property in the company index.

    [0066] The project administrator user role has view and edit rights to the text files in the customer clients index, the styles index, the projects index, the specifications sections index and the specification index of the designer indices 204.

    [0067] The master specification writer user role has view and edit rights to the text files in the master specification books index, the specification sections index, and the specifications index of the designer indices 204.

    [0068] The specification writer user role has view and edit right to the text files in the specification sections index, specifications index, and projects index of the designer indices 204.

    [0069] The specification viewer user role has view rights to the text files in the specification section index, specifications index, and projects index of the designer indices 204. All designer user roles have view rights to the products index of the manufacturers indices 206.

    [0070] The system may include a third computer system 106 that may be associated with a product manufacturer that supplies products used in connection with projects. The third computer system 106 may include one or more computing devices (e.g. servers, nodes, computers). The third computer system 106 may include multiple computing devices, the multiple computing devices of the third computer system 106 may be connected to (e.g. communicatively coupled with) each other. For example, the third computer system (e.g. manufacturer computer system) 106 is remotely located from the first computer system (e.g. service provider computer system) 102.

    [0071] The third computer system 106 is used by users associated with the manufacturer, where users have assigned user roles. Manufacturer user roles include a manufacturer administrator and a manufacturer user. The manufacturer administrator user role has view and edit rights to all of the text files in the manufacturer indices 206 (as described in FIG. 2a), and has view and edit rights to the create and edit manufacturer users text files in the identity users index, and to view and edit the manufacturer name property in the company index of the service provider indices 202.

    [0072] The manufacturer user role has view and edits rights in all of the text files in the manufacturer indices 206. All manufacturer user roles have view rights to the products index of the manufacturers indices 206.

    [0073] FIG. 2a is a class diagram of a service provider database of the system for PSB creation and reporting use of product types on a geographic basis. For purposes of readability, the text of each index of FIG. 2a is listed in paragraph [0187]. The class diagram 200 of the service provider database includes service provider indices 202, manufacturer indices 204, and designer indices 206. The database 142 is a NoSQL text-based database utilizing index patterns for searching utilized to deploy the system for PSB creation and reporting use of product types on a geographic basis. For example, the NoSQL text-based database utilized to deploy the system may be a Elasticsearch database or MongoDB database. Searches executed on the database 142 use full text inverted index searches, which provide increased searching speed as compared to using a relational database for such data classification and searching. For example, executing a search (query) on the reporting specifications index 2082 takes approximately 1 second on the database 142, where utilizing a relational database to perform a similar search (i.e. using relational tables to search multiple tables via keys) would take approximately 40 seconds.

    [0074] In connection with FIG. 2a, FIG. 2d, and FIG. 2e use of i.e. in parentheses identifies the property values of the associated index of the class diagram in FIG. 2a when the property value has a differing name in the class diagram as compared to this detailed description. The service provider indices 202 include indices relating to designers, manufacturers, and the both designers and manufacturers. The service provider indices 202 relate information between users and manufacturers and designers via index searching to facilitate the ability to provide real-time information for use of product types on a geographic basis and efficient preparation of a PSB.

    [0075] The service provider indices 202 related to designers includes an index for companies. The companies index 2022 includes text files for each designer (company), where properties associated with each designer text file may include a companies index id that identifies the companies index (i.e. companies), a unique company id (_id:id), the company name, and the date the text file in the index was created. The companies index 2022 allows the service provider to index and manage the designers and their associated unique company ids. The unique company ids provide the ability for index pattern searches where a user associated with a particular designer will only search those indices having the unique company id in the index pattern.

    [0076] The service provider indices 202 related to manufacturers includes an index for manufacturers. The manufacturers index 2024 includes text files for each manufacturer, where index properties associated with each manufacturer text file may include a manufacturers index id (i.e. manufacturers) that identifies the manufacturers, include a unique manufacturer id (i.e. _id:id), the company name, and the date the text file in the index was created. The manufacturers index allows the service provider to index and manage the manufacturers and their associated unique manufacturer ids. The unique manufacturer ids provide the ability for index pattern searches where a user associated with a particular manufacturer will only search those indices having the unique manufacturer id in the index pattern.

    [0077] The service provider indices 202 related to both manufacturers and designers include user identity 2026, user rolls 2028, classification value 2030, and classifications 2032, and may include a master product index 2036. The identity users index 2026 includes text files for each user associated with at least one designer or manufacturer. The properties associated with each text file may include the identity users index id (i.e. identity_users), a unique user id (i.e. _id:id), username and password for the user to login to the system, a user's email address, Boolean of a user's administrator status, user status, and the date the text file in the index for the user was created. The identity users index 2026 provides top level management for access to the system by users associated with designers and manufacturers, where association of a company id or manufacturer id with a user (via assignment by a manufacturer in its manufacturer assigned users index 2042 and via assignment by a designer in its company assigned users index 2062) provides the ability for the user to query indexes having those particular company id and manufacturer id index patterns. Because one user may be associated with multiple designers or manufacturers, the identify users index 2026 includes a text file for each user, where the manufacturer or designer controls user access by assignment of a user role within the respect assigned users index. For example, a user being associated with both a company and manufacturer will generate two text files, one in the manufacturer assigned users index 2042 and one in the company assigned users index 2062, each having the respective listed properties.

    [0078] The user roles index 2028 includes text files for each user role of manufacturers and companies (i.e. master specification writer, project specification writer, administrator). The properties associated with each text file may include a user role index id that identifies user roles index 2028, a user role id (i.e. _id:id) that identifies the a particular user role, and the name of the user role.

    [0079] The classification index 2032 of the service provider indices 202 includes text files for each product. The properties associated with each text file may include the classification index id (i.e. classifications) that the classification index 2032, the classification id (i.e. _id:id) that identifies the product, the product name (i.e. name: text), and a release date of the product. The product name identifies a particular product. Two or more equivalent products may share a classification id, which allows equivalent products to be identified by having the same classification id. The classification index 2032 may deploy classification machine learning, such as the classification tool enabled within the Elasticsearch database to predict product classification ids for products.

    [0080] The classification value index 2030 of the service provider indices 202 includes text files that relate products to specification sections utilizing a specification section number. The properties associated with each text file may include the classification index id that identifies the classification value index 2030 (i.e. classification_values), a classification value id (i.e. _id:id) that identifies the product's classification, the classification id (i.e. classification_id:id) that identifies a text file of the classifications index 2030, and a specification section number (i.e. number:text) that identifies the location of the text file when building a PSB, a description of the product, and the date the text file was created. The classification values index may deploy classification machine learning, such as the classification tool enabled within the Elasticsearch database to predict associations between products and specification sections.

    [0081] The master product index 2036 includes text files for each manufacturer product in the reporting index 2082. The properties associated with each text file include master product index id that identifies the master product index 2036 (i.e. master_product), a master product id (i.e. _id:id) that identifies a particular product, a product name (i.e. product:text), product type, and manufacturer. The product name property as copied from the reporting index is the designer assigned product name, which may deviate from the service provider's assigned product name. The first computer system 102 may deploy K-means data clustering within the master product index, where the system assigns each product a value corresponding to the service provider's assigned product name. As the master product index 2036 is updated, the system deploys k-means data clustering to group each product name with its most closely associated service provider assigned product name, where each product then receives a system assigned value. This allows for increased accuracy in product identification by the manufacturer when it conducts a search, as product name deviations and aliases are identified by the system. Additionally, the master product index 2036 increases the searching speed in connection with a manufacturer's product search, as compared to a system not having the master product index.

    [0082] The manufacturer indices 204 includes information relating to each particular manufacturer. The manufacturer indices 204 are replicated for each manufacturer utilizing the manufacturer's manufacturer id as the index pattern. The manufacturer indices 204 may include manufacturer assigned users 2042, manufacturer products 2044, manufacturer classification references 2046, product features 2048, product options 2050, and product finishes 2052. The manufacturer indices 204 may also include information on the manufacturer's offices, and the manufacturer's assigned users. Alternatively, the manufacturer indices 204 may be consolidated into the service provider indices 202, as represented in FIG. 2d.

    [0083] The manufacturer assigned users index 2042 of the manufacturer indices 204 includes text files for each user having an unique user identity id associated with the manufacturer id, where the association is assigned by the manufacturer. The properties associated with each text file of the manufacturer assigned users index may include the manufacturer assigned users index id that identifies a particular index of the assigned users index (i.e. [manufacturer_id]_assigned_users), the assigned users id (i.e. _id:id) that identifies the user in the assigned users index 2042, the unique user id (i.e. user_id:id) that identifies the user, a user role index id (i.e. user_role_id:id) to identify the manufacturer user role, a user status, and the date the text file was created in the manufacturer assigned users index. Users in the manufacturer assigned users index are permissioned to search the manufacture's indices having the associated manufacturer id and update such indices with additional product information. Alternatively, the manufacturer assigned users index 2042 may be consolidated into the consolidated assigned users index 2063 of the service provider indices 202.

    [0084] The manufacturer products index 2044 of the manufacturer indices 204 includes text files for each of the manufacturer's products. The properties associated with each product text file may include a product index id that identifies an index of the manufacturer products index 2044 (i.e. [manufacturer_id]_products), a product id (i.e. _id:id) which is the manufacture's product identification value, a product name, product type, product line, and a link to a website associated with the product. A manufacturer may manually populate the manufacturer products index with its products and associated properties. The manufacturer products index 2044 is utilized to populate the classification values index 2030 of the service provider indices 202 via the manufacturer classification reference index 2046 of the manufacturer indices 204. Alternatively, the manufacturer products index 2044 may be consolidated into the consolidated master product index 2045 of the service provider indices 202.

    [0085] The manufacturer classification references index 2046 includes text files that relate a manufacturer's product with specification sections of designer PSB and MSB. The properties associated with each text file may include the classification reference index id that identifies the manufacturer's classification references index 2046 (i.e. [manufacturer_id]_classificationrefs), the classification reference id (i.e. _id:id) that identifies the classification references, the classification value id (i.e. classvalue_id:id) that identifies the associated text file of the classification values index, the product id that identifies the product, and the date on which the text file was created. The manufacturer classification reference index may be populated manually or the index may deploy classification machine learning, such as the classification tool enabled within the Elasticsearch database to classify products. Alternatively, the manufacturer classification references index 2046 may be consolidated into the consolidated master product index 2045 of the service provider indices 202.

    [0086] The manufacturer indices 204 may also include additional indices having properties containing additional information on product features, such as product features 2048, product options (i.e. product add-ons) 2050, and product finishes 2052. These indices identify the product using the product id. Alternatively, the product features index 2048, product options index 2050, and product finishes index 2052 may be consolidated into the consolidated master product index 2045 of the service provider indices 202.

    [0087] The designer indices 206 include information relating to a designer's MSB and PSB. The designer indices 206 include company assigned users 2062, projects 2064, PSB 2068, MSB 2066, published specification sections 2074, published specifications 2080, working specification section 2070, working specifications 2076, draft specification sections 2072, and draft specifications 2078 indices. The designer indices 206 may further include reporting 2082 customer clients 2086 indices.

    [0088] The company assigned users index 2062 of the designer indices 206 includes text files for each user having a having an unique user identity id associated with the company id, where the association is assigned by the company. The properties associated with each text file of the company assigned users index may include the assigned users index id that identifies the company assigned users index 2062 (i.e. [company_id]_assigned_users), the unique user id that identifies the user (i.e. user_id:id), the user role id (i.e. user_role_id:id) to identify the designer user role, the user status, the project id that identifies projects associated with the user from the projects index 2064, and the date the text file was created in the company assigned users index. Users in the company assigned users index are permissioned to search the company's indices having the associated company id. Users in the company assigned users index may also be permissioned via the user role id to update such indices with additional product information (as described in FIG. 1). Alternatively, the company assigned users index 2062 may be consolidated into the consolidated assigned users index 2063 of the service provider indices 202.

    [0089] The project index 2064 of the designer indices 206 includes text files of each project associated with a company. The properties associated with each project text file of the project index 2064 may include a project index id that identifies the project index (i.e. [company_id]_projects), the project id (i.e. _id:id) that identifies a particular project text file of the project index 2064, the customer client name, a project name (i.e. name:text), a project address, and the date the project was created. The project index 2064 may further include properties associated with the text file that relate to the industry and type of project. Classification of the project text file in this manner associates the project with its particular geography (via the address information), as well as the applicable specifications via the project id. Alternatively, the project indices 2064 may be consolidated into the consolidated project index 2065 of the service provider indices 202.

    [0090] The designer indices 206 also include an MSB index 2066 that includes text files for an MSB. The properties associated with each MSB text file may include an MSB index id that identifies the MSB index 2066 (i.e. [company_id]_master_spec_books), an MSB id (i.e. _id:id) that identifies a particular MSB, the name of the MSB, and the date on which the text file was created in the index. The MSB index 2066 may further include a properties related to the description of the MSB. The MSB index 2066 provides classification of MSBs for use in connection with efficiently preparing a PSB and provides through the MSB id an association of the particular MSB text file with the associated specification sections text files of the working specification section 2070, draft specification section 2072, and published specification section 2074 indices. The MSB index 2066 may provide through the MSB id an association of the particular MSB text file with the associated specification text files of the working specifications 2076, draft specification 2078, published specification 2080. Alternatively, the MSB indices 2066 may be consolidated into the consolidated MSB index 2067 of the service provider indices 202.

    [0091] The designer indices 206 also include a PSB index 2068 that includes a text file for each of the PSBs associated with each module of a project. A new text file in the PSB index 2068 is created for each module of a project during PSB creation, as further detailed in FIG. 4. The properties associated with each text file of the PSB index 2068 may include a PSB index id that identifies the PSB index 2068 (i.e. [company_id]_project_spec_books), a PSB id (i.e. _id:id) that identifies a particular PSB, a PSB name, the project id, the style id, the date of creation of the text file, and the date the text file is modified and the unique user id of the user that created or modified the PSB(i.e. created_by:id and modified_by:id, respectively). The PSB index 2068 provides through the PSB id an association of the particular PSB with the associated specification sections text files of the working specification section 2070, draft specification section 2072, and published specification section 2074 indices. The PSB index 2068 may provide through the PSB id an association of the particular PSB with the association specification text file of the working specifications 2076, draft specification 2078, published specification 2080. Alternatively, the PSB indices 2068 may be consolidated into the consolidated PSB index 2069 of the service provider indices 202.

    [0092] The published specification sections index 2074 of the designer indices 206 includes text files for each specification section of an MSB and PSB. The properties associated with each published specification section text file may include a published specification section index id (i.e. [company_id]_spec_sections]) that identifies a particular index of the specification sections index 2074, a published specification section id (i.e. _id:id), a specification section title (i.e. spec_section_title: text), a specification section number (i.e. spec_section_number), the MSB id (i.e. master_spec_book_id:int)that identifies the associated MSB, and the PSB id (i.e. projection_spec_book_id:int) that identifies the associated PSB. The properties associated with each text file may further include the unique user id (i.e. user_id_with_checkout:id) that identifies the user working on the text file, a date of creation, a data of modification, style properties (i.e. number and font properties), and information on where the specification section text file is arranged in the MSB (i.e. parent_spec_section_id). The published specifications section index classifies properties of each specification section of an MSB and PSB allowing for further classification of specifications in the designer indices. Alternatively, the published spec sections index 2074 may be consolidated into the consolidated published spec sections index 2075 of the service provider indices 202.

    [0093] The designer indices 206 also include a working specification sections index 2070 that includes text files of each specification section associated with a particular PSB and MSB. New working specification sections text files are created for each project during PSB creation in the working specification section index 2070, as further detailed in FIG. 4. The properties associated with each text file in the working specifications section index may include the working specification sections index id that identifies the particular index of working specification section index 2070 (i.e. [company_id]_working_spec_sections), the PSB id (i.e. spec_book_id:int) that identifies the associated PSB, the MSB id (i.e. master_spec_book_id:str) that identifies the associated MSB, the specification section number (i.e. spec_section_number), and the specification section title (i.e. spec_section_title: text), and the date of creation of the text file (i.e. created_on:date). The properties associated with each text file may further include the unique user id (i.e. user_id_with_checkout:id) that identifies the user working on the text file, a date of creation, a data of modification, style properties, and information on where the specification section text file is arranged in the MSB. The working specifications section classifies each specification section of the associated PSB as a separate text file for efficiently preparing a PSB. Alternatively, the working specification section indices 2070 may be consolidated into a consolidated work spec section index 2071.

    [0094] The published specifications index 2080 of the designer indices 206 includes text files for each specification of the published specification section index 2074 having text files for each specification of the specification section of an MSB and PSB. The properties associated with each text file of the published specification index 2080 may include a published specifications index id that identifies a particular index of the published specifications index 2080 (i.e. [company_id]_id), the published specification id (i.e. _id:id), the published specification section id (i.e. spec_section_id:text), the specification section number (i.e. spec_section_number:text), the specification section title (i.e. spec_section_title:text), the published version the specification (i.e. publish_version:long), the content (the text of the specification) (i.e. content:text), the product type (i.e. poduct_type:text [standard]), the design preference (i.e. design_preference:text [standard]), the manufacturer (i.e. manufacturer:text [standard]), the product (i.e. porudct:text [standard]), the outline level, the specification type (e.g. general specification, product type, product, design preference, manufacture, instruction, or standard) (i.e. spect_type:text), the MSB id (i.e. master_spec_book_id:id), and the PSB id (i.e. project_spec_book_id:id). In instances where the property value is not associated with the specification, the property value will be null. For example, a specification that is an instruction will have a null product type property value.

    [0095] Each text file of the published specifications index 2080 further includes properties associated with the specification style (i.e. numbering and style properties), the ms parent spec id that identifies the specification text file of the MSB, and the parent spec id that identifies an associated specification that is the parent to the specification based upon the horizontal positioning in the specification section. When a specification is one horizontal position indent from the specification directly above, the specification directly above is a parent specification. The ms parent spec id allows identification of deviations from the MSB as compared to the PSB (as further described in FIG. 5a). Classification of a specification with these properties allows a user with an associated company id to query the indices having the same company id index pattern to efficiently build a PSB and compare a specification or specification sections against the MSB or another PSB.

    [0096] The working specifications index 2076 of the designer indices 206 includes text files for each specification of the specification sections from the MSB and PSB. The properties associated with the text file may include a working specifications index id that identifies a particular index of the working specification index 2076 (i.e. [company_id]_working_specs), the working specification id (i.e. _id:id) that identifies the working specification text file, the working specification section id (i.e. spec_section_id:text) that identifies the associated working specification section text file, the specification section number (i.e. spec_section_number:text), the specification section title (i.e. spec_section_title:text), specification content (the text of the specification) (i.e. content:text), a product type (i.e. poduct_type:text [standard]), a design preference (i.e. design_preference: text [standard]), a manufacturer (i.e. manufacturer:text [standard], a product (i.e. product:text [standard]), an outline level, a specification type (e.g. general specification, product type, product, design preference, manufacture, instruction, or standard) (i.e. spec_type:text). In instances where the property value is not associated with the specification, the property value will be null. For example, a specification that is an instruction will have a null product type property value.

    [0097] The text file may further includes properties associated with the specification style, the MSB id (i.e. master_spec_book_id:id) that identifies the associated MSB, the PSB id that identifies the associated PSB (i.e. project_spec_book_id:id), ms parent spec id that identifies the specification from the MSB, and the parent spec id that identifies an associated specification that is the parent to the specification based upon the horizontal positioning in the specification section. When a specification is one horizontal position indent from the specification directly above, the specification directly above is a parent specification. The ms parent spec id allows identification of deviations from the MSB as compared to the PSB. The working specifications index 2076 allows a user associated with a designer to efficiently build a PSB.

    [0098] The designer indices 206 may also include a draft specification sections index 2072 that includes text files for each draft specification section. The properties associated with each text file in the draft specification sections index 2072 may include a draft specification sections index id that identifies a particular index of the draft specification sections index 2072 (i.e. [company_id]_draft_spec_sections, a draft specification sections id (i.e. _id:id) that identifies the text file of the draft specification sections index 2072, a working specification section index id (i.e. working_spec_section_id:id) that identifies the associated specification section from the working specification sections index 2070, a specification section number (i.e. spec_section_number:text), an MSB id (i.e. master_spec_book_id:str), and a PSB index id. The properties associated with each text file may further include the unique user id (i.e. userid_with_checkout:id) that identifies the user working on the text file, a date of creation, a data of modification, style properties, and information on where the specification section text file is arranged in the MSB. Alternatively, the draft specification sections indices may be consolidated into a consolidated draft spec sections index 2073.

    [0099] The draft specifications index 2078 of the designer indices 206 includes text files for each draft specification of the draft specification sections from the MSB and PSB. The properties associated with a specification text file of the draft specifications index may include a draft specification index id that identifies a particular index of the draft specification index 2078 (i.e. [company_id]_draft_specs), the draft specification id (i.e. _id:id) that identifies the text file of the specification of the draft specifications index 2078), the draft specification section id (i.e. sepc_section_id: text), the specification section number (i.e. spec_section_number: text), the specification section title (i.e.)spec_section_title:text), the draft version (a numeric value that denotes the version of the draft specification) (i.e. draft_version:long), the specification content (the text of the specification) (i.e. content:text), the product type (i.e. product type: text [standard]), the design preference (i.e. design_preference: text[standard]), the manufacturer (i.e. manufactuer:text[standard]), the product (i.e. product:text[standard]), the outline level, the specification type (e.g. general specification, product type, product, design preference, manufacture, instruction, or standard) (i.e.spec_type: text). In instances where the property value is not associated with the specification, the property value will be null. For example, a specification that is an instruction will have a null product type property value.

    [0100] The text file may further include properties associated with the specification style, the master specification book id (i.e. master_spec_book_id:id) to identify the associated MSB, the project specification book id (i.e. project_spec_book_id:id) to identify the associated PSB, a ms parent spec id, and the parent spec id. The ms parent spec id identifies the specification from the MSB, and the parent spec id that identifies an associated specification that is the parent to the specification based upon the horizontal positioning in the specification section. When a specification is one horizontal position indent from the specification directly above, the specification directly above is a parent specification. The ms parent spec id allows identification of deviations from the MSB as compared to the PSB. The draft specifications index may further be used to restore an associated text file of the specifications index to its prior version.

    [0101] The reporting index 2082 of the designer indices 206 includes the combined text files from the published specifications index 2080 and the project index 2064. The reporting index 2082 includes a replication of each text file from the project index 2064, and a replication of the most current version of each published specification of the published specification index 2080. The reporting index 2082 associates a project from the project index 2064 with its corresponding specifications utilizing the PSB id. The reporting index classifies project address information as contained in the project index 2064 and product name information as contained in the specification index 2082. Classification of the projects and specification in this reporting index 2082 allows a manufacturer to query their manufacturer name (as further described in FIG. 3a) to return results for their associated products, which may then be filtered by geography. Classification of the projects and specifications in this reporting index 2082 further allows a designer to query their projects to return results for their associated projects (as further described in FIG. 3c), which may then be filtered by geography (as further described in FIG. 3d).

    [0102] The designer indices 206 also include a styles index 2084 that includes text files for each style that may be applied to a PSB. The properties associated with each text file in the style index include a style index id that identifies a particular index of the styles index 2084 (i.e. [company id]_styles, the style id (i.e. _id:id), the font color, the font name, the font size, the outline level, the level text, the number format, and the date the text file is created. The style index 2084 allows selection of a style during project specification book creation, where the style is deployed in a uniform manner to the project specification book increasing the efficiency of project specification book creation. Alternatively, the styles indices 2084 may be consolidated into a consolidated styles index 2085.

    [0103] The designer indices 206 also include a customer clients index 2086 that includes text files for each client of the designer. The properties associated with each text file include a customer clients index id that the customer clients index 2086 (i.e. [company_id]_customer_clients), a client id (i.e. _id:id) that identifies the client, a client name (i.e. customer_client_name: text), and the date the text file is created. The customer clients index allows a designer to have a listing of each of their clients' names. Alternatively, the customer clients indices 2086 may be consolidated into a consolidated customer clients index 2087.

    [0104] FIG. 2b is a flow chart presenting a method 210 of classifying specifications. A user of the second computer system 104, such as project specification writer, may utilize the second computer system 104 to access a website associated with the service provider. Further, a web page of the web site including a login (i.e. the login credentials associate the user of a designer with their user role, user status, and company id) to upload files for inclusion in the service provider database 142 (e.g. icon, link, menu selection) may be displayed via a display of the second computer system 104. The user of the second computer system 104 may then provide an input which selects the file upload request, thereby causing the file upload request (i.e. the file upload input) to be transmitted to the first computer system 102 over the network 108.

    [0105] In 212, the first computer system 102 receives the file upload input transmitted via a computer network 108 from a second computer system 104. The file upload input includes a request to begin file upload for classification.

    [0106] In 214, in response to the file upload input, transmitting a file upload output to the second computer system 104 via the network 108. The file upload output is configured for causing a file upload instruction to be displayed, such as on a webpage. The file upload instruction is configured for uploading of a file, where the file type may be an MSB or style, and designation of the file type.

    [0107] In 216, receiving a file input transmitted via a computer network 108 from the second computer system 104 based upon the file. The file provided in the file input is determined by a user of the second computer system. The user of the second computer system 104, determines the file for upload and designates file type for transmission of the file input to the first computer system 102 over the network 108 (i.e. MSB style).

    [0108] In 218, the first computer system 102 processes the file input, in response to the file and file type designation of the file input. The processing includes classification of the file. In response to the file type designation the first computer system 102 then classifies the file into an index (i.e. MSB index 2066 or style index 2084). When the file type is an MSB the first computer system 102 classifies the MSB into the MSB index 2066 as a new text file. The first computer system then processes the uploaded MSB by copying the text files of the MSB into the working specification section index 2074, where each specification section is classified. The first computer system 102 then further processes the MSB, by coping text files of the MSB into the working specifications index 2076, such that specification of each specification section of the MSB is classified as a text file in the working specification index 2076. In response to a publish request, the processing may further include copying the text files having the assigned MSB id of the working specifications section index 2070 and working specifications index 2076 to the published specifications section index 2074 and published specifications index 2080 and assigned associated index properties.

    [0109] When the file type is a style file, the first computer system 102 classifies the style into the styles index 2084. The first computer system 102 then processes the style file by creating a text file within the styles index 2084 and classifying each style within the file to assign the text file properties of the styles index to the file. In this way, a particular index of the styles index 2084 having classified styles may be applied to any PSB during creation (see FIG. 4) for uniform style across the PSB.

    [0110] FIG. 2c is a flow chart presenting a method 220 of classifying products. A user of the third computer system 106, such as an employee of the manufacturer, may utilize the third computer system 106 to access the website associated with the service provider. Further, a web page of the website including a login (i.e. the login credentials associate the user of a designer with their user role, user status, and company id) to upload product information for inclusion in the service provider database 142 (e.g. icon, link, menu selection) may be displayed via a display of the third computer system 106. The user of the third computer system 106 may then provide an input which selects the product information upload request, thereby causing the product information request (i.e. the product information input) to be transmitted to the first computer system 102 over the network 108.

    [0111] In 222, the first computer system 102 receives the product information input transmitted via a computer network 108 from a third computer system 106. The file upload input includes a request to begin file upload for classification.

    [0112] In 224, in response to the product information input, transmitting a product information output to the second computer system 104 via the network 108. The product information output is configured for displaying a product information entry by the third computer system 106. The product information output is further configured for display by the third computer system 106, such as on the webpage through drop down menu, blank text box, scrolling menu, box selection, or the like.

    [0113] In 226, receiving a product input transmitted via a computer network 108 from the third computer system 108 based upon a manufacture's product information. The product input is determined by the manufacturer in connection with information related to a product it manufactures. The product input includes information pertaining to the product, such as the product name, the product type, and the product title. The product input may further include information on the product features, options, finishes, and a link to a website associated with the product.

    [0114] In 228, processing the product input by the first computer system 102. The processing is configured for classifying the product information of the product input into the product index 2044 of the manufacturer indices 204, where a text file for each product having the associated properties of the product index 2044 is created. The processing may further include classifying each product into the classification reference index 2046 of the manufacturer indices 204, where the particular product text file of the product index 2044 is copied into the classification reference index 2046 as an associated text file having the product id and is assigned a classification reference id, and other associated properties of the classification reference index 2046.

    [0115] The processing may further include classifying the product into the features index 2048 of the manufacturer indices 204. The particular product text file index of the product index 2044 is copied into the features index 2048 where it is identified via its product id. The product text file in the features index 2048 is then available for the user to populate features of the product. The features index 2048 allows searching of products by a product's features.

    [0116] The processing may further include classifying the product into the options index of the manufacturer indices 204. The particular product text file of the product index 2044 is copied into the options index 2050 as a text file where it is identified via its product id. The product text file in the options index 2050 is then available for the user to populate options of the product.

    [0117] The processing may further include classifying the product into the finishes index of the manufacturer indices 204. The particular product text file of the product index 2044 is copied into the finishes index 2052 as a text file, where it is identified via its product id. The product text file in the finishes index 2052 is then available for the user to populate features of the product.

    [0118] FIG. 2d represents a consolidated class diagram. For purposes of readability, the text of each index of FIG. 2d is listed in paragraph [0187]. In the consolidated class diagram, rather than index creation for each manufacturer or company's respective indices that are associated with the manufacturer or company by company id in the index pattern, these indices are consolidated into one index and are associated with the manufacturer or company by the company id as a property of the text file in the consolidated index. In the consolidated indices the searching occurs based on the text file property of the company id. In this manner, the association and respective searching occurs via the company id, as with the class diagram of FIG. 2a.

    [0119] The consolidated assigned users index 2063 of the service provider indices 202 includes text files for each manufacturer and company user having an unique user identity id associated with the company id, where the association is assigned by the company. The properties associated with each text file of the consolidated assigned users index may include the consolidated assigned users index id that identifies the consolidated assigned users index 2063 (i.e. assigned users), the company id that identifies the manufacturer or company associated with the user (i.e. company_id: text), the unique user id that identifies the user (i.e. user_id:id), the user role id (i.e. user_role_id:id) to identify the designer user role, the user status, the assigned projects/project id that identifies projects associated with the user from the consolidated projects index 2065, and the date the text file was created in the consolidated assigned users index 2063. Users in the consolidated assigned users index 2063 are permissioned to search the indices having the associated company id. Users in the consolidated assigned users index may also be permissioned via the user role id to update such indices with additional product information (as described in FIG. 1).

    [0120] The consolidated master product index 2045 includes text files for each manufacturer product in the reporting index 2082. The properties associated with each text file include a consolidated master product index id that identifies the master product index 2036 (i.e. master_product), a master product id (i.e. _id:id) that identifies a particular product, a company id that identifies the manufacturer or company associated with the user (i.e. company_id: text), a product name (i.e. product:text), product type, manufacturer, the classification (i.e. classifications:) that identifies all of the classifications for the particular product within specification sections of designer PSB and MSB, features (i.e. features:) that identifies features of the product, options (i.e. options:) that identifies options for the product, and finishes (i.e. finishes:) that identifies finishes for the product.

    [0121] The product name property as copied from the reporting index is the designer assigned product name, which may deviate from the service provider's assigned product name. The first computer system 102 may deploy K-means data clustering within the master product index, where the system assigns each product a value corresponding to the service provider's assigned product name. As the master product index 2036 is updated, the system deploys k-means data clustering to group each product name with its most closely associated service provider assigned product name, where each product then receives a system assigned value. This allows for increased accuracy in product identification by the manufacturer when it conducts a search, as product name deviations and aliases are identified by the system. Additionally, the master product index 2036 increases the searching speed in connection with a manufacturer's product search, as compared to a system not having the master product index.

    [0122] The consolidated project index 2065 includes text files of each project of all companies. The properties associated with each project text file of the consolidated project index 2065 may include a consolidated project index id that identifies the consolidated project index (i.e. projects), the company id (i.e. company_id:id) that identifies the company associated with the project text file, the project id (i.e. _id:id) that identifies a particular project text file of the consolidated project index 2065, the customer client name, a project name (i.e. name:text), a project address, and the date the project was created. The project index 2064 may further include properties associated with the text file that relate to the industry and type of project. Classification of the project text file in this manner associates the project with its particular geography (via the address information), as well as the applicable specifications via the project id.

    [0123] The consolidated MSB index 2067 includes text files of MSB for all companies. The properties associated with each MSB text file may include a consolidated MSB index id that identifies the consolidated MSB index 2067 (i.e. master_spec_books), the company id (i.e. company_id:id) that identifies the company associated with the MSB text file, an MSB id (i.e. _id:id) that identifies a particular MSB, the name of the MSB, and the date on which the text file was created in the index. The consolidated MSB index 2067 may further include a properties related to the description of the MSB. The consolidated MSB index 2067 provides classification of MSBs for use in connection with efficiently preparing a PSB and provides through the MSB id an association of the particular MSB text file with the associated specification sections text files of the consolidated working specification section 2071, consolidated draft specification section 2073, and consolidated published specification section 2075 indices. The consolidated MSB index 2067 may provide through the MSB id an association of the particular MSB text file with the associated specification text files of the working specifications 2076, draft specification 2078, published specification 2080.

    [0124] The consolidated PSB index 2069 includes text files of PSB for all companies. The properties associated with each PSB text file may include a consolidated PSB index id that identifies the consolidated PSB index 2069 (i.e. project_spec_books), the company id (i.e. company_id:id) that identifies the company associated with the PSB text file, a PSB id (i.e. _id:id) that identifies a particular PSB, a PSB name, the project id, the style id, the date of creation of the text file, and the date the text file is modified and the unique user id of the user that created or modified the PSB(i.e. created_by:id and modified_by:id, respectively). The consolidate PSB index 2069 provides through the PSB id an association of the particular PSB with the associated specification sections text files of the consolidated working specification section 2071, consolidated draft specification section 2073, and consolidated working published specification section 2075 indices. The consolidated PSB index 2069 may provide through the PSB id an association of the particular PSB with the association specification text file of the working specifications 2076, draft specification 2078, published specification 2080.

    [0125] The consolidated published spec sections index 2075 includes text files for each specification section of an MSB and PSB for all companies. The properties associated with each consolidated published specification section text file may include a consolidated spec section index id (i.e. spec_sections) that identifies the consolidated published spec sections index 2075, the company id (i.e. company_id:id) that identifies the company associated with the consolidated published spec section text file, a published specification section id (i.e. _id:id), a specification section title (i.e. spec_section_title: text), a specification section number (i.e. spec_section_number), the MSB id (i.e. master_spec_book_id:int) that identifies the associated MSB, the PSB id (i.e. projection_spec_book_id:int) that identifies the associated PSB, and the project id (i.e. project_id:int) that identifies the associated project. The properties associated with each text file may further include, a date of creation, a data of modification, style properties (i.e. number and font properties), and information on where the specification section text file is arranged in the MSB (i.e. parent_spec_section_id). The published specifications section index classifies properties of each specification section of an MSB and PSB allowing for further classification of specifications in the designer indices.

    [0126] The consolidated working spec section index 2071 includes text files of each specification section associated with a particular PSB and MSB for all companies. New working specification sections text files are created for each project during PSB creation in the working specification section index 2070, as further detailed in FIG. 4. The properties associated with each consolidated working spec section text file may include a consolidated working spec section index id (i.e. working spec sections) that identifies the consolidated working spec sections index 2071, the company id (i.e. company_id:id) that identifies the company associated with the consolidated published spec section text file, the PSB id (i.e. project_spec_book_id:int) that identifies the associated PSB, the MSB id (i.e. master_spec_book_id:int) that identifies the associated MSB, the specification section number (i.e. spec_section_number), and the specification section title (i.e. spec_section_title: text), and the date of creation of the text file (i.e. created_on:date). The PSB id and the MSB id properties identify the PSB and MSB that is associated with the respective specification section, which allows the first computer system 102 to utilize it as a filtering value searching for specification sections, to further speed searching by the first computer system 102. The properties associated with each text file may further include the unique user id (i.e. user_id_with_checkout:id) that identifies the user working on the text file, a date of creation, a data of modification, style properties, and information on where the specification section text file is arranged in the MSB. The consolidated working spec section classifies each specification section of the associated PSB as a separate text file for efficiently preparing a PSB.

    [0127] In the consolidated class diagram of FIG. 2d, the published specifications index 2080 is the published specifications index of FIG. 2a, where the published specifications index id identifies a particular index of the published specifications index 2080 (i.e. [company_id]_id) that associates the particular index with a particular company.

    [0128] The consolidated draft spec sections index 2073 includes text files of each draft specification section for all companies. The properties associated with each text file in the consolidated draft spec sections index 2073 include a consolidated spec sections index id that identifies the consolidated spec sections index 2073(i.e. draft spec sections), the company id (i.e. company_id:id) that identifies the company associated with the consolidated draft spec section text file, a draft specification sections id (i.e. _id:id) that identifies the text file of the consolidated draft spec sections index 2073, a working specification section index id (i.e. working_spec_section_id:id) that identifies the associated specification section from the consolidated working specification sections index 2071, a specification section number (i.e. spec_section_number:text), an MSB id (i.e. master_spec_book_id:int), and a PSB index id. The properties associated with each text file may further include the unique user id (i.e. userid_with_checkout:id) that identifies the user working on the text file, a date of creation, a data of modification, style properties, and information on where the specification section text file is arranged in the MSB.

    [0129] In the consolidated class diagram of FIG. 2d, the draft specifications index 2078 is the draft specifications index of FIG. 2a, where the draft specifications index id identifies a particular index of the draft specifications index 2078 (i.e. [company_id]_id) that associates the particular index with a particular company.

    [0130] In the consolidated class diagram of FIG. 2d, the reporting index 2082 is the reporting index of FIG. 2a, provided that the reporting index 2082 in the consolidated class diagram replicates each text file from the consolidated project index 2065 having the company id of the associated company indices 206. The reporting index 2082 of the class diagram and consolidated class diagram may include properties of assigned_manufacturer, assigned_product, and assigned_product_type that are assigned by the first computer system 102 in response to the K-means data clustering of the aliases index 2023. These assigned properties allow manufacturers and designers to specify the same product in their own vernacular, such that the same product may have a different manufacturer name (e.g. ABC Company, Inc. vs. ABC Company), while the first computer system will assign the same assigned_manufacturer property to each text file.

    [0131] The aliases index 2023 of the consolidated class diagram is the aliases index 2023 of the second class diagram 201.

    [0132] The consolidated styles index 2085 includes text files for each style that may be applied to a PSB for all companies. The properties associated with each text file in the consolidated style index 2085 include a consolidated style index id that identifies the styles index 2085 (i.e. styles), the company id (i.e. company_id:id) that identifies the company associated with the consolidated style text file, style id (i.e. _id:id), the font color, the font name, the font size, the outline level, the level text, the number format, and the date the text file is created. The consolidated style index 2085 allows selection of a style during project specification book creation, where the style is deployed in a uniform manner to the project specification book increasing the efficiency of project specification book creation.

    [0133] The consolidated customer clients index 2087 includes text files for each client of the designer for all companies. The properties associated with each text file in the consolidated customer clients index 2087 include a consolidated customer client index id that identifies the consolidated customer clients index 2087 (i.e. customer_clients), the company id (i.e. company_id:id) that identifies the company associated with the consolidated customer client text file, a client id (i.e. _id:id) that identifies the client, a client name (i.e. customer_client_name: text), and the date the text file is created. The customer clients index allows a designer to have a listing of each of their clients' names.

    [0134] FIG. 2e is a second class diagram 201 of a service provider database of the system for preparing PSB and reporting use of product types on a geographic basis. The second class diagram 201 includes the same indices as FIG. 2a and FIG. 2d as denoted by figure numeral and further includes the following index and text file properties. For purposes of readability, the text of each index of FIG. 2e is listed in paragraph [0188].

    [0135] The second class diagram includes an aliases index 2023 of the service provider indices 202. The aliases index 2023 includes text files for each property of the reporting index 2082, where properties associated with the aliases index 2023 include an alias id (i.e. _id:id) that identifies the associate property of the reporting index (e.g. product, manufacturer), an alias (i.e. alias: text) that is the text of the user assigned value, and an assigned value (i.e. assigned_value: text) that is the first computer system 102 assigned value. Through K-means data clustering within the aliases index, the first computer system 102 assigns the assigned value property to each text file of the aliases index 2023 to allow users to maintain their own vernacular for specifying properties, such as product or manufacturer names.

    [0136] The second class diagram includes an additional properties of the PSB id (i.e. project_spec_book_id:int) that identifies the associated PSB, the MSB id (i.e. master_spec_book_id:int) that identifies the associated MSB in the working specification sections index 2076, the draft specifications section index 2078, and the published specification sections index 2080. These properties identify the PSB and MSB that is associated with the respective specification section, which allows the first computer system 102 to utilize it as a filtering value searching for specification sections, to further speed searching by the first computer system 102.

    [0137] The second class diagram 201 includes additional properties of assigned_manufacturer, assigned_product, and assigned_product_type that are assigned by the first computer system 102 in response to the K-means data clustering of the aliases index 2023.

    [0138] FIG. 3a is a flow chart presenting a method of determining product use in a geographic area. A user of the third computer system 106, such as a personnel member of a manufacturer, may utilize the third computer system 106 to search the reporting index 2082 to determine use of a particular manufacturer product based on a geographic basis. Further, a web page of the website including a login (i.e. the login credentials associate the user of a manufacturer with their user role, user status, and manufacturer id) to begin determination of product use (e.g. icon, ink, menu selection) may be displayed via a display of the third computer system 106. The user of the third computer system 106 may then provide an input which selects the product search request, thereby causing the product search initiation request (i.e. product search initiation input) to be transmitted to the first computer system 102 over the network 108.

    [0139] In 302, the first computer system 102 receives the product search initiation input from the third computer system 106 transmitted via the computer network 108. The product search initiation input includes the request to begin a product search for determining product use on a geographic basis.

    [0140] In 304, in response to the product search initiation input, transmitting a product search output to the third computer system 106 via the network 108. The product search output is configured for displaying a product search entry by the third computer system 106, where the product search entry includes entry displays for the name of the product and geographic area (e.g. zip code, county, state, region, and the like). The product search entry may also include an entry display for the product type. The product search output is further configured for display by the third computer system 106, such as on the webpage through blank text box, drop down menu, auto-populating table, or the like for table filtering.

    [0141] In 306, receiving a product search input transmitted via a computer network 108 from the second computer system 106. The product search input having product search information entered by the user of the third computer system 106 in response to the product that the manufacturer wants to search by geographic basis. For example, the product search information may include the product name and zip code of interest.

    [0142] In 308, in response to the product search input, processing the product search input by the first computer system 102. The processing includes the first computer system conducting an inverted index search of the reporting index 2082 based on the manufacturer's name associated with the user, where each text file having the manufacturer's name as a property is identified.

    [0143] The processing further includes filtering the identified text files having the manufacture's name based on the product name from the product entry of 306. The first computer system 102 utilizes the product name to filter, where due to the free text search, such products having naming variations will be identified based on the K-means data clustering in the master product index. The results of the product filtering will only include products from the manufacturer associated with the user. The processing further includes filtering the text files having matching product name and manufacturer names based on the project address corresponding to the desired geographic area, such that filtered results will only include products from the manufacturer associated with the user in the desired geographic area.

    [0144] In 310, in response to the results of the processing of 308, transmitting the product results output to the third computer system 106 via the network 108. The product results output is configured to display product use information on the geographic basis, where product name and product volume is identified per geography. The product results output is further configured for display by the third computer system 106, such as on the webpage through numerical or graphical representations.

    [0145] FIG. 3b is a mock-up of a display using fictional data generated only for example purposes of the result of the method for determining product use in a geographic area. In the upper left hand portion of the display there is a rectangular text box entry for entry of a manufacturer's product type (the product type filter), where a manufacturer may filter (search) based on its product type as in 304 of FIG. 3a. Directly adjacent to the product type text box there is rectangular text box entry for entry of a geography (geography filter), where a manufacturer may filter (search) by geography as in 304 of FIG. 3a.

    [0146] On the right hand portion of the display that generally takes up the entirety of the right hand side of the display is a navigable map, preferably of the United States, that is navigable according to geographies (e.g. cities, zip codes, and the like). A particular geography is navigated to and highlighted based on the geography filter as in 304 of FIG. 3a. The selected geography may appear differentiated by a different color, as shown in FIG. 3b by the selection of zip code 28540 corresponding to Jacksonville.

    [0147] Back on the left hand side of the display generally underneath the product type text box is a results display as in 310 of FIG. 3a. The results display includes a general results display having a first row that includes identifiers for the project name, city, postal code, and product count that indicates the total number of product specified in specification in the geography. In a second row of the results display the information pertaining to the search is displayed. In FIG. 3b, the project name is “The Blue One”, the city is “Jacksonville”, the Postal Code is 28540, and the Product Count is 2, indicating the manufacturer has two products specified in specifications in Jacksonville.

    [0148] The results display further a detailed results display having a first row that includes identifiers for the type identifying the product type, design preference indicating whether the product is the base or alternate, product, and count of records identifying how many times a product is specified. The second row and ongoing rows of the detailed results display includes information associated with the identifiers in response to the search. In FIG. 3b the detailed results display displays information that includes two types, namely, “composite metal form deck, 2 IN:”, and “composite metal form deck, 3 IN:.” The other detailed results display identifiers include information associated with each type. For example, for the Composite metal form deck, 2IN: the design preference is base indicating that this is the base product for the specification, the product of Type 2W, where this information is in 1 specification in the geography. And for example, for the Composite metal form deck, 3IN: the design preference is base indicating that this is the base product for the specification, the product of Type 3W, where this information is in 1 specification in the geography.

    [0149] FIG. 3c is a is a mock-up of a display using fictional data generated only for example purposes showing a designer dashboard that is generated using information from the reporting index 2082. At the top of the display there is a filter row having drop down text boxes that may be used to filter information from the reporting index 2082 based on the associated properties. This filter row includes titles and drop down menus for project name, spec section id, product type, manufactures, and design preference. When no filter is applied all of the information associated with the designer's projects is displayed in a project information display box.

    [0150] The project information display box is generally below the filter row on the left hand side of the display. The project information display box includes a general project results display having identifiers for the project id, project name, address, postal code, and count of product, where this information from the reporting index is reflected in row form. For example, in the second row beneath the identifiers, the project id end in “BU2”, the project name “The Square One”, an address of 820 Laurel Ave. 93247, postal code 93247, and count of product 10 (indicating that 10 products are used in this project).

    [0151] The project information display box includes a detailed project results display that includes detailed information on project products having identifiers for the product type, design preference, manufacturer, product and count of product, where this information from the reporting index is reflected in row form. For example, in the first row under the identifiers row, there is a product type of “composite metal form deck, 2 IN:”, a design preference of “alternate:” (indicating the product is an alternate, manufacturer of “Canam United Steel Deck”, product type of Type 2 IN Lok Floro. and count of product of “3” indicating the product is used in 3 specifications.

    [0152] On the right hand portion of the display that generally takes up the entirety of the right hand side of the display is a navigable map, preferably of the United States, that is navigable according to geographies (e.g. cities, zip codes, and the like). When no filters are selected the map does not apply to any corresponding geography, but may reflect a highlighted area. For example, in FIG. 3c, the zip code of 70364 is highlighted.

    [0153] FIG. 3d is a mock-up of a display using fictional data generated only for example purposes showing a designer dashboard applying a filter that is generated using information from the reporting index 2082. At the top of the display there is a filter row having drop down text boxes that may be used to filter information from the reporting index 2082 based on the associated properties. This filter row includes titles and drop down menus for project name, spec section id, product type, manufactures, and design preference. In FIG. 3d the project name filter is applies specifying “The Square One”, which then influences the information displayed in the project information display box.

    [0154] The project information display box is generally below the filter row on the left hand side of the display. The project information display box includes a general project results display having identifiers for the project id, project name, address, postal code, and count of product, where this information from the reporting index is reflected in row form. For example, with the project name filter applied only information associated with the project name is displayed, namely the project id end in “BU2”, the project name “The Square One”, an address of 820 Laurel Ave. 93247, postal code 93247, and count of product 10 (indicating that 10 products are used in this project).

    [0155] The project information display box includes a detailed project results display that includes detailed information on the filtered project products having identifiers for the product type, design preference, manufacturer, product and count of product, where this information from the reporting index is reflected in row form. For example, the information displayed is only that which is associated with the filtered project (The Square One) such that each product is used in the specifications for the filtered project, where the display shows which products are base or alternate products.

    [0156] On the right hand portion of the display that generally takes up the entirety of the right hand side of the display is a navigable map, preferably of the United States, that is navigable according to geographies (e.g. cities, zip codes, and the like). For example, in FIG. 3d, with the project filter applied the zip code highlighted is that associated with the project, namely 93247.

    [0157] FIG. 3e is a flow chart presenting a method 310 of determining standards used in a geographic area. A user of the third computer system 106, such as a personnel member of a manufacturer, may utilize the third computer system 106 to search the reporting index 2082 to determine use of a particular standard (i.e. ANSI standard, keywords related to a product (e.g. if the desired product is a particular refrigerated door, the keyword may be “refrigerator door”), or keywords related to project attributes (e.g. material type, temperature tolerances, weather tolerances, and the like)) on a geographic basis. Further, a web page of the website including a login (i.e. the login credentials associate the user of a manufacturer with their user role, user status, and manufacturer id) to begin determination of standard use (e.g. icon, ink, menu selection) may be displayed via a display of the third computer system 106. The user of the third computer system 106 may then provide an input which selects the standard search request, thereby causing the standard search initiation request (i.e. standard search initiation input) to be transmitted to the first computer system 102 over the network 108.

    [0158] In 312, the first computer system 102 receives the standard search initiation input from the third computer system 106 transmitted via the computer network 108. The standard search initiation input includes the request to begin a standard search for determining standard use on a geographic basis.

    [0159] In 314, in response to the standard search initiation input, transmitting a standard search output to the third computer system 106 via the network 108. The standard search output is configured for displaying a standard search entry by the third computer system 106, where the standard search entry includes entry displays for the name of the standard and geographic area (e.g. zip code, county, state, region, and the like). The standard search output is further configured for display by the third computer system 106, such as on the webpage through blank text box, drop down menu, auto-populating table, or the like for table filtering.

    [0160] In 316, receiving a standard search input transmitted via a computer network 108 from the second computer system 106. The standard search input having product search information entered by the user of the third computer system 106 in response to the standard that the manufacturer wants to search by geographic basis. For example, the standard search information may include the ANSI standard and zip code of interest.

    [0161] In 318, in response to the standard search input, processing the standard search input by the first computer system 102. The processing includes the first computer system conducting an inverted index search of the reporting index 2082.

    [0162] The processing further includes filtering the text files of the reporting index 2082 based on the standard name from the standard entry of 316. The first computer system 102 utilizes the standard name to filter, where due to the free text search, such standards having naming variations will be identified based on the K-means data clustering in the aliases index, or the system assigned properties. The processing further includes filtering the text files having matching standard name based on the project address corresponding to the desired geographic area, such that filtered results will only include standard associated with the user in the desired geographic area. The processing further include filtering based on prohibited search terms, where if a user enters a search for a product name or manufacturer name, including any aliases, that they are not associated with via company id, those results will be filtered out.

    [0163] In 320, in response to the results of the processing of 318, transmitting the standard results output to the third computer system 106 via the network 108. The standard results output is configured to display standard use information on the geographic basis, where standard name and standard volume is identified per geography. The standard results output is further configured for display by the third computer system 106, such as on the webpage through numerical or graphical representations.

    [0164] FIG. 3f is a mock up a display using fictional data generated only for example purposes showing a manufacturer dashboard utilizing a standards search that is generated using information from the reporting index 2082. In FIG. 3d the standards searched for were “concrete” and “cast-in-place concrete” filtered for results in Minnesota and Nebraska respectively.

    [0165] FIG. 4a is a flow chart presenting a method 400 of PSB creation. A user of the second computer system 104, such as a project specification writer, may utilize the second computer system 104 to access a website associated with the service provider. Further, a web page of the website including a login to begin PSB creation (e.g. icon, ink, menu selection) may be displayed via a display of the second computer system 104. The user of the second computer system 104 may then provide an input which selects the PSB creation request, thereby causing the PSB creation request (i.e. PSB creation input) to be transmitted to the first computer system 102 over the network 108.

    [0166] In 402, the first computer system 102 receives the PSB creation input transmitted via the computer network 108 from the second computer system 104. The PSB creation input includes a request to begin PSB creation based upon a selection of an existing PSB.

    [0167] In 404, in response to the PSB creation input, transmitting a PSB creation output to the second computer system 104 via the network 108. The PSB creation output is configured for displaying a project information entry by the second computer system 404, such as project name, client name, type of project, and project address. The PSB creation output is further configured for display by the second computer system 104, such as on the webpage through drop down menu, blank text box, scrolling menu, box selection, or the like.

    [0168] In 406 receiving a project information input transmitted via a computer network 108 from the second computer system 106. The project information input having project information entered by the user of the second computer system 104 in response to the project for which the PSB is being created. For example, the project information include project name, client name, type of project, and project address. The project information input is configured for causing the first computer system to process the project information input.

    [0169] In 408 processing the project information input by the first computer system 102 in response to the project information input. The processing includes creating a project text file having the associated properties for the project index 2064 of the designer indices 206, where the first computer system 102 assigns properties to the project text file from the project information input (i.e. project name and project address) and assigns generated properties to the project text file (i.e. project index id, project specification book id, and customer client id, project id).

    [0170] In 410, in response to the processing of the project information input, transmitting a project page output to the second computer system 104 via the network 108, the project page output configured to display project information, such as the project name, a project module tab, and a style tab.

    [0171] In 412, receiving a project page input transmitted from the second computer system 104 via the network 108. The project page input is determined by the user of the second computer system 104 to identify a PSB for each project module, and a style for each PSB. The project page input is configured for causing the first computer system 102 to process the project page input.

    [0172] In 414, processing the project page input by the first computer system 102 in response to the project page input. The processing includes creating an text file in the PSB index 2068 for each module having the associated properties of the PSB index 2068 of the designer indices 206, where the first computer system 102 assigns properties to the PSB text file from the project page input (i.e. PSB name, style index id based on the selected style) and assigns generated properties to the project text file (i.e. PSB id, project id, and date created).

    [0173] In 416, when a single PSB is associated with the project, transmitting a PSB page output to the second computer system 104 via the network 108, the PSB page output configured to display PSB information, such as the project name, a working specification sections tab, draft specification sections tab, published specification sections tab, and an add/remove specification sections tab.

    [0174] In 418 receiving an add/remove specification section input transmitted from the second computer system 104 via the network 108. The add/remove specification section input is determined by the user of the second computer system 104 to initiate populating a PSB for the project. The add/remove specification section input is configured for causing the first computer system to lookup via inverted index search the MSBs associated with the user's company id from the MSB index 2066.

    [0175] In 420, in response to the add/remove specification section input, transmitting an MSB output to the second computer system 104 via the network 108, the MSB output configured to display MSB by MSB name, such as on the webpage through drop down menu, scrolling menu, box selection, or the like. The MSB output displays the MSB name from the MSB index associated with the company id.

    [0176] In 422, receiving an MSB selection input from the second computer system 104 via the network 108 based upon the selection of the MSB from the display of the MSB output. The MSB selection is determined by the user of the second computer system 104 in response to the project type and the MSB containing the specification sections pertaining to the module of the project for populating the PSB. The MSB selection input is configured for causing the first computer system 102 to process a search of the published specification sections index 2074 via inverted index search for specification section text files having an MSB id that is the MSB id of the selected MSB.

    [0177] In 424, transmitting a specification sections output to the second computer system 104 via the network 108 based upon the results of the inverted index search of 416. The specification sections output is configured to display the specification section numbers of the specification sections from the published specification sections index 2074 having the associated MSB id. The specification section output is further configured for display by the second computer system 104, such as on the webpage through text box, drop down menu, scrolling menu, or the like. For example, the specification section output display may include a text box containing the specification section numbers whereby a user of the second computer system 104 may select and add the relevant specification sections to a text box for project specification sections as shown for example in FIG. 4b.

    [0178] In 426, receiving a populate PSB input transmitted from the second computer system 104 via the network 108 based upon the selection of specification sections by the user of the second computer system 104. The specification sections selection is determined by the user of the second computer system 104 in response to the type and module of the project. The populate PSB input is configured for causing the first computer system 102 to process the selected specification sections by copying the text files of the associated specification sections from the published specification section index 2074 having the MSB id from 422 and the published specification section id associated with the selected specification sections into the working specification section index 2070 as new text files and assigning the PSB id from 414, a new working specification section id, and the MSB id from 422 to these copied specification sections. The assignment of the PSB id to the copied specification sections text files associates the specification sections with the PSB for the module of the project. The PSB input is further configured for causing the first computer system 102 to process the selected specifications associated with the selected specification sections by copying the text files of the associated specifications from the published specification index 2080 having the associated specification section id from 424 into the working specifications index 2076 as new text files and assigning a new working specification id and the properties from the published specification including the PSB id from 414, the MSB id from 422, the ms parent spec id, and parent spec id from the published specification to these copied specification sections. The assignment of the PSB id to the copied specification text files associates the specifications with the PSB of the project.

    [0179] In 428 transmitting a working specification sections output to the second computer system 104 via the network 108 based upon the working specification section index of 426. The working specification sections output is configured to display an array of the specification sections of the associated working specifications index of 426. The array may include display of the specification section number, description, modification date, and user for each specification section. The working specification sections output is further configured for display by the second computer system 104, such as on the webpage.

    [0180] In 430, receiving a specification section edit request input transmitted from the second computer system 104 via the network 108. The specification section edit request input may be determined by the user of the second computer system 104 in response to a specification section containing specifications that require modification based on the module of the project. The specification section edit request input is configured for causing the first computer system 102 to process the selected specification section to identify the specifications associated with the specification section from the working specifications index of 426 via inverted index search using the specification section id of the specification text files.

    [0181] In 432, transmitting a specification section edit output to the second computer system 104 via the network 108. The specification section edit output is configured to display the specification identified in 430. The specification section edit output is further configured for display by the second computer system 104, such as on the webpage in an editable document format, as shown for example in FIG. 4c.

    [0182] In 434, receiving a specification edit input from the second computer system 104 via the network 108. The specification edit input may be determined by the user of the second computer system 104 in response to a specification that requires modification based on the module of the project. The specification edit request input is configured for causing the first computer system 102 to process the specification edits, which save the edits in the working specifications index. Optionally, a draft input may be received from the second computer system 104, where the edited specification is saved in the draft specifications index as a new text file having the specification section id of 424 and other associated properties, such that the saved text file of the draft specifications index 2078 may be used to restore a text file of the working specification index 2076.

    [0183] A user of the second computer system may repeat items 430-434 with the specification sections until completion of the edits to the specifications for the project. In response to this completion, in 436, receiving a publish request input from the second computer system 104 via the network 108. The publish request input is configured to cause the first computer system 102 to copy all text files from the working specification sections index of 434 and working specifications index of 434 as text files to the published specification sections index 2074, published specifications index 2080, including assigning the associated properties to each newly copied text file of the published specifications section and the published specifications. The processing further includes copying the working specification sections index and working specifications index of 434 as text files to the reporting index 2082, including assigning the associated properties to each text file. For multiple published versions of a PSB the reporting index only includes the most recent published version. The reporting index 2082 also assigns the project properties from 414 to the text files of the reporting index.

    [0184] FIG. 5a is a flow chart representing a method 500 for comparing an MSB to a PSB in connection with a project to identify the modifications from the MSB to PSB and between a PSB and PSB when the PSBs share the same MSB. In 502 from the specification edit output page of 432 receiving a comparison input from the second computer system 104. When the comparison is a comparison of the PSB to the MSB, the comparison input is configured for causing the first computer system 102 to process the comparison, where the first computer system 102 compares the ms parent spec id of each specification in the specification section against the published specification id of all the specification text files of the published specification index 2080 of the PSB.

    [0185] When the comparison is a comparison of two PSBs sharing the same MSB, the comparison input is configured for causing the first computer system 102 to process the comparison, where the first computer system 102 compares the ms parent spec id of each specification in the specification section against the published specification id of all of the specification text files of each of the published specification index 2080 for each PSB.

    [0186] The comparison occurs when the ms parent spec id is equal to the published specification id the content properties of the text files are compared to determine differences in the specifications from the working specification section and the published specification section. Association of the ms parent spec id with the copied specifications in 426 allows tracking of the edits from specifications of the MSB to specifications of the PSB.

    [0187] When PSBs sharing the same MSB are compared, the comparison input is further configured for causing the first computer system 102 to compare the result of the PSB to MSB comparison described in paragraphs [0174] and [0175] resulting in a PSB to PSB comparison. This comparison occurs as each of the ms parent spec ids of the PSB are equal to the published specification id of the MSB to allow content properties of the text files of each PSB to be compared to determine the differences in the specification from each working specification section of the PSB. Association of the ms parent spec id with the copied specifications in 426 allows tracking of the edits from specifications of the MSB to specifications of the PSB and subsequently against another PBS sharing the same MSB.

    [0188] In 504 transmitting a comparison output from the first computer system 102 to the second computer system 104. The comparison output is configured to display the comparison between the specification of the MSB and the specification of the PSB processed in 502. The comparison output is further configured for display by the second computer system 104, such as on the webpage in an editable document format, as shown for example in FIG. 5b.

    [0189] The text in each index of FIG. 2a is as follows: [0190] 2032 [0191] classifications [0192] classification_id: id [0193] name: text [0194] release: date [0195] created_on: date [0196] created_by: id [0197] modified_on: date [0198] modified_by: id [0199] 2030 [0200] classification_values [0201] classvalue_id: id [0202] classification_id: id [0203] number: text [0204] description: text [0205] created_on: date [0206] created_by: id [0207] modified_on: date [0208] modified_by: id [0209] 2024 [0210] manufacturers [0211] manufacturer_id: id [0212] name: text [0213] status: text [0214] created_on: date [0215] created_by: id [0216] modified_on: date [0217] modified_by: id [0218] 2026 [0219] identity_users [0220] _id: id [0221] access_failed_count: integer [0222] date_created: date [0223] date_deleted: date [0224] email: keyword [0225] email_confirmed: boolean [0226] is_lockout_enabled: boolean [0227] is_two_factor_enabled: boolean [0228] last_login_date: date [0229] last_password_changed_date: date [0230] lockout_end_date: date [0231] normalized_email: keyword [0232] normalized_user_name: keyword [0233] password_hash: keyword [0234] phone_number: keyword [0235] phone_number_confirmed: boolean [0236] security_stamp: keyword [0237] status: text [0238] user_name: text [0239] is_admin: boolean [0240] claims/type: keyword [0241] claims/value: keyword [0242] logins/login_provider: keyword [0243] logins/provider_display_name: text [0244] logins/provider_key: keyword [0245] roles/role_id: keyword [0246] created_on: date [0247] created_by: text [0248] modified_on: date [0249] modified_by: text [0250] 2028 [0251] user_roles [0252] user_role_id: id [0253] name: string [0254] type: string [0255] 2022 [0256] companies [0257] _id: id [0258] company_id: integer [0259] name: text [0260] description: text [0261] created_on: date [0262] created_by: text [0263] modified_on: date [0264] modified_by: id [0265] 2036 [0266] master_product [0267] _id: id [0268] product type: text [0269] product: text [0270] manufacturer: text [0271] 2042 [0272] [manufacturer_id]_assigned_users [0273] user_id: id [0274] user_role_id: id [0275] user_status: text [0276] created_on: date [0277] created_by: id [0278] modified_on: date [0279] modified_by: id [0280] 2062 [0281] [company id]_assigned_users [0282] _id: id [0283] user_role_id: id [0284] user_status: text [0285] project_id [0286] created_on: date [0287] created_by: id [0288] modified_on: date [0289] modified_by: id [0290] [company id]_classifications [0291] _id: id [0292] name: text [0293] release: date [0294] created_on: date [0295] created_by: id [0296] modified_on: date [0297] modified_by: id [0298] [company id]_offices [0299] _id: id [0300] name: text [0301] is_billing: boolean [0302] address_line_1: text [0303] address_line_2: text [0304] city: text [0305] state_province: text [0306] postal_code: text [0307] country: text [0308] coordinates: geo_point [0309] created_on: date [0310] created_by: id [0311] modified_on: date [0312] modified_by: id [0313] [manufacturer_id]_offices [0314] office_id: id [0315] name: text [0316] is_billing: boolean [0317] address_line_1: text [0318] address_line_2: text [0319] city: text [0320] state_province: text [0321] postal_code: text [0322] country: text [0323] coordinates: geo_point [0324] created_on: date [0325] created_by: id [0326] modified_on: date [0327] modified_by: id [0328] 2086 [0329] [company id]_customer_clients [0330] _id: id [0331] customer_client_name: text [0332] created_on: date [0333] created_by: id [0334] modified_on: date [0335] modified_by: id [0336] [company id]_classification_values [0337] _id: id [0338] classification_id: id [0339] number: text [0340] description: text [0341] created_on: date [0342] created_by: id [0343] modified_on: date [0344] modified_by: id [0345] 2044 [0346] [manufacturer_id]_products [0347] product_id: id [0348] name: text [0349] type: text [0350] product_line: text [0351] model_number: text [0352] product_weblink:text [0353] created_on: date [0354] created_by: id [0355] modified_on: date [0356] modified_by: id [0357] 2064 [0358] [company id]_projects [0359] _id: id [0360] customer_client_name: text [0361] name: text [0362] number: text [0363] description: text [0364] status: short [0365] industry: text [0366] type: text [0367] status_modified_on: date [0368] status_modified_by: id [0369] office_id: text [0370] address_line_1: text [0371] address_line_2: text [0372] city: text [0373] state_province: text [0374] postal_code: text [0375] country: text [0376] coordinates: geo_point [0377] created_on: date [0378] created_by: text [0379] modified_on: date [0380] modified_by: text [0381] 2046 [0382] [manufacturer_id]_classificationrefs [0383] classref_id: id [0384] classvalue_id: id [0385] product_id: id [0386] created_on: date [0387] created_by: id [0388] modified_on: date [0389] modified_by: id [0390] 2070 [0391] [company id]_working_spec_sections [0392] _id: id [0393] file_name: text [0394] spec_book_id: int [0395] is_master: boolean [0396] latest_draft_version: int [0397] latest_published_version: int [0398] spec_section_number: text [0399] spec_section_title: text [0400] master_spec_book_id: str [0401] spec_book_id: int [0402] user_id_with_checkout: id [0403] numbering/level_text: text [0404] numbering/numbering_format: text [0405] numbering/outline_level: text [0406] style/font/name: text [0407] style/font/size: long [0408] created_on: date [0409] created_by: id [0410] modified_on: date [0411] modified_by: text [0412] 2076 [0413] [company id]_working_specs [0414] _id: id [0415] spec_section_id: text [0416] spec_section_number: text [0417] spec_section_title: text [0418] content: text [0419] product_type: text [standard] [0420] design_preference: text [standard] [0421] manufacturer: text [standard] [0422] product: text [standard] [0423] outline_level: text [0424] vertical_order: long [0425] spec_type: text [0426] is_master: boolean [0427] item_type: text [0428] numbering/level_text: text [0429] numbering/numbering_format: text [0430] numbering/outline_level: text [0431] style/font/color: text [0432] style/font/name: text [0433] style/font/size: long [0434] created_on: date [0435] created_by: text [0436] modified_on: date [0437] modified_by: text [0438] project_spec_book_id: id [0439] master_spec_id: id [0440] parent_spec: id [0441] ms_parent_spec: id [0442] 2049 [0443] [manufacturer_id]_features [0444] feature_id: id [0445] product_id: id [0446] name: text [0447] description: text [0448] created_on: date [0449] created_by: id [0450] modified_on: date [0451] modified_by: id [0452] 2068 [0453] [company id]_project_spec_books [0454] project_id: text [0455] name: text [0456] style id: id [0457] created_on: date [0458] created_by: id [0459] modified_on: date [0460] modified_by: id [0461] 2072 [0462] [company id]_draft_spec_sections [0463] _id: id [0464] file_name: text [0465] is_master: boolean [0466] draft_version: int [0467] master_published_spec_section: text [0468] parent_spec_section_id: str [0469] draft_version: long [0470] spec_section_number: text [0471] spec_section_title: text [0472] master_spec_book_id: str [0473] working_spec_section_id: id [0474] user_id_with_checkout: id [0475] numbering/level_text: text [0476] numbering/numbering_format: text [0477] numbering/outline_level: text [0478] style/font/name: text [0479] style/font/size: long [0480] created_on: date [0481] created_by: id [0482] modified_on: date [0483] modified_by: text [0484] 2078 [0485] [company id]_draft_specs [0486] _id: id [0487] spec_section_id: text [0488] spec_section_number: text [0489] spec_section_title: text [0490] draft_version: long [0491] content: text [0492] product_type: text [standard] [0493] design_preference: text [standard] [0494] manufacturer: text [standard] [0495] product: text [standard] [0496] outline_level: text [0497] vertical_order: long [0498] spec_type: text [0499] is_master: boolean [0500] item_type: text [0501] numbering/level_text: text [0502] numbering/numbering_format: text [0503] numbering/outline_level: text [0504] style/font/color: text [0505] style/font/name: text [0506] style/font/size: long [0507] created_on: date [0508] created_by: text [0509] modified_on: date [0510] modified_by: text [0511] master_spec_book_id: id [0512] project_spec_book_id: id [0513] ms_parent_spec: id [0514] parent_spec: id [0515] 2050 [0516] [manufacturer_id]_options [0517] option_id: id [0518] product_id: id [0519] name: text [0520] description: text [0521] created_on: date [0522] created_by: id [0523] modified_on: date [0524] modified_by: id [0525] 2066 [0526] [company_id]_master_spec_books [0527] _id: id [0528] name: text [0529] description: text [0530] created_on: date [0531] created_by: text [0532] modified_on: date [0533] modified_by: text [0534] 2074 [0535] [company_id]_spec_sections [0536] _id: id [0537] file_name: text [0538] is_master: boolean [0539] draft_version: int [0540] latest_published_version: long [0541] master_published_spec_section: text [0542] parent_spec_section_id: str [0543] published_version: long [0544] spec_section_number: text [0545] spec_section_title: text [0546] master_spec_book_id: int [0547] project_spec_book_id: int [0548] working_spec_section_id: id [0549] user_id_with_checkout: id [0550] numbering/level_text: text [0551] numbering/numbering_format: text [0552] numbering/outline_level: text [0553] style/font/name: text [0554] style/font/size: long [0555] created_on: date [0556] created_by: id [0557] modified_on: date [0558] modified_by: text [0559] 2080 [0560] [company_id]_specs [0561] _id: id [0562] spec_section_id: text [0563] spec_section_number: text [0564] spec_section_title: text [0565] publish_version: long [0566] content: text [0567] product_type: text [standard] [0568] design_preference: text [standard] [0569] manufacturer: text [standard] [0570] product: text [standard] [0571] outline_level: text [0572] vertical_order: long [0573] spec_type: text [0574] master_spec_number: text [0575] is_master: boolean [0576] item_type: text [0577] numbering/level_text: text [0578] numbering/numbering_format: text [0579] numbering/outline_level: text [0580] style/font/color: text [0581] style/font/name: text [0582] style/font/size: long [0583] created_on: date [0584] created_by: text [0585] modified_on: date [0586] modified_by: text [0587] master_spec_book_id: id [0588] project_spec_book_id: id [0589] ms_parent_spec: id [0590] parent_spec: id [0591] 2052 [0592] [manufacturer_id]_finishes [0593] finish_id: id [0594] product_id: id [0595] name: text [0596] description: text [0597] created_on: date [0598] created_by: id [0599] modified_on: date [0600] modified_by: id [0601] 2084 [0602] [company_id]_styles [0603] _id: id [0604] style/font/color: text [0605] style/font/name: text [0606] style/font/size: long [0607] numbering/outline_level: text [0608] numbering/level_text: text [0609] numbering/number format: text [0610] + PageTopMargin:double [0611] + PageBottomMargin:double [0612] + PageLeftMargin:dobule [0613] + PageRightMargin:double [0614] + TitleFont:string [0615] + TitleFontStyle:string [0616] + TitleFontSize:double [0617] + SubTitleFont:string [0618] + SubTitleFontStyle:string [0619] + SubTitleFontSize:double [0620] + SectionHeaderFont:string [0621] + SectionHeaderFontStyle:string [0622] + SectionHeaderFontSize:double [0623] created_on: date [0624] created_by: id [0625] modified_on: date [0626] modified_by: id [0627] 2082 [0628] [company_id]_dashboard [0629] _id [0630] spec_id: text [0631] spec_section_id [0632] spec_section_number: text [0633] spec_type: text [0634] content: text [0635] product_type: text [standard] [0636] design_preference: text [standard] [0637] manufacturer: text [standard] [0638] product: text [standard] [0639] vertical_order: long [0640] project_id: text [0641] name: text [0642] status: short [0643] customer_client_name: text [0644] description: text [0645] industry: text [0646] number: text [0647] type: text [0648] address: text [0649] city: text [0650] state_province: text [0651] postal_code: text [0652] country: text [0653] coordinates: geo_point [0654] [company_id] comments [0655] _id: id [0656] specification_id: id [0657] value: text [0658] comment_status: text [0659] thread: int [0660] created_on: date [0661] created_by: id [0662] modified_on: date [0663] modified_by: id

    [0664] The text in each index of FIG. 2d is as follows: [0665] global_classifications [0666] _id: id [0667] classification: text [0668] number: text [0669] description: text [0670] created_on: date [0671] created_by: id [0672] modified_on: date [0673] modified_by: id [0674] 2026 [0675] identity_users [0676] _id: id [0677] access_failed_count: integer [0678] date_created: date [0679] date_deleted: date [0680] email: keyword [0681] email_confirmed: boolean [0682] is_lockout_enabled: boolean [0683] is_two_factor_enabled: boolean [0684] last_login_date: date [0685] last_password_changed_date: date [0686] lockout_end_date: date [0687] normalized_email: keyword [0688] normalized_user_name: keyword [0689] password_hash: keyword [0690] phone_number: keyword [0691] phone_number_confirmed: boolean [0692] security_stamp: keyword [0693] status: text [0694] user_name: text [0695] is_admin: boolean [0696] default_company: text [0697] active_company: text [0698] claims/type: keyword [0699] claims/value: keyword [0700] logins/login_provider: keyword [0701] logins/provider_display_name: text [0702] logins/provider_key: keyword [0703] created_on: date [0704] created_by: text [0705] modified_on: date [0706] modified_by: text [0707] 2022 [0708] companies [0709] _id: id [0710] company_id: integer [0711] name: text [0712] type: text [0713] tier: text [0714] concurrent_licenses: number [0715] named_licenses: number [0716] concurrent_rate: number [0717] named_rate: number [0718] status: text [0719] purchase_date: date [0720] purchase_type: text [0721] expiration_date: date [0722] auto_renew: boolean [0723] description: text [0724] created_on: date [0725] created_by: text [0726] modified_on: date [0727] modified_by: id [0728] 2028 [0729] user_roles [0730] _id: id [0731] name: string [0732] type: string [0733] classification_values [0734] _id: id [0735] company_id: text [0736] classification_id: id [0737] number: text [0738] description: text [0739] created_on: date [0740] created_by: id [0741] modified_on: date [0742] modified_by: id [0743] customer_clients [0744] _id: id [0745] company_id: text [0746] customer_client_name: text [0747] created_on: date [0748] created_by: id [0749] modified_on: date [0750] modified_by: id [0751] 2063 [0752] assigned_users [0753] _id: id [0754] company_id: text [0755] user_id: id [0756] user_role_id: id [0757] user_status: text [0758] assigned_projects/project_id [0759] created_on: date [0760] created_by: id [0761] modified_on: date [0762] modified_by: id [0763] offices [0764] _id: id [0765] company_id: text [0766] name: text [0767] is_billing: boolean [0768] address_line_1: text [0769] address_line_2: text [0770] city: text [0771] state_province: text [0772] postal_code: text [0773] country: text [0774] coordinates: geo_point [0775] created_on: date [0776] created_by: id [0777] modified_on: date [0778] modified_by: id [0779] 2065 [0780] projects [0781] _id: id [0782] company_id: text [0783] customer_client_name: text [0784] name: text [0785] number: text [0786] description: text [0787] status: short [0788] omniclass_description_1: text [0789] omniclass_description_2: text [0790] omniclass_description_3: text [0791] omniclass_description_4: text [0792] omniclass_number_1: text [0793] omniclass_number_2: text [0794] omniclass_number_3: text [0795] omniclass_number_4: text [0796] status_modified_on: date [0797] status_modified_by: id [0798] office_id: text [0799] address_line_1: text [0800] address_line_2: text [0801] city: text [0802] state_province: text [0803] postal_code: text [0804] country: text [0805] coordinates: geo_point [0806] created_on: date [0807] created_by: text [0808] modified_on: date [0809] modified_by: text [0810] measures [0811] _id: id [0812] company_id: text [0813] spec_id: text [0814] description: text [0815] value: decimal [0816] created_on: date [0817] created_by: id [0818] modified_on: date [0819] modified_by: id [0820] 2045 [0821] master_product [0822] _id: id [0823] company_id: text [0824] product_type: text [0825] product: text [0826] manufacturer: text [0827] classifications: [0828] [classification1, calssification2, . . . ] [0829] features: [0830] [feature1, feature2, . . . ] [0831] options: [0832] [option1, option2, . . . ] [0833] finishes: [0834] [finish1, finish2, . . . ] [0835] 2023 [0836] aliases [0837] _id: id [0838] alias_type: text [0839] alias: text [0840] assigned_value: text [0841] 2069 [0842] project_spec_books [0843] _id: id [0844] company_id: text [0845] project_id: text [0846] name: text [0847] style_id: id [0848] created_on: date [0849] created_by: id [0850] modified_on: date [0851] modified_by: id [0852] 2071 [0853] working_spec_sections [0854] _id: id [0855] company_id: text [0856] file_name: text [0857] is_master: boolean [0858] latest_draft_version: int [0859] latest_published_version: int [0860] master_published_spec_section: text [0861] spec_section_number: text [0862] spec_section_title: text [0863] master_spec_book_id: int [0864] project_spec_book_id: int [0865] project_id: int [0866] user_id_with_checkout: id [0867] numbering/level_text: text [0868] numbering/numbering_format: text [0869] numbering/outline_level: text [0870] style/font/name: text [0871] style/font/size: long [0872] created_on: date [0873] created_by: id [0874] modified_on: date [0875] modified_by: text [0876] [company_id]_working_specs [0877] _id: id [0878] spec_section_id: text [0879] spec_section_number: text [0880] spec_section_title: text [0881] content: text [0882] product_type: text [standard] [0883] design_preference: text [standard] [0884] manufacturer: text [standard] [0885] product: text [standard] [0886] outline_level: text [0887] vertical_order: long [0888] spec_type: text [0889] is_master: boolean [0890] item_type: text [0891] numbering/level_text: text [0892] numbering/numbering_format: text [0893] numbering/outline_level: text [0894] style/font/color: text [0895] style/font/name: text [0896] style/font/size: long [0897] created_on: date [0898] created_by: text [0899] modified_on: date [0900] modified_by: text [0901] project_id: int [0902] project_spec_book_id: id [0903] master_spec_book_id: id [0904] parent_spec: id [0905] ms_parent_spec: id [0906] 2073 [0907] draft spec sections [0908] _id: id [0909] company_id: text [0910] file_name: text [0911] is_master: boolean [0912] master_published_spec_section: text [0913] draft_version: long [0914] spec_section_number: text [0915] spec_section_title: text [0916] master_spec_book_id: int [0917] project_spec_book_id: int [0918] working_spec_section_id: id [0919] project_id: int [0920] numbering/level_text: text [0921] numbering/numbering_format: text [0922] numbering/outline_level: text [0923] style/font/name: text [0924] style/font/size: long [0925] created_on: date [0926] created_by: id [0927] modified_on: date [0928] modified_by: text [0929] [company_id]_draft_specs [0930] _id: id [0931] spec_section_id: text [0932] spec_section_number: text [0933] spec_section_title: text [0934] draft_version: long [0935] content: text [0936] product_type: text [standard] [0937] design_preference: text [standard] [0938] manufacturer: text [standard] [0939] product: text [standard] [0940] outline_level: text [0941] vertical_order: long [0942] spec_type: text [0943] is_master: boolean [0944] item_type: text [0945] numbering/level_text: text [0946] numbering/numbering_format: text [0947] numbering/outline_level: text [0948] style/font/color: text [0949] style/font/name: text [0950] style/font/size: long [0951] created_on: date [0952] created_by: text [0953] modified_on: date [0954] modified_by: text [0955] project_id: int [0956] project_spec_book_id: id [0957] master_spec_book_id: id [0958] parent_spec: id [0959] ms_parent_spec: id [0960] master_spec_books [0961] _id: id [0962] company_id: text [0963] name: text [0964] description: text [0965] created_on: date [0966] created_by: text [0967] modified_on: date [0968] modified_by: text [0969] 2067 [0970] master_spec_books [0971] _id: id [0972] company_id: text [0973] name: text [0974] description: text [0975] created_on: date [0976] created_by: text [0977] modified_on: date [0978] modified_by: text [0979] 2075 [0980] spec_sections [0981] _id: id [0982] company_id: text [0983] file_name: text [0984] is_master: boolean [0985] master_published_spec_section: text [0986] published_version: long [0987] spec_section_number: text [0988] spec_section_title: text [0989] master_spec_book_id: int [0990] project_spec_book_id: int [0991] working_spec_section_id: id [0992] project_id: int [0993] numbering/level_text: text [0994] numbering/numbering_format: text [0995] numbering/outline_level: text [0996] style/font/name: text [0997] style/font/size: long [0998] created_on: date [0999] created_by: id [1000] modified_on: date [1001] modified_by: text [1002] [company_id]_specs [1003] spec_section_id: text [1004] spec_section_number: text [1005] spec_section_title: text [1006] publish_version: long [1007] content: text [1008] product_type: text [standard] [1009] design_preference: text [standard] [1010] manufacturer: text [standard] [1011] product: text [standard] [1012] outline_level: text [1013] vertical_order: long [1014] spec_type: text [1015] is_master: boolean [1016] item_type: text [1017] numbering/level_text: text [1018] numbering/numbering_format: text [1019] numbering/outline_level: text [1020] style/font/color: text [1021] style/font/name: text [1022] style/font/size: long [1023] created_on: date [1024] created_by: text [1025] modified_on: date [1026] modified_by: text [1027] project_id: int [1028] project_spec_book_id: id [1029] master_spec_book_id: id [1030] parent_spec: id [1031] ms_parent_spec: id [1032] 2085 [1033] styles [1034] _id: id [1035] company_id: text [1036] style/font/color: text [1037] style/font/name: text [1038] style/font/size: long [1039] numbering/outline_level: text [1040] numbering/level_text: text [1041] numbering/number format: text [1042] + PageTopMargin:double [1043] + PageBottomMargin:double [1044] + PageLeftMargin:dobule [1045] + PageRightMargin:double [1046] + TitleFont:string [1047] + TitleFontStyle:string [1048] + TitleFontSize:double [1049] + SubTitleFont:string [1050] + SubTitleFontStyle:string [1051] + SubTitleFontSize:double [1052] + SectionHeaderFont:string [1053] + SectionHeaderFontStyle:string [1054] + SectionHeaderFontSize:double [1055] created_on: date [1056] created_by: id [1057] modified_on: date [1058] modified_by: id [1059] comments [1060] _id: id [1061] company_id: text [1062] specification_id: id [1063] value: text [1064] comment_status: text [1065] thread: int [1066] created_on: date [1067] created_by: id [1068] modified_on: date [1069] modified_by: id [1070] 2082 [1071] [company_id]_dashboard [1072] _id [1073] spec_id: text [1074] spec_section_id [1075] spec_section_number: text [1076] spec_type: text [1077] content: text [1078] product_type: text [standard] [1079] design_preference: text [standard] [1080] manufacturer: text [standard] [1081] product: text [standard] [1082] vertical_order: long [1083] assigned_manufacturer: text [1084] assigned_product: text [1085] assigned_prodcut type: text [1086] project_id: text [1087] name: text [1088] status: short [1089] customer_client_name: text [1090] description: text [1091] industry: text [1092] number: text [1093] type: text [1094] address: text [1095] city: text [1096] state_province: text [1097] postal_code: text [1098] country: text [1099] coordinates: geo_point [1100] The text in each index of FIG. 2e is as follows: [1101] 2032 [1102] classifications [1103] _id: id [1104] classification: text [1105] number: text [1106] description: text [1107] created_on: date [1108] created_by: id [1109] modified_on: date [1110] modified_by: id [1111] 2026 [1112] identity_users [1113] _id: id [1114] access_failed_count: integer [1115] date_created: date [1116] date_deleted: date [1117] email: keyword [1118] email_confirmed: boolean [1119] is_lockout_enabled: boolean [1120] is_two_factor_enabled: boolean [1121] last_login_date: date [1122] last_password_changed_date: date [1123] lockout_end_date: date [1124] normalized_email: keyword [1125] normalized_username: keyword [1126] password_hash: keyword [1127] phone_number: keyword [1128] phone_number_confirmed: boolean [1129] security_stamp: keyword [1130] status: text [1131] user_name: text [1132] is_admin: boolean [1133] default_company: text [1134] active_company: text [1135] claims/type: keyword [1136] claims/value: keyword [1137] logins/login_provider: keyword [1138] logins/provider_display_name: text [1139] logins/provider_key: keyword [1140] created_on: date [1141] created_by: text [1142] modified_on: date [1143] modified_by: text [1144] 2022 [1145] companies [1146] _id: id [1147] company_id: integer [1148] name: text [1149] type: text [1150] tier: text [1151] concurrent_licenses: number [1152] named_licenses: number [1153] concurrent_rate: number [1154] named_rate: number [1155] status: text [1156] purchase_date: date [1157] purchase_type: text [1158] expiration_date: date [1159] auto_renew: boolean [1160] description: text [1161] created_on: date [1162] created_by: text [1163] modified_on: date [1164] modified_by: id [1165] 2023 [1166] aliases [1167] _id: id [1168] alias_type: text [1169] alias: text [1170] assigned_value: text [1171] 2028 [1172] user_roles [1173] _id: id [1174] name: string [1175] type: string [1176] 2036 [1177] master_product [1178] product_type: text [1179] product: text [1180] manufacturer: text [1181] classifications: [1182] [classification1, calssification2, . . . ] [1183] features: [1184] [feature1, feature2, . . . ] [1185] options: [1186] [option1, option2, . . . ] [1187] finishes: [1188] [finish1, finish2, . . . ] [1189] 2042 [1190] [manufacturer_id]_assigned_users [1191] _id:id [1192] user_id: id [1193] user_role_id: id [1194] user_status: text [1195] created_on: date [1196] created_by: id [1197] modified_on: date [1198] modified_by: id [1199] 2062 [1200] [company_id]_assigned_users [1201] _id: id [1202] user_id: id [1203] user_role_id: id [1204] user_status: text [1205] assigned_projects/project_id [1206] created_on: date [1207] created_by: id [1208] modified_on: date [1209] modified_by: id [1210] [company_id]_classifications [1211] _id: id [1212] name: text [1213] release: date [1214] created_on: date [1215] created_by: id [1216] modified_on: date [1217] modified_by: id [1218] [company_id]_offices [1219] _id: id [1220] name: text [1221] is_billing: boolean [1222] address_line_1: text [1223] address_line_2: text [1224] city: text [1225] state_province: text [1226] postal_code: text [1227] country: text [1228] coordinates: geo_point [1229] created_on: date [1230] created_by: id [1231] modified_on: date [1232] modified_by: id [1233] [manufacturer_id]_offices [1234] _id: id [1235] name: text [1236] is_billing: boolean [1237] address_line_1: text [1238] address_line_2: text [1239] city: text [1240] state_province: text [1241] postal_code: text [1242] country: text [1243] coordinates: geo_point [1244] created_on: date [1245] created_by: id [1246] modified_on: date [1247] modified_by: id [1248] 2086 [1249] [company_id]_customer_clients [1250] _id: id [1251] customer_client_name: text [1252] created_on: date [1253] created_by: id [1254] modified_on: date [1255] modified_by: id [1256] [company_id]_classification_values [1257] _id: id [1258] classification_id: id [1259] number: text [1260] description: text [1261] created_on: date [1262] created_by: id [1263] modified_on: date [1264] modified_by: id [1265] 2064 [1266] [company_id]_projects [1267] _id: id [1268] customer_client_name: text [1269] name: text [1270] number: text [1271] description: text [1272] status: short [1273] omniclass_description_1: text [1274] omniclass_description_2: text [1275] omniclass_description_3: text [1276] omniclass_description_4: text [1277] omniclass_number_1: text [1278] omniclass_number_2: text [1279] omniclass_number_3: text [1280] omniclass_number_4: text [1281] status_modified_on: date [1282] status_modified_by: id [1283] office_id: text [1284] address_line_1: text [1285] address_line_2: text [1286] city: text [1287] state_province: text [1288] postal_code: text [1289] country: text [1290] coordinates: geo_point [1291] created_on: date [1292] created_by: text [1293] modified_on: date [1294] modified_by: text [1295] [company_id] measures [1296] _id: id [1297] spec_id: text [1298] description: text [1299] value: decimal [1300] created_on: date [1301] created_by: id [1302] modified_on: date [1303] modified_by: id [1304] 2068 [1305] [company_id]_project_spec_books [1306] _id: id [1307] project_id: text [1308] name: text [1309] style_id: id [1310] created_on: date [1311] created_by: id [1312] modified_on: date [1313] modified_by: id [1314] 2070 [1315] [company_id]_working_spec_sections [1316] _id: id [1317] company_id: text [1318] file_name: text [1319] is_master: boolean [1320] latest_draft_version: int [1321] latest_published_version: int [1322] master_published_spec_section: text [1323] spec_section_number: text [1324] spec_section_title: text [1325] master_spec_book_id: int [1326] project_spec_book_id: int [1327] project_id: int [1328] user_id_with_checkout: id [1329] numbering/level_text: text [1330] numbering/numbering_format: text [1331] numbering/outline_level: text [1332] style/font/name: text [1333] style/font/size: long [1334] created_on: date [1335] created_by: id [1336] modified_on: date [1337] modified_by: text [1338] 2076 [1339] [company_id]_working_specs [1340] _id: id [1341] spec_section_id: text [1342] spec_section_number: text [1343] spec_section_title: text [1344] content: text [1345] product_type: text [standard] [1346] design_preference: text [standard] [1347] manufacturer: text [standard] [1348] product: text [standard] [1349] outline_level: text [1350] vertical_order: long [1351] spec_type: text [1352] is_master: boolean [1353] item_type: text [1354] numbering/level_text: text [1355] numbering/numbering_format: text [1356] numbering/outline_level: text [1357] style/font/color: text [1358] style/font/name: text [1359] style/font/size: long [1360] created_on: date [1361] created_by: text [1362] modified_on: date [1363] modified_by: text [1364] project_id: int [1365] project_spec_book_id: id [1366] master_spec_book_id: id [1367] parent_spec: id [1368] ms_parent_spec: id [1369] 2072 [1370] [company_id]_draft_spec_sections [1371] _id: id [1372] company_id: text [1373] file_name: text [1374] is_master: boolean [1375] master_published_spec_section: text [1376] draft_version: long [1377] spec_section_number: text [1378] spec_section_title: text [1379] master_spec_book_id: int [1380] project_spec_book_id: int [1381] working_spec_section_id: id [1382] project_id: int [1383] numbering/level_text: text [1384] numbering/numbering_format: text [1385] numbering/outline_level: text [1386] style/font/name: text [1387] style/font/size: long [1388] created_on: date [1389] created_by: id [1390] modified_on: date [1391] modified_by: text [1392] 2078 [1393] [company_id]_draft_specs [1394] _id: id [1395] spec_section_id: text [1396] spec_section_number: text [1397] spec_section_title: text [1398] draft_version: long [1399] content: text [1400] product_type: text [standard] [1401] design_preference: text [standard] [1402] manufacturer: text [standard] [1403] product: text [standard] [1404] outline_level: text [1405] vertical_order: long [1406] spec_type: text [1407] is_master: boolean [1408] item_type: text [1409] numbering/level_text: text [1410] numbering/numbering_format: text [1411] numbering/outline_level: text [1412] style/font/color: text [1413] style/font/name: text [1414] style/font/size: long [1415] created_on: date [1416] created_by: text [1417] modified_on: date [1418] modified_by: text [1419] project_id: int [1420] project_spec_book_id: id [1421] master_spec_book_id: id [1422] parent_spec: id [1423] ms_parent_spec: id [1424] 2066 [1425] [company_id]_master_spec_books [1426] _id: id [1427] name: text [1428] description: text [1429] created_on: date [1430] created_by: text [1431] modified_on: date [1432] modified_by: text [1433] 2074 [1434] [company_id]_spec_sections [1435] _id: id [1436] company_id: text [1437] file_name: text [1438] is_master: boolean [1439] master_published_spec_section: text [1440] published_version: long [1441] spec_section_number: text [1442] spec_section_title: text [1443] master_spec_book_id: int [1444] project_spec_book_id: int [1445] working_spec_section_id: id [1446] project_id: int [1447] numbering/level_text: text [1448] numbering/numbering_format: text [1449] numbering/outline_level: text [1450] style/font/name: text [1451] style/font/size: long [1452] created_on: date [1453] created_by: id [1454] modified_on: date [1455] modified_by: text [1456] 2080 [1457] [company_id]_specs [1458] _id: id [1459] spec_section_id: text [1460] spec_section_number: text [1461] spec_section_title: text [1462] publish_version: long [1463] content: text [1464] product_type: text [standard] [1465] design_preference: text [standard] [1466] manufacturer: text [standard] [1467] product: text [standard] [1468] outline_level: text [1469] vertical_order: long [1470] spec_type: text [1471] is_master: boolean [1472] item_type: text [1473] numbering/level_text: text [1474] numbering/numbering_format: text [1475] numbering/outline_level: text [1476] style/font/color: text [1477] style/font/name: text [1478] style/font/size: long [1479] created_on: date [1480] created_by: text [1481] modified_on: date [1482] modified_by: text [1483] project_id: int [1484] project_spec_book_id: id [1485] master_spec_book_id: id [1486] parent_spec: id [1487] ms_parent_spec: id [1488] 2084 [1489] [company_id]_styles [1490] _id: id [1491] style/font/color: text [1492] style/font/name: text [1493] style/font/size: long [1494] numbering/outline_level: text [1495] numbering/level text: text [1496] numbering/number format: text [1497] + PageTopMargin:double [1498] + PageBottomMargin:double [1499] + PageLeftMargin:dobule [1500] + PageRightMargin:double [1501] + TitleFont:string [1502] + TitleFontStyle:string [1503] + TitleFontSize:double [1504] + SubTitleFont:string [1505] + SubTitleFontStyle:string [1506] + SubTitleFontSize:double [1507] + SectionHeaderFont:string [1508] + SectionHeaderFontStyle:string [1509] + SectionHeaderFontSize:double [1510] created_on: date [1511] created_by: id [1512] modified_on: date [1513] modified_by: id [1514] 2082 [1515] [company_id]_dashboard [1516] _id [1517] spec_id: text [1518] spec_section_id [1519] spec_section_number: text [1520] spec_type: text [1521] content: text [1522] product_type: text [standard] [1523] design_preference: text [standard] [1524] manufacturer: text [standard] [1525] product: text [standard] [1526] vertical_order: long [1527] assigned_manufacturer: text [1528] assigned_product: text [1529] assigned_prodcut type: text [1530] project_id: text [1531] name: text [1532] status: short [1533] customer_client_name: text [1534] description: text [1535] industry: text [1536] number: text [1537] type: text [1538] address: text [1539] city: text [1540] state_province: text [1541] postal_code: text [1542] country: text [1543] coordinates: geo_point [1544] [company_id] comments [1545] _id: id [1546] specification_id: id [1547] value: text [1548] comment_status: text [1549] thread: int [1550] created_on: date [1551] created_by: id [1552] modified_on: date [1553] modified_by: id