IP Library › Granted Patent US 12,737,426
Granted Patent B2
US 12,737,426 · App. 18/740,784 · Granted Sep 15, 2026

Uniform resource identifier encoding

Inventors: Heidemarie W. Williams (Homer Glen, IL); Adam Fischer (Mokena, IL); Tod Kuwahara (South Pasadena, CA)
Assignee: CoStar Realty Information, Inc.
G06F16/9566G06F16/955
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 12,737,426
App. No.
18/740,784
Granted
Sep 15, 2026
Kind
B2
Abstract

Methods, systems, and apparatus, including computer programs encoded on a computer storage medium, for receiving a query including search parameters; selecting one or more of the search parameters; for each of the selected parameters: generating a natural language representation of the selected parameter, and determining a rank of the selected parameter among the one or more selected parameters; generating a uniform resource identifier comprising the natural language representations of the selected parameters arranged in an order based on the ranks; obtaining one or more search results identified as responsive to the query; and providing the uniform resource identifier and the one or more search results for output.

Claims (104)

1 . A system comprising one or more computers and one or more storage devices storing instructions that are operable, when executed by the one or more computers, to cause the one or more computers to perform operations comprising:

receiving, by a search engine and from a user, through a first interaction between the user and one or more controls on a graphical user interface of the search engine, a first search parameter sent to the search engine over a network by a client device of the user;

in response to the search engine receiving the second search parameter from the user:

generating, by a uniform resource identifier constructor of the search engine, a first natural language representation that represents the first search parameter; and

encoding, by the uniform resource identifier constructor of the search engine, a first uniform resource identifier in a format that is interpretable by a results generator of the search engine, wherein the uniform resource identifier comprises a path, and wherein the first uniform resource identifier includes the first natural language representation as a portion of the path of the first uniform resource identifier;

identifying, by the results generator of the search engine, a first search result that satisfies the first search parameter based on comparing the first search parameter to data stored in a search index;

transmitting, by the search engine and to the client device over the network, the first search result that satisfies the first search parameter and the first uniform resource identifier for display;

displaying in the graphical user interface (1) the first search result that satisfies the first search parameter, and (2) the first uniform resource identifier;

receiving, by the search engine and from the user, through a subsequent, second interaction between the user and one or more controls on the graphical user interface, a second search parameter that is not represented in the first uniform resource identifier, the second search parameter being sent to the search engine over the network by the client device of the user;

in response to the search engine receiving the second search parameter from the user:

generating, by the uniform resource identifier constructor of the search engine, a second natural language representation that represents the second search parameter;

determining, by the uniform resource identifier constructor of the search engine, an ordinal position in which the second natural language representation is to be added as a new portion of the path relative to a position of the first natural language representation in the first uniform resource identifier according to respective ranking scores of the first and second natural language representations, wherein the ranking scores of some types of search parameters are ranked before other types of search parameters; and

encoding, by the uniform resource identifier constructor of the search engine, an updated uniform resource identifier in the format that is interpretable by the search engine, wherein the updated uniform resource identifier comprises an updated version of the path, and wherein the updated uniform resource identifier includes the new portion of the path for the second natural language representation placed in the ordinal position relative to the portion of the path for the first natural language representation;

identifying, by the results generator of the search engine, a second search result that satisfies the second search parameter and the first search parameter based on comparing the second search parameter to the data stored in the search index;

transmitting, by the search engine and to the client device over the network, the second search result and the updated uniform resource identifier for display; and

displaying in the graphical user interface (1) the second search result that satisfies the first and second search parameters, and (2) the updated uniform resource identifier that includes the portion of the path for the first natural language representation and the portion of the path for the second natural language representation.

2 . The system of claim 1 , the operations further comprising:

providing, by the search engine, a search webpage to the user; and

receiving, by the search engine, multiple search parameters including the first and the second search parameters that were specified through the search webpage.

3 . The system of claim 1 , wherein:

the first and the second natural language representations each comprise one or more words that describe the respective first and second search parameters and one or more respective received filter values that are associated with the respective first and second search parameters.

