IP Library Granted Patent US 7,480,674
Granted Patent B2
US 7,480,674 · App. 11/205,576 · Granted Jan 20, 2009

Data storage and retrieval system with parameterized category definitions for families of categories and dynamically generated search indices

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 7,480,674
App. No.
11/205,576
Granted
Jan 20, 2009
Kind
B2
Abstract

A data storage and retrieval system with parameterized category definitions and dynamically generated search indices. A parameterized category definition for a family of categories is obtained consisting of a parameterized predicate, such that parameter values can be provided with a search query to identify information items that match a category within the family of categories. The parameterized category definition is divided into a parameterized part and a static part. The static part is used to create associations between information items and the family of categories. The disclosed system processes the parameterized part of the category family definition to dynamically generate one or more search indices. The disclosed system determines whether any existing indices match the parameters of the parameterized part, and can accordingly be re-used. In the case where one or more indices are missing that are needed to support the parameterized part of the category family definition, the disclosed system operates to create them based on information items associated with the family of categories based on the static part of the parameterized category definition. Queries supplying values for the parameters of the parameterized category definition for the family of categories are subsequently processed to identify information items belonging to specific, dynamically defined categories within the family of categories.

Claims (30)

1. A method of providing categories for information items stored in an information storage and retrieval system, comprising:

obtaining a parameterized category definition for a family of categories;

logically separating a parameterized part of said parameterized category definition from a static part of said parameterized category definition, wherein said parameterized part includes a parameterized predicate, wherein said parameterized predicate, in combination with a set of dynamically obtained parameter values for said parameterized part, provides a test for an information item to which said parameterized predicate is applied, the result of which indicates whether said information item is a member of a dynamically defined category defined by said parameterized category definition and said parameter values;

associating those of said information items matching said static part of said parameterized category definition with said family of categories;

generating at least one search index associating those of said information items associated with said family of categories and having properties matching said parameterized part of said parameterized category definition with parameter values for said parameterized part of said parameterized category definition, including dynamically creating said at least one search index by, at least in part, indexing said information items associated with said family of categories to determine which of said information items associated with said family of categories match said parameterized Dart of said parameterized category definition;

obtaining a search query including an indication of said family of categories and parameter values for said parameterized part; and

determining, responsive to said indication of said family of categories, said parameter values of said parameterized part, and said at least one search index, which of said information items match said search query.

2. The method of claim 1 , wherein said generating said at least one search index comprises identifying one or more existing search indices matching at least a portion of said parameterized part of said parameterized category definition and sharing said existing search indices with another family of categories.

3. The method of claim 1 , wherein said obtaining said parameterized category definition comprises obtaining said parameterized category definition at run time from a separate application program.

4. The method of claim 1 , farther comprising:

converting said parameterized predicate into a conjunctive normal form logical representation; and

dividing said parameterized predicate into a static part and a parameterized part.

5. A system including a computer readable storage medium, said computer readable storage medium having a computer program stored thereon for providing categories for information items stored in an information storage and retrieval system, said computer program comprising:

program code for obtaining a parameterized category definition for a family of categories;

program code for logically separating a parameterized part of said parameterized category definition from a static part of said parameterized category definition, wherein said parameterized part includes a parameterized predicate, wherein said parameterized predicate, in combination with a set of dynamically obtained parameter values for said parameterized part, provides a test for an information item to which said parameterized predicate is applied, the result of which indicates whether said information item is a member of a dynamically defined category defined by said parameterized category definition and said parameter values;

program code for associating those of said information items matching said static part of said parameterized category definition with said family of categories;

program code for generating at least one search index associating those of said information items associated with said family of categories and having properties matching said parameterized part of said parameterized category definition with parameter values for said parameterized part of said parameterized category definition, including dynamically creating said at least one search index by, at least in part, indexing said information items associated with said family of categories to determine which of said information items associated with said family of categories match said parameterized part of said parameterized category definition;

program code for obtaining a search query including an indication of said family of categories and parameter values for said parameterized part; and program code for determining, responsive to said indication of said family of categories, said parameter values of said parameterized part, and said at least one search index, which of said information items match said search query.

6. The system of claim 5 , wherein said program code for generating said at least one search index comprises:

program code for identifying one or more existing search indices matching at least a portion of said parameterized part of said parameterized category definition; and program code for sharing said existing search indices with another family of categories.

7. The system of claim 5 , wherein said program code for obtaining said parameterized category definition comprises program code for obtaining said parameterized category definition at run time from a separate application program.

8. The system of claim 5 , further comprising:

program code for converting said parameterized predicate into a conjunctive normal form logical representation; and

program code for dividing said parameterized predicate into a static part and a parameterized part.

9. A computer program product including a computer readable storage medium, said computer readable storage medium having stored thereon a computer program for providing categories for information items stored in an information storage and retrieval system, said computer program comprising:

program code for obtaining a parameterized category definition for a family of categories;

program code for logically separating a parameterized part of said parameterized category definition from a static part of said parameterized category definition, wherein said parameterized part includes a parameterized predicate, wherein said parameterized predicate, in combination with a set of dynamically obtained parameter values for said parameterized part, provides a test for an information item to which said parameterized predicate is applied, the result of which indicates whether said information item is a member of a dynamically defined category defined by said parameterized category definition and said parameter values;

program code for associating those of said information items matching said static part of said parameterized category definition with said family of categories;

program code for generating at least one search index associating those of said information items associated with said family of categories and having properties matching said parameterized part of said parameterized category definition with parameter values for said parameterized part of said parameterized category definition, including dynamically creating said at least one search index by, at least in part, indexing said information items associated with said family of categories to determine which of said information items associated with said family of categories match said parameterized part of said parameterized category definition;

program code for obtaining a search query including an indication of said family of categories and parameter values for said parameterized part; and program code for determining, responsive to said indication of said family of categories, said parameter values of said parameterized part, and said at least one search index, which of said information items match said search query.

Assignments (6)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053546/0001) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC IP HOLDING COMPANY LLC
Reel/Frame 071642/0001 →
SECURITY AGREEMENT Recorded Mar 21, 2019
From: CREDANT TECHNOLOGIES, INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 049452/0223 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 15, 2018
From: MOZY, INC.
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 045243/0432 →
CHANGE OF NAME Recorded Aug 15, 2016
From: DECHO CORPORATION
To: MOZY, INC.
Reel/Frame 039681/0729 →
MERGER Recorded Apr 13, 2010
From: PI CORPORATION
To: DECHO CORPORATION
Reel/Frame 024223/0576 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 17, 2005
From: VENGUEROV, MARK
To: PI CORPORATION
Reel/Frame 017162/0306 →