Retrieving, organizing, and utilizing networked data using databases6799174Abstract A networked catalog search, retrieval, and information correlation and matching system is disclosed. The system allows suppliers to publish information in electronic catalogs, structure the information in an object oriented representation distributed across a network of computers, for example, the Internet. The system also enables customers to search and retrieve information on products and suppliers that match dynamically specified customer requirements. Through retrieving protocol compliant pages or other information, a search engine forwards retrieved pages to a database which sorts received information by the information's internal organization structure. By searching the information as stored in the knowledge base, a user may quickly retrieve the stored information as highly tailored to the user's search strategy. Also, additional tools operate on the stored information to, inter alia, organize design trades between selected elements where additional design and selection options are provided to each user. Further, the system supports product creation as formed of constituent parts. These products may then be used as parts to be formed into higher-level products. Claims We claim: Description The following description includes some copyrighted material. While Applicants do not object to the copying of this specification for patent related purposes, Applicants reserve all copyrights to themselves and/or the assignee of the present invention.
<UC domain="product" class="gimbals/shanks/widgets">
<UC_ENTRY name="standard widget" realization state="available">
<UC_FEAT name="Supplier Name" value="Acme Corporation">
<UC_FEAT name="Manufacturer Name" value="Acme Corporation">
<UC_ID name="part number" value="1234">
<UC_PAR name="Price" value="$100">
<UC_PAR name="Length" value="2.5" units="inches">
<UC_PAR name="Width" value="3.5" units="inches">
The tag <UC*> (where "*" may include additional tags) is the identifier to portal 102 that the following page is in an organizational format useable by portal 102. It is readily apparent that any predefined tag could be used as long as it is recognizable by the portal. For simplicity, organized language used by suppliers and read by portal 102 will hereinafter be referred to as "the protocol". The protocol may include various fields that describe both the information as well as the supplier of the information. In the above example, the "domain", "class", "entry name", "realization", and "PAR" (parameter) fields relate to the information supplied. The FEAT (feature) fields relate to the supplier of the information. In the above example, the Acme Corporation is both a manufacturer and supplier of a standard widget (a product) (currently available) which costs $100 per unit and has dimensions 2.5 inches by 3.5 inches. The domain field relates to the type of product. In general, the feature field may relate to alphanumeric character strings while the parameter field may relate to numerical values. While HTML-based information encodings are known, HTML-based tags may have restrictions including the following: 1) Information needs to be encoded twice on the same page: once for the protocol data content (the protocol tags ignored by an HTML browser) and once for the browser display (HTML tags). Modifying page content thus requires a tool that can concurrently recognize and edit corresponding HTML and protocol tags. 2) By mingling content and display, a page containing content needs to be modified if the display is to be modified, even if the content remains the same. The corresponding process can be unwieldy, can introduce unintended corruption of protocol data, and can lead to inconsistencies between the protocol data and its independently defined display. 3) The inventory and storage requirements of static pages can become large, with considerable duplicate information both within and across the body of static pages. Alternatively, one may use XML and/or stylesheets to provide a more unified approach to handling information. For example, the information may solely contain XML content as shown in the following code segment:
<?xml version="1.0"?>
<?xml-stylesheet type= ' text/xsl ' href= ' /UCLP.xsl ' ?>
<UC domain="Products" version="2.0" class="Fuze/Proximity/Stand
Alone/RF/Guided Missile" status="current">
<UC_ENTRY name="6665005" realization_state="available">
<UC_ID Name="Product Name" value="Target Sensor"/>
<UC_FEAT name="QualifiedTo" value="ISO9001"/>
<UC_ID name="Supplier Number" value="94990"/>
<UC_PAR name="Price" value="Proprietary" units="Dollars"/>
</UC_ENTRY>
</UC>
Using XML, a system receiving information may rely on display instructions that are maintained separately in stylesheets, wherein the XML content being refer to and being displayed using these stylesheets. The XML tags may be stored as static "pages" or the tags may be generated dynamically through use of protocol translators that map between the portal ontology and the native format of the data store that contain the content to be identified as protocol data. All references herein to the protocol and to the placement of the protocol on pages are intended to be inclusive in that the protocol may include, XML, HTML, and other mark-up languages that provide information about the content of the transmitted information. There are a number of advantages for using XML over HTML, including: (1) The need for duplication of protocol data on a static HTML page is removed; (2) Inconsistency between protocol data and its display is removed; (3) The volume of page inventory is significantly reduced; and, (4) The XML design of the protocol enables the dynamic generation of protocol data. Embodiments of the present invention contemplate including a variety of different domains, each directed to at least one type of industry sector. For explanatory purposes, a variety of industry sectors are contemplated and, to these sectors, overlapping domains may exist. For example, the manufacturing industry sector may include products as well as processes. The shipping industry may include timetables for shipping routes (overlapping as to delivery schedules for the manufacturing industry). The real estate industry may include commercial and residential properties. The loan industry may include commercial and residential loans as well as the risk factors associated therewith. The class field relates to an ordered hierarchy of information. In this example, the standard widget falls into subclass "widget", which is a subclass of subclass "shanks", which is a subclass of class "gimbals". In an alternative example, a real estate property listing may belong to a subclass "locality", which is a subclass of class "residential properties". FIG. 2 shows a generic portal 201. Generic portal 201 is represented in the middle of Web 101 as the portals may be located in a variety of different physical and functional locations, depending on the industry and the resources available to the players involved. Portal 201 includes a Web site server 202, an online page generator 204 (also known as a protocol translator), a searching system 205 (referred to herein as a Web Crawler), search engines 203, and a knowledge base 206. Here, knowledge base 206 is represented as an industry sector knowledge base. Embodiments of the present invention contemplate at least one industry sector knowledge base existing for each industry in a given locality. For example, in the real estate industry, a single knowledge base may support the entire industry in given locality, as real estate agents would access a single knowledge base for retrieving residential and commercial listings. In other industries, each company may include its own updateable knowledge base allowing limited access to the public and greater access to employees. Web crawler 205 periodically scans the Web for pages as represented by crawler 210. Pages 209 are retrieved and parsed in Web crawler 205. As will be described in greater detail below, the parsed pages 208 containing a usable organizational structure (for example, identified as including the <UC> tags) are stored in knowledge base 206 for indexing and future retrieval. The knowledge base 206 stores pages 208 based on the classes found therein as well as the attributes and methods found therein (for example, the length, width, and other properties of the contained information). When a specific page needs to be retrieved for information contained therein, search engines 203 search knowledge base 206 for results meeting various search criteria. As knowledge base 206 stores previously parsed pages 208 in an ordered manner (via class, attribute, and method information) a variety of different searches may be performed on the stored information. To search for information, embodiments of the present invention contemplate a user submitting a search request via an HTML page 211 forwarded to server 202. The server then forwards the requested information to search engines 203. A variety of different searches may be performed. For example, a hierarchical search may be performed. Using a hierarchical search engine, a user may select a general class and step through the various subclasses until a specific subclass is reached. For instance, a user may be looking for brushless motors as classified in Parts/electromechanical parts/motors/brushless motors (where the general class is "Parts" and "electromechanical parts", "motors", and "brushless motors" are nested subclasses). To find a list of brushless motors, a user would first select "parts", then "electromechanical parts", then "motors", and then "brushless motors". When reaching "brushless motors", the list of available brushless motors would be displayed. Also, a full text Boolean search may be performed on the terms stored from Web Crawler 205. For example, using a search engine accessing a linear index (for example, as supplied by Alta Vista.TM. from Digital Equipment Corporation), a user may request information on "brushless motor". In response the search request, the search engine would scan through a stored index of terms for "brushless" and "motor" and retrieve all matching results. Finally, a user may request a parametric search. A parametric search is a search that attempts to match input parameters with known values in an arithmetic sense. For example, a parametric search may deal with numerical values and character strings, but generally only through a Boolean comparison. Fuzziness allows matches to be made based on the "closeness" of one value compared to another or one character string compared to another. To be able to compare character strings, a fuzzy logic search relies on a predefined value map, which defines what closeness means for the attributes in question. By referencing the value map a parametric search can handle both numerical and non-numerical searches. In a parametric fuzzy logic search, a user supplies target values for the attributes of interest (e.g., the selected parameters, features or indices), together with the relative importance of each selected attribute and other ranking information (such as "more is better" or "closer is better"). The search engine would then return the data objects that best match the target values. An example of a fuzzy logic search engine includes a search engine developed by the Inso Corporation of Massachusetts. One may use, for example, a qualitative statement or statements that describe closeness of one object to another. Examples include ISO 9000 different levels of quality, geographical locations converted to distance or converted with constraints (for example, on same side of river), and the like. An example of ranking various fields is shown below:
Subclass: Rectifiers
Rating: IF AV VRRM IFSM TJ
Desired Values: 5 75 215 180
Relative very little very most
Importance:
Ranking Criteria: more is better more is better less is better exact
Through implementing a fuzzy search specifying the above values and qualifiers, the system attempts to find the desired rectifier with the most important values satisfied first. The web site server 202 converts the received results from search engine 203 into HTML and forwards or "serves" the created page to the requesting user through page 211. To assist in the retrieval of information from portal 201, a user may access a variety of different tools. As described above, the user may access the search engines 203 through submitted page 211. Also, the user may employ the use of data agents located on the user's terminal (or computer) to pre-format the submitted information to include, modify, or remove submitted information as necessary. Data agents may include CGI scripts, JAVA components, ActiveX components, and the like. In addition to data agents residing on server 202, data agents may also reside with the suppliers 104 and 105 to provide enhanced processing of requested information for a user. FIG. 2 also shows protocol translator 204 as part of the portal 201. The translator 204 facilitates supplier publication of HTML pages that are compliant with the protocol and the industry common vocabulary or ontology. This is described further in the discussion of FIG. 3. FIG. 3 shows the low-end supplier 104 of FIG. 1 as low-end supplier 304 providing information to be scanned by a portal 201. Portal 201 is equivalent to that described with respect to FIG. 2. FIG. 3 also includes an ISP 303 (an Internet Service Provider) in Web 101. Low-end supplier 304 (a supplier who lacks the capability or desire to support organized pages locally) retrieves pages 307 into an Internet browser (software running on user 304's computer which translates HTML pages and displays the pages on user 304's display). Pages 307 include at least one template for populating and submitting back onto Web 101. Embodiments of the present invention contemplate template pages 307 including at least one of an initial set of class, attribute, and method identifiers for population. For example, user 304 requests from portal 201 the design template for electric motors. In reply, protocol translator 204 retrieves the desired class/subclass, attribute, and method ontologies. These ontologies are translated into an HTML form and sent to user 304's Internet Browser 305 as template pages 307. User 304 next populates the received template pages 307 as completed template pages 306. Pages 306 may be forwarded back directly to portal 201 where the pages 306 are parsed and added to knowledge base 301 as page 302. Alternatively, if user 304 has an ISP 303 that will publish the populated template pages 306, then user 304 forwards the populated template pages 306 as formatted web pages 308 to ISP 303 for storage. Next, web crawler 310 scans ISP for complying pages 308 and retrieves them as pages 309 for storage in knowledge base 301 for indexing and later retrieval. Pages 307 may be sent from a variety of different portals 201. For example, in an industry sector where only one portal exists, the template page 307 would be sent from the single portal 201. In industry sectors where multiple portals exist, each supplier and/or user may wish others to adapt a specific variety of ontology that suits their business. However, conflicting ontologies may result. To alleviate problems created by varying ontologies across a single industry sector, different portals may be programmed to respond to a specific variety of protocols. To this end, embodiments of the present invention may contemplate a single sector portal governing the recognized ontology. While each of the other portals are free to adapt their ontology as need be, retrieving template pages 307 from a sector portal almost guarantees compliance with the other portals that may have varied from the accepted ontology. Further, if a non-sector portal 201 (for example, a private corporation's portal) receives a request for a template, embodiments of the present invention contemplate providing the user 304 with a choice of sector-wide ontology or the private corporation's ontology. Moreover, variations of the type of ontology provided exist depending on specifics of user 304 including specifics such as whether the user 304 is cleared to receive certain classified (i.e., secret) ontologies (where the classes, attributes, and/or methods themselves are classified), etc. Once portal 201 has received new pages, a variety of methods exist for updating the other portals in the sector (provided that the industry supports other portals). First, each portal 201 may include a list of all other portals. Once new information is added, the portal 201 may transmit a message to all other portals in the industry that new information has been received by portal 201 and either attaching the new information or providing a location on portal 201 for access to the stored information. This method provides the advantages that a user may transmit information to a minimum number of portals and have the transmitted information replicated by the receiving portal. Second, the sector portal may receive and maintain a listing of all new pages. Periodically, or upon demand of a user, each portal may scan the sector portal for new page addresses then scan the new pages themselves for retrieval of the desired class, attribute, and method information. The information which a supplier may have on his site may include image data including VRML data, CGM Active Graphics images, Java Parametric Optimizers, CAD drawings, performance specifications, executable simulations, links to the supplier's online ordering system, links to previous order status, or other image data information, etc. Also, non-image data may be found at the supplier's site including HTML pages including organized protocol, EDI links (links furthering electronic data interchange), technical data, technical services, or other non-image data information, etc. When a portal scans a supplier's site, the invention contemplates that at least some technical data (and possibly some image data) may be retrieved and stored in the portal. The remaining technical and image data may remain stored at the supplier's site for later access. The supplier may also use data agents to gather information from the users in order to, among other things, enhance the usability of the supplier's site for the user. These enhancements may include personalizing the supplier's site through placing data agents on the supplier's site including possibly CGI scripts, Java applets, and interfaces to the supplier's databases. For example, a supplier's site may include a Java applet that may enable enhanced searching of a supplier's site for green widgets. By providing the Java applet to a scanning portal, the portal may incorporate the Java applet into its stored index of suppliers so that, when information is requested from the supplier's site, the user may run the Java component to enhance the retrieval of information (for example, through the user dynamically accessing and manipulating a supplier's information as stored in the portal). Also, the Java component may format information when transmitted from the user to the supplier so, when received at the supplier's server, the supplier may quickly process received questions as having been previously formatted by the Java applet. FIG. 4 shows a supplier 105 that has the capability to publish its own protocol-compliant pages. The supplier 105's site includes a desktop framework 401, an Internet browser 305, protocol translator 402, web server 403, legacy applications 405, and legacy databases 406. An operator at desktop framework 401 requests a template page 307. The template page may be transferred to the protocol translator where the template page is combined with data (class, method, attribute, etc.) specifying the supplied products and processes from supplier 105. The resulting page 404 may be transferred to web server 403 for posting. On request, the compiled pages 404 may be transferred to other sites (for example, users' portals 102) as pages 410. Alternately, the protocol translator may map data stored in legacy databases 406 to fields in the template, create an HTML page 404 embodying that data and the special protocol tags, and transfer that page 404 to web server 403 for posting. The translator may also save the mapping for repeated use. Legacy databases 406 may store additional data (for example, images, VRML representations, specifications, or other data, etc.) that describe in greater detail supplier 105's products and/or processes. Supplier 105 may make this additional information available to other portals as required (for portals meeting various requirements, possibly including security or other requirements). For example, when further information not found or in addition to information found on pages 410, the web server receiving the request may forward the request to legacy database 406 from where the requested information is accessed. The legacy database 406 may forward the data 409 to web server 403 which then may forward the requested data, properly formatted in HTML as data 411. Additionally, the data 411 may be transmitted in a form compatible with the applet at the requesting portal 102 for proper display in conjunction with the requesting applet. Other applications 405 may provide support for other functions of supplier 105's site including updating of the information stored in legacy database 406 as well as for allowing supplier 105's site to support a suite of integration tools as necessary for applications contained in tool suite 602 (described in greater detail below with respect to FIG. 6). FIG. 5 shows user site 103 including a desktop framework 501, an Internet browser 305, a local portal 502, a web server 504, project knowledge base 503, protocol translator 505, legacy applications 507, legacy databases 506 and tool suite 508. Internet browser 305 may function similarly to the browser of FIGS. 3 and 4 yet may retrieve data 509 in addition to pages 510. Browser 305 may transmit the received pages to tool suite 508, project knowledge base 503 and local portal 502. Also, browser 305 may exchange the received data 509 as needed with tool suite 508. The desktop framework 501 may access a variety of integration tools, data agents, PDM's, the local portal 502, an application programming interface (API), and an internal cache of accessed pages. Local portal 502 may retrieve pages 512 through crawler 511 which may scan the Internet 101. The retrieved page may then be parsed to page 521 and transferred to project knowledge base 503. When accessed, project knowledge base 503 provides requested information as page 520 to Internet browser 305 (when, for example, an operator requests information stored in project knowledge base 503) or as page 522 to web server 504 (when, for example, page 522 containing a finished product or process is to be published onto the Internet 101, for other upstream portals 102). When web server 504 serves to publish compiled pages, it may act like server 403 in FIG. 4. To this end, legacy applications 507, protocol translator 505, legacy database 506 may function similarly to that of the corresponding elements in FIG. 4. Tool suite 508 may also receive additional pages 515 from web server 504 or pages 517 from browser 305. Data 516 and data 518 may follow similar supply paths respectively. Tool suite 508 includes a variety of tools which integrate the information contained in other portals 102, the local portal 502, and web server 504 (as retrieving information, at least in part, from legacy database 506). FIG. 6 shows a more detailed illustration of the system of FIG. 5. Delineation 600 indicates the boundary between a corporate portal and associated systems and entities on the Internet. Local portal 607 includes at least two distinct systems: a crawler 609 (similar to crawler 205 described above in FIG. 2), and ontology tracking component 608. Connected to the crawler 609 and ontology tracking component 608 are a reverse index database (RIDB) 611 and a database 610. Database 610 may be an object oriented database (OODB) or a relational database (RDB). Crawler 609 may receive pages from a number of sources including a supplier's web site 601, a sector portal web site 616 (publishing pages and/or ontologies 634), or a private project web site 606. Crawler 609 parses the received pages into character strings and stores the strings in RIDB 611 where RIDB 611 indicates from where the strings were received. When RIDB 611 has received a predetermined amount of protocol data, the protocol data is sent to ontology tracking component 608 where the ontology tracking component may store the found protocol data in database 610. In storing the found protocol data in database 610, ontology tracking component 608 may control the database 610 to store the received protocol data in an organized structure. For example, the ontology tracking component 608 may control the database 610 to store the received protocol data grouped by class, attribute, and/or methods. Also, the database 610 may store the signatures separate from the methods to allow indexing. When requested, ontology tracking component 608 may search and retrieve information from database 610 to satisfy search requests as outlined above. One feature of the ontology tracking component 608 is that it may maintain the ontology for organizing database 610. When new classes, attributes, and/or methods are received by crawler 609, the new information is provided to ontology tracking component 608 for processing. Ontology tracking component 608 may process the new class/method/attribute in a variety of ways. For example, ontology tracking component 608 may not update its own ontology, instead waiting for standardized ontology 634 from sector portal 615. In this regard, a single ontology is maintained with sector portal 615. When all portals subscribe to only allowing sector portal 615 to update the accepted ontology, an invariant ontology is maintained. Alternately, ontology tracking component 608 may always update its own ontology, allowing maximum flexibility and creativity to the authors of published pages. Further, ontology tracking component 608 may selectively update the ontology based on a predetermined pattern of usage or time associated with newly received classes/methods/attributes. For example, ontology tracking component 608 may wait until a new class has been used in at least 10 pages before it dynamically updates itself to allow others to use the new class as well as index on the class. Also, ontology tracking component 608 may wait until a new class has been used for 3 months before updating its own ontology. By limiting the rate at which the ontology tracking component 608 updates itself, the ontology tracking component 608 may minimize spurious occurrences of new terms (which, in some instances, may be due to typographical or transmission errors). Once updated, ontology tracking component may provide the new ontology to sector portal 615 through public corporate web site 613 via page 633. In addition to the ontology described above, the ontology tracking component 608 may also include the following baseline for associated objects:
Ensemble A product which includes this product;
Ancestor Previous version of this product;
Descendent Updated version of this product;
Component A component used in this product;
Accessories Other products which go the with the product; and,
Alternatives Other products which might also meet requirements.
Baseline ontology methods may include business functions, price or cost analysis, calculation of lead time required for product delivery, calculation of need for customization, a function for ordering parts, and a function for ordering services. Additional methods may be performed by portal 607 including page certification, a crawler report of visited pages, and a page validation to ensure errors are kept to a minimum. Integration with other system components such as the tool suite or project knowledge base may be made through CORBA or JAVA as needed. The information stored in database 610 may be considered atomic or elemental in nature that it is combined with other information stored in the OODB (other atoms or elements, collectively "items") and provided to a user. The user requests the items from portal 607 and receives data 625. Project knowledge base manager 604 receives data 625 and stores the data in database 605. Here, the received data 625 may be cataloged according to current projects on which a user is working. Also, the database 605 may also contain catalogs of items. For example, a user may want to build a device that requires a first component and a second component. The user searches via a search query (Boolean, hierarchical, parametric, etc.) and receives items A and B that match the search criteria for the first component and receives items C and D that match the search criteria for the second component. The project knowledge base manager may store the information relating to items A and B together in a first catalog in database 605 and items C and D together in a second catalog in database 605. Accordingly, when the user needs to evaluate or try a different item (part, process, etc.), the user may directly access the stored list of catalogs. Also the current project may be stored in database 605 as a work in progress. The difference between the information stored in a catalog and the information stored as a work in progress is that the catalogs store end items, while information stored, as a work in progress is a combination of elements or end items. At least one goal of the catalog is to provide a readily accessible database of information for use in the creation of end items, while at least one goal of the project database is to store the created end items (products or processes) as they evolve. Once a user completes an end item, project knowledge base manager 604 may direct information relating to the completed end item (completed page 626) to private project web site 606 (which may contain additional end items (products, processes, etc.)) for internal distribution to local portal 607. As local portal 607 may be one of a plurality of local portals 607 for a corporation, the information provided on private project web site 606 may be transmitted to these additional web sites as well. One embodiment of the present invention contemplates local portal 607 scanning private project web site 606 periodically or upon request from a user. Periodic scanning keeps local portal 607 updated autonomously. On the other hand, scanning upon request minimizes bandwidth consumption for exchanging information. To this end, a user may specify when the portal is to scan (the web in general or specific sites) for new protocol-compliant pages. An example of a process implemented in portal 607 is as follows: 1) the portal 607 scans for information (628, 629) from external information providers (601, 616) and for information (627) from internal information providers (606); 2) the portal stores the received information; 3) the portal dynamically creates web pages for a user based on the stored information; and, 4) provides links to the additional information left back on the supplier's page. Tool suite 602 includes various tools which may use information 624 provided by project KBM 604, information 625 from the ontology tracking component 608 and related databases 610 and 611, and from supplier web sites 601. These tools may include a requirements integration and verification tool (which assures that assembled design objects (end items) meet individual requirements and comply with predefined rules); an affordability monitor (which determines if the cost of the included items and the processes required for combination exceeds predetermined budgets), a trade-off manager (which trades various elements to arrive at varying end items so to assist in the decision making process), a realization generator (which creates process alternatives for combining elements for determining whether the end item may be improved through alternative processes), and an integrated supply chain scheduler (which coordinates the communication and information exchange among entities in a supply chain to arrive at feasible manufacturing schedules). These tools may autonomously access the information stored in the portal 607 or stored in supplier web sites 601 to compile and assist users in defining end items. The database of FIG. 6 may be constructed with an object-oriented database. In an alternative embodiment, the database 610 may be replaced by a relational database. Some observations have been made with respect to OODBs in comparison to relational databases. Within an OODB, a class object is created and defined to comprise a set of organizational terms. The organizational terms in turn are defined using protocol tags. Each class instance prescribes tag values to define the set of organizational terms corresponding to that class. Protocol data then describe the entries that are instances of each class by prescribing values for some subset of organizational terms defining the class. At the highest level, classes can be grouped into domains of interests. This is illustrated in FIG. 7A for a single domain. FIG. 7A shows a domain 701 with classes 1-5 (702-706) directly depending on or descending from domain 701. All classes have the same rank. Class 5 further includes entries 51-53 (707-709). The structure in FIG. 7A is one example of a structure that may be used by the object-oriented system (including database 610). FIG. 7B is another example of a data structure that may be used. In FIG. 7B, Class 2703, Class 3710, Class 4711, and Class 5712 are not independent but are connected through some hierarchical structure. For both structures shown in FIG. 7A and FIG. 7B, entries 51-53 (707-709 and 713-715) may be assigned to any class node 702-706 and 711-713. For simplicity of illustration only, entries are assigned only to Class 5. While the two structures of FIGS. 7A and 7B may be adapted to provide information, FIG. 7B provides the additional benefit of having classes within classes. This provides for a richer set of relationships to be stored within the domain and, therefore, impart more information to a user when retrieved. For example, using FIG. 7B, one may store a "hex bolt" class, which is dependent from a "bolt" class, which is dependent on a "fastener" class. While the structures of FIGS. 7A and 7B may both be stored in database 610, the data structure of FIG. 7A lends itself to easier searching for an objected oriented version of database 610. For instance, a class identifier that is defined in terms of a text string, which is the intuitive name supplied by a human user, may be searched. Searching for a particular class based on such a text string may be impractical in the multi-tier hierarchy of FIG. 7B because each hierarchy branch may have to be searched in turn. For example, the search engine traversing the content of an object oriented database searches the class identifier for class 1702, then searches the entries subordinate to class 1702 to see if those entries (which may be other classes) satisfy the search string. This repetitive searching each level of entries off each class increases the number of items that need to be searched. The flat hierarchy of FIG. 7A provides an advantage over the structure of FIG. 7B in that all classes are at the same level. So, searching the data structure is easier in that only one level of classes needs to be searched. To permit faster searching for an object oriented database traversing the data structure of FIG. 7B, the data structure of FIG. 7A may be combined with a separate but complementary hierarchy that may be provided to capture class relationships such as those shown in FIG. 7B. Alternately, indexes such as those commonly used in a relational database management system (referred to as a RDBMS) may also maintain such relationships. Routine conversion of an OODB to an RDBMS may result in difficulty because a relational design classically requires a static data structure and the services of a RDBMS administrator to modify the structure as the class hierarchy evolves. Database 610 maybe implemented using an RDBMS, with the following advantages: (1) enables the object class structure defined for the OODB version of database 610; (2) supports flexible ontology methods defined above without requiring the services of a RDBMS administrator; and (3) combines the ontology defined above and the corresponding hierarchy into one unified structure. By use of this approach, the definition of an ontology may comprise (1) a hierarchical organization of domain content and (2) properties associated with each hierarchy class. The property information is conveyed through use of the protocol, where the protocol comprises tag definitions through which organizational terms may be captured, where such organizational terms describe characteristics/descriptors of a class. Relative position of the class within the hierarchy can be one of the organizational items. A high level relational database model including key relationships among tables is shown in FIG. 8. Each of the boxes in FIG. 8 represents a separate table in the database. Entries in the Tag Attribute table 807 include the attributes that are available to define protocol tags. Each Tag Attribute entry corresponds to one Data Type (from table 808). The Tags 805 are defined as having 1 . . . m (one-to-many) relationship to Tag Attributes 807. Protocol tags are defined in terms of the of the relationships between entries in the Tags and Tag Attributes tables. A domain is defined as a top-level entity in the Domain table 801. Each entry in the Domain table 801 corresponds to one domain. A domain may comprise 1 . . . m classes (reflected in class table 802). Entries in the Class Properties table 803 comprise the properties that are available to define classes. Classes are defined in the classes table 802 as having 1 . . . m Class Properties from class properties table 803. Classes are defined in terms of the relationships between the entries in the Classes and Class Properties tables (802 and 803, respectively). A page 806 is a set of protocol data, expressed through tags defined in the Tags table 805, and representing values for class properties corresponding to the class for which the page is providing protocol data. An entry in the Page table 806 comprises 1 . . . m Tag Instances 804 and each page contains tag instances for only one class. 1 . . . m pages comprise the total set of protocol data corresponding to a class. Each tag on a page 806 is an entry in the Tag Instance table 804. There are 1 . . . m tag instances per page and each tag instance corresponds to one entry in the Tags table 805. Many tag instances across multiple classes can use any tag. Class properties may be entered manually into the Class Properties table 803, the class properties may be accumulated from new entries in the Tag Instances table 804, or a combination of both methods can be used. The following is an example of the use of the tables of FIG. 8 for the search of class identifiers. A relational database is used for database 610. A search request is received by the portal 607 and processed. The relational database is searched by first querying domain table 801 for the proper domain. From the received result, classes table 802 is queried for all classes in the appropriate domain. The first class referenced by the class table 802 is located and its class identifier searched. The search then proceeds through the entries in the table and searches the class identifier of each referenced class. The other tables 803-808 may be accessed as well during searches. The use of the RDBMS of FIG. 8 provides the following advantages: (1) The RDBMS design encompasses major benefits of the object-oriented structure attributed to OODB version of database 610 as described above and of relational indices which support capturing and searching the ontology hierarchy; (2) The RDBMS design has expanded market potential as companies generally have relational databases on site, rather than object-oriented databases; (3) The RDBMS design supports greater scalability as the number of classes, corresponding class properties, and complexity of the hierarchy grow; (4) The expanded ontology of the RDBMS design enables a more consistent underlying architecture by unifying the previously defined ontology and the corresponding, but previously separate, hierarchy. Using the above described invention, users may rapidly configure a supply chain of information, easily search the chain for relevant information, determine the best match of existing end items to new requirements, integrate desired goals or preferences into a created end item, aggregate product realization plans for assembling a product, estimate the feasibility and effect of information trade-offs as pertaining to, for example, costs, facilitate the exchange of models, simulations, and statistical information, integrate and manage trades, and exchange information with other applications. Applications of the above described invention may include manufactured goods relating to, at least, industry sectors including aerospace, automotive, general and discrete manufacturing, electronics, pharmaceuticals, and other industry specific manufacturing supply and design chains and to service industries including, at least, real estate markets, financial institutions' information exchange, loan institutions' information exchange, insurance institutions' information exchange, and other industry specific information exchanges. While the present invention has been particularly described with reference to the preferred embodiments, it should be readily apparent to those of ordinary skill in the art that changes and modifications in form and details may be made without departing from the spirit and scope of the invention. For example, the processes described above may be implemented in software. For instance, the portals' 102 ability to retrieve, organize and store may be coordinated from stored memory modules as executed by said portal. It is intended that the appended claims include such changes and modifications.
|
Same subclass Same class Consider this |
||||||||||