4 . The system of claim 1 , the operations further comprising:

receiving from the user, through a third interaction between the user and one or more controls on the graphical user interface, a third search parameter;

determining not to represent the third search parameter by a natural language representation;

generating a third uniform resource identifier in which the third search parameter is encoded and represented as a session identifier; and

displaying in the graphical user interface (1) a third search result that satisfies the first and third search parameter, and (2) the third uniform resource identifier.

5 . The system of claim 1 , wherein:

the first search parameter and the second search parameter each satisfy an inclusion criterion;

generating the first natural language representation and generating the second natural language representation are performed by code in the search engine; and

the ranking scores of the first and second natural language representations are determined by code in the search engine.

6 . The system of claim 1 , the operations further comprising:

receiving from the user, before displaying the first search result and the first uniform resource identifier, and instruction to transmit a search query containing the first search parameter to the search engine.

7 . The system of claim 1 , wherein the first uniform resource identifier includes the first natural language representation for the first search parameter, and other query parameters that are not represented by natural language representations.

8 . The system of claim 1 , wherein the first uniform resource identifier includes the first natural language representation for the first search parameter, and no other natural language representations for any other search parameters.

9 . The system of claim 1 , wherein the second interaction comprises a manipulation of a drop-down list on the graphical user interface by the user.

10 . The system of claim 1 , wherein the first search result is displayed on the graphical user interface without the user transmitting the first uniform resource identifier to the search engine.

11 . The system of claim 1 , wherein the first natural language representation is included in a position of the first uniform resource identifier other than in a query parameter or query string.

12 . The system of claim 1 , wherein encoding the first uniform resource identifier comprise encoding a static uniform resource locator.

13 . The system of claim 1 , wherein each search parameter comprises an attribute name and an attribute value.

14 . The system of claim 1 , wherein the first natural language representation and the second natural language representation include one or more text portions that identify a search filter and one or more text portions that identify a search filter value, and wherein the text portions are separated by dashes.

15 . One or more non-transitory storage devices storing instructions that are operable, when executed by one or more computers, to cause the one or more computers to perform operations comprising:

receiving, by a search engine and from a user, through a first interaction between the user and one or more controls on a graphical user interface of the search engine, a first search parameter sent to the search engine over a network by a client device of the user;

in response to the search engine receiving the first search parameter from the user:

generating, by a uniform resource identifier constructor of the search engine, a first natural language representation that represents the first search parameter; and

encoding, by the uniform resource identifier constructor of the search engine, a first uniform resource identifier in a format that is interpretable by a results generator of the search engine, wherein the uniform resource identifier comprises a path, and wherein the first uniform resource identifier includes the first natural language representation as a portion of the path of the first uniform resource identifier;

identifying, by the results generator of the search engine, a first search result that satisfies the first search parameter based on comparing the first search parameter to data stored in a search index;

transmitting, by the search engine and to the client device over the network, the first search result that satisfies the first search parameter and the first uniform resource identifier for display;

displaying in the graphical user interface (1) the first search result that satisfies the first search parameter, and (2) the first uniform resource identifier;

receiving, by the search engine and from the user, through a subsequent, second interaction between the user and one or more controls on the graphical user interface, a second search parameter that is not represented in the first uniform resource identifier, the second search parameter being sent to the search engine over the network by the client device of the user;

in response to the search engine receiving the second search parameter from the user:

generating, by the uniform resource identifier constructor of the search engine, a second natural language representation that represents the second search parameter;

determining, by the uniform resource identifier constructor of the search engine, an ordinal position in which the second natural language representation is to be added as a new portion of the path relative to a position of the first natural language representation in the first uniform resource identifier according to respective ranking scores of the first and second natural language representations, wherein the ranking scores of some types of search parameters are ranked before other types of search parameters; and

encoding, by the uniform resource identifier constructor of the search engine, an updated uniform resource identifier in the format that is interpretable by the search engine, wherein the updated uniform resource identifier comprises an updated version of the path, and wherein the updated uniform resource identifier includes a the new portion of the path for the second natural language representation placed in the ordinal position relative to the portion of the path for the first natural language representation;

