IP Library Granted Patent US 10,482,106
Granted Patent B2
US 10,482,106 · App. 14/860,460 · Granted Nov 19, 2019

Querying a database using relationship metadata

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 10,482,106
App. No.
14/860,460
Granted
Nov 19, 2019
Kind
B2
Abstract

Categorizing data in an on-demand database environment is provided. The categorized data is accessed to provide results based on statistical likelihood that records provide a desired result of a query. The categorization of the data includes organizing queries based on semantic terms, with categorization based on a multidimensional categorization of data in the database environment. The generating of results includes accessing relationship metadata both for individual records and for categories. Relationships along the same category, or among categories can provide records that may answer the query. The relationships and statistics are updated based on usage of the results data. Records and relationships identified as being used to solve the query, or being a desired solution to the query, can be weighted more heavily, thus increasing the likelihood of providing the most relevant data for subsequent queries.

Claims (50)

1. A method comprising:

classifying a database query into a designated one or more of a plurality of categories specified in a multidimensional categorization scheme via a processor, each category having one or more category dimensions, each category dimension providing a respective access path to records in the database, the database including a first plurality of records retrieved in response to queries and a second plurality of records storing queries, each of the first plurality of records being classified into a respective one or more of the plurality of categories based on one or both of a content of the record and a respective relationship metadata entry generated for the record, the respective relationship metadata entry being generated based on whether the respective record successfully or unsuccessfully answered any one or more of the queries stored as records, the relationship metadata entry including:

category relationship metadata identifying one or more relationships among the designated one or more categories and a respective one or more of the plurality of categories, wherein the relationships includes a first relationship type metadata to indicate a record relationship to another record in a multitenant database system (MTS) and a second relationship type metadata to indicate a category relationship to other available categories of the multidimensional categorization scheme associated with a user's tenant ID in the multitenant database system; and

record relationship metadata identifying relationships between the record and other records in the database, including other records classified as belonging to a same one or more categories into which the record was classified; and

retrieving one or more records from the database based on the database query, the retrieved records including a first one or more records that are related to any of the one or more categories, the retrieved records including a second one or more records that are related to the first one or more records based on the record relationship metadata;

for one or more of the retrieved records, computing a statistical likelihood that the record represents a solution to the query meriting inclusion in a result set for the query; and

transmitting via a communication interface a query response that includes only the subset of retrieved records for which the statistical likelihood exceeds a designated threshold.

2. The method recited in claim 1 , the method further comprising:

accumulating usage statistics for a designated retrieved record based on user actions associated with the retrieved record in response to the database query, including determining whether the retrieved record successfully or unsuccessfully answered the database query; and

updating the respective relationship metadata record for the retrieved record based on the accumulated usage statistics.

3. The method recited in claim 2 , wherein computing a statistical likelihood that the record represents a solution to the query meriting inclusion in a result set for the query is computed based on the accumulated usage statistics.

4. The method recited in claim 1 , the method further comprising:

accessing a cluster group identifying additional relationships between the retrieved records and other records in the database, the additional relationships based on relationship metadata identifying a category or record as having related items, each related item representing data that can be related to data contained in the retrieved records; and

responsive to the query retrieving records identified as having relationships to the retrieved records based on accessing the cluster group.

5. The method recited in claim 4 , wherein the related items can be any one or more of data identifying a product, feature, solution, and problem in a knowledge base associated with the database.

6. The method recited in claim 4 , wherein returning the subset of the retrieved records includes returning the subset of the retrieved records remaining after excluding those records determined not likely to successfully answer the query based the relationship metadata accessed in the cluster group.

7. The method recited in claim 1 , wherein the database is hosted by the MTS, the MTS storing data in the database for multiple tenants, each tenant's data segregated from other tenants' data using a unique tenant identifier, wherein each relationship metadata entry is stored in a respective user defined database associated with the unique tenant identifier.

8. A computer system including a database system, the database system configurable to perform a method comprising:

classifying a database query into a designated one or more of a plurality of categories specified in a multidimensional categorization scheme via a processor, each category having one or more category dimensions, each category dimension providing a respective access path to records in the database, the database including a first plurality of records retrieved in response to queries and a second plurality of records storing queries, each of the first plurality of records being classified into a respective one or more of the plurality of categories based on one or both of a content of the record and a respective relationship metadata entry generated for the record, the respective relationship metadata being generated based on whether the respective record successfully or unsuccessfully answered any one or more of the queries stored as records, the relationship metadata entry including:

category relationship metadata identifying one or more relationships among the designated one or more categories and a respective one or more of the plurality of categories, wherein the relationships includes a first relationship type metadata to indicate a record relationship to another record in a multitenant database system (MTS) and a second relationship type metadata to indicate a category relationship to other available categories of the multidimensional categorization scheme associated with a user's tenant ID in the multitenant database system; and

record relationship metadata identifying relationships between the record and other records in the database, including other records classified as belonging to a same one or more categories into which the record was classified; and

retrieving one or more records from the database based on the database query, the retrieved records including a first one or more records that are related to any of the one or more categories, the retrieved records including a second one or more records that are related to the first one or more records based on the record relationship metadata;

for one or more of the retrieved records, computing a statistical likelihood that the record represents a solution to the query meriting inclusion in a result set for the query; and

transmitting via a communication interface a query response that includes only the subset of retrieved records for which the statistical likelihood exceeds a designated threshold.

9. The computer system recited in claim 8 , the method further comprising:

accumulating usage statistics for a designated retrieved record based on user actions associated with the retrieved record in response to the database query, including determining whether the retrieved record successfully or unsuccessfully answered the database query; and

updating the respective relationship metadata record for the retrieved record based on the accumulated usage statistics.

10. The computer system recited in claim 9 , wherein computing a statistical likelihood that the record represents a solution to the query meriting inclusion in a result set for the query is computed based on the accumulated usage statistics.

11. The computer system recited in claim 8 , the method further comprising:

accessing a cluster group identifying additional relationships between the retrieved records and other records in the database, the additional relationships based on relationship metadata identifying a category or record as having related items, each related item representing data that can be related to data contained in the retrieved records; and

responsive to the query retrieving records identified as having relationships to the retrieved records based on accessing the cluster group.

12. The computer system recited in claim 11 , wherein the related items can be any one or more of data identifying a product, feature, solution, and problem in a knowledge base associated with the database.

13. The computer system recited in claim 11 , wherein returning the subset of the retrieved records includes returning the subset of the retrieved records remaining after excluding those records determined not likely to successfully answer the query based the relationship metadata accessed in the cluster group.

14. The computer system recited in claim 8 , wherein the database is hosted by the MTS, the MTS storing data in the database for multiple tenants, each tenant's data segregated from other tenants' data using a unique tenant identifier, wherein each relationship metadata entry is stored in a respective user defined database associated with the unique tenant identifier.

15. The one or more non-transitory computer readable storage media having instructions stored thereon for performing a method, the method comprising:

classifying a database query into a designated one or more of a plurality of categories specified in a multidimensional categorization scheme via a processor, each category having one or more category dimensions, each category dimension providing a respective access path to records in the database, the database including a first plurality of records retrieved in response to queries and a second plurality of records storing queries, each of the first plurality of records being classified into a respective one or more of the plurality of categories based on one or both of a content of the record and a respective relationship metadata entry generated for the record, the respective relationship metadata being generated based on whether the respective record successfully or unsuccessfully answered any one or more of the queries stored as records, the relationship metadata entry including:

category relationship metadata identifying one or more relationships among the designated one or more categories and a respective one or more of the plurality of categories, wherein the relationships includes a first relationship type metadata to indicate a record relationship to another record in a multitenant database system (MTS) and a second relationship type metadata to indicate a category relationship to other available categories of the multidimensional categorization scheme associated with a user's tenant ID in the multitenant database system; and

record relationship metadata identifying relationships between the record and other records in the database, including other records classified as belonging to a same one or more categories into which the record was classified; and

retrieving one or more records from the database based on the database query, the retrieved records including a first one or more records that are related to any of the one or more categories, the retrieved records including a second one or more records that are related to the first one or more records based on the record relationship metadata;

for one or more of the retrieved records, computing a statistical likelihood that the record represents a solution to the query meriting inclusion in a result set for the query; and

transmitting via a communication interface a query response that includes only the subset of retrieved records for which the statistical likelihood exceeds a designated threshold.

16. The one or more non-transitory computer readable storage media recited in claim 15 , the method further comprising:

accumulating usage statistics for a designated retrieved record based on user actions associated with the retrieved record in response to the database query, including determining whether the retrieved record successfully or unsuccessfully answered the database query; and

updating the respective relationship metadata record for the retrieved record based on the accumulated usage statistics.

17. The one or more non-transitory computer readable storage media recited in claim 16 , wherein computing a statistical likelihood that the record represents a solution to the query meriting inclusion in a result set for the query is computed based on the accumulated usage statistics.

18. The one or more non-transitory computer readable storage media recited in claim 15 , the method further comprising:

accessing a cluster group identifying additional relationships between the retrieved records and other records in the database, the additional relationships based on relationship metadata identifying a category or record as having related items, each related item representing data that can be related to data contained in the retrieved records; and

responsive to the query retrieving records identified as having relationships to the retrieved records based on accessing the cluster group.

19. The one or more non-transitory computer readable storage media recited in claim 18 , wherein the related items can be any one or more of data identifying a product, feature, solution, and problem in a knowledge base associated with the database.

20. The one or more non-transitory computer readable storage media recited in claim 18 , wherein returning the subset of the retrieved records includes returning the subset of the retrieved records remaining after excluding those records determined not likely to successfully answer the query based the relationship metadata accessed in the cluster group.

Assignments (3)
CHANGE OF NAME Recorded Nov 21, 2024
From: SALESFORCE.COM, INC.
To: SALESFORCE, INC.
Reel/Frame 069430/0939 →
CORRECTIVE ASSIGNMENT TO CORRECT THE FIRST INVENTOR NAME PREVIOUSLY RECORDED AT REEL: 036615 FRAME: 0373. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Oct 21, 2015
From: OKSMAN, EUGENE; HERSANS, ALEXANDRE
To: SALESFORCE.COM, INC.
Reel/Frame 036920/0488 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 21, 2015
From: OSKMAN, EUGENE; HERSANS, ALEXANDRE
To: SALESFORCE.COM, INC.
Reel/Frame 036615/0373 →