Source: https://patents.google.com/patent/US6983236?oq=5987118
Timestamp: 2018-04-22 20:41:26
Document Index: 720020196

Matched Legal Cases: ['Application No. 60', 'Application No. 60', 'Application No. 60', 'Application No. 60', 'Application No. 60', 'Application No. 60', 'Application No. 60', 'Application No. 60', 'Application No. 60', 'Application No. 60', 'Application No. 60', 'art\n200', 'art\n610']

US6983236B1 - Method for system-constraint-based selection for design components - Google Patents
Method for system-constraint-based selection for design components Download PDF
US6983236B1
US6983236B1 US09689178 US68917800A US6983236B1 US 6983236 B1 US6983236 B1 US 6983236B1 US 09689178 US09689178 US 09689178 US 68917800 A US68917800 A US 68917800A US 6983236 B1 US6983236 B1 US 6983236B1
US09689178
Narashimhan Kishore Mandeyam
Aprisa Inc
U.S. Provisional Application No. 60/158,962, filed on Oct. 12, 1999, entitled “Method for Building an Accreted Database and User-Defined Database Rules”;
U.S. Provisional Application No. 60/158,428, filed on Oct. 12, 1999, entitled “Application of Accretive Knowledge Base to Engineering Discovery”;
U.S. Provisional Application No. 60/158,440, filed on Oct. 12, 1999, entitled “Creation of Objects from Rules”;
U.S. Provisional Application No. 60/158,963, filed on Oct. 12, 1999, entitled “Generic Method and System for Modeling Objects”;
U.S. Provisional Application No. 60/158,439, filed on Oct. 12, 1999, entitled “Rendering Object Hierarchy and Object Relationships into Block Diagrams”;
U.S. Provisional Application No. 60/158,429, filed on Oct. 12, 1999, entitled “Retention of Search Engine Rules for Individual Users”;
U.S. Provisional Application No. 60/158,431, filed on Oct. 12, 1999, entitled “Method and System for Establishing Relationships, Constraints, and Rules Among Objects”;
U.S. Provisional Application No. 60/158,430, filed on Oct. 12, 1999, entitled “Method and Search Engine for the Extraction and Retrieval of Tiered, Logical and Relational Information from a Plurality of Sources”;
U.S. Provisional Application No. 60/158,438, filed on Oct. 12, 1999, entitled “Method and Computer Program for Tokenizing Rules and Search Engine Queries”;
U.S. Provisional Application No. 60/167,630, filed on Nov. 26, 1999, entitled “Tool for Discovery and Heuristic System Design”; and
U.S. Provisional Application No. 60/239,617, filed on Oct. 11, 2000, entitled “CircuitNet: A Tool for Discovery and Heuristic System Design.”
The contents of these provisional applications are incorporated herein by reference.
100 through 165 Steps in FIG. 1's Flowchart
200 Discovery tool
205 Transaction Engine
210 Data exchange
215 Search Database
220 Rules Database
225 Search Processor
230 Rules Processor
235 Account Database
240 Personality Database
245 Learning Engine
250 User Interface
255 Active Interface
260 System-Constraint-based Selection Engine
265 Management Interface
305 CPU
315 Clock
320 Candidates for CPU Component
325 Candidates for Memory Component
330 Candidates for Clock Component
405 through 450 Steps in FIG. 4's flowchart
610 Proxy Server
615 Server
620 Cluster Server
625 Objects & Processors
630 Ad Server
635 Index Server
640 Site Server Commerce Edition
645 Databases
650 File Server
705 through 740 Steps in FIG. 7's flowchart
Rule 1: Voltage BETWEEN (2.2, 3.3)
Block Component Candidate Cost per Unit
CPU A $100
CPU B $150
CPU C $80
Memory D $50
Memory E $75
I/O F $10
I/O G $25
Clock <unknown> <unknown>
Combination Meets $205
Checked Total Cost Requirement?
ADF $100 + $50 + $10 = $160 yes
BDF $150 + $50 + $10 = $210 no
CDF $80 + $50 + $10 = $140 yes
AEF $100 + $75 + $10 = $185 yes
BEF $150 + $75 + $10 = $235 no
CEF $80 + $75 + $10 = $165 yes
ADG $100 + 450 + $25 = $175 yes
BDG $150 + 450 + $25 = $225 no
CDG $80 + $50 + $25 = $155 yes
AEG $100 + 475 + $25 = $200 yes
BEG $150 + $75 + $25 = $250 no
CEG $80 + $75 + $25 = $180 yes
Discovery tool 200 includes a user interface 250 on a user's computer, which allows the user to interact with the functionality of the discovery tool 200. The user interface 250 allows the user to search for various components and designs, to build interpretive rules, and to validate a design through the compatibility checking function. The user interface 250 can be substantiated as set of Active Server Pages (“ASPs”), HTML pages and graphics that access the various C++ objects of the rest of the system.
Search Database 215
The search database 215 stores all product and design related objects, including systems, subsystems, micro-systems, components, products, vendors, and other sub-units. In one embodiment, the search database 215 is an Oracle database on an NT server.
Rules Database 220
The rules database 220 is a database that stores all system-wide rules for the discovery tool 200. In one embodiment, the rules are stored in text form to be later parsed by the rules processor.
Rules Processor 230
The Rules Processor 230 applies the rules that are in the rules database 220 on the objects and attributes in the system. The rules processor 230 is a set of VC++ objects that depend on the rules database 220 to hold rule definitions in string and pre-processed format. The rules processor 230 can evaluate mathematical expressions that can comprise of variables, arithmetic (+, −, *, /), relational (>, >=, <, <=, =, !=) and logical (AND, OR) operators. It supports use of brackets to affect precedence. It supports four functions Min{value1, value2}, Max{value1, value2}, Exs{value1, value2}, Rnd{value1, value2} that take two parameters and evaluate to the maximum, minimum, absolute difference and rounded off value respectively.
(1) Variables used in the expression are identified.
(2) All the variables in the expression are replaced with the values provided with by the client.
(3) All brackets that affect the precedence of the logical operators are replaced with a different set of brackets to distinguish them from those that affect the arithmetic operators precedence.
(4) The expression is parsed and converted to postfix notation, each token in this notation being either an arithmetic expression that contains only arithmetic operators or logical operators that combine the individual arithmetic expressions.
(5) Each token in this postfix notation has one arithmetic expression that does not have any logical operators. These expressions are again parsed and converted to postfix notation, this time, each token in this notation being a variable or constant, or arithmetic operators used. The result of this evaluation will give the value of the arithmetic expression, which will be used as the value of the tokens obtained in the previous step.
(6) The result of the evaluation of the tokens in the postfix notation is the result of the expression and is returned to the client.
Search Processor 225
To facilitate searching of the databases (215 & 220), the discovery tool 200 uses a specialized search processor 225 which generates the unformatted output for every search criteria statement, applying user-level information and system-level rules to the search criteria statement before delivering the results to the learning engine 245 (if implemented). The search processor 225 supports three types of searches: rule-based searches, structured searches, and keyword searches. First, rule-based searches allow the engineer-user to build the search criteria statement as a complex query to be executed by the search processor 225. The syntax available for the search criteria statements has been designed to be intuitive and especially useful to engineers.
(3) It creates the answer set from the search database 215, based on the query generated from the above steps;
(5) It passes the result-set on to the learning engine 245, for presentation to the user interface 250.
System-Constraint-Based Selection Engine 260
The discovery tool 200 also provides a system-constraint-based selection module 260. The system-constraint-based selection module 260 can verify that component candidates for several blocks are compatible, or it can determine which of the combination of component candidates are optimal. This module is especially useful as a final verification step to ensure that all selected objects/components meet project requirements.
Management Interface 265
The management interface 265 is used by a system administrator to manage user IDs, track usage statistics, manage the promotion of user-specific rules to system-wide rules, provide reporting, etc. In one embodiment, the management interface 265 is a set of ASPs.
Store retrieved documents in a hierarchical tree mirroring the structure of the site as determined by pattern matching of links followed and text in their immediate context.
Start exploration and retrieval from a configuration file of sites and exploration parameters, and process least recently explored sites first (so that the process can be prematurely ended but eventually explore all the sites in the configuration file)
Store documents specified by exploration parameters as files, each with an associated text file description (containing URL, hierarchy path (site base path+hierarchy within that site), manufacturer, modified date, downloaded date)
Log and/or interactively display download activity
Output a text stream of filenames of new/updated documents
Retrieve documents over anonymous http and ftp
Don't re-download content if it is certain by modification date that it has not changed
Don't re-visit pages (prevent infinite loops), restrict crawling to fixed depth or to within a set of base URLs
Documented plain-text configuration files
Persistent information is not corrupted by unexpected program termination
1) Clear job queue and visited URL set
2) Record program start time
3) If job queue is empty, find the site file with the oldest access time:
a) If access time is later than program start time, end program
b) Load manufacturer name
c) Add URL/starting path to job queue with depth 0
d) Load all the link exploration rules for that resource and append them into one rule list
e) Load authentication information
f) Load depth limit
4) While job queue is not empty:
a) Pull first item from queue
b) Get modification time of document referenced by URL (using current resource authentication info); if failed, log error and restart loop (goto 3)
c) Retrieve the document content of the URL (using current resource authentication info)
d) Convert document to normalized HTML
e) For each exploration rule, match the regular expression against the normalized HTML; for each matching rule/context found:
i) If matched link is on visited list, continue on next match
ii) Add matched link to visited list
iii) Concatentate directory onto current path
iv) If rule is terminal, and modification time of the linked document is not equal to the existing local copy of that document, retrieve it preserving modification time, and save it under path
v) If rule is nonterminal, the link matches base URL of current resource, the content type is HTML, and depth is not greater than the site's limit, then add job with new url/path, and depth+1
Transaction Engine 205
The Transaction Engine 205 is a common platform for the transfer of these types of transactions, operating securely and with speed. It is built as a set of VC++ objects running on an NT server, with Microsoft's Site Server Commerce Edition (“SSCE”) and Microsoft's transaction management platform. SSCE is integrated into the discovery tool environment to handle data and sales transactions through the SSCE Commerce Interchange Pipeline (“CIP”). Specific transaction classes provide interaction with partners and vendors for data updates.
Learning Engine 245
The Learning Engine 245 is an automatic feedback mechanism that tracks usage, learns user preferences from them and applies these preferences to some parts of the discover tool system 200, making them more applicable to the specific user. These preferences may range from simple things like color and layout preferences to more value-add items like preferred search parameters, design constraints applicable during a project, vendor preferences and lead-time requirements for manufacturing. The learning engine 245 picks up all output from the other modules in the system and massages it before presentation, to fit the preferences that it learns by looking through the user-interaction history that is stored in the Personality Database 240. This module is a set of VC++ objects that work on the HTML or ASP pages from other modules (mostly the user interface 250).
Personality Database 240
The personality database 240 stores user-specific information, including demographic data, user preferences, common typographical errors made by the user, user-designed rules, etc. The personality database 240 may also store logs of all of the user's actions for future use. The personality database 240 can include a combination of ASPs that form data into a series of database tables.
Active Interface 255
The Active Interface 255 is an Active-X application that enables a richer, more visual user experience that with pure HTML and scripted pages. Most of the discovery tool system 200 interfaces can be designed in HTML. The active interface 255 is only necessary in some specific cases, including:
(1) Building an object hierarchy of systems, subsystems and components to reflect the true design of a product;
(2) Defining rules in a programmatic language via a context-sensitive editing mechanism that recognizes both the list of available operators and the wealth of objects and attributes in the search database 215; and
(3) Rendering the object hierarchy and object relationships into user-created block-diagrams, using the contents of the search database 215, the rules database 220 and a specific cache of visual positioning directives.
The active interface 255 invokes the rules processor 230 where necessary, to retrieve or copy rules between the rules database 220 and third-party diagramming packages, thereby providing a seamless visual experience for the user.
System-Constraint-Based List of references to stored system-constraint-
Selection requests based selection rules
Circuit designs Tree structures that group references
Compatible component List of references to components that satisfy the
lists selected system-constraint-based selection
Component data Resulting answer sets of components created
Filtered component data Resulting answer sets of components created
New component data Component data either spidered from vendor
Parsed rules Tokenized stacks of atomic search parameters
Personalization data rules Weight lists for prioritization of rules
Search requests List of references to stored search rules
Usage patterns Ordered lists of user rule selections
User input List of selected rules
Category context Restrictions on search space based on
DB requests SQL data queries
DB results Result sets of component references from
Filtered result lists Final result sets of component references
Personalization data Weight lists for prioritization of rules
Rule requests Rule selections
Rules Lists of references to stored rules
Search requests Lists of ad hoc search rules
Tokenized lists Tokenized stacks of atomic search parameters
Atomic rules Tokenized atomic search parameters
lists selected system-constraint-based selection rules
DB requests SQL database queries
Circuit designs Tree structures that group references to
Design requests Single design selections
Saved designs Tree structures that group references to
choosing a first generic description and a second generic description from the plurality of generic descriptions;
querying a database of objects for finding potential components or subsystems for the first generic description;
receiving a first answer set from the database of objects, where the first answer set is comprised of at least one component or subsystem candidate for the first generic description;
querying the database of objects for finding potential components or subsystems for the second generic description;
receiving a second answer set from the database of objects, where the second answer set is comprised of at least one component or subsystem candidate for the second generic description;
testing one or more combinations of the component or subsystem candidates from the first and second answer sets against one or more predefined system constraints; and
determining at least one solution set, where each solution set is one of the combinations of the component or subsystem candidates which best complies with the one or more predefined system constraints.
2. The method for choosing components or subsystems for a plurality of generic descriptions in a system design from claim 1, wherein the generic descriptions are blocks of a block diagram.
assigning a first candidate object from the first answer set to the first generic description;
assigning a second candidate object from the second answer set to the second generic description; and
testing whether the first and second candidate objects comply with one or more predefined system constraints.
5. The method for verifying from claim 4, wherein the generic descriptions are blocks of a block diagram.
US09689178 1999-10-12 2000-10-11 Method for system-constraint-based selection for design components Expired - Fee Related US6983236B1 (en)
US15842899 true 1999-10-12 1999-10-12
US15843199 true 1999-10-12 1999-10-12
US15843999 true 1999-10-12 1999-10-12
US15842999 true 1999-10-12 1999-10-12
US15843099 true 1999-10-12 1999-10-12
US15896399 true 1999-10-12 1999-10-12
US15843899 true 1999-10-12 1999-10-12
US15844099 true 1999-10-12 1999-10-12
US15896299 true 1999-10-12 1999-10-12
US16763099 true 1999-11-26 1999-11-26
US09689178 US6983236B1 (en) 1999-10-12 2000-10-11 Method for system-constraint-based selection for design components
US6983236B1 true US6983236B1 (en) 2006-01-03
ID=35509128
US09689178 Expired - Fee Related US6983236B1 (en) 1999-10-12 2000-10-11 Method for system-constraint-based selection for design components
US (1) US6983236B1 (en)
US20060074619A1 (en) * 2000-12-27 2006-04-06 Intel Corporation Recognizing signals in design simulation
Ben Schneiderman, Treemaps for space-constrained visualization of hierarchies, Human-Computer Interaction Lab, University of Maryland, Dec. 26, 1998, updated Apr. 17, 2000.
Ben Schneiderman, Treemaps for Space-Constrained Visualization of Hierarchies, Human-Computer Interaction Laboratory, University of Maryland, Dec. 26, 1998, updated Apr. 17, 2000. *
Keith Andrews, Josef Wolte, and Michael Pichler, Information Pyramids(TM): A New Approach to Visualising Large Hierarchies, Late Breaking Hot Topics Proc., IEEE Visualization '97, Phoenix, AZ, Oct. 1997, pp. 49-52.
Keith Andrews, Josef Wolte, and Michael Pichler, Information Pyramids: A New Approach to Visualisingt Large Hierarchies, Late Breaking Hot Topics Proceedings IEEE Visualization '97, Phoenix, Arizona, Oct. 1997, pp. 49-52. *
Mark Bruis, Kees Huizing, and Jake J. Van Wijk, Squarified Treemaps, Eindhoven University of Technology, Department of Mathematics and Computer Sciences, The Netherlands. *
Mark Bruls, Kees Huizing, and Jarke J. van Wijk, Squarified Treemaps, Eindhoven University of Technology, Dept. of Mathematics and Computer Sciences, The Netherlands.
Owner name: APRISA, INC., CALIFORNIA
Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:YEN, LARRY;FIALCOWITZ, GREGG;KARLOVAC, NEVEN;AND OTHERS;REEL/FRAME:015482/0892;SIGNING DATES FROM 20010122 TO 20010124