identifying, by the results generator of the search engine, a second search result that satisfies the second search parameter and the first search parameter based on comparing the second search parameter to the data stored in the search index;

transmitting, by the search engine and to the client device over the network, the second search result and the updated uniform resource identifier for display; and

displaying in the graphical user interface (1) the second search result that satisfies the first and second search parameters, and (2) the updated uniform resource identifier that includes the portion of the path for the first natural language representation and the portion of the path for the second natural language representation.

16 . The one or more non-transitory storage devices of claim 15 , the operations further comprising:

providing, by the search engine, a search webpage to the user; and

receiving, by the search engine, multiple search parameters including the first and the second search parameters that were specified through the search webpage.

17 . The one or more non-transitory storage devices of claim 15 , wherein:

the first and the second natural language representations each comprise one or more words that describe the respective first and second search parameters and one or more respective received filter values that are associated with the respective first and second search parameters.

18 . The one or more non-transitory storage devices of claim 15 , the operations further comprising:

receiving from the user, through a third interaction between the user and one or more controls on the graphical user interface, a third search parameter;

determining not to represent the third search parameter by a natural language representation;

generating a third uniform resource identifier in which the third search parameter is encoded and represented as a session identifier; and

displaying in the graphical user interface (1) a third search result that satisfies the first and third search parameter, and (2) the third uniform resource identifier.

19 . The one or more non-transitory storage devices of claim 15 , wherein:

the first search parameter and the second search parameter each satisfy an inclusion criterion;

generating the first natural language representation and generating the second natural language representation are performed by code in the search engine; and

the ranking scores of the first and second natural language representations are determined by code in the search engine.

20 . The one or more non-transitory storage devices of claim 15 , the operations further comprising:

receiving from the user, before displaying the first search result and the first uniform resource identifier, and instruction to transmit a search query containing the first search parameter to the search engine.

21 . A computer-implemented method comprising:

receiving, by a search engine and from a user, through a first interaction between the user and one or more controls on a graphical user interface of the search engine, a first search parameter sent to the search engine over a network by a client device of the user;

in response to the search engine receiving the first search parameter from the user:

generating, by a uniform resource identifier constructor of the search engine, a first natural language representation that represents the first search parameter; and

encoding, by the uniform resource identifier constructor of the search engine, a first uniform resource identifier in a format that is interpretable by a results generator of the search engine, wherein the uniform resource identifier comprises a path, and wherein the first uniform resource identifier includes the first natural language representation as a portion of the path of the first uniform resource identifier;

identifying, by the results generator of the search engine, a first search result that satisfies the first search parameter based on comparing the first search parameter to data stored in a search index;

transmitting, by the search engine and to the client device over the network, the first search result that satisfies the first search parameter and the first uniform resource identifier for display;

displaying in the graphical user interface (1) the first search result that satisfies the first search parameter, and (2) the first uniform resource identifier;

receiving, by the search engine and from the user, through a subsequent, second interaction between the user and one or more controls on the graphical user interface, a second search parameter that is not represented in the first uniform resource identifier, the second search parameter being sent to the search engine over the network by the client device of the user;

in response to the search engine receiving the second search parameter from the user:

generating, by the uniform resource identifier constructor of the search engine, a second natural language representation that represents the second search parameter;

determining, by the uniform resource identifier constructor of the search engine, an ordinal position in which the second natural language representation is to be added as a new portion of the path relative to a position of the first natural language representation in the first uniform resource identifier according to respective ranking scores of the first and second natural language representations, wherein the ranking scores of some types of search parameters are ranked before other types of search parameters; and

encoding, by the uniform resource identifier constructor of the search engine, an updated uniform resource identifier in the format that is interpretable by the search engine, wherein the updated uniform resource identifier comprises an updated version of the path, and wherein the updated uniform resource identifier includes a the new portion of the path for the second natural language representation placed in the ordinal position relative to the portion of the path for the first natural language representation;

identifying, by the results generator of the search engine, a second search result that satisfies the second search parameter and the first search parameter based on comparing the second search parameter to the data stored in the search index;

transmitting, by the search engine and to the client device over the network, the second search result and the updated uniform resource identifier for display; and

displaying in the graphical user interface (1) the second search result that satisfies the first and second search parameters, and (2) the updated uniform resource identifier that includes the portion of the path for the first natural language representation and the portion of the path for the second natural language representation.

22 . The method of claim 21 , comprising:

providing, by the search engine, a search webpage to the user; and

receiving, by the search engine, multiple search parameters including the first and the second search parameters that were specified through the search webpage.

23 . The method of claim 21 , wherein:

the first and the second natural language representations each comprise one or more words that describe the respective first and second search parameters and one or more respective received filter values that are associated with the respective first and second search parameters.

24 . The method of claim 21 , comprising:

receiving from the user, through a third interaction between the user and one or more controls on the graphical user interface, a third search parameter;

determining not to represent the third search parameter by a natural language representation;

generating a third uniform resource identifier in which the third search parameter is encoded and represented as a session identifier; and

displaying in the graphical user interface ( 1 ) a third search result that satisfies the first and third search parameter, and ( 2 ) the third uniform resource identifier.

25 . The method of claim 21 , wherein:

the first search parameter and the second search parameter each satisfy an inclusion criterion;

generating the first natural language representation and generating the second natural language representation are performed by code in the search engine; and

the ranking scores of the first and second natural language representations are determined by code in the search engine.

26 . The method of claim 21 , comprising:

receiving from the user, before displaying the first search result and the first uniform resource identifier, and instruction to transmit a search query containing the first search parameter to the search engine.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 25, 2024
From: WILLIAMS, HEIDEMARIE W.; FISCHER, ADAM; KUWAHARA, TOD
To: COSTAR REALTY INFORMATION, INC.
Reel/Frame 067830/0327 →
Continuity (4)
Continuation 17087919 · Nov 3, 2020
Continuation 16110063 · Aug 23, 2018
Continuation 15042895 · Feb 12, 2016
Related Publication 20240330388A1 · Oct 3, 2024
References Cited (75)
US 6240360B1 · Phelan · 2001 [cited by applicant]
US 6804700B1 · Terek et al. · 2004 [cited by applicant]
US 7293012B1 · Solaro et al. · 2007 [cited by applicant]
US 7363308B2 · Dillon · 2008 [cited by applicant]
US 7886032B1 · Louz-On · 2011 [cited by applicant]
US 7886217B1 · Henzinger et al. · 2011 [cited by applicant]
US 9081861B2 · Lloyd · 2015 [cited by applicant]
US 9244931B2 · Radinsky · 2016 [cited by applicant]
US 9298838B2 · Boudreau · 2016 [cited by applicant]
US 10083244B2 · Williams et al. · 2018 [cited by applicant]
US 10318913B2 · Uslontsev · 2019 [cited by examiner]
US 10678819B2 · Boudreau et al. · 2020 [cited by applicant]
US 10846354B2 · Williams et al. · 2020 [cited by applicant]
US 20050080908A1 · Allen · 2005 [cited by examiner]
US 20070055745A1 · Moricz · 2007 [cited by applicant]
US 20070233695A1 · Boudreau · 2007 [cited by applicant]
US 20080222083A1 · Lim et al. · 2008 [cited by applicant]
US 20100131535A1 · Lin · 2010 [cited by applicant]
US 20100269108A1 · Boudreau · 2010 [cited by applicant]
US 20100332493A1 · Haas · 2010 [cited by applicant]
US 20110244882A1 · Hancock · 2011 [cited by applicant]
US 20120072918A1 · Zhong · 2012 [cited by applicant]
US 20130304845A1 · Sanjeev · 2013 [cited by applicant]
US 20140215316A1 · Guo · 2014 [cited by applicant]
US 20140330865A1 · Xue · 2014 [cited by applicant]
US 20140358911A1 · McCarthy · 2014 [cited by applicant]
US 20170010763A1 · Mitchell · 2017 [cited by applicant]
US 20170235732A1 · Williams et al. · 2017 [cited by applicant]
US 20170286545A1 · Hewitt · 2017 [cited by examiner]
US 20190007792A1 · Boudreau et al. · 2019 [cited by applicant]
US 20190121832A1 · Williams et al. · 2019 [cited by applicant]
US 20210006640A1 · Aoki · 2021 [cited by applicant]
US 20210133271A1 · Williams et al. · 2021 [cited by applicant]
US 20240330389A1 · Williams et al. · 2024 [cited by applicant]
US 20240330390A1 · Williams et al. · 2024 [cited by applicant]
US 20240346101A1 · Williams et al. · 2024 [cited by applicant]
CN 104850602 · 2015 [cited by applicant]
EP 1840512 · 2007 [cited by applicant]
CA Office Action in Canadian Appln. No. 2920825, dated Sep. 9, 2019, 3 pages. [cited by applicant]
Developer.Mozilla.org [online], “History: pushState() method,” available on or before Sep. 10, 2015 via Internet Archive: Wayback Machine URL<https://web.archive.org/web/20150910094408/https://developer.mozilla.org/en-U… [cited by applicant]
Searchenginejournal.com [online], “An SEO Guide to URL Parameter Handling,” Dec. 30, 2019, retrieved Sep. 12, 2024, retrieved from URL <https://www.searchenginejournal.com/technical-seo/url-parameter-handling/>, 19 page… [cited by applicant]
Susodigital.com [online], “A Complete Guide to Handling URL Parameters,” Jun. 24, 2023, retrieved Sep. 12, 2024, retrieved from URL <https://susodigital.com/blog/handling-url-parameters>, 10 pages. [cited by applicant]
Webmasters.stackexchange.com [online], “Can I use a query parameter for SEO, or do I need to create a URL path for each page?,” May 3, 2019, retrieved Sep. 12, 2024, retrieved from URL <https://webmasters.stackexchange.… [cited by applicant]
Advisory Action in U.S. Appl. No. 17/087,919, mailed on Apr. 1, 2024, 2 pages. [cited by applicant]
Blog.lunatech.com [online], “What every web developer must know about URL encoding,” Feb. 3, 2009, retrieved on Jan. 13, 2025, retrieved from URL <https://blog.lunatech.com/posts/2009-02-03-what-every-web-developer-must… [cited by applicant]
Developers.Google.com [online], “Dynamic URLs vs. static URLs,” Sep. 22, 2008, retrieved on Jan. 14, 2025, retrieved from URL <https://developers.google.com/search/blog/2008/09/dynamic-urls-vs-static-urls>, 5 pages. [cited by applicant]
Direction.com [online], “URL Structure 101: Formatting URLs that Boost SEO,” Apr. 18, 2024, retrieved Nov. 20, 2024, retrieved from URL <https://direction.com/seo-url-structure/#author>, 16 pages. [cited by applicant]
Launchschool.com [online], “What is a URL?,” Nov. 28, 2015, retrieved on Jan. 13, 2025, retrieved from URL <https://launchschool.com/books/http/read/what_is_a_url>, 5 pages. [cited by applicant]
Mysiteauditor.com [online], “Top 10 Most Important SEO Tips for URL Optimization,” Dec. 28, 2014, retrieved on Jan. 14, 2025, retrieved from URL <https://mysiteauditor.com/blog/top-10-most-important-seo-tips-for-url-opt… [cited by applicant]
Notice of Allowance in U.S. Appl. No. 15/042,895, mailed on Jul. 9, 2018, 9 pages. [cited by applicant]
Office Action in U.S. Appl. No. 15/042,895, mailed on May 11, 2018, 19 pages. [cited by applicant]
Office Action in U.S. Appl. No. 16/110,063, mailed on Apr. 17, 2020, 32 pages. [cited by applicant]
Office Action in U.S. Appl. No. 16/110,063, mailed on Jul. 29, 2020, 7 pages. [cited by applicant]
Office Action in U.S. Appl. No. 17/087,919, mailed on Aug. 21, 2024, 95 pages. [cited by applicant]
Office Action in U.S. Appl. No. 17/087,919, mailed on Dec. 10, 2024, 114 pages. [cited by applicant]
Office Action in U.S. Appl. No. 17/087,919, mailed on Feb. 29, 2024, 34 pages. [cited by applicant]
Office Action in U.S. Appl. No. 17/087,919, mailed on May 28, 2024, 36 pages. [cited by applicant]
Office Action in U.S. Appl. No. 17/087,919, mailed on Nov. 24, 2023, 32 pages. [cited by applicant]
Office Action in U.S. Appl. No. 18/740,784, mailed on Aug. 19, 2024, 103 pages. [cited by applicant]
Office Action in U.S. Appl. No. 18/740,803, mailed on Aug. 20, 2024, 78 pages. [cited by applicant]
Office Action in U.S. Appl. No. 18/740,803, mailed on Dec. 12, 2024, 100 pages. [cited by applicant]
Office Action in U.S. Appl. No. 18/740,810, mailed on Aug. 15, 2024, 59 pages. [cited by applicant]
Office Action in U.S. Appl. No. 18/740,810, mailed on Dec. 27, 2024, 87 pages. [cited by applicant]
Rfc-editor.org [online], “STD 66,” Jan. 2005, retrieved on Jan. 13, 2025, retrieved from URL <https://www.rfc-editor.org/info/std66>, 2 pages. [cited by applicant]
Rfc-editor.org [online], “Uniform Resource Identifier (URI): Generic Syntax,” Jan. 2005, retrieved on Jan. _, 2025, retrieved from URL <https://www.rfc-editor.org/rfc/pdfrfc/rfc3986.txt.pdf>, 61 pages. [cited by applicant]
Robertnyman.com [online], “The importance of a semantic URL,” Mar. 16, 2007, retrieved on Jan. 13, 2025, retrieved from URL <https://robertnyman.com/2007/03/16/the-importance-of-a-semantic-url/>, 10 pages. [cited by applicant]
Sitepoint.com [online], “Which URL is Right?,” Jan. 21, 2009, retrieved on Jan. 13, 2025, retrieved from URL <https://www.sitepoint.com/which-url-is-right/>, 8 pages. [cited by applicant]
SmashingMagazine.com [online], “Introduction to URL Rewriting,” Nov. 2, 2011, retrieved on Jan. 14, 2025, retrieved from URL <https://www.smashingmagazine.com/2011/11/introduction-to-url-rewriting/>, 22 pages. [cited by applicant]
Supplemental Notice of Allowance in U.S. Appl. No. 15/042,895, mailed on Jul. 20, 2018, 5 pages. [cited by applicant]
Tantek.com [online], “How many ways can you slice a URL and name the pieces?,” Aug. 26, 2011, retrieved on Jan. 14, 2025, retrieved from URL <https://tantek.com/2011/238/b1/many-ways-slice-url-name-pieces>, 5 pages. [cited by applicant]
Thegray.com [online], “Best Practices for Faceted Navigation & SEO: eCommerce Facets, Filters, and Sort Order,” Aug. 30, 2022, retrieved Nov. 20, 2024, retrieved from URL <https://thegray.company/blog/best-practices-for… [cited by applicant]
Thegray.company.com [online], “What's in an SEO-friendly URL? Best Practices for URLs,” Feb. 8, 2023, retrieved Nov. 20, 2024, retrieved from URL <https://thegray.company/blog/whats-in-an-seo-friendly-url>, 8 pages. [cited by applicant]
Office Action in U.S. Appl. No. 17/087,919, mailed on May 5, 2025, 23 pages. [cited by applicant]
Office Action in U.S. Appl. No. 18/740,803, mailed on May 5, 2025, 18 pages. [cited by applicant]
Office Action in U.S. Appl. No. 18/740,810, mailed on May 7, 2025, 22 pages. [cited by applicant]