WO2010022378A1 - Interrelated item search - Google Patents

Interrelated item search Download PDF

Info

Publication number
WO2010022378A1
WO2010022378A1 PCT/US2009/054701 US2009054701W WO2010022378A1 WO 2010022378 A1 WO2010022378 A1 WO 2010022378A1 US 2009054701 W US2009054701 W US 2009054701W WO 2010022378 A1 WO2010022378 A1 WO 2010022378A1
Authority
WO
WIPO (PCT)
Prior art keywords
item
relations
prop
relation
ary
Prior art date
Application number
PCT/US2009/054701
Other languages
French (fr)
Inventor
Satya Reddy
Original Assignee
Satya Reddy
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Satya Reddy filed Critical Satya Reddy
Publication of WO2010022378A1 publication Critical patent/WO2010022378A1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/951Indexing; Web crawling techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/36Creation of semantic tools, e.g. ontology or thesauri

Definitions

  • Information retrieval systems play a key role in Internet-related search applications and all related knowledgebase applications.
  • users typically enter query with one or more keywords and receive a list of documents that contain one or more of the keywords.
  • Prevailing information retrieval systems search and present the documents containing some logical combination of the keywords in the query.
  • the intent of the search can span multiple related concepts related by common properties, linked by multiple relationships.
  • the ability to enable search of documents that considers alternative forms of keywords, and keyword relationships is critical to provide relevant results.
  • Systems and methods to search in response to query consisting of a plurality of keywords, with each keyword searching disjoint document sets corresponding to interrelated ontologies are disclosed.
  • the objective is to enable search by processing for relevance of all possible valid relations among keywords in the query.
  • the overall space of all possible valid relations among all of the keywords in the underlying documents are pre-computed based on transitivity rules using common property items in associated ontologies.
  • Our method enables query keyword substitutions by considering each- keyword as well as valid groups as a whole, based on all reachable valid keywords along every relation computed in the overall merged ontologies.
  • Systems and methods disclosed include building the knowledgebase with the classification of keywords in different ontologies, fundamentals of building hierarchical part-of graph augmented with same-as and kind-of relations including the change relations, methods to search the hierarchical graph in response to an user query, selecting the best valid match and the corresponding presentation sheets and finally displaying the results to users.
  • FIG. 1 is a diagram of an information retrieval system 100 with interrelated item search capability.
  • FIG. 2 is an exemplary embodiment 200 to illustrate the computing device.
  • FIG. 3 illustrates the generic representation of an item (unary relation) 300 and its value set.
  • FIG. 3A is an exemplary part-item "TV" 300A with an exemplary value set
  • FIG. 3B is an exemplary prop-item “Resolution” 300B with an exemplary value set
  • FIG. 3C is an exemplary part_item "Player” 300C with an exemplary value set.
  • FIG. 4 is a generic representation of 2-ary relation 400 of a part_item and a prop_item and its value set.
  • FIG. 4A is the 2-ary relation "TV I Resolution” 400A between the part_item “TV” of FIG. 3A and the prop_item “Resolution” of FIG. 3C with the valid value set for 2-ary relation
  • FIG. 4B is the 2-ary relation "Player I Resolution” 400B between the part_item “Player” of FIG. 3C and the prop_item “Resolution” of FIG. 3B with the valid value set for 2-ary relation
  • FIG. 5 is a generic representation of 3-ary relation 500 between the item part_iteml, part_item2, and prop_iteml, and its value set.
  • FIG. 5A is the 3-ary relation "TV I Player I Resolution” 500A between the 2-ary relation "TV I Resolution” of FIG. 4A and the 2-ary relation "Player I Resolution” 500B of FIG. 4B.
  • FIG. 6A is a general interrelated item search capable n-level hierarchical part-of graph 600A in accordance with the current invention with m-ary relations at each m-level node.
  • FIG. 6B is an exemplary interrelated item search capable hierarchical part-of graph 600B with valid n-ary relations for a given adjacency matrix.
  • FIG. 6C is the set of invalid relations 600C in the hierarchical part-of graph of 600B in FIG. 6B.
  • FIG. 6D is another embodiment of the exemplary interrelated item search capable hierarchical part-of graph 600D for a given adjacency matrix.
  • FIG. 6E is an exemplary interrelated item search capable hierarchical part-of graph 600E for a practical set of items and the corresponding adjacency matrix.
  • FIG. 7A is an exemplary list 700A of same-as relations;
  • FIG. 7B a low-level implementation of same-as relations of a part_item 700B;
  • FIG. 7C a low- level implementation of same-as relations of a prop_item 700C.
  • FIG. 7D is an exemplary hierarchical part-of graph augmented with same-as relations 700D.
  • FIG. 7Dl is the hierarchical part-of graph augmented with same-as relations 700Dl illustrating the effect of substituting a same-as relation.
  • FIG. 8Al is an exemplary set of kind-of relations 800Al ; FIG. 8A2 a low- level implementation of kind-of relations of a part_item 800 A2.
  • FIG. 8B is the hierarchical part-of graph augmented with kind-of relations 800B;
  • FIG. 8Bl is the hierarchical part-of graph augmented with kind-of relations 800Bl illustrating the effect of substituting a kind-of relation;
  • FIG. 8B2 is the hierarchical part- of graph augmented with kind-of relations 800B2 illustrating the effect of substituting another kind-of relation.
  • FIG. 8C is an exemplary hierarchical part-of graph augmented with both the same-as relations and kind-of relations 800C.
  • FIG. 8D is the general hierarchical part-of graph augmented with both the same-as relations and kind-of relations 800D according to the current invention.
  • FIG. 9 is an exemplary set of change relations 900.
  • FIG. 10 is a high-level block diagram 1000 of software blocks to implement the current invention of interrelated item search engine and browser.
  • FIG. 11 is one embodiment of an intermediate level representation using the data structure lists 1100 of n-level hierarchical part-of graph 600A of FIG. 6A.
  • FIG. 12 is one embodiment of the representation 1200 of a part_item and the n- ary relations the part_item participates in n-level hierarchical part-of graph 1100 of FIG. 11.
  • FIG. 13 is one embodiment of the representation 1300 of a prop_item and the n- ary relations the prop_item participates in n-level hierarchical part-of graph 1100 of FIG. 11.
  • FIG. 14 is one embodiment of the representation 1400 of ontology with the list of part_items, the list of prop_items and the n-ary relations of the ontology in n-level hierarchical part-of graph 1100 of FIG. 11.
  • FIG. 15 is one embodiment of keyword database 1500.
  • FIG. 16 is a flowchart 1600 of a method for receiving the multiple keyword query from the user, processing for the relevant presentation sheets and presenting the results to the user.
  • FIG. 17 is a snapshot of the browser 1700 after the user has typed in multiple keyword query and hit go button.
  • FIG. 18 is the snapshot of the browser 1800 after the user has clicked on one of the hyperlinks corresponding to an instance of n-ary relation in the snapshot of the browser 1700 of FIG. 17
  • FIG. 1 is a diagram 100 of an information retrieval system wherein query is performed with multiple keywords and compatible search results are presented based on one or more of common properties of their corresponding ontologies, in accordance with the invention.
  • the system 100 may include multiple client devices 110, 120, 130 connected to multiple servers 140, 150 via a network 160.
  • Client device with browser 110 will accept multiple keyword user input query, and displays information that has been received from other systems 120, 130, 140, and 150 over network 160.
  • Servers 140, 150 may include a search engine 1030 for accepting user queries transmitted over network 160, searching a knowledgebase comprising a hierarchical part-of graph (to be described later) and documents 1040, and returning results to the user.
  • the network 160 may comprise a local area network (LAN), a wide area network (WAN), a virtual private network (VPN), a telephone network, such as the Public Switched Telephone Network (PSTN), an intranet, the Internet, or a combination of networks.
  • LAN local area network
  • WAN wide area network
  • VPN virtual private network
  • PSTN Public Switched Telephone Network
  • FIG. 1 shows three client devices 110, 120, 130 and two servers 140, 150 connected to a network 160; however, it will be appreciated that in practice there may be more or less client devices, servers, and/or networks, and that some client devices may also perform the functions of a server, and some servers may perform the functions of a client.
  • FIG. 2 shows a more detailed example a computing device 200, such as a client 110, 120, 130 or server 140, 150 shown in FIG. 1.
  • system 200 comprises a computing device such as a personal computer, laptop, mainframe, personal digital assistant, cellular telephone, etc.
  • System 200 will typically include a processor 210, volatile memory 220, persistent memory 230, data storage device 240, a display device 250, a keyboard input 260, a mouse 270, a network interface 280, and an address/data bus 290 for connecting the aforementioned elements.
  • Volatile memory 220 will generally include some combination of computer readable media, such as high-speed random-access memory (RAM).
  • Persistent memory 230 may include such as read-only memory (ROM), a magnetic disk, disk array, and/or tape array.
  • Data storage device 240 may comprise a disk drive or memory slot for accepting computer-readable media such as floppy diskettes, CD-ROMs, DVDs, memory cards, magnetic tapes, etc.
  • ROM read-only memory
  • Data storage device 240 may comprise a disk drive or memory slot for accepting computer-readable media such as floppy diskettes, CD-ROMs, DVDs, memory cards, magnetic tapes, etc.
  • keyboard input 260, mouse 270, a pen, or voice recognition mechanism for entering information
  • one or more mechanisms such as a display device 250, printer, speaker, etc. for presenting information to a user.
  • Network interface 280 is typically operable to provide a connection between system 200 and other systems via a wired, wireless, optical, and/or other connection.
  • system 200 may perform a variety of search and retrieval operations. These operations will typically be performed in response to processor 210 executing software instructions contained on a computer readable medium such as volatile memory 220.
  • the software instructions may be read into memory 220 from another computer-readable medium, such as data storage device 240, or from another device via network interface 280.
  • Volatile memory 220 may include a variety of programs or modules for controlling the operation of system 200 and performing the search and retrieval techniques described in more detail below. For example, if system 200 is a server, such as server 150 shown in FIG.
  • volatile memory 220 may include a database of documents, a corresponding index, a search engine 1030 for searching the knowledgebase 1040 using a query received from user interface either keyboard interface 260 or mouse 270 and/or received remotely from a user through network interface 280.
  • FIG. 2 illustrates a system that is primarily software-based, it will be appreciated that in other embodiments special-purpose circuitry may be used in place of, or in combination with, software instructions to implement processes consistent with the present invention. Thus, the present invention is not limited to any specific combination of hardware and software.
  • FIGS. 1 and 2 are provided for purposes of illustration and not limitation as to the scope of the invention.
  • system 200 is depicted as a single, general-purpose computing device such as a personal computer or a network server, in other embodiments system 200 could comprise one or more such systems operating together using distributed computing techniques. In such embodiments, some or all of the components and functionality depicted in FIG. 2 could be spread amongst multiple systems at multiple locations and/or operated by multiple parties.
  • knowledgebase 1040 could be implemented on a system that is separate from the system on which search engine 1030 is hosted; or knowledgebase 1040 may be implemented on multiple distributed servers. It will be readily apparent that many similar variations could be made to the illustrations shown in FIGs. 1 and 2 without departing from the principles of the present invention. As previously indicated, the systems shown in FIGs. 1 and 2 can be used to facilitate the retrieval of documents (e.g., web pages) and presentation sheets responsive to user queries of multiple keywords.
  • documents e.g., web pages
  • presentation sheets responsive to user queries of multiple keywords.
  • Each keyword is classified as an item (also called unary relation) or a value of the item.
  • Each item may represent a part item (hereinafter “part_item”) or a property item (hereinafter “prop_item”).
  • keyword “TV” is classified as a part_item.
  • the keyword “TH-42PX75U” is the value of the part_item (hereinafter “part_item_val”).
  • TH- 42PX75U is actually a Panasonic TV model.
  • a TV has a property "Resolution”. So the keyword “Resolution” is classified as a prop_item.
  • the value of resolution may be "720P", "1080P” etc.
  • item 310 is denoted by a "keyword”.
  • the set 320 of all possible values or instances of item 310 is represented by "n" number of values namely ⁇ V 1 , V 2 ,.. y ⁇ n _ V ⁇ ,V n ⁇ , where n is an arbitrary integer. Again each of the values
  • V 1 , V 2 , ..y (n _ l ⁇ ,V n ⁇ in set 320 is denoted by a keyword.
  • An item 310 and its value set 320 together are called a unary concept 300.
  • the value set 320 of item 310 may change as new values are added to the set 320 for example as new instances of part_item "TV" are available. Similarly the set 320 of values of item 310 may be reduced if an old model of part_item "TV" has become obsolete and its value keyword is deleted. Also the set 320 of values may be inserted into the set with the help of human inputting the keywords as new values are added through a computer user interface program such as 720 in FIG. 10 or they may be extracted from the documents automatically.
  • the knowledgebase disclosed in the current invention is built hierarchically where the leaf nodes are items either part_item 300 or prop_item 300. The second level nodes are created if there are relations between leaf nodes specifically a part_item and a prop_item.
  • part_iteml has value set 320 given by ⁇ Dl 1 , Dl 2 ,...DL n-1 S , Dl n ⁇ and prop_iteml has a value set 320 given by
  • the 2-ary relation (or binary) 410 is denoted by (partjteml I prop_iteml ⁇ .
  • the value set 420 of relation 410 is denoted by (Dl 1 , Fl 2 ⁇ , (Dl 2 , Fl 5 ) , ... , (Dl n , Fl 9 ⁇ .
  • Each value is a 2-tuple.
  • the first keyword corresponds to a value of part_iteml and the second keyword corresponds to a value of prop_iteml.
  • the first keyword corresponds to a value of prop_iteml and the second keyword corresponds to a value of part_iteml.
  • the ordering of the items in the 2-tuple is irrelevant to the current invention.
  • the value set 420 of the relation (part_iteml I prop_iteml ⁇ has the size equal to at most the size of the value set 320 of part_iteml.
  • the 2-ary relation 410 and its value set 420 together are called a 2-ary concept 400.
  • an n-ary relation and its value set together called an n-ary concept.
  • Diagram 400A of FIG. 4A illustrates an exemplary second level node which is created based on the 2-ary relation between the two leaf level nodes namely "TV" of diagram 300A of FIG. 3A and "Resolution” of diagram 300B of FIG.3B.
  • the relation 410A is denoted by (TV I Resolution ⁇ .
  • the value set 420A of the relation 410A is given by (TH-42PX75U, 720p ⁇ , (LNT5265, 1080p ⁇ , (KDL40S3000, 720p ⁇ , (LC46D82U, 1080p ⁇ , (LC42D72U, 1080p ⁇ , and (HLT5076, 1080p ⁇ .
  • Each value is a 2-tuple.
  • the first keyword corresponds to a value of part_iteml "TV” and the second keyword corresponds to a value of prop_iteml "Resolution”.
  • the value set 420A of the relation (TV I Resolution ⁇ has the size equal to at most as the size of the value set 320A of part_item "TV”.
  • the relation 410A (TV I Resolution ⁇ can be queried with (TV I 1080p ⁇ where "1080p” is a value of prop_item “Resolution”. Such a query will return all the values of "TV” which have “1080p” as the value of "Resolution”.
  • the query ⁇ TV I 1080p ⁇ will return the values namely ⁇ LNT5265, 1080p ⁇ , ⁇ LC46D82U, 1080p ⁇ , ⁇ LC42D72U, 1080p ⁇ , and ⁇ HLT5076, 1080p ⁇ .
  • the query ⁇ TV I 72Op ⁇ can also be performed on the relation 410A ⁇ TV I Resolution ⁇ which will return the values namely ⁇ TH-42PX75U, 72Op ⁇ and ⁇ KDL40S3000, 72Op ⁇ .
  • the relation 410A ⁇ TV I Resolution ⁇ can be queried with ⁇ TH-42PX75U I Resolution ⁇ . Such a query will return the value or values with the first keyword "TH- 42PX75U” and the corresponding value of "resolution”. For the 2-tuple value set 420A of FIG 4A the query ⁇ TH-42PX75U I Resolution ⁇ will return the value namely ⁇ TH- 42PX75U, 72Op ⁇ .
  • Diagram 400B of FIG. 4B illustrates another exemplary second level node which is created based on the relation between the two leaf level nodes namely "Player" of diagram 300C of FIG. 3C and "Resolution" of diagram 300B of FIG.3B.
  • the relation 410B is denoted by ⁇ Player I Resolution ⁇ .
  • the value set 420B of relation 410A is given by ⁇ HD-A20, 1080p ⁇ , ⁇ HD-A2, 720p ⁇ , and ⁇ BDP-S300, 1080p ⁇ .
  • Each value is a 2-tuple.
  • the first keyword corresponds to a value of part_iteml "Player” and the second keyword corresponds to a value of prop_iteml "Resolution”.
  • the value set 420B of the relation ⁇ Player I Resolution ⁇ has the size equal to at most as the size of the value set 320 of part_item "Player".
  • the relation 410B ⁇ Player I Resolution ⁇ can be queried with 2-tuple where one of the keywords is the value of the part_item or prop_item, and the other keyword being the part_item or prop-item itself.
  • a part_item such as “TV” may have relations with more than one prop_item for example "manufacturer", “ManufactureDate” etc., where “manufacturer” denotes the manufacturer of the part_item “TV” and “ManufactureDate” denotes the date "TV” was manufactured.
  • the second level nodes with the 2-ary relations such as ⁇ TV I Manufacturer ⁇ and ⁇ TV I ManufactureDate ⁇ are valid relations. All the relations with part_item as "TV” are grouped into the same second level node.
  • Applicant notes that in the leaf level there are at most as many nodes as the sum of the total number part_items and the total number of prop_items. And at the second level there are at most as many nodes as the total number of part_items.
  • the leaf nodes and second level nodes are called base nodes or base relations.
  • the items and value sets for a part_item and prop_item are usually created and stored in the knowledgebase.
  • the valid relations and all their value sets in the second level nodes such as ⁇ part_iteml I prop_iteml ⁇ are also created and stored in the knowledgebase.
  • the third level nodes are created if there are relations between two part_items which have a common prop_item.
  • a third level node is created based on the relation 510 between 2-ary relation ⁇ part_iteml I prop_iteml ⁇ of diagram 400 and 2-ary relation ⁇ part_iteml I prop_item2 ⁇ of diagram 400. As illustrated in FIG.
  • the 2-ary relation ⁇ part_item2 I prop_iteml ⁇ has value set 420 given by ⁇ [Dl 1 , Pl 2 ], [Dl 2 , Pl 5 ],..., ⁇ Dl n .Pl 9 ⁇ ⁇ and the 2-ary relation ⁇ part_item2 I prop_iteml ⁇ has value set 420 given by [ [Dl 1 , Pl 1 ], [D2 2 , Pl 6 ],...,[D2 n .Pl 24 ⁇ ⁇ .
  • the relation 510 is denoted by ⁇ part_iteml I part_item2 I prop_iteml ⁇ .
  • the value set 520 is denoted by[Dl 1 , D2 1 , Pl 2 ] , [Dl 2 , D2 2 , Pl 5 ] , ..., [Dl n , D2 12 , Pl 9 ] .
  • Each value is a 3-tuple.
  • the first keyword corresponds to a value of part_iteml
  • the second keyword corresponds to a value of part_item2
  • the third keyword corresponds to a value of prop_iteml.
  • the value set 520 of the relation ⁇ part_iteml I part_item2 I prop_iteml ⁇ has the size equal to at most as the size of the product of number of values in the value set of part_iteml 320 and the number of values in the value set of part_item2 320.
  • Diagram 500A of FIG. 5A illustrates an exemplary third level node which is created based on the relation between the two second level nodes namely ⁇ TV I Resolution ⁇ of diagram 400A of FIG. 4 A and ⁇ Player I Resolution ⁇ of diagram 400B of FIG.4B. As illustrated in FIG. 5A, the relation 510A is denoted by ⁇ TV I Player I Resolution ⁇ .
  • the value set 520A is given by ⁇ TH-42PX75U, HD-A2, 72Op ⁇ , ⁇ KDL40S3000, HD-A2, 720p ⁇ , ⁇ LNT5265, HD-A20, 1080p ⁇ , ⁇ LC46D82U, HD-A20, 1080p ⁇ , ⁇ LC42D72U, HD-A20, 1080p ⁇ , ⁇ HLT5076, HD-A20, 1080p ⁇ , ⁇ LNT5265, BDP-S300, 1080p ⁇ , ⁇ LC46D82U, BDP-S300, 1080p ⁇ , ⁇ LC42D72U, BDP-S300, 1080p ⁇ , and ⁇ HLT5076, BDP-S300, 1080p ⁇ .
  • Each value is a 3-tuple.
  • the first keyword corresponds to a value of part_iteml “TV”
  • the second keyword corresponds to a value of part_item2 "Player”
  • the third keyword corresponds to a value of prop_iteml "Resolution”.
  • the value set 520A of the relation ⁇ TV I Player I Resolution ⁇ has the size equal to at most as the size of the product of number of values in the value set of "TV” 320 and the number of values in the value set of "Player” 320.
  • the 3-ary relation 510A ⁇ TV I Player I Resolution ⁇ can be queried with ⁇ TV I Player I 1080p ⁇ where "1080p" is a value of prop_item “Resolution”. Such a query will return all the values of "TV I Player” with "1080p” as the value of "Resolution”.
  • the query ⁇ TV I Player I 1080p ⁇ will return the values namely ⁇ LNT5265, HD-A20, 1080p ⁇ , ⁇ LC46D82U, HD-A20, 1080p ⁇ , ⁇ LC42D72U, HD-A20, 1080p ⁇ , ⁇ HLT5076, HD-A20, 1080p ⁇ , ⁇ LNT5265, BDP-S300, 1080p ⁇ , ⁇ LC46D82U, BDP-S300, 1080p ⁇ , ⁇ LC42D72U, BDP-S300, 1080p ⁇ , and ⁇ HLT5076, BDP-S300, 1080p ⁇ .
  • FIG. 6A illustrates the general hierarchical network (hereinafter "hierarchical part-of graph") 600A with leaf nodes 300, second level nodes 400, third level nodes 500 all the way up to n" 1 level nodes.
  • hierarchical part-of graph the general hierarchical network
  • the n-ary relations are called derived relations when n ⁇ 3 .
  • the value set of derived n-ary relations may are may not be created and stored a-proiri. In other words the derived n-ary relations may be created on- the-fly when the search for the corresponding query is made.
  • Applicant notes that conversely an n-ary relation with (n-1) part_items and a prop_item can be decomposed into (n-l)-ary relation with (n-2) part_items and a prop_item.
  • the n-ary relation can be decomposed into (n-1) of binary relations. And the converse is equally true.
  • Table 1 illustrates an exemplary set of part_items namely “a”, “b”, “c”, and “d”; and prop_items namely “1”, “2", “3”, and “4".
  • Table 1 there is a row for each part_item and there is a column for each prop_item. There is an “x” mark in a box if the part_item in the corresponding row has a 2-ary relation with the prop_item in the corresponding column.
  • Table 1 is hereinafter "adjacency matrix" of the corresponding set of part_items and set of prop_items.
  • Hierarchical part-of graph 600B corresponds to the adjacency matrix given in Table 1 for the corresponding part_items and prop_items.
  • the hierarchical part-of graph 600B illustrates only valid n- ary relations. Again for the sake of simplicity the value sets for each concept are not illustrated in hierarchical part-of graph 600B of FIG. 6B.
  • Leaf level nodes consist of part_items "a”, “b", “c", and “d”; and prop_items "1", "2", "3", and "4".
  • part_item “a” In the second level there are two valid 2-ary relations involved by part_item “a” namely ⁇ a ll ⁇ and ⁇ a I 3 ⁇ as there are "x" marks to their corresponding boxes in Table 1. Similarly there are three valid 2-ary relations involved by part_item “b” namely ⁇ b I 1 ⁇ , ⁇ b I 2 ⁇ , and ⁇ b I 4 ⁇ .
  • FIG. 6D is a hierarchical part-of graph 600D in another embodiment corresponding to the adjacency matrix given in Table 1.
  • both hierarchical part-of graph 600B of FIG. 6B and hierarchical part-of graph 600D of FIG. 6D correspond to the adjacency matrix given in Table 1 for the part_items "a", “b", “c", and “d”; and prop_items "1", "2", "3", and "4".
  • the hierarchical part-of graph 600D also illustrates only the valid n-ary relations. Also for the sake of simplicity the value sets for every concept are not illustrated in hierarchical part-of graph 600D of FIG. 6D.
  • each of the n-ary relations at every level are denoted by a separate node.
  • the 2-ary relations ⁇ a l l ⁇ and ⁇ a I 3 ⁇ are grouped into the same node where as in hierarchical part-of graph the 2- ary relations ⁇ a l l ⁇ and ⁇ a I 3 ⁇ correspond to two separate nodes.
  • each node in hierarchical part-of graph 600D contains only one n-ary relation in the n th - level.
  • Table 2 illustrates another exemplary set of part_items namely "TV” and “Player”; and prop_items namely "Resolution”, “Connector”, and "Screen_type”.
  • Table 2 there is a row for each part_item and there is a column for each prop_item. There is an "x" mark in a box if the part_item in the corresponding row has a 2-ary relation with the prop_item in the corresponding column.
  • Table 2 is an adjacency matrix of the corresponding set of part_items and set of prop_items.
  • FIG. 6E is the hierarchical part-of graph 600E to the general hierarchical part-of graph 600A, in one embodiment, corresponding to the adjacency matrix given in Table 2 for the corresponding part_items and prop_items.
  • the hierarchical part-of graph 600E illustrates only valid n-ary relations. Again for the sake of simplicity the value sets for each concept are not illustrated in hierarchical part-of graph 600E of FIG. 6E.
  • Leaf level nodes consist of part_items "TV” and "Player”; and prop_items "Resolution”, "Connector", and "Screen_type".
  • part_item "TV” In the second level there are three valid 2-ary relations involved by part_item "TV” namely ⁇ TV I Resolution ⁇ , ⁇ TV I Connector ⁇ , and ⁇ TV I Screen_type ⁇ as there are "x" marks to their corresponding boxes in Table 2 and all of the three 2-ary relations are grouped in the same node since they have common part_item "TV”.
  • part_item "Player” namely ⁇ Player I Resolution ⁇ , ⁇ Player I Connector ⁇ , and ⁇ Player I Screen_type ⁇ and all of the three 2-ary relations are grouped in the same node since they have common part_item "Player”.
  • Hierarchical part-of graph 600E of FIG. 6E there are three valid 3-ary relation involved by the two part_items "TV” and "Player” namely ⁇ TV I Player I Resolution ⁇ , ⁇ TV I Player I Connector ⁇ , and ⁇ TV I Player I Screen_type ⁇ .
  • hierarchical part-of graph 600E illustrates all the valid n-ary relations in all the levels.
  • prop_item “Resolution” may have a same-as relation (hereinafter “synonym”) with “Pixels” and the relation is denoted by ⁇ Resolution ⁇ Pixels ⁇ .
  • a part_item “car” has a same-as relation with "automobile” and similarly the relation is denoted by ⁇ Car ⁇ Automobile ⁇ .
  • the keyword "pixels” is treated as "Resolution” in building the hierarchical part-of graph and operating on it. This process is called hereinafter “same-as normalization”.
  • a separate synonym list is maintained for each part_item and prop_item.
  • FIG. 7A illustrates an exemplary list of same-as relations 700A.
  • the list of same-as relations are namely ⁇ Resolution ⁇ Pixels ⁇ , ⁇ Connector ⁇ I/O Cable ⁇ , ⁇ TV ⁇ Television ⁇ , ⁇ Screen_type ⁇ Display_type ⁇ , and ⁇ Player ⁇ DVD Player ⁇ .
  • each part_item may have a list of one or more synonyms.
  • FIG. 7B illustrates a low-level implementation 700B of computer data structure list of synonyms.
  • a part_item_k 710B has a pointer to the list of synonyms 720B.
  • the list of synonyms 720B points to the head element in the list denoted by keyword_l.
  • Keyword_l points to keyword_2.
  • Keyword_2 points to Keyword_3 and so on and finally Keyword_(p-1) points to the tail element of the list Keyword_p, where p is an integer.
  • each prop_item may have a list of one or more synonyms.
  • FIG. 7C illustrates a low-level implementation 700C of computer data structure list of synonyms.
  • a prop_item_m 710B has a pointer to the list of synonyms 720C.
  • the list of synonyms 720C points to the head element in the list denoted by keyword_l.
  • Keyword_l points to keyword_2.
  • Keyword_2 points to Keyword_3 and so on and finally Keyword_(n-1) points to the tail element of the list Keyword_n, where n is an integer.
  • FIG. 7D illustrates the hierarchical part-of graph 700D augmented by same-as relation list 700A of FIG. 7A.
  • Synonyms of part_items and prop_items are transitive throughout the hierarchical part-of graph 600A. That is, for example, the same-as relation ⁇ Resolution ⁇ Pixels ⁇ is effectively implemented to substitute the keyword "Pixels" in every occurrence of the keyword "Resolution” in all the n-ary relations of the hierarchical part-of graph 600A.
  • FIG. 7Dl illustrates the hierarchical part-of graph augmented by same-as relations for the same-as relation ⁇ Resolution ⁇ Pixels ⁇ .
  • the hierarchical part-of graph 700D of FIG. 7D is similarly implemented for all same-as relations.
  • An n-ary relation in the hierarchical part-of graph may create kind-of relations.
  • This type of kind-of relation is created when one or more of the prop_items in the n-ary relation have some particular value or instance.
  • Another type of kind-of relation is created when more than one part_items have more than one common prop_items. For example all the set of devices having a prop_item "Resolution” creates another type of kind-of relation. This is the highest level node in the hierarchical part-of graph 600A (or n-ary level node with greatest value of "n") having the prop_item "Resolution” in the hierarchical part-of graph 600A of FIG. 6A.
  • FIG. 8Al illustrates some exemplary kind-of relations 800Al on different part_items.
  • the kind-of relation ⁇ devices with "Resolution" ⁇ is in the list of 800Al of FIG. 8Al.
  • each part_item may have a list of one or more kind-of items having kind-of relations with it.
  • FIG. 8A2 illustrates a low-level implementation 800A2 of computer data structure list of kind-of items.
  • a part_item_k 810A2 has a pointer to the list of kind-of items 820A2.
  • the list of kind-of items 820A2 points to the head element in the list denoted by keyword_l.
  • Keyword_l points to keyword_2.
  • FIG. 8B illustrates the hierarchical part-of graph 800B augmented by kind-of relation list given in 800Al of FIG. 8Al.
  • the hierarchical part-of graph 800B of FIG. 8B is similarly implemented for all kind-of relation.
  • FIG. 8C illustrates the hierarchical part-of graph 800C augmented by both the same-as relation list 700A of FIG. 7A and kind-of relation list 800Al of FIG. 8Al.
  • hierarchical part-of graph 600A is augmented by both the same-as relation list and kind-of relation list as illustrated in 800D of FIG. 8D.
  • a change relation between two instances of the same n-ary relation is denoted by " ⁇ ". Also both the instances of the n-ary relation need to be valid.
  • the change relation is defined in one of the three different ways namely 1) an additional prop_item, 2) a deleted prop_item, and 3) a difference in the value of a prop_item.
  • the change relation is denoted by ⁇ (part_item_vall,..., part_item_val_n), ( ⁇ , prop_item_l, ..., prop_item_m), (part_item_val_x, ... , part_item_val_(x+n-l)) ⁇ .
  • ( ⁇ , prop_item_l, ..., prop_item_m) denotes the change between one instance of the n- 1 part_items of the n- ary relation given by (part_item_vall , ... , part_item_val_n) and the another instance of n- 1 part_items of the n-ary relation given by (part_item_val_x, ... , part_item_val_(x+n-l)) in terms of the prop_items namely prop_iteml to prop_item_m.
  • part_item_val2 ⁇ denotes the change in all prop_items of the corresponding part_item of both the instances.
  • FIG. 9 illustrates four different exemplary change relations 900 with respective to the n-ary items given in FIG. 4A, FIG. 4B, and FIG. 5 A.
  • the first change relation ⁇ LNT5265, ⁇ , KDL40S3000 ⁇ gives the result ⁇ 1080p, 720p ⁇ since part_item "TV" has relation with only one prop_item which is "Resolution”.
  • the third change relation ⁇ (LNT5265, HD-A20), ⁇ , (KDL40S3000, HD-A2) ⁇ gives the result ⁇ 0 ⁇ since the part_item "TV” and part_item "Player” have relations only with one prop_item i.e., "Resolution” and ⁇ LNT5265 I HD-A20 I Resolution ⁇ is given by “1080p” and ⁇ KDL40S3000, HD-A2) ⁇ is given by "1080p".
  • the fourth change relation ⁇ (LNT5265, HD-A20), ( ⁇ , Resolution), (KDL40S3000, HD-A2) ⁇ gives the result ⁇ 0 ⁇ since the part_item "TV” and part_item "Player” have relations only with one prop_item i.e., "Resolution” and ⁇ LNT5265 I HD-A20 I Resolution ⁇ is given by "1080p” and ⁇ KDL40S3000, HD- A2) ⁇ is given by "1080p".
  • diagram 1000 of FIG. 10 illustrates, in one embodiment, the key high-level components and interfaces of the current invention implemented in system of diagram 100 of FIG. 1.
  • Block 1030 represents the interrelated item search capable search engine as disclosed in the current invention which has two interfaces namely vendor expert interface 1010 and customer interface 1020.
  • Vendor expert interface 1010 provides the interface to vendor experts to input the part_items 310 and prop_items 310, their value sets 320 and the 2-ary relations 410 between part_items and prop_items.
  • the 2-ary relations may be inputted in the form of the corresponding adjacency matrix.
  • Block 1020 is the interface to the customer or user with or without a browser to input the multiple keyword query.
  • Block 1040 illustrates the knowledgebase containing the hierarchical part-of graph 800D of FIG. 8D as disclosed in the current invention.
  • the input from vendor expert interface is provided with the part_items, prop_items and the adjacency matrix of them.
  • the part_items For example as illustrated in Table 1 with an exemplary set of part_items namely “a”, “b”, “c”, and “d”; and prop_items namely "1”, “2", “3”, and "4"; an the corresponding adjacency matrix is provided to build the hierarchical part-of graph 600B of FIG. 6B.
  • the invalid relations as given in 600C of FIG. 6C are also derived as provided before.
  • the same-as relations are provided for each keyword.
  • the synonyms list in 700A of FIG. 7A will be inputted through vendor expert interface 1010.
  • the hierarchical part-of graph 600D of FIG. 6D is augmented with same-as relations list 700A of FIG. 7A and the corresponding hierarchical part-of graph augmented with same-as relations 700D of FIG. 7D is built as disclosed.
  • the kind-of relations are provided for 2-ary relation.
  • the kind-of relations list in 800Al of FIG. 8Al will be inputted through vendor expert interface 1010.
  • the hierarchical part-of graph augmented with same-as relations 700D of FIG. 7D is augmented with kind-of relations list 800Al of FIG. 8Al and the corresponding hierarchical part-of graph augmented with both same-as relations and kind-of relations 800C of FIG. 8C is built as discussed before.
  • all the n-ary relations are derived through "transitive closure" the kind-of relations provided for 2-ary relations.
  • each keyword has the following attributes namely 1) keycode, 2) item pointer, 3) value pointer, 4) synonym parent and 5) kind-of parent.
  • the attribute keycode is unique for the four classes. Specifically the keycode for part_item is "00", prop_item is "01", part_item_val is "10" and prop_item_val is "11".
  • the attribute item pointer is the pointer to keyword in knowledgebase.
  • the item pointer for part_item is a pointer to itself in the knowledgebase denoted by "part_ptr” and similarly the item pointer for prop_item is a pointer to itself in the knowledgebase denoted by "prop_ptr”.
  • the item pointer for part_item_val is a pointer to its corresponding part_item keyword in knowledgebase denoted by "part_ptr” and similarly the item pointer for prop_item_val is a pointer to its corresponding prop_item keyword in the knowledgebase denoted by "prop_ptr”.
  • part_item_val and prop_item_val also have the attribute value pointer which point to the corresponding part_item_val and prop_item_val keywords respectively in the knowledgebase denoted by "part_val_ptr” and "prop_val_ptr” respectively.
  • Synonym parent for the keywords corresponding to part_item and prop_item point to the normalized synonym keyword of them denoted by "syn_prnt".
  • synonym parent of the keyword “Resolution” is the keyword “Pixels”.
  • the kind-of parent of a keyword points to the kind-of parent keyword of it.
  • the kind-of parent of the keyword "DTV” is the keyword "TV”.
  • FIG. 11 illustrates one embodiment of an intermediate level implementation 1100 of the n- level hierarchical part-of graph 800D of FIG. 8D.
  • the n- level hierarchical part-of graph 1100 is represented by the computer data structure list of levels 1110 which points to the head element of the list corresponds to level_l 1120.
  • the next element to the element level_l is level_2 or alternatively the element level_l points to level_2.
  • the next element of level_2 is level_3 and so on.
  • the tail element of the list of levels is the element corresponding to level_n.
  • Each of the level elements level_l to level_n point to another computer data structure list of relations 1130.
  • Each list of relations 1130 point to the head element of the list of levels corresponding to relation_l 1140.
  • the next element to the element relation_l is relation_2.
  • the next element of relation_2 is relation_3 and so on.
  • the tail element of the list of relations is the element corresponding to relation_y.
  • Each of the relation elements relation_l to relation_y point to two lists namely list of part_items 1150 and list of prop_items 1170.
  • Each list of part_items 1150 point to the head element of the list corresponds to part_item_x 1160.
  • the next element to the element part_item_x is part_item_(x+l).
  • the next element of part_item_(x+l) is part_item_(x+2) and so on.
  • the tail element of the list of part_items is the element corresponding to part_item_(x+n-l).
  • Each list of prop_items 1170 point to the head element of the list corresponds to prop_item_x 1180.
  • the next element to the element prop_item_x is prop_item_(x+l).
  • the next element of prop_item_(x+l) is prop_item_(x+2) and so on.
  • the tail element of the list of prop_items is the element corresponding to prop_item_(x+m).
  • FIG. 12 illustrates one embodiment of the representation 1200 of a part_item_k 1210 and the n-ary relations the part_item_k participates in n- level hierarchical part-of graph 1100 of FIG. 11.
  • Each of the part_item_k points to a list of levels of the hierarchical part-of graph 1220.
  • Each list of levels 1220 point to the head element of the list corresponds to level_l 1230.
  • the next element to the element level _1 is level _2.
  • the next element of level _2 is level _3 and so on.
  • the tail element of the list of levels is the element corresponding to level_n.
  • Each of the level elements level_l to level_n point to a list of relations 1240.
  • Each list of relations 1240 point to the head element of the list corresponds to relation_x 1250.
  • the next element to the element relation_x is relation_(x+l).
  • the next element of relation_(x+l) is relation_(x+2) and so on.
  • the tail element of the list of relations is the element corresponding to relation_(x+p).
  • FIG. 13 illustrates one embodiment of the representation 1300 of a prop_item 1310 and the n-ary relations the prop_item participates in n-level hierarchical part-of graph 1100 of FIG. 11.
  • Each of the prop_item_k points to a list of levels of the hierarchical part-of graph 1320.
  • Each list of levels 1320 point to the head element of the list corresponds to level_l 1330.
  • the next element to the element level_l is level_2.
  • the next element of level_2 is level_3 and so on.
  • the tail element of the list of levels is the element corresponding to level_n.
  • Each of the level elements level_l to level_n point to a list of relations 1340.
  • Each list of relations 1340 point to the head element of the list corresponds to relation_x 1350.
  • the next element to the element relation_x is relation_(x+l).
  • the next element of relation_(x+l) is relation_(x+2) and so on.
  • the tail element of the list of relations is the element corresponding to relation_(x+p).
  • FIG. 14 illustrates one embodiment of the representation 1400 of an ontology with the list of part_items 1420, the list of prop_items 1440, and the list of levels 1460 with n- ary relations of the ontology in n-level hierarchical part-of graph 1100 of FIG. 11.
  • An ontology is a set of part_items, a set of prop_items and the set of valid relations between them.
  • ontology is a subset of part_items of the hierarchical part-of graph, a subset of prop_items of the hierarchical part-of graph and the subset of valid relations between them.
  • Each list of part_items 1420 point to the head element of the list corresponds to part_item_x 1430.
  • the next element to the element part_item_x is part_item_(x+l).
  • the next element of part_item_(x+l) is part_item_(x+2) and so on.
  • the tail element of the list of part_items is the element corresponding to part_item_(x+n-l).
  • Each list of prop_items 1440 point to the head element of the list corresponds to prop_item_x 1450.
  • the next element to the element prop_item_x is prop_item_(x+l).
  • the next element of prop_item_(x+l) is prop_item_(x+2) and so on.
  • the tail element of the list of prop_items is the element corresponding to prop_item_(x+n-l).
  • Each list of levels 1460 point to the head element of the list corresponds to level_l 1470.
  • the next element to the element level_l is level_2 or alternatively the element level_l points to level_2.
  • the next element of level_2 is level_3 and so on.
  • the tail element of the list of levels is the element corresponding to level_n.
  • Each of the level elements level_l to level_n point to another list of relations 1475.
  • Each list of relations 1475 point to the head element of the list corresponds to relation_l 1480.
  • the next element to the element relation_l is relation_2.
  • the next element of relation_2 is relation_3 and so on.
  • the tail element of the list of relations is the element corresponding to relation_y.
  • Each of the relation elements relation_l to relation_n point to two lists namely list of part_items 1485 and list of prop_items 1490.
  • Each list of part_items 1485 point to the head element of the list corresponds to part_item_x 1487.
  • the next element to the element part_item_x is part_item_(x+l).
  • the next element of part_item _(x+l) is part_item _(x+2) and so on.
  • the tail element of the list of part_items is the element corresponding to part_item_(x+n-l).
  • Each list of prop_items 1490 point to the head element of the list corresponds to prop_item_x 1495.
  • the next element to the element prop_item_x is prop_item_(x+l).
  • the next element of prop_item_(x+l) is prop_item_(x+2) and so on.
  • the tail element of the list of prop_items is the element corresponding to prop_item_(x+m).
  • FIG. 15 illustrates one embodiment of keyword database 1510.
  • Keyword database has list of keywords 1520.
  • the list of keywords 1520 point to the head element of the list corresponds to keyword_l 1530.
  • the next element to the element keyword_l is keyword_2.
  • the next element of keyword_2 is keyword_3 and so on.
  • the tail element of the list of keywords is the element corresponding to keyword_n.
  • FIG. 16 illustrates a high-level method 1600, in one embodiment, to search the interrelated item search capable hierarchical part-of graph augmented with same-as and kind-of relations 800D with multiple keyword query typically made by a customer or user through the customer interface 1020 of FIG. 10.
  • some acts of the method 1600 are implemented on clients such as 110, 120 or 130 and the remaining acts of the method 110 are implemented on servers 140 or 150 as discussed below.
  • the client browser receives the multiple keyword query from the user in act 1610. Then the control passes to act 1620 where the query is parsed into the set of "n' keywords; act 1620 is implemented on server 140 or 150 in one embodiment. Then the control passes to act 1630.
  • each keyword in the set "n" is checked if it is associated with one of part_item, prop_item, synonyms and kind-of relation based keywords on part_item or prop_item, part_item_val, or prop_item_val by searching through the keyword database. If there is a keyword that needs to be associated the control passes to act 1640. In act 1640 by searching the keyword database 1500, the keyword is associated with a part_item or prop_item or part_item_val or prop_item_val. In one embodiment keyword database is one part of the knowledgebase 1040. Then the control goes to act 1630.
  • Act 1630 and act 1640 are implemented as a loop to associate all the "n" keywords with either part_item or prop_item or synonyms and kind-of relation based keywords of part_item or prop_item or part_item_val or prop_item_val. Then the control goes to act 1650.
  • act 1650 the n th -level nodes of the hierarchical part-of graph 800D of FIG. 8D are searched and the corresponding n-ary relation is matched with "n" keyword query. Then in act 1660 the presentation sheets corresponding to the matching n-ary relation are selected. Also in act 1660 the documents corresponding to all the "n" keyword corresponding to part_items are selected. Finally in act 1670 the presentation sheets and also the documents selected in act 1660 are presented to the customer in the client browser. Then the control returns to act 1610 to receive the next multiple keyword query from the customer.
  • act 1610, 1620, 1630, 1640, 1650, 1660, and 1670 are implemented in a loop. In one embodiment, act 1610 and act 1670 are implemented in the client device and the remaining acts are implemented in the server.
  • FIG. 17 in one embodiment illustrates a snapshot of the browser with the results displayed 1700 to the user in the act 1670 of the method 1600.
  • the user types an exemplary multiple keyword query 1720 namely ⁇ TV Player Resolution ⁇ in a browser window frame 1710 and the snapshot of the browser with the results displayed is illustrated in 1700 of FIG. 17.
  • the results are displayed, in one embodiment, as a set of hyperlinks 1730 where each hyperlink corresponds to an instance of n-ary relation or an m-ary relation where m ⁇ n, of the multiple keyword query hereinafter a "presentation sheet".
  • one of the hyperlinks 1740 corresponds to an instance namely ⁇ BDP- S300, HLT5076, 1080p ⁇ and it consists of the hyperlink having "Player I TV I Resolution".
  • the second line has "BDP-S300 I HLT5076 I 1080p" which is the best match to the user query in one embodiment as illustrated in FIG. 17.
  • the order of the items in the displayed result is not relevant to the current invention however all the items are displayed corresponding to the multiple keyword query. In one embodiment, all the keywords are highlighted with a color such as "yellow”.
  • the second hyperlink of 1730 correspond to "TV I Resolution” on the first line and "HLT5076 I 1080p" on the second line; and the third hyperlink "Player I Resolution” on the first line and "HLT5076 I 1080p” on the second line, where both the second and third hyperlinks correspond to an m-ary relation where m ⁇ n.
  • FIG. 18 illustrates the snapshot of the browser with displayed results 1800 after clicking on the hyperlink 1740 of FIG. 17 either by using mouse 270 or keyboard 260.
  • the multiple keyword query 1720 namely ⁇ TV Player Resolution ⁇ is again displayed in the browser window frame 1710 in the snapshot of the browser with displayed results 1800.
  • a set of hyperlinks 1820 are provided at the bottom of the table 1810, which correspond to the typical content hyperlinks, one or more for each n-ary relation, provided by the content owners or content providers.
  • each keyword is searched for a match in keyword database 1500. And then it is determined as one of the following: 1) a part_item, 2) a prop_item 3) synonym of a part_item 4) synonym of a prop_item 5) kind-of item of a part_item 6) a part_item_val or 7) a prop_item_val.
  • 2 nd level node with all the prop_items of that part_item is selected in act 1650 and the corresponding presentation sheets are selected in act 1660 and are displayed to the user in act 1670.
  • the corresponding 2 nd level node of FIG.8C consisting of the 2-ary relations namely ⁇ TV I Resolution ⁇ , ⁇ TV I connector ⁇ , and ⁇ TV I screenjype ⁇ is selected and the corresponding presentation sheets are selected in act 1660 and are displayed to the user in act 1670.
  • the greatest n th level node with all the part_items having the prop_item as a relation is selected in act 1650 and the corresponding presentation sheets are selected in act 1660 and are displayed to the user in act 1670.
  • the corresponding greatest n th level node is the 3 rd - level node namely ⁇ TV I Player I Resolution ⁇ of FIG.8C (since both the part_item 'TV" and part_item "Player" have relations with the prop_item "Resolution") is selected and the corresponding presentation sheets are selected in act 1660 and are displayed to the user in act 1670.
  • the corresponding 2 n level node is selected in act 1650 and the corresponding presentation sheets are selected in act 1660 and are displayed to the user in act 1670.
  • the corresponding 2 n level node of FIG.8C consisting of the 2 nd level relations namely ⁇ TV I Resolution ⁇ is selected and the corresponding presentation sheets are selected in act 1660 and are displayed to the user in act 1670.
  • the n-ary level node with all those part_items and each of those prop_items is selected in act 1650 and the corresponding presentation sheets are selected in act 1660 and are displayed to the user in act 1670.
  • the corresponding 3 rd -level node of FIG.8C consisting of the 3 rd -level relations namely ⁇ TV I Player I Resolution ⁇ is selected and the corresponding presentation sheets are selected in act 1660 and are displayed to the user in act 1670.
  • the n-ary level node with all those part_items and each of those prop_items is selected in act 1650 and the corresponding presentation sheets are selected in act 1660 and then they are substituted with both the instances of n-ary relation and the resulting change presentation sheets are displayed to the user in act 1670.

Abstract

Systems and methods to search in response to query consisting of a plurality of keywords, by processing for relevance of all possible valid relations among keywords in the query The overall space of all possible valid relations among all of the keywords in the underlying documents are pre-computed based on transitivity rules using common property items in associated ontologies The query keyword are substituted by considering each keyword as well as valid groups as a whole, based on all reachable valid keywords along every relation computed in the overall merged ontologies Building the knowledgebase with the classification of keywords in different ontologies, fundamentals of building hierarchical part-of graph augmented with same-as and kind-of relations including the change relations, to search the hierarchical graph in response to an user query, selecting the best valid match and the corresponding presentation sheets and finally displaying the results to users.

Description

INTERRELATED ITEM SEARCH
Satya Reddy
BACKGROUND OF INVENTION
Information retrieval systems play a key role in Internet-related search applications and all related knowledgebase applications. In an information retrieval system users typically enter query with one or more keywords and receive a list of documents that contain one or more of the keywords. Prevailing information retrieval systems search and present the documents containing some logical combination of the keywords in the query.
When users make multiple keyword queries, the intent of the search can span multiple related concepts related by common properties, linked by multiple relationships. The ability to enable search of documents that considers alternative forms of keywords, and keyword relationships is critical to provide relevant results.
To the best of our knowledge, none of the prevailing Information retrieval systems have the functionality to search using relationships to match different keywords in different independent document sets and where the different keywords are interrelated through one or more common features or properties and hence lack the features to provide more relevant document results.
SUMMARY OF INVENTION
Systems and methods to search in response to query consisting of a plurality of keywords, with each keyword searching disjoint document sets corresponding to interrelated ontologies are disclosed. The objective is to enable search by processing for relevance of all possible valid relations among keywords in the query. The overall space of all possible valid relations among all of the keywords in the underlying documents are pre-computed based on transitivity rules using common property items in associated ontologies. Our method enables query keyword substitutions by considering each- keyword as well as valid groups as a whole, based on all reachable valid keywords along every relation computed in the overall merged ontologies.
Systems and methods disclosed include building the knowledgebase with the classification of keywords in different ontologies, fundamentals of building hierarchical part-of graph augmented with same-as and kind-of relations including the change relations, methods to search the hierarchical graph in response to an user query, selecting the best valid match and the corresponding presentation sheets and finally displaying the results to users.
BRIEF DESCRIPTION OF DRAWINGS
FIG. 1 is a diagram of an information retrieval system 100 with interrelated item search capability.
FIG. 2 is an exemplary embodiment 200 to illustrate the computing device.
FIG. 3 illustrates the generic representation of an item (unary relation) 300 and its value set.
FIG. 3A is an exemplary part-item "TV" 300A with an exemplary value set; FIG. 3B is an exemplary prop-item "Resolution" 300B with an exemplary value set; and FIG. 3C is an exemplary part_item "Player" 300C with an exemplary value set.
FIG. 4 is a generic representation of 2-ary relation 400 of a part_item and a prop_item and its value set.
FIG. 4A is the 2-ary relation "TV I Resolution" 400A between the part_item "TV" of FIG. 3A and the prop_item "Resolution" of FIG. 3C with the valid value set for 2-ary relation; FIG. 4B is the 2-ary relation "Player I Resolution" 400B between the part_item "Player" of FIG. 3C and the prop_item "Resolution" of FIG. 3B with the valid value set for 2-ary relation. FIG. 5 is a generic representation of 3-ary relation 500 between the item part_iteml, part_item2, and prop_iteml, and its value set.
FIG. 5A is the 3-ary relation "TV I Player I Resolution" 500A between the 2-ary relation "TV I Resolution" of FIG. 4A and the 2-ary relation "Player I Resolution" 500B of FIG. 4B.
FIG. 6A is a general interrelated item search capable n-level hierarchical part-of graph 600A in accordance with the current invention with m-ary relations at each m-level node.
FIG. 6B is an exemplary interrelated item search capable hierarchical part-of graph 600B with valid n-ary relations for a given adjacency matrix.
FIG. 6C is the set of invalid relations 600C in the hierarchical part-of graph of 600B in FIG. 6B.
FIG. 6D is another embodiment of the exemplary interrelated item search capable hierarchical part-of graph 600D for a given adjacency matrix.
FIG. 6E is an exemplary interrelated item search capable hierarchical part-of graph 600E for a practical set of items and the corresponding adjacency matrix.
FIG. 7A is an exemplary list 700A of same-as relations; FIG. 7B a low-level implementation of same-as relations of a part_item 700B; FIG. 7C a low- level implementation of same-as relations of a prop_item 700C.
FIG. 7D is an exemplary hierarchical part-of graph augmented with same-as relations 700D.
FIG. 7Dl is the hierarchical part-of graph augmented with same-as relations 700Dl illustrating the effect of substituting a same-as relation.
FIG. 8Al is an exemplary set of kind-of relations 800Al ; FIG. 8A2 a low- level implementation of kind-of relations of a part_item 800 A2. FIG. 8B is the hierarchical part-of graph augmented with kind-of relations 800B; FIG. 8Bl is the hierarchical part-of graph augmented with kind-of relations 800Bl illustrating the effect of substituting a kind-of relation; FIG. 8B2 is the hierarchical part- of graph augmented with kind-of relations 800B2 illustrating the effect of substituting another kind-of relation.
FIG. 8C is an exemplary hierarchical part-of graph augmented with both the same-as relations and kind-of relations 800C.
FIG. 8D is the general hierarchical part-of graph augmented with both the same-as relations and kind-of relations 800D according to the current invention.
FIG. 9 is an exemplary set of change relations 900.
FIG. 10 is a high-level block diagram 1000 of software blocks to implement the current invention of interrelated item search engine and browser.
FIG. 11 is one embodiment of an intermediate level representation using the data structure lists 1100 of n-level hierarchical part-of graph 600A of FIG. 6A.
FIG. 12 is one embodiment of the representation 1200 of a part_item and the n- ary relations the part_item participates in n-level hierarchical part-of graph 1100 of FIG. 11.
FIG. 13 is one embodiment of the representation 1300 of a prop_item and the n- ary relations the prop_item participates in n-level hierarchical part-of graph 1100 of FIG. 11.
FIG. 14 is one embodiment of the representation 1400 of ontology with the list of part_items, the list of prop_items and the n-ary relations of the ontology in n-level hierarchical part-of graph 1100 of FIG. 11.
FIG. 15 is one embodiment of keyword database 1500.
FIG. 16 is a flowchart 1600 of a method for receiving the multiple keyword query from the user, processing for the relevant presentation sheets and presenting the results to the user. FIG. 17 is a snapshot of the browser 1700 after the user has typed in multiple keyword query and hit go button.
FIG. 18 is the snapshot of the browser 1800 after the user has clicked on one of the hyperlinks corresponding to an instance of n-ary relation in the snapshot of the browser 1700 of FIG. 17
DETAILED DESCRIPTION OF THE INVENTION
System and Methods are disclosed to provide interrelated item search with valid results and searching through interrelated ontologies based on their common properties. The following description is presented to enable any person skilled in the art to make and use the invention. Descriptions of specific embodiments and applications are provided only as examples and various modifications will be readily apparent to those skilled in the art.
For instance, while several examples are provided in the context of an interrelated item search capable search engine and knowledgebase, it will be appreciated that the general principles described herein may be applied to other embodiments and applications without departing from the spirit and scope of the invention. Similarly, although many of the examples presented below are described using Internet web pages as the documents to be searched, it is to be understood that offline documents, such as books, newspapers, magazines, or other paper documents that have been scanned into electronic form, may also be searched. Thus, the present invention is to be accorded the widest scope, encompassing numerous alternatives, modifications, and equivalents consistent with the principles and features disclosed herein. For purpose of clarity, details relating to technical material that is known in the fields related to the invention have not been described in detail so as not to unnecessarily obscure the present invention.
FIG. 1 is a diagram 100 of an information retrieval system wherein query is performed with multiple keywords and compatible search results are presented based on one or more of common properties of their corresponding ontologies, in accordance with the invention. The system 100 may include multiple client devices 110, 120, 130 connected to multiple servers 140, 150 via a network 160. Client device with browser 110 will accept multiple keyword user input query, and displays information that has been received from other systems 120, 130, 140, and 150 over network 160. Servers 140, 150 may include a search engine 1030 for accepting user queries transmitted over network 160, searching a knowledgebase comprising a hierarchical part-of graph (to be described later) and documents 1040, and returning results to the user. The network 160 may comprise a local area network (LAN), a wide area network (WAN), a virtual private network (VPN), a telephone network, such as the Public Switched Telephone Network (PSTN), an intranet, the Internet, or a combination of networks. For the sake of illustration, FIG. 1 shows three client devices 110, 120, 130 and two servers 140, 150 connected to a network 160; however, it will be appreciated that in practice there may be more or less client devices, servers, and/or networks, and that some client devices may also perform the functions of a server, and some servers may perform the functions of a client.
FIG. 2 shows a more detailed example a computing device 200, such as a client 110, 120, 130 or server 140, 150 shown in FIG. 1. In one embodiment, system 200 comprises a computing device such as a personal computer, laptop, mainframe, personal digital assistant, cellular telephone, etc. System 200 will typically include a processor 210, volatile memory 220, persistent memory 230, data storage device 240, a display device 250, a keyboard input 260, a mouse 270, a network interface 280, and an address/data bus 290 for connecting the aforementioned elements.
The operation of system 200 will typically be controlled by processor 210 operating under the guidance of programs stored in memory 220. Volatile memory 220 will generally include some combination of computer readable media, such as high-speed random-access memory (RAM). Persistent memory 230 may include such as read-only memory (ROM), a magnetic disk, disk array, and/or tape array. Data storage device 240 may comprise a disk drive or memory slot for accepting computer-readable media such as floppy diskettes, CD-ROMs, DVDs, memory cards, magnetic tapes, etc. For user interface there may be a keyboard input 260, mouse 270, a pen, or voice recognition mechanism for entering information, and one or more mechanisms such as a display device 250, printer, speaker, etc. for presenting information to a user. Network interface 280 is typically operable to provide a connection between system 200 and other systems via a wired, wireless, optical, and/or other connection.
As described in more detail below, system 200 may perform a variety of search and retrieval operations. These operations will typically be performed in response to processor 210 executing software instructions contained on a computer readable medium such as volatile memory 220. The software instructions may be read into memory 220 from another computer-readable medium, such as data storage device 240, or from another device via network interface 280. Volatile memory 220 may include a variety of programs or modules for controlling the operation of system 200 and performing the search and retrieval techniques described in more detail below. For example, if system 200 is a server, such as server 150 shown in FIG. 1, volatile memory 220 may include a database of documents, a corresponding index, a search engine 1030 for searching the knowledgebase 1040 using a query received from user interface either keyboard interface 260 or mouse 270 and/or received remotely from a user through network interface 280. Although FIG. 2 illustrates a system that is primarily software-based, it will be appreciated that in other embodiments special-purpose circuitry may be used in place of, or in combination with, software instructions to implement processes consistent with the present invention. Thus, the present invention is not limited to any specific combination of hardware and software.
It should be appreciated that the systems and methods of the present invention can be practiced with devices and/or architectures that lack some of the components shown in FIGS. 1 and 2 and/or that have other components that are not shown. Thus, it should be appreciated that FIGS. 1 and 2 are provided for purposes of illustration and not limitation as to the scope of the invention. For example, it should be appreciated that while, for purposes of illustration, system 200 is depicted as a single, general-purpose computing device such as a personal computer or a network server, in other embodiments system 200 could comprise one or more such systems operating together using distributed computing techniques. In such embodiments, some or all of the components and functionality depicted in FIG. 2 could be spread amongst multiple systems at multiple locations and/or operated by multiple parties. For example, knowledgebase 1040 could be implemented on a system that is separate from the system on which search engine 1030 is hosted; or knowledgebase 1040 may be implemented on multiple distributed servers. It will be readily apparent that many similar variations could be made to the illustrations shown in FIGs. 1 and 2 without departing from the principles of the present invention. As previously indicated, the systems shown in FIGs. 1 and 2 can be used to facilitate the retrieval of documents (e.g., web pages) and presentation sheets responsive to user queries of multiple keywords.
Hierarchical Part-of Graph:
Information retrieval systems disclosed in the current invention classifies the keywords. Each keyword is classified as an item (also called unary relation) or a value of the item. Each item may represent a part item (hereinafter "part_item") or a property item (hereinafter "prop_item"). For example keyword "TV" is classified as a part_item. The keyword "TH-42PX75U" is the value of the part_item (hereinafter "part_item_val"). TH- 42PX75U is actually a Panasonic TV model. A TV has a property "Resolution". So the keyword "Resolution" is classified as a prop_item. The value of resolution may be "720P", "1080P" etc.
Referring to diagram 300 in FIG. 3, item 310 is denoted by a "keyword". The set 320 of all possible values or instances of item 310 is represented by "n" number of values namely { V1 , V2,.. y{n_V} ,Vn }, where n is an arbitrary integer. Again each of the values
[ V1, V2 , ..y(n_l} ,Vn } in set 320 is denoted by a keyword. An item 310 and its value set 320 together are called a unary concept 300.
Diagram 300A in FIG. 3A illustrates a part_item "TV" 310A with a value set 320A of n = 6 values namely { V1 , V2 ,.V3 ,V4 , V5 , V6 ] where V1 = "TH-42PX75U", V2 =
"LNT5265", V3= "KDL40S3000", V4 = "LC46D82U", V5 = "LC42D72U", and V6 = "HLT5076". Diagram 300B in FIG. 3B illustrates a prop_item "Resolution" 310B with a value set 320B of n = 2 values namely { V1 5V2 } where V1= "72Op" and V2 = "1080p". Similarly Diagram 300C in FIG. 3C illustrates a part_item "Player" 310C with a value set 320C of n = 3 values namely { V1 , V2 , .V3 } where V1= "HD-A20", V2 = "BDP-S300", and V3= "HD-A2".
The value set 320 of item 310 may change as new values are added to the set 320 for example as new instances of part_item "TV" are available. Similarly the set 320 of values of item 310 may be reduced if an old model of part_item "TV" has become obsolete and its value keyword is deleted. Also the set 320 of values may be inserted into the set with the help of human inputting the keywords as new values are added through a computer user interface program such as 720 in FIG. 10 or they may be extracted from the documents automatically. The knowledgebase disclosed in the current invention is built hierarchically where the leaf nodes are items either part_item 300 or prop_item 300. The second level nodes are created if there are relations between leaf nodes specifically a part_item and a prop_item. Referring to diagram 400 of FIG. 4, a second level node is created based on the relation between two leaf level nodes namely part_iteml of diagram 300 and prop_iteml of diagram 300. As illustrated in FIG. 4, part_iteml has value set 320 given by { Dl1 , Dl2 ,...DLn-1S , Dln } and prop_iteml has a value set 320 given by
{ Fl1 , P\2 ,...P\im_1) , Pl1n } . The 2-ary relation (or binary) 410 is denoted by (partjteml I prop_iteml }. And the value set 420 of relation 410 is denoted by (Dl1, Fl2 } , (Dl2, Fl5 ) , ... , (Dln , Fl9 } . Each value is a 2-tuple. In one embodiment, the first keyword corresponds to a value of part_iteml and the second keyword corresponds to a value of prop_iteml. (In another embodiment, the first keyword corresponds to a value of prop_iteml and the second keyword corresponds to a value of part_iteml. The ordering of the items in the 2-tuple is irrelevant to the current invention.) In general the value set 420 of the relation (part_iteml I prop_iteml } has the size equal to at most the size of the value set 320 of part_iteml. The 2-ary relation 410 and its value set 420 together are called a 2-ary concept 400. As described later in general an n-ary relation and its value set together called an n-ary concept.
Diagram 400A of FIG. 4A illustrates an exemplary second level node which is created based on the 2-ary relation between the two leaf level nodes namely "TV" of diagram 300A of FIG. 3A and "Resolution" of diagram 300B of FIG.3B. As illustrated in FIG. 4 A, the relation 410A is denoted by (TV I Resolution}. And the value set 420A of the relation 410A is given by (TH-42PX75U, 720p}, (LNT5265, 1080p}, (KDL40S3000, 720p}, (LC46D82U, 1080p}, (LC42D72U, 1080p}, and (HLT5076, 1080p}. Each value is a 2-tuple. The first keyword corresponds to a value of part_iteml "TV" and the second keyword corresponds to a value of prop_iteml "Resolution". In general the value set 420A of the relation (TV I Resolution} has the size equal to at most as the size of the value set 320A of part_item "TV".
The relation 410A (TV I Resolution} can be queried with (TV I 1080p} where "1080p" is a value of prop_item "Resolution". Such a query will return all the values of "TV" which have "1080p" as the value of "Resolution". For the 2-tuple value set 420A of FIG 4A, the query {TV I 1080p} will return the values namely {LNT5265, 1080p}, {LC46D82U, 1080p}, {LC42D72U, 1080p}, and {HLT5076, 1080p}. Similarly the query {TV I 72Op } can also be performed on the relation 410A {TV I Resolution} which will return the values namely {TH-42PX75U, 72Op } and {KDL40S3000, 72Op }.
The relation 410A {TV I Resolution} can be queried with {TH-42PX75U I Resolution}. Such a query will return the value or values with the first keyword "TH- 42PX75U" and the corresponding value of "resolution". For the 2-tuple value set 420A of FIG 4A the query {TH-42PX75U I Resolution} will return the value namely {TH- 42PX75U, 72Op }.
Diagram 400B of FIG. 4B illustrates another exemplary second level node which is created based on the relation between the two leaf level nodes namely "Player" of diagram 300C of FIG. 3C and "Resolution" of diagram 300B of FIG.3B. As illustrated in FIG. 4B, the relation 410B is denoted by {Player I Resolution}. And the value set 420B of relation 410A is given by {HD-A20, 1080p}, {HD-A2, 720p}, and {BDP-S300, 1080p}. Each value is a 2-tuple. The first keyword corresponds to a value of part_iteml "Player" and the second keyword corresponds to a value of prop_iteml "Resolution". In general the value set 420B of the relation {Player I Resolution} has the size equal to at most as the size of the value set 320 of part_item "Player". As described above, the relation 410B {Player I Resolution} can be queried with 2-tuple where one of the keywords is the value of the part_item or prop_item, and the other keyword being the part_item or prop-item itself.
Even though the exemplary relations 400A of FIG. 4A illustrate only one prop_item "Resolution" for the part_item "TV", in general, a part_item such as "TV" may have relations with more than one prop_item for example "manufacturer", "ManufactureDate" etc., where "manufacturer" denotes the manufacturer of the part_item "TV" and "ManufactureDate" denotes the date "TV" was manufactured. Accordingly the second level nodes with the 2-ary relations such as {TV I Manufacturer} and {TV I ManufactureDate} are valid relations. All the relations with part_item as "TV" are grouped into the same second level node. That is the 2-ary relations {TV I Resolution}, {TV I Manufacturer} and {TV I ManufactureDate} are all grouped in the same second level node. Similarly the 2-ary relations {Player I Resolution}, {Player I Manufacturer} and {Player I ManufactureDate} are all grouped in the same second level node. However there may not be a relation corresponding to a second level node between every part_item and every prop_item present at the leaf nodes. So a list of all valid relations between a part_item and all the prop_items it has a relation with is created in the second level nodes. During the search for the relations it is grammatically validated if the relation created by a multiple keyword query is valid or not before the presentation sheets and documents are presented back to the customer, as described later.
Accordingly, Applicant notes that in the leaf level there are at most as many nodes as the sum of the total number part_items and the total number of prop_items. And at the second level there are at most as many nodes as the total number of part_items.
The leaf nodes and second level nodes are called base nodes or base relations. The items and value sets for a part_item and prop_item are usually created and stored in the knowledgebase. The valid relations and all their value sets in the second level nodes such as {part_iteml I prop_iteml } are also created and stored in the knowledgebase.
The third level nodes are created if there are relations between two part_items which have a common prop_item. Referring to diagram 500 of FIG. 5, a third level node is created based on the relation 510 between 2-ary relation {part_iteml I prop_iteml } of diagram 400 and 2-ary relation {part_iteml I prop_item2} of diagram 400. As illustrated in FIG. 5, the 2-ary relation {part_item2 I prop_iteml } has value set 420 given by { [Dl1 , Pl2 ], [Dl2 , Pl5 ],...,{Dln.Pl9 } } and the 2-ary relation {part_item2 I prop_iteml } has value set 420 given by [ [Dl1 , Pl1 ], [D22 , Pl6 ],...,[D2n.Pl24 } }. The relation 510 is denoted by {part_iteml I part_item2 I prop_iteml }. The value set 520 is denoted by[Dl1 , D21 , Pl2 ] , [Dl2, D22 , Pl5 ] , ..., [Dln , D212 , Pl9 ] . Each value is a 3-tuple. The first keyword corresponds to a value of part_iteml, the second keyword corresponds to a value of part_item2, and the third keyword corresponds to a value of prop_iteml. In general the value set 520 of the relation {part_iteml I part_item2 I prop_iteml } has the size equal to at most as the size of the product of number of values in the value set of part_iteml 320 and the number of values in the value set of part_item2 320.
Diagram 500A of FIG. 5A illustrates an exemplary third level node which is created based on the relation between the two second level nodes namely {TV I Resolution} of diagram 400A of FIG. 4 A and {Player I Resolution} of diagram 400B of FIG.4B. As illustrated in FIG. 5A, the relation 510A is denoted by {TV I Player I Resolution}. The value set 520A is given by {TH-42PX75U, HD-A2, 72Op }, {KDL40S3000, HD-A2, 720p}, {LNT5265, HD-A20, 1080p}, {LC46D82U, HD-A20, 1080p}, {LC42D72U, HD-A20, 1080p}, {HLT5076, HD-A20, 1080p}, {LNT5265, BDP-S300, 1080p}, {LC46D82U, BDP-S300, 1080p}, {LC42D72U, BDP-S300, 1080p}, and {HLT5076, BDP-S300, 1080p}. Each value is a 3-tuple. The first keyword corresponds to a value of part_iteml "TV", the second keyword corresponds to a value of part_item2 "Player", and the third keyword corresponds to a value of prop_iteml "Resolution". In general the value set 520A of the relation {TV I Player I Resolution} has the size equal to at most as the size of the product of number of values in the value set of "TV" 320 and the number of values in the value set of "Player" 320.
The 3-ary relation 510A {TV I Player I Resolution} can be queried with {TV I Player I 1080p} where "1080p" is a value of prop_item "Resolution". Such a query will return all the values of "TV I Player" with "1080p" as the value of "Resolution". For the 3-tuple value set 520A of FIG 5A, the query {TV I Player I 1080p} will return the values namely {LNT5265, HD-A20, 1080p}, {LC46D82U, HD-A20, 1080p}, {LC42D72U, HD-A20, 1080p}, {HLT5076, HD-A20, 1080p}, {LNT5265, BDP-S300, 1080p}, {LC46D82U, BDP-S300, 1080p}, {LC42D72U, BDP-S300, 1080p}, and {HLT5076, BDP-S300, 1080p}.
In general, the nth level nodes are created if there are relations between (n-1) part_items having a common prop_item. FIG. 6A illustrates the general hierarchical network (hereinafter "hierarchical part-of graph") 600A with leaf nodes 300, second level nodes 400, third level nodes 500 all the way up to n"1 level nodes. For the sake of simplicity only the n-ary relations are illustrated in the hierarchical part-of graph 600A without showing the value sets of the n-ary relations. The n-ary relations are called derived relations when n ≥ 3 . The value set of derived n-ary relations may are may not be created and stored a-proiri. In other words the derived n-ary relations may be created on- the-fly when the search for the corresponding query is made.
Applicant notes that conversely an n-ary relation with (n-1) part_items and a prop_item can be decomposed into (n-l)-ary relation with (n-2) part_items and a prop_item. By applying the property inductively the n-ary relation can be decomposed into (n-1) of binary relations. And the converse is equally true.
Figure imgf000015_0001
Table 1 illustrates an exemplary set of part_items namely "a", "b", "c", and "d"; and prop_items namely "1", "2", "3", and "4". In Table 1 there is a row for each part_item and there is a column for each prop_item. There is an "x" mark in a box if the part_item in the corresponding row has a 2-ary relation with the prop_item in the corresponding column. Table 1 is hereinafter "adjacency matrix" of the corresponding set of part_items and set of prop_items. For example there is an "x" in the box with the row corresponding to part_item "a" and with the column corresponding to prop_item "1" and so there is a 2-ary relation between part_item "a" and prop_item "1" and as discussed before it is denoted by { a I 1 } . Alternatively the 2-ary relation { a I 1 } is a valid 2-ary relation. Similarly there is no "x" in the box with the row corresponding to part_item "a" and with the column corresponding to prop_item "2" and so there is no 2-ary relation between part_item "a" and prop_item "2". Alternatively the 2-ary relation {a I 2} is not a valid 2-ary relation. And thus the adjacency matrix given in Table 1 illustrates if there is a relation or no relation between each part_item and each prop_item.
Referring to FIG. 6B is an exemplary hierarchical part-of graph 600B to the general hierarchical part-of graph 600A, in one embodiment. Hierarchical part-of graph 600B corresponds to the adjacency matrix given in Table 1 for the corresponding part_items and prop_items. The hierarchical part-of graph 600B illustrates only valid n- ary relations. Again for the sake of simplicity the value sets for each concept are not illustrated in hierarchical part-of graph 600B of FIG. 6B. Leaf level nodes consist of part_items "a", "b", "c", and "d"; and prop_items "1", "2", "3", and "4". In the second level there are two valid 2-ary relations involved by part_item "a" namely {a ll } and {a I 3} as there are "x" marks to their corresponding boxes in Table 1. Similarly there are three valid 2-ary relations involved by part_item "b" namely {b I 1 }, {b I 2}, and {b I 4}.
In the third level of hierarchical part-of graph 600B of FIG. 6B there is only one valid 3-ary relation involved by the two part_items "a" and "b" namely {a I b I 1 }. It is easy to see that the 3-ary relation {a I b I 1 } is valid because both the 2-ary relations {a I 1 }, and {b I 1 } are valid. Alternatively the box corresponding to part_item "a" and prop_item "1", and the box corresponding to part_item "b" and prop_item "1 are marked "x" in Table 1. In the fourth level of hierarchical part-of graph 600B of FIG. 6B there is only one valid 4-ary relation involved by the three part_items "a", "b", and "c" namely { a I b I c I 1 } . It is easy to see that the 4-ary relation { a I b I c I 1 } is valid because all the 2- ary relations {a I 1 } , {b I I }, and {e l l } are valid. Alternatively the box corresponding to part_item "a" and prop_item "1", the box corresponding to part_item "b" and prop_item "1", and the box corresponding to part_item "c" and prop_item "1 are marked "x" in Table 1. Finally hierarchical part-of graph 600B illustrates all the valid n-ary relations in all the levels.
Referring to the relations list 600C of FIG. 6C illustrates all the invalid relations corresponding to the part_items, prop_items and the adjacency matrix given in Table 1. For example the 2-ary relations {a I 2} and {a I 4} are invalid since the box corresponding to part_item "a" and prop_item "2", and the box corresponding to part_item "a" and prop_item "4" are not marked with "x" in Table 1. The 3-ary relation {a I d I 1 } is invalid since the box corresponding to part_item "a" and prop_item "1", and the box corresponding to part_item "d" and prop_item "1" are not marked with "x" in Table 1. Similarly the 3-ary relations {a I d I 2}, { a I d I 3 } , and {a I d I 4} are invalid. In the relations list 600C it is denoted by {a I d I 0} which means all the 3-ary relations involving both the part_items "a" and "d" namely {a I d I 1 }, {a I d I 2}, {a I d I 3}, and {a I d I 4} are invalid relations. The relations list 600C of FIG. 6C illustrates all the invalid n- ary relations corresponding to the part_items, prop_items and the adjacency matrix given in Table 1. Referring to FIG. 6D is a hierarchical part-of graph 600D in another embodiment corresponding to the adjacency matrix given in Table 1. Alternatively both hierarchical part-of graph 600B of FIG. 6B and hierarchical part-of graph 600D of FIG. 6D correspond to the adjacency matrix given in Table 1 for the part_items "a", "b", "c", and "d"; and prop_items "1", "2", "3", and "4". Just like the hierarchical part-of graph 600B illustrates only valid n-ary relations, the hierarchical part-of graph 600D also illustrates only the valid n-ary relations. Also for the sake of simplicity the value sets for every concept are not illustrated in hierarchical part-of graph 600D of FIG. 6D. Whereas in hierarchical part-of graph 600B all the n-ary relations at each level are grouped, when the part_items in the relations are same, into the same node, in hierarchical part-of graph 600D each of the n-ary relations at every level are denoted by a separate node. For example in hierarchical part-of graph 600B in the second level the 2-ary relations {a l l } and { a I 3 } are grouped into the same node where as in hierarchical part-of graph the 2- ary relations {a l l } and {a I 3 } correspond to two separate nodes. Similarly each node in hierarchical part-of graph 600D contains only one n-ary relation in the nth- level.
Table 2 illustrates another exemplary set of part_items namely "TV" and "Player"; and prop_items namely "Resolution", "Connector", and "Screen_type". In Table 2 there is a row for each part_item and there is a column for each prop_item. There is an "x" mark in a box if the part_item in the corresponding row has a 2-ary relation with the prop_item in the corresponding column. Table 2 is an adjacency matrix of the corresponding set of part_items and set of prop_items. In Table 2 there is a 2-ary relation between every part_item and every prop_item and hence there is an "x" mark in every box of Table2.
Figure imgf000017_0001
FIG. 6E is the hierarchical part-of graph 600E to the general hierarchical part-of graph 600A, in one embodiment, corresponding to the adjacency matrix given in Table 2 for the corresponding part_items and prop_items. The hierarchical part-of graph 600E illustrates only valid n-ary relations. Again for the sake of simplicity the value sets for each concept are not illustrated in hierarchical part-of graph 600E of FIG. 6E. Leaf level nodes consist of part_items "TV" and "Player"; and prop_items "Resolution", "Connector", and "Screen_type". In the second level there are three valid 2-ary relations involved by part_item "TV" namely {TV I Resolution}, {TV I Connector}, and {TV I Screen_type} as there are "x" marks to their corresponding boxes in Table 2 and all of the three 2-ary relations are grouped in the same node since they have common part_item "TV". Similarly there are three valid 2-ary relations involved by part_item "Player" namely {Player I Resolution}, {Player I Connector}, and {Player I Screen_type} and all of the three 2-ary relations are grouped in the same node since they have common part_item "Player".
In the third level of hierarchical part-of graph 600E of FIG. 6E there are three valid 3-ary relation involved by the two part_items "TV" and "Player" namely {TV I Player I Resolution}, {TV I Player I Connector}, and {TV I Player I Screen_type}. Finally hierarchical part-of graph 600E illustrates all the valid n-ary relations in all the levels.
Hierarchical Part-of Graph augmented with Same-as Relations:
A part_item may have a same-as relation with another part_item denoted by "=" relation. Similarly a prop_item may have a same-as relation with another prop_item denoted by "=" relation. For example prop_item "Resolution" may have a same-as relation (hereinafter "synonym") with "Pixels" and the relation is denoted by {Resolution ≡ Pixels}. Similarly a part_item "car" has a same-as relation with "automobile" and similarly the relation is denoted by {Car ≡ Automobile}.
In one embodiment, the keyword "pixels" is treated as "Resolution" in building the hierarchical part-of graph and operating on it. This process is called hereinafter "same-as normalization". A separate synonym list is maintained for each part_item and prop_item. Referring to FIG. 7A illustrates an exemplary list of same-as relations 700A. The list of same-as relations are namely {Resolution ≡ Pixels}, {Connector ≡ I/O Cable}, {TV ≡ Television}, {Screen_type ≡ Display_type}, and {Player ≡ DVD Player}.
In general, each part_item may have a list of one or more synonyms. FIG. 7B illustrates a low-level implementation 700B of computer data structure list of synonyms. A part_item_k 710B has a pointer to the list of synonyms 720B. The list of synonyms 720B points to the head element in the list denoted by keyword_l. Keyword_l points to keyword_2. Keyword_2 points to Keyword_3 and so on and finally Keyword_(p-1) points to the tail element of the list Keyword_p, where p is an integer.
In general, each prop_item may have a list of one or more synonyms. FIG. 7C illustrates a low-level implementation 700C of computer data structure list of synonyms. A prop_item_m 710B has a pointer to the list of synonyms 720C. The list of synonyms 720C points to the head element in the list denoted by keyword_l. Keyword_l points to keyword_2. Keyword_2 points to Keyword_3 and so on and finally Keyword_(n-1) points to the tail element of the list Keyword_n, where n is an integer.
FIG. 7D illustrates the hierarchical part-of graph 700D augmented by same-as relation list 700A of FIG. 7A. Synonyms of part_items and prop_items are transitive throughout the hierarchical part-of graph 600A. That is, for example, the same-as relation {Resolution ≡ Pixels} is effectively implemented to substitute the keyword "Pixels" in every occurrence of the keyword "Resolution" in all the n-ary relations of the hierarchical part-of graph 600A. Referring to FIG. 7Dl illustrates the hierarchical part-of graph augmented by same-as relations for the same-as relation {Resolution ≡ Pixels}. The hierarchical part-of graph 700D of FIG. 7D is similarly implemented for all same-as relations.
Hierarchical Part-of Graph augmented with Kind-of Relations:
An n-ary relation in the hierarchical part-of graph may create kind-of relations. For example part_item "TV" is a "DTV" (Digital Television) when the prop_item "Screen_type != CRT" (i.e. when screen_type is not equal to cathode ray tube). That means part_item "DTV" is a kind-of 'TV" denoted as either "DTV c TV" or "TV 3 DTV". This type of kind-of relation is created when one or more of the prop_items in the n-ary relation have some particular value or instance. As another example part_item "HDTV" (High Definition Television) is a "DTV" when the prop_item "Resolution = (108Oi or 108Op)". That means part_item "HDTV" is a kind-of 'DTV" denoted as either "HDTV c DTV" or "DTV 3 HDTV". Based on the above two kind-of relations and since the kind-of relation is transitive, "HDTV" is a kind-of "TV" when the prop_item "Screen_type != CRT" and when the prop_item "Resolution = (1080i or 1080p)" denoted as either "HDTV c TV" or "TV 3 HDTV".
Another type of kind-of relation is created when more than one part_items have more than one common prop_items. For example all the set of devices having a prop_item "Resolution" creates another type of kind-of relation. This is the highest level node in the hierarchical part-of graph 600A (or n-ary level node with greatest value of "n") having the prop_item "Resolution" in the hierarchical part-of graph 600A of FIG. 6A.
Referring to FIG. 8Al illustrates some exemplary kind-of relations 800Al on different part_items. For example the part_item "TV" has the kind-of relations namely {DTV c TV when Screen_type != CRT}, {HDTV c DTV when Resolution = (1080i or 1080p) }, and {HDTV c TV when Screenjype != CRT and Resolution = (1080i or 1080p) }. Also the kind-of relation {devices with "Resolution"} is in the list of 800Al of FIG. 8Al.
In general, each part_item may have a list of one or more kind-of items having kind-of relations with it. FIG. 8A2 illustrates a low-level implementation 800A2 of computer data structure list of kind-of items. A part_item_k 810A2 has a pointer to the list of kind-of items 820A2. The list of kind-of items 820A2 points to the head element in the list denoted by keyword_l. Keyword_l points to keyword_2. Keyword_2 points to Keyword_3 and so on and finally Keyword_(p-1) points to the tail element of the list Keyword_p, where p is an integer. For example if the part_item_k is "TV", Keyword_l is "DTV" and Keyword_2 is "HDTV", where Keyword_l is the head element and Keyword_2 is the tail element and p = 2.
FIG. 8B illustrates the hierarchical part-of graph 800B augmented by kind-of relation list given in 800Al of FIG. 8Al. Kind-of relations are transitive throughout the hierarchical part-of graph 600A. That is, for example, the kind-of relation {DTV c TV} is effectively reflected in all the n-ary relations of the hierarchical part-of graph 600A when Screen_type != CRT. Also the kind-of relation {All the set of devices having a prop_item "Resolution"} is the 3rd level node namely (TV I Player I Resolution} which is highest level node in the hierarchical part-of graph 800B (or n-ary level node with greatest value of "n=3") having the prop_item "Resolution".
Referring to FIG. 8Bl illustrates the hierarchical part-of graph augmented by kind-of relation 800Bl for the kind-of relation {DTV c TV when Screenjype != CRT}. FIG. 8B2 illustrates the hierarchical part-of graph augmented by kind-of relation 800B2 for the kind-of relation {HDTV c TV when Screen_type != CRT and Resolution = (1080i or 1080p)}. The hierarchical part-of graph 800B of FIG. 8B is similarly implemented for all kind-of relation. Finally FIG. 8C illustrates the hierarchical part-of graph 800C augmented by both the same-as relation list 700A of FIG. 7A and kind-of relation list 800Al of FIG. 8Al. In general, hierarchical part-of graph 600A is augmented by both the same-as relation list and kind-of relation list as illustrated in 800D of FIG. 8D.
Hierarchical Part-of Graph augmented with Change Relations:
A change relation between two instances of the same n-ary relation is denoted by "δ". Also both the instances of the n-ary relation need to be valid. The change relation is defined in one of the three different ways namely 1) an additional prop_item, 2) a deleted prop_item, and 3) a difference in the value of a prop_item. The change relation is denoted by {(part_item_vall,..., part_item_val_n), (δ, prop_item_l, ..., prop_item_m), (part_item_val_x, ... , part_item_val_(x+n-l)) }. The term "(δ, prop_item_l, ..., prop_item_m)" denotes the change between one instance of the n- 1 part_items of the n- ary relation given by (part_item_vall , ... , part_item_val_n) and the another instance of n- 1 part_items of the n-ary relation given by (part_item_val_x, ... , part_item_val_(x+n-l)) in terms of the prop_items namely prop_iteml to prop_item_m. if no prop_items are listed, i.e., {part_item_vall, δ, part_item_val2 } denotes the change in all prop_items of the corresponding part_item of both the instances.
A change relation between two instances of different n-ary relations is not valid. Referring to FIG. 9 illustrates four different exemplary change relations 900 with respective to the n-ary items given in FIG. 4A, FIG. 4B, and FIG. 5 A. The first change relation {LNT5265, δ, KDL40S3000} gives the result { 1080p, 720p} since part_item "TV" has relation with only one prop_item which is "Resolution". Since resolution of LNT5265 is 1080p and the resolution of KDL40S3000 is 72Op, the change is given by { 1080p, 72Op } where the first value corresponds to the first instance of the n-ary relation and the second value corresponds to second instance of the n-ary relation. The second change relation {LNT5265, (δ, Resolution), KDL40S3000} also gives the result { 1080p, 72Op } since part_item "TV" has relation with only one prop_item which is "Resolution". The third change relation {(LNT5265, HD-A20), δ, (KDL40S3000, HD-A2)} gives the result {0} since the part_item "TV" and part_item "Player" have relations only with one prop_item i.e., "Resolution" and {LNT5265 I HD-A20 I Resolution} is given by "1080p" and {KDL40S3000, HD-A2)} is given by "1080p". The fourth change relation {(LNT5265, HD-A20), (δ, Resolution), (KDL40S3000, HD-A2)} gives the result {0} since the part_item "TV" and part_item "Player" have relations only with one prop_item i.e., "Resolution" and {LNT5265 I HD-A20 I Resolution} is given by "1080p" and {KDL40S3000, HD- A2)} is given by "1080p". Referring to diagram 1000 of FIG. 10 illustrates, in one embodiment, the key high-level components and interfaces of the current invention implemented in system of diagram 100 of FIG. 1. Block 1030 represents the interrelated item search capable search engine as disclosed in the current invention which has two interfaces namely vendor expert interface 1010 and customer interface 1020. Vendor expert interface 1010 provides the interface to vendor experts to input the part_items 310 and prop_items 310, their value sets 320 and the 2-ary relations 410 between part_items and prop_items. In one embodiment the 2-ary relations may be inputted in the form of the corresponding adjacency matrix. Similarly the n-ary relations between part_items and prop_items are inputted if these data is inputted manually. Block 1020 is the interface to the customer or user with or without a browser to input the multiple keyword query. Then the search engine 1030 processes the multiple keyword query and searches for the appropriate n-ary relation with the use of the knowledgebase 1040 and the search results are presented back to the user through the customer interface 1020. Block 1040 illustrates the knowledgebase containing the hierarchical part-of graph 800D of FIG. 8D as disclosed in the current invention.
In one embodiment, the input from vendor expert interface is provided with the part_items, prop_items and the adjacency matrix of them. For example as illustrated in Table 1 with an exemplary set of part_items namely "a", "b", "c", and "d"; and prop_items namely "1", "2", "3", and "4"; an the corresponding adjacency matrix is provided to build the hierarchical part-of graph 600B of FIG. 6B. And the invalid relations as given in 600C of FIG. 6C are also derived as provided before. Similarly as illustrated in Table 2 with an exemplary set of part_items namely "TV" and "Player"; and prop_items namely "Resolution", "Connector", and "Screen_type"; an the corresponding adjacency matrix is provided to build the hierarchical part-of graph 600D of FIG. 6D. Finally all the instances of each part_item and prop_item are also inputted through Vendor expert interface 1010. And the corresponding n-ary relations for all values are computed as needed for each valid relation as disclosed earlier.
The same-as relations are provided for each keyword. For example the synonyms list in 700A of FIG. 7A will be inputted through vendor expert interface 1010. And the hierarchical part-of graph 600D of FIG. 6D is augmented with same-as relations list 700A of FIG. 7A and the corresponding hierarchical part-of graph augmented with same-as relations 700D of FIG. 7D is built as disclosed.
Similarly the kind-of relations are provided for 2-ary relation. For example the kind-of relations list in 800Al of FIG. 8Al will be inputted through vendor expert interface 1010. And the hierarchical part-of graph augmented with same-as relations 700D of FIG. 7D is augmented with kind-of relations list 800Al of FIG. 8Al and the corresponding hierarchical part-of graph augmented with both same-as relations and kind-of relations 800C of FIG. 8C is built as discussed before. Also all the n-ary relations are derived through "transitive closure" the kind-of relations provided for 2-ary relations.
As discussed earlier a keyword is classified as one of the four classes namely part_item, prop_item, part_item_val and prop_item_val. As illustrated in Table. 3, each keyword has the following attributes namely 1) keycode, 2) item pointer, 3) value pointer, 4) synonym parent and 5) kind-of parent. The attribute keycode is unique for the four classes. Specifically the keycode for part_item is "00", prop_item is "01", part_item_val is "10" and prop_item_val is "11". The attribute item pointer is the pointer to keyword in knowledgebase. Specifically the item pointer for part_item is a pointer to itself in the knowledgebase denoted by "part_ptr" and similarly the item pointer for prop_item is a pointer to itself in the knowledgebase denoted by "prop_ptr". The item pointer for part_item_val is a pointer to its corresponding part_item keyword in knowledgebase denoted by "part_ptr" and similarly the item pointer for prop_item_val is a pointer to its corresponding prop_item keyword in the knowledgebase denoted by "prop_ptr". The keyword classes part_item_val and prop_item_val also have the attribute value pointer which point to the corresponding part_item_val and prop_item_val keywords respectively in the knowledgebase denoted by "part_val_ptr" and "prop_val_ptr" respectively.
Synonym parent for the keywords corresponding to part_item and prop_item point to the normalized synonym keyword of them denoted by "syn_prnt". For example the synonym parent of the keyword "Resolution" is the keyword "Pixels". The kind-of parent of a keyword points to the kind-of parent keyword of it. For example the kind-of parent of the keyword "DTV" is the keyword "TV".
Figure imgf000025_0001
Referring to FIG. 11 illustrates one embodiment of an intermediate level implementation 1100 of the n- level hierarchical part-of graph 800D of FIG. 8D. The n- level hierarchical part-of graph 1100 is represented by the computer data structure list of levels 1110 which points to the head element of the list corresponds to level_l 1120. The next element to the element level_l is level_2 or alternatively the element level_l points to level_2. The next element of level_2 is level_3 and so on. And the tail element of the list of levels is the element corresponding to level_n. Each of the level elements level_l to level_n point to another computer data structure list of relations 1130.
Each list of relations 1130 point to the head element of the list of levels corresponding to relation_l 1140. The next element to the element relation_l is relation_2. The next element of relation_2 is relation_3 and so on. And the tail element of the list of relations is the element corresponding to relation_y. Each of the relation elements relation_l to relation_y point to two lists namely list of part_items 1150 and list of prop_items 1170.
Each list of part_items 1150 point to the head element of the list corresponds to part_item_x 1160. The next element to the element part_item_x is part_item_(x+l). The next element of part_item_(x+l) is part_item_(x+2) and so on. And the tail element of the list of part_items is the element corresponding to part_item_(x+n-l).
Each list of prop_items 1170 point to the head element of the list corresponds to prop_item_x 1180. The next element to the element prop_item_x is prop_item_(x+l). The next element of prop_item_(x+l) is prop_item_(x+2) and so on. And the tail element of the list of prop_items is the element corresponding to prop_item_(x+m).
FIG. 12 illustrates one embodiment of the representation 1200 of a part_item_k 1210 and the n-ary relations the part_item_k participates in n- level hierarchical part-of graph 1100 of FIG. 11. Each of the part_item_k points to a list of levels of the hierarchical part-of graph 1220. Each list of levels 1220 point to the head element of the list corresponds to level_l 1230. The next element to the element level _1 is level _2. The next element of level _2 is level _3 and so on. And the tail element of the list of levels is the element corresponding to level_n. Each of the level elements level_l to level_n point to a list of relations 1240.
Each list of relations 1240 point to the head element of the list corresponds to relation_x 1250. The next element to the element relation_x is relation_(x+l). The next element of relation_(x+l) is relation_(x+2) and so on. And the tail element of the list of relations is the element corresponding to relation_(x+p).
FIG. 13 illustrates one embodiment of the representation 1300 of a prop_item 1310 and the n-ary relations the prop_item participates in n-level hierarchical part-of graph 1100 of FIG. 11. Each of the prop_item_k points to a list of levels of the hierarchical part-of graph 1320. Each list of levels 1320 point to the head element of the list corresponds to level_l 1330. The next element to the element level_l is level_2. The next element of level_2 is level_3 and so on. And the tail element of the list of levels is the element corresponding to level_n. Each of the level elements level_l to level_n point to a list of relations 1340.
Each list of relations 1340 point to the head element of the list corresponds to relation_x 1350. The next element to the element relation_x is relation_(x+l). The next element of relation_(x+l) is relation_(x+2) and so on. And the tail element of the list of relations is the element corresponding to relation_(x+p).
FIG. 14 illustrates one embodiment of the representation 1400 of an ontology with the list of part_items 1420, the list of prop_items 1440, and the list of levels 1460 with n- ary relations of the ontology in n-level hierarchical part-of graph 1100 of FIG. 11. An ontology is a set of part_items, a set of prop_items and the set of valid relations between them. Alternatively ontology is a subset of part_items of the hierarchical part-of graph, a subset of prop_items of the hierarchical part-of graph and the subset of valid relations between them.
Each list of part_items 1420 point to the head element of the list corresponds to part_item_x 1430. The next element to the element part_item_x is part_item_(x+l). The next element of part_item_(x+l) is part_item_(x+2) and so on. And the tail element of the list of part_items is the element corresponding to part_item_(x+n-l).
Each list of prop_items 1440 point to the head element of the list corresponds to prop_item_x 1450. The next element to the element prop_item_x is prop_item_(x+l). The next element of prop_item_(x+l) is prop_item_(x+2) and so on. And the tail element of the list of prop_items is the element corresponding to prop_item_(x+n-l).
Each list of levels 1460 point to the head element of the list corresponds to level_l 1470. The next element to the element level_l is level_2 or alternatively the element level_l points to level_2. The next element of level_2 is level_3 and so on. And the tail element of the list of levels is the element corresponding to level_n. Each of the level elements level_l to level_n point to another list of relations 1475.
Each list of relations 1475 point to the head element of the list corresponds to relation_l 1480. The next element to the element relation_l is relation_2. The next element of relation_2 is relation_3 and so on. And the tail element of the list of relations is the element corresponding to relation_y. Each of the relation elements relation_l to relation_n point to two lists namely list of part_items 1485 and list of prop_items 1490.
Each list of part_items 1485 point to the head element of the list corresponds to part_item_x 1487. The next element to the element part_item_x is part_item_(x+l). The next element of part_item _(x+l) is part_item _(x+2) and so on. And the tail element of the list of part_items is the element corresponding to part_item_(x+n-l).
Each list of prop_items 1490 point to the head element of the list corresponds to prop_item_x 1495. The next element to the element prop_item_x is prop_item_(x+l). The next element of prop_item_(x+l) is prop_item_(x+2) and so on. And the tail element of the list of prop_items is the element corresponding to prop_item_(x+m). FIG. 15 illustrates one embodiment of keyword database 1510. Keyword database has list of keywords 1520. And the list of keywords 1520 point to the head element of the list corresponds to keyword_l 1530. The next element to the element keyword_l is keyword_2. The next element of keyword_2 is keyword_3 and so on. And the tail element of the list of keywords is the element corresponding to keyword_n.
FIG. 16 illustrates a high-level method 1600, in one embodiment, to search the interrelated item search capable hierarchical part-of graph augmented with same-as and kind-of relations 800D with multiple keyword query typically made by a customer or user through the customer interface 1020 of FIG. 10. In one embodiment, some acts of the method 1600 are implemented on clients such as 110, 120 or 130 and the remaining acts of the method 110 are implemented on servers 140 or 150 as discussed below. The client browser receives the multiple keyword query from the user in act 1610. Then the control passes to act 1620 where the query is parsed into the set of "n' keywords; act 1620 is implemented on server 140 or 150 in one embodiment. Then the control passes to act 1630. In act 1630 each keyword in the set "n" is checked if it is associated with one of part_item, prop_item, synonyms and kind-of relation based keywords on part_item or prop_item, part_item_val, or prop_item_val by searching through the keyword database. If there is a keyword that needs to be associated the control passes to act 1640. In act 1640 by searching the keyword database 1500, the keyword is associated with a part_item or prop_item or part_item_val or prop_item_val. In one embodiment keyword database is one part of the knowledgebase 1040. Then the control goes to act 1630. Act 1630 and act 1640 are implemented as a loop to associate all the "n" keywords with either part_item or prop_item or synonyms and kind-of relation based keywords of part_item or prop_item or part_item_val or prop_item_val. Then the control goes to act 1650.
In act 1650 the nth-level nodes of the hierarchical part-of graph 800D of FIG. 8D are searched and the corresponding n-ary relation is matched with "n" keyword query. Then in act 1660 the presentation sheets corresponding to the matching n-ary relation are selected. Also in act 1660 the documents corresponding to all the "n" keyword corresponding to part_items are selected. Finally in act 1670 the presentation sheets and also the documents selected in act 1660 are presented to the customer in the client browser. Then the control returns to act 1610 to receive the next multiple keyword query from the customer. Thus the acts 1610, 1620, 1630, 1640, 1650, 1660, and 1670 are implemented in a loop. In one embodiment, act 1610 and act 1670 are implemented in the client device and the remaining acts are implemented in the server.
FIG. 17, in one embodiment illustrates a snapshot of the browser with the results displayed 1700 to the user in the act 1670 of the method 1600. The user types an exemplary multiple keyword query 1720 namely {TV Player Resolution} in a browser window frame 1710 and the snapshot of the browser with the results displayed is illustrated in 1700 of FIG. 17. The results are displayed, in one embodiment, as a set of hyperlinks 1730 where each hyperlink corresponds to an instance of n-ary relation or an m-ary relation where m < n, of the multiple keyword query hereinafter a "presentation sheet". For example one of the hyperlinks 1740 corresponds to an instance namely {BDP- S300, HLT5076, 1080p} and it consists of the hyperlink having "Player I TV I Resolution". The second line has "BDP-S300 I HLT5076 I 1080p" which is the best match to the user query in one embodiment as illustrated in FIG. 17. The order of the items in the displayed result is not relevant to the current invention however all the items are displayed corresponding to the multiple keyword query. In one embodiment, all the keywords are highlighted with a color such as "yellow". The second hyperlink of 1730 correspond to "TV I Resolution" on the first line and "HLT5076 I 1080p" on the second line; and the third hyperlink "Player I Resolution" on the first line and "HLT5076 I 1080p" on the second line, where both the second and third hyperlinks correspond to an m-ary relation where m < n.
FIG. 18 illustrates the snapshot of the browser with displayed results 1800 after clicking on the hyperlink 1740 of FIG. 17 either by using mouse 270 or keyboard 260. The multiple keyword query 1720 namely {TV Player Resolution} is again displayed in the browser window frame 1710 in the snapshot of the browser with displayed results 1800. Referring to the table 1810 with the top row having the keywords corresponding to the part_item and prop_items of the multiple keyword query namely "Player", "TV" and "Resolution". Again the order of the items of the display is not relevant to the current invention however all the items are displayed corresponding to the multiple keyword query 1720. All the rows of table 1810 excepting the top row display hyperlinks to one of the valid instances of the n-ary relation corresponding to the query. A set of hyperlinks 1820 are provided at the bottom of the table 1810, which correspond to the typical content hyperlinks, one or more for each n-ary relation, provided by the content owners or content providers.
Detailed Method for best match of valid relations:
Referring to hierarchical part-of graph 800C of FIG. 8C augmented with synonym relations 700A of FIG. 7A and kind-of relations 800Al of FIG. 8Al, the operation of the method 1600 of FIG. 16 for several exemplary interrelated multiple keyword queries is described. Also the value sets given in 300A of FIG. 3 A, 300B of FIG. 3B, 300C of FIG. 3C, 400A of FIG. 4A, 400B of FIG. 4B and 500A of FIG. 5A are assumed to be the exemplary value sets for the corresponding part_items and prop_items in the hierarchical graph 800C of FIG. 8C.
After a query is received from the user in act 1610, all the keywords of the query are parsed in act 1620. In act 1640 each keyword is searched for a match in keyword database 1500. And then it is determined as one of the following: 1) a part_item, 2) a prop_item 3) synonym of a part_item 4) synonym of a prop_item 5) kind-of item of a part_item 6) a part_item_val or 7) a prop_item_val. Then 1) if it is a part_item_val its corresponding part_item is derived from the keyword attribute table; 2) if it is a prop_item_val its corresponding prop_item is derived from the keyword attribute table; 3) if it is a synonym of a part_item its corresponding syn_prnt keyword is derived from the keyword attribute table; 4) if it is a synonym of a prop_item its corresponding syn_prnt keyword is derived from the keyword attribute table; and 5) if it is a kind-of keyword its corresponding kindof_prnt keyword is derived from the keyword attribute table.
A) If there is only one keyword in the query, the following is performed:
1) If it is a part_item then 2nd level node with all the prop_items of that part_item is selected in act 1650 and the corresponding presentation sheets are selected in act 1660 and are displayed to the user in act 1670. For example for a query {TV}, the corresponding 2nd level node of FIG.8C consisting of the 2-ary relations namely {TV I Resolution}, {TV I connector}, and {TV I screenjype} is selected and the corresponding presentation sheets are selected in act 1660 and are displayed to the user in act 1670.
2) If it is a part_item_val then based on its corresponding part_item derived earlier, the 2nd level node with all the prop_items of that part_item is selected in act 1650 and the corresponding presentation sheets are selected in act 1660 and then {part_item = part_item_val} is substituted and the results are displayed to the user in act 1670. For example for a query {LNT5265 }, then based on its corresponding part_item {TV} derived earlier, the corresponding 2nd level node of FIG.8C consisting of the 2-ary relations namely {TV I Resolution}, {TV I connector}, and {TV I screenjype } is selected first and the corresponding presentation sheets are selected in act 1660 and then {TV = LNT5265 } is substituted and are displayed to the user in act 1670.
3) If it is a prop_item then the greatest nth level node with all the part_items having the prop_item as a relation is selected in act 1650 and the corresponding presentation sheets are selected in act 1660 and are displayed to the user in act 1670. For example for a query {Resolution}, the corresponding greatest nth level node is the 3rd- level node namely {TV I Player I Resolution} of FIG.8C (since both the part_item 'TV" and part_item "Player" have relations with the prop_item "Resolution") is selected and the corresponding presentation sheets are selected in act 1660 and are displayed to the user in act 1670.
4) If it is a prop_item_val then based on its corresponding prop_item derived earlier, the greatest nth level node with all the part_items having the prop_item as a relation is selected in act 1650 and the corresponding presentation sheets are selected in act 1660 and then {prop_item = prop_item_val} is substituted and the results are displayed to the user in act 1670. For example for a query { 1080p}, the corresponding greatest nth level node is the 3rd level node namely {TV I Player I Resolution} of FIG.8C (since both the part_item "TV" and part_item "Player" have relations with the prop_item "Resolution") is selected and the corresponding presentation sheets are selected in act 1660 and then {Resolution = 1080p} is substituted and the results are displayed to the user in act 1670.
B) If all the keywords in the query are part_items, the following is performed: 5) If all the keywords are part_items then the corresponding (n+1) level node with all the common prop_items of all those part_items is selected in act 1650 and the corresponding presentation sheets are selected in act 1660 and are displayed to the user in act 1670. For example for a query {TV Player}, the corresponding (n+1) level node of FIG.8C consisting of the (n+l)-ary relations namely {TV I Player I Resolution}, {TV I Player I connector}, and {TV I Player I screen_type} is selected and the corresponding presentation sheets are selected in act 1660 and are displayed to the user in act 1670.
C) If all the keywords in the query are part_item_vals, the following is performed:
6) If all the keywords are part_item_vals then based on their corresponding part_items derived earlier, the corresponding (n+1) level node with all the common prop_items of all those part_items is selected in act 1650 and the corresponding presentation sheets are selected in act 1660 and then for all part_items {part_item = part_item_val } is substituted and the results are displayed to the user in act 1670. For example for a query {LNT5265 HD-A20}, the corresponding (n+1) level node of FIG.8C consisting of the (n+l)-ary relations namely {TV I Player I Resolution}, {TV I Player I connector}, and {TV I Player I screen_type} is selected and the corresponding presentation sheets are selected in act 1660 and then {TV = LNT5265 }, {Player = HD- A20} is substituted and are displayed to the user in act 1670.
D) If there are two keywords in the query, the following is performed:
7) If there are two keywords in the query where one is part_item and the other is prop_item then the corresponding 2n level node is selected in act 1650 and the corresponding presentation sheets are selected in act 1660 and are displayed to the user in act 1670. For example for a query {TV Resolution}, the corresponding 2n level node of FIG.8C consisting of the 2nd level relations namely {TV I Resolution} is selected and the corresponding presentation sheets are selected in act 1660 and are displayed to the user in act 1670.
8) If there are two keywords in the query where one is part_item_val and the other is prop_item_val then based on their corresponding part_item and prop_item derived earlier, the corresponding 2nd level node is selected in act 1650 and the corresponding presentation sheets are selected in act 1660 and then for the part_item {part_item = part_item_val} and for the prop_item {prop_item = prop_item_val } are substituted and the results are displayed to the user in act 1670. For example for a query {LNT5265 1080p}, the corresponding 2nd level node of FIG.8C consisting of the 2nd level relations namely {TV I Resolution} is selected and the corresponding presentation sheets are selected in act 1660 and then {TV = LNT5265}, {Resolution = 1080p} are substituted and are displayed to the user in act 1670.
9) If there are two keywords in the query where one is part_item and the other is prop_item_val then based on the corresponding prop_item derived earlier, the corresponding 2n level node is selected in act 1650 and the corresponding presentation sheets are selected in act 1660 and then for the prop_item {prop_item = prop_item_val } is substituted and the results are displayed to the user in act 1670. For example for a query {TV 1080p}, the corresponding 2nd level node of FIG.8C consisting of the 2nd level relations namely {TV I Resolution} is selected and the corresponding presentation sheets are selected in act 1660 and then {Resolution = 1080p} is substituted and are displayed to the user in act 1670.
10) If there are two keywords in the query where one is part_item_val and the other is prop_item then based on the corresponding part_item derived earlier, the corresponding 2nd level node is selected in act 1650 and the corresponding presentation sheets are selected in act 1660 and then {part_item = part_item_val} is substituted and are displayed to the user in act 1670. For example for a query {LNT5265 Resolution}, the corresponding 2n level node of FIG.8C consisting of the 2n level relations namely {TV I Resolution} is selected and the corresponding presentation sheets are selected in act 1660 and then {TV = LNT5265 } is substituted and the results are displayed to the user in act 1670.
E) If there are multiple part_items and multiple prop_items in the query, the following is performed:
11) If there are multiple part_items and multiple prop_items in the query, then the n-ary level node with all those part_items and each of those prop_items is selected in act 1650 and the corresponding presentation sheets are selected in act 1660 and are displayed to the user in act 1670. For example for a query {TV Player Resolution}, the corresponding 3rd-level node of FIG.8C consisting of the 3rd-level relations namely {TV I Player I Resolution} is selected and the corresponding presentation sheets are selected in act 1660 and are displayed to the user in act 1670.
F) If there are multiple part_items and multiple prop_items where some of them are part_item_vals and some of them are prop_item_vals in the query, the following is performed:
12) If there are multiple part_items and multiple prop_items where some of them are part_item_vals and some of them are prop_item_vals in the query, then based on the corresponding part_items and prop_items derived earlier, the n-ary level node with all those part_items and each of those prop_items is selected in act 1650 and the corresponding presentation sheets are selected in act 1660 and then for the part_item {part_item = part_item_val} and for the prop_item {prop_item = prop_item_val } are substituted and the results are displayed to the user in act 1670. For example for a query {TV Player 1080p}, the corresponding 3rd level node of FIG.8C consisting of the 3rd level relations namely {TV I Player I Resolution} is selected and the corresponding presentation sheets are selected in act 1660 and then {Resolution = 1080p} is substituted and are displayed to the user in act 1670. In a second example for a query {LNT5265 Player Resolution}, the corresponding 3rd level node of FIG.8C consisting of the 3rd level relations namely {TV I Player I Resolution} is selected and the corresponding presentation sheets are selected in act 1660 and then {TV = LNT5265 } is substituted and the results are displayed to the user in act 1670. In a third example for a query {LNT5265 Player 1080p}, the corresponding 3rd level node of FIG.8C consisting of the 3rd level relations namely {TV I Player I Resolution} is selected and the corresponding presentation sheets are selected in act 1660 and then {TV = LNT5265 }, {Resolution = 1080p} are substituted and the results are displayed to the user in act 1670.
G) If one or more of the keywords, in one of the query types A-F, is a synonym of an item, the following is performed:
13) If one or more of the keywords, in one of the query types A-F, is a synonym of an item, then based on the corresponding synonym parent of them derived earlier, then the n-ary level node with all those part_items and each of those prop_items is selected in act 1650 and the corresponding presentation sheets are selected in act 1660 and then the synonym of the item which is the keyword in the query is substituted and the results are displayed to the user in act 1670. For example for a query {TV Player Pixels}, after deriving the synonym parent of "Pixels" is "Resolution" based on the relation {Resolution ≡ Pixels}, the corresponding 3r level node of FIG.8C consisting of the 3r level relations namely {TV I Player I Resolution} is selected and the corresponding presentation sheets are selected in act 1660 and finally the synonym of the item "Resolution" that is original keyword in the query which is "Pixels" is substituted and the results are displayed to the user in act 1670.
H) If one or more of the keywords, in one of the query types A-F, has a kind-of relation on a part_item, the following is performed:
14) If one or more of the keywords, in one of the query types A-F, has a kind-of relation on a part_item, then based on the corresponding kind-of parent of them derived earlier, the n-ary level node with all those part_items and each of those prop_items is selected in act 1650 and the corresponding presentation sheets are selected in act 1660 and then the original kind-of relation keyword of the item which is the keyword in the query and the corresponding rule is selected and applied, and the resulting presentation sheets are displayed to the user in act 1670. For example for a query {DTV Player Pixels}, after deriving the kind-of parent of "DTV" which is "TV" based on the relation {"DTV c TV" when "Screen_type != CRT"}, the corresponding 3rd level node of FIG.8C consisting of the 3rd level relations namely {TV I Player I Resolution} is selected and the corresponding presentation sheets are selected in act 1660 and finally the kind-of relation rule for "DTV" is applied and the results are displayed to the user in act 1670.
I) If all the keywords are instances of the same n-ary relation, the following is performed:
15) If all the keywords are instances of the same n-ary relation, then based on the corresponding part_items and prop_items of them derived earlier, the n-ary level node with all those part_items and each of those prop_items is selected in act 1650 and the corresponding presentation sheets are selected in act 1660 and then they are substituted with both the instances of n-ary relation and the resulting change presentation sheets are displayed to the user in act 1670. For example for a query {LNT5265 KDL40S3000}, after deriving the corresponding part_item "TV", the corresponding 2n level node of FIG.8C consisting of the 2nd-level relations namely {TV I Resolution} is selected and then {TV = LNT5265} is substituted followed by {TV = KDL40S3000} is also substituted and then the change is determined between the two results before the corresponding presentation sheets are selected in act 1660 and the results are displayed to the user in act 1670.
Numerous modifications and adaptations of the embodiments, implementations, and examples described herein will be apparent to the skilled artisan in view of the disclosure.

Claims

CLAIMSWhat is claimed is:
1. A method comprising: receiving a query containing a plurality of keywords; associating said each keyword with an ontology; deriving a plurality of relations between said plurality of keywords; searching a database of relations for matches of said derived plurality of relations and returning results corresponding to said matches to a user.
2. The method of claim 1, wherein said act of receiving a query performs parsing of said query string to generate said plurality of keywords; said act of associating each keyword performs searching of a keyword database and classifying said each keyword as a part_item, a prop_item, a synonym of part_item, a synonym of a prop_item, a kind-of relation of a part_item, a part_item_val, or a prop_item_val; said act of deriving a plurality of relations performs generating all possible valid n-ary relations between any combination of all said plurality of keywords; said act of searching a database of relations is a hierarchical part-of graph comprising all possible combinations of n-ary relations and finding said matches for said derived plurality of relations with instance sets in said hierarchical part-of graph; said act of returning results to a user performs presenting said matching n-ary relations in a tabular form with links to matching documents.
3. A computer program package embodied on a computer readable form, said computer program package includes instructions, that when executed by a processor, cause said processor perform an action selected from the group consisting of: receiving a query containing a plurality of keywords; and associating each keyword with an ontology; and deriving a plurality of relations between said plurality of keywords; searching a database of relations for matches of said derived plurality of relations; and returning results to a user.
4. An information retrieval system, said system comprising: a database of relations; query processing logic operable to receive a query containing a plurality of keywords; associating logic operable to associate each keyword with an ontology; derivation logic operable to derive a plurality of relations between said plurality of keywords; searching logic operable to search for matches of said derived plurality of relations; and presentation logic operable to present results corresponding to said matches to a user.
5. The system of claim 4, wherein said query processing logic further involves parsing of said query string to generate said plurality of keywords; said associating logic operable to associate each keyword involves searching of a keyword database and associating said each keyword as a part_item, a prop_item, a synonym of part_item, a synonym of a prop_item, a kind-of relation of a part_item, a part_item_val, or a prop_item_val; said derivation logic operable to derive a plurality of relations involves generating all possible valid n-ary relations between any combination of all said plurality of keywords; said searching logic operable to search a database of relations is a hierarchical part-of graph comprising all possible combinations of n-ary relations and finding said matches for said derived plurality of relations with instance sets in said hierarchical part- of graph; said presentation logic operable to present results corresponding to said matches to a user performs presenting said matching n-ary relations in a tabular form with links to matching documents.
6. A knowledgebase system, said system comprising: a hierarchical part-of graph with a plurality of n-ary relations; and said each n-ary relation is derived from a plurality of part_items and a plurality of prop_items; and said each n-ary relation comprises said part_items and said prop_items with their sum being "n" where n is an arbitrary integer; and in each said n-ary relation at least two part_items of said plurality of part_items have at least one common prop_item for n > 2.
7. The system of claim 6, further comprising: augmented with a plurality of synonym relations for each said part_item and a plurality of synonym relation for each said prop_item; and augmented with a plurality of kind-of relations for each said part_item; and augmented with a plurality of change relation for each said n-ary relation; and said each item may be linked to a document.
8. A method comprising: deriving a plurality of n-ary relations; and with each said n-ary relation formed from a plurality of part_items and a plurality of prop_items with their sum being "n" where n is an arbitrary integer; and in each said n-ary relation at least two part_items of said plurality of part_items have at least one common prop_item for n > 2.
9. The method of claim 8, further comprising: augmenting with a plurality of synonym relations for each said part_item and a plurality of synonym relation for each said prop_item; and augmenting with a plurality of kind-of relations for each said part_item; and augmenting with a plurality of change relation for each said n-ary relation; and said each item may be linked to a document.
10. The method of claim 8, further comprising: said deriving of each n-ary relation performs recursively selecting one or more Diary relations where m < n, to perform said deriving of each n-ary relation.
PCT/US2009/054701 2008-08-21 2009-08-21 Interrelated item search WO2010022378A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US9089308P 2008-08-21 2008-08-21
US61/090,893 2008-08-21

Publications (1)

Publication Number Publication Date
WO2010022378A1 true WO2010022378A1 (en) 2010-02-25

Family

ID=41707483

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2009/054701 WO2010022378A1 (en) 2008-08-21 2009-08-21 Interrelated item search

Country Status (1)

Country Link
WO (1) WO2010022378A1 (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130191325A1 (en) * 2008-09-03 2013-07-25 Hamid Hatami-Hanza System and Method of Ontological Subject Mapping For Knowledge Processing Applications
US9092504B2 (en) 2012-04-09 2015-07-28 Vivek Ventures, LLC Clustered information processing and searching with structured-unstructured database bridge
CN108416033A (en) * 2018-03-12 2018-08-17 北京汽车研究总院有限公司 A kind of data analysing method, device and terminal for automobile research and development

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020111941A1 (en) * 2000-12-19 2002-08-15 Xerox Corporation Apparatus and method for information retrieval
US20060053151A1 (en) * 2004-09-03 2006-03-09 Bio Wisdom Limited Multi-relational ontology structure
US20060116994A1 (en) * 2004-11-30 2006-06-01 Oculus Info Inc. System and method for interactive multi-dimensional visual representation of information content and properties
US20060167946A1 (en) * 2001-05-25 2006-07-27 Hellman Ziv Z Method and system for collaborative ontology modeling

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020111941A1 (en) * 2000-12-19 2002-08-15 Xerox Corporation Apparatus and method for information retrieval
US20060167946A1 (en) * 2001-05-25 2006-07-27 Hellman Ziv Z Method and system for collaborative ontology modeling
US20060053151A1 (en) * 2004-09-03 2006-03-09 Bio Wisdom Limited Multi-relational ontology structure
US20060116994A1 (en) * 2004-11-30 2006-06-01 Oculus Info Inc. System and method for interactive multi-dimensional visual representation of information content and properties

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130191325A1 (en) * 2008-09-03 2013-07-25 Hamid Hatami-Hanza System and Method of Ontological Subject Mapping For Knowledge Processing Applications
US9069828B2 (en) * 2008-09-03 2015-06-30 Hamid Hatami-Hanza System and method of ontological subject mapping for knowledge processing applications
US9092504B2 (en) 2012-04-09 2015-07-28 Vivek Ventures, LLC Clustered information processing and searching with structured-unstructured database bridge
CN108416033A (en) * 2018-03-12 2018-08-17 北京汽车研究总院有限公司 A kind of data analysing method, device and terminal for automobile research and development

Similar Documents

Publication Publication Date Title
US11023513B2 (en) Method and apparatus for searching using an active ontology
JP4637181B2 (en) Displaying search results based on document structure
US8099415B2 (en) Method and apparatus for assessing similarity between online job listings
US7917493B2 (en) Indexing and searching product identifiers
US9208185B2 (en) Indexing and search query processing
US8041733B2 (en) System for automatically categorizing queries
KR101223173B1 (en) Phrase-based indexing in an information retrieval system
US7739221B2 (en) Visual and multi-dimensional search
US20090125529A1 (en) Extracting information based on document structure and characteristics of attributes
US20140143250A1 (en) Centralized Tracking of User Interest Information from Distributed Information Sources
US20110167053A1 (en) Visual and multi-dimensional search
EP2060982A1 (en) Information storage and retrieval
KR20060048778A (en) Phrase-based searching in an information retrieval system
KR20060048777A (en) Phrase-based generation of document descriptions
KR20060048779A (en) Phrase identification in an information retrieval system
US20100094855A1 (en) System for transforming queries using object identification
GB2395807A (en) Information retrieval
US20220237220A1 (en) Template generation using directed acyclic word graphs
US20220405312A1 (en) Methods and systems for modifying a search result
Jannach et al. Automated ontology instantiation from tabular web sources—the AllRight system
Wu et al. Bootstrapping domain ontology for semantic web services from source web sites
WO2010022378A1 (en) Interrelated item search
WO2008130501A1 (en) Unstructured and semistructured document processing and searching and generation of value-based information
US11568314B2 (en) Data-driven online score caching for machine learning
US7216118B2 (en) Resilient document queries

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 09808905

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

WWE Wipo information: entry into national phase

Ref document number: 2126/DELNP/2011

Country of ref document: IN

122 Ep: pct application non-entry in european phase

Ref document number: 09808905

Country of ref document: EP

Kind code of ref document: A1