IP Library Granted Patent US 9,501,469
Granted Patent B2
US 9,501,469 · App. 14/085,897 · Granted Nov 22, 2016

Analogy finder

Inventor: Anthony McCaffrey (West Brookfield, MA)
Assignee: University of Massachusetts
G06F17/2795G06F17/2775G06F17/30654
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 9,501,469
App. No.
14/085,897
Granted
Nov 22, 2016
Kind
B2
Abstract

A user provides a query that includes at least two of a subject, a predicate, and an object. A computer system identifies synonyms of one or more of the subject, predicate, and object, and forms new queries from the identified synonyms. The system searches a dataset using the new queries, and possibly also using the user-provided query, to produce search results. The system may process the search results, such as by filtering and/or sorting them. The system provides output representing the search results to the user. The user may use the search result output to identify answers that are analogous to answers to the query originally provided by the user.

Claims (101)

1. A method performed by at least one computer processor, the method comprising:

(A) obtaining, from a user, first data representing a first part of a sentence, wherein the first part of the sentence comprises a first one of a subject, a predicate, and an object;

(B) obtaining, from the user, second data representing a second part of the sentence, wherein the second part of the sentence comprises a second one of the subject, the predicate, and the object;

(C) identifying a synonym of the first part of the sentence;

(D) identifying a synonym of the second part of the sentence;

(E) forming a first query from the synonym of the first part of the sentence and the synonym of the second part of the sentence, comprising:

(E)(1) selecting a first form for the first query, wherein the first form specifies a first one of the following sequences:

subject, predicate, object;

subject, predicate;

subject, object;

predicate, object;

(E)(2) forming the first query in the first form the forming comprising:

(E)(2)(a) if the first form specifies the sequence subject, predicate, object, then forming the first query to include a subject followed by a predicate followed by an object, wherein the subject, predicate, and object are selected from the first part of the sentence, the second part of the sentence, the synonym of the first part of the sentence, and the synonym of the second part of the sentence;

(E)(2)(b) if the first form specifies the sequence subject, predicate, then forming the first query to include a subject followed by a predicate, wherein the subject and predicate are selected from the first part of the sentence, the second part of the sentence, the synonym of the first part of the sentence, and the synonym of the second part of the sentence;

(E)(2)(c) if the first form specifies the sequence subject, object, then forming the first query to include a subject followed by an object, wherein the subject and object are selected from the first part of the sentence, the second part of the sentence, the synonym of the first part of the sentence, and the synonym of the second part of the sentence; and

(E)(2)(d) if the first form specifies the sequence predicate, object, then forming the first query to include a predicate followed by an object, wherein the predicate and object are selected from the first part of the sentence, the second part of the sentence, the synonym of the first part of the sentence, and the synonym of the second part of the sentence; and

(F) searching a dataset in memory using the first query to identify a first subset of the dataset;

(G) providing, to the user, executed by the computer processor, output representing the subset of the dataset

wherein the sentence differs from the first query.

2. The method of claim 1 , wherein the first data comprises first text in a text string obtained from the user, wherein the second data comprises second text in the text string obtained from the user, and wherein the first text occurs before the second text in the text string.

3. The method of claim 1 , wherein (B) comprises identifying a hypernym of the first part of the sentence.

4. The method of claim 1 , wherein (C) comprises identifying a hypernym of the second part of the sentence.

5. The method of claim 1 , wherein (B) comprises identifying a hyponym of the first part of the sentence.

6. The method of claim 1 , wherein (C) comprises identifying a hyponym of the second part of the sentence.

7. The method of claim 1 , wherein (C) comprises:

(C)(1) identifying a plurality of synonyms of the first part of the sentence;

(C)(2) providing output representing the plurality of synonyms of the first part of the sentence; and

(C)(3) receiving user input selecting one of the plurality of synonyms of the first part of the sentence.

8. The method of claim 1 , wherein (D) comprises:

(D)(1) identifying a plurality of synonyms of the second part of the sentence;

(D)(2) providing output representing the plurality of synonyms of the second part of the sentence; and

(D)(3) receiving user input selecting one of the plurality of synonyms of the second part of the sentence.

9. The method of claim 1 , further comprising:

(G) filtering the subset of the dataset to produce a filtered subset of the dataset.

10. The method of claim 9 , further comprising:

(H) before (G), receiving input from a user;

wherein (G) comprises filtering the subset of the dataset based on the input received from the user.

11. The method of claim 1 , wherein the first part of the sentence comprises the predicate, and wherein the second part of the sentence comprises the object.

12. The method of claim 1 , wherein the first part of the sentence comprises the subject, and wherein the second part of the sentence comprises the object.

13. The method of claim 1 , wherein the first part of the sentence comprises the subject, and wherein the second part of the sentence comprises the predicate.

14. The method of claim 1 , wherein the first part of the sentence comprises the predicate, and wherein the predicate comprises a variable representing any verb phrase.

15. The method of claim 1 , wherein the first part of the sentence comprises the subject, and wherein the subject comprises a variable representing any noun phrase.

16. The method of claim 1 , wherein the first part of the sentence comprises the object, and wherein the object comprises a variable representing any noun phrase.

17. The method of claim 1 :

wherein the first part of the sentence comprises a subject;

wherein the second part of the sentence comprises a predicate;

wherein the subject occurs after the predicate in the sentence; and

wherein the predicate occurs after the subject in the query.

18. The method of claim 1 , further comprising:

(G) forming a second query from the synonym of the first part of the sentence and the synonym of the second part of the sentence, comprising:

(G)(1) selecting a second form for the second query, wherein the second form specifies a second one of the following sequences:

subject, predicate, object;

subject, predicate;

subject, object;

predicate, object;

(G)(2) forming the second query in the second form from at least two of the first part of the sentence, the second part of the sentence, the synonym of the first part of the sentence, and the synonym of the second part of the sentence; and

(H) searching the dataset using the second query to identify a second subset of the dataset;

wherein the second form differs from the first form.

19. A non-transitory computer-readable medium comprising computer program instructions, wherein the computer program instructions are executable by a computer processor to perform a method comprising:

(A) obtaining, from a user, first data representing a first part of a sentence, wherein the first part of the sentence comprises a first one of a subject, a predicate, and an object;

(B) obtaining, from the user, second data representing a second part of the sentence, wherein the second part of the sentence comprises a second one of the subject, the predicate, and the object;

(C) identifying a synonym of the first part of the sentence;

(D) identifying a synonym of the second part of the sentence;

(E) forming a first query from the synonym of the first part of the sentence and the synonym of the second part of the sentence, comprising:

(E)(1) selecting a first form for the first query, wherein the first form specifies a first one of the following sequences:

subject, predicate, object;

subject, predicate;

subject, object;

predicate, object;

(E)(2) forming the first query in the first form the forming comprising:

(E)(2)(a) if the first form specifies the sequence subject, predicate, object, then forming the first query to include a subject followed by a predicate followed by an object, wherein the subject, predicate, and object are selected from the first part of the sentence, the second part of the sentence, the synonym of the first part of the sentence, and the synonym of the second part of the sentence;

(E)(2)(b) if the first form specifies the sequence subject, predicate, then forming the first query to include a subject followed by a predicate, wherein the subject and predicate are selected from the first part of the sentence, the second part of the sentence, the synonym of the first part of the sentence, and the synonym of the second part of the sentence;

(E)(2)(c) if the first form specifies the sequence subject, object, then forming the first query to include a subject followed by an object, wherein the subject and object are selected from the first part of the sentence, the second part of the sentence, the synonym of the first part of the sentence, and the synonym of the second part of the sentence; and

(E)(2)(d) if the first form specifies the sequence predicate, object, then forming the first query to include a predicate followed by an object, wherein the predicate and object are selected from the first part of the sentence, the second part of the sentence, the synonym of the first part of the sentence, and the synonym of the second part of the sentence; and

(F) searching a dataset in memory using the first query to identify a first subset of the dataset;

(G) providing, to the user, executed by the computer processor, output representing the subset of the dataset

wherein the sentence differs from the first query.

20. The non-transitory computer-readable medium of claim 19 , wherein the first data comprises first text in a text string obtained from the user, wherein the second data comprises second text in the text string obtained from the user, and wherein the first text occurs before the second text in the text string.

21. The non-transitory computer-readable medium of claim 19 , wherein (B) comprises identifying a hypernym of the first part of the sentence.

22. The non-transitory computer-readable medium of claim 19 , wherein (C) comprises identifying a hypernym of the second part of the sentence.

23. The non-transitory computer-readable medium of claim 19 , wherein (B) comprises identifying a hyponym of the first part of the sentence.

24. The non-transitory computer-readable medium of claim 19 , wherein (C) comprises identifying a hyponym of the second part of the sentence.

25. The non-transitory computer-readable medium of claim 19 , wherein (C) comprises:

(C)(1) identifying a plurality of synonyms of the first part of the sentence;

(C)(2) providing output representing the plurality of synonyms of the first part of the sentence; and

(C)(3) receiving user input selecting one of the plurality of synonyms of the first part of the sentence.

26. The non-transitory computer-readable medium of claim 19 , wherein (D) comprises:

(D)(1) identifying a plurality of synonyms of the second part of the sentence;

(D)(2) providing output representing the plurality of synonyms of the second part of the sentence; and

(D)(3) receiving user input selecting one of the plurality of synonyms of the second part of the sentence.

27. The non-transitory computer-readable medium of claim 19 , wherein the method further comprises:

(G) filtering the subset of the dataset to produce a filtered subset of the dataset.

28. The non-transitory computer-readable medium of claim 27 , wherein the method further comprises:

(H) before (G), receiving input from a user;

wherein (G) comprises filtering the subset of the dataset based on the input received from the user.

29. The non-transitory computer-readable medium of claim 19 , wherein the first part of the sentence comprises the predicate, and wherein the second part of the sentence comprises the object.

30. The non-transitory computer-readable medium of claim 19 , wherein the first part of the sentence comprises the subject, and wherein the second part of the sentence comprises the object.

31. The non-transitory computer-readable medium of claim 19 , wherein the first part of the sentence comprises the subject, and wherein the second part of the sentence comprises the predicate.

32. The non-transitory computer-readable medium of claim 19 , wherein the first part of the sentence comprises the predicate, and wherein the predicate comprises a variable representing any verb phrase.

33. The non-transitory computer-readable medium of claim 19 , wherein the first part of the sentence comprises the subject, and wherein the subject comprises a variable representing any noun phrase.

34. The non-transitory computer-readable medium of claim 19 , wherein the first part of the sentence comprises the object, and wherein the object comprises a variable representing any noun phrase.

Assignments (5)
CONFIRMATORY LICENSE Recorded Apr 15, 2020
From: UNIVERSITY OF MASSACHUSETTS, AMHERST
To: NATIONAL SCIENCE FOUNDATION
Reel/Frame 052410/0410 →
CONFIRMATORY LICENSE Recorded Feb 27, 2020
From: UNIVERSITY OF MASSACHUSETTS, AMHERST
To: NATIONAL SCIENCE FOUNDATION
Reel/Frame 052044/0894 →
CONFIRMATORY LICENSE Recorded Jul 31, 2014
From: UNIVERSITY OF MASSACHUSETTS
To: NATIONAL SCIENCE FOUNDATION
Reel/Frame 033450/0131 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 21, 2013
From: MCCAFFREY, ANTHONY
To: UNIVERSITY OF MASSACHUSETTS
Reel/Frame 031647/0169 →
LICENSE Recorded Nov 21, 2013
From: UNIVERSITY OF MASSACHUSETTS
To: INNOVATION ACCELERATOR, INC.
Reel/Frame 031647/0461 →
Continuity (2)
Provisional Application 61728924 · Nov 21, 2012
Related Publication 20140180677A1 · Jun 26, 2014