IP Library › Granted Patent US 12,743,476
Granted Patent B2
US 12,743,476 · App. 18/740,803 · Granted Sep 22, 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,743,476
App. No.
18/740,803
Granted
Sep 22, 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 (84)

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 uniform resource identifier interpreter of a search engine, a uniform resource identifier from a client device over a network, wherein the uniform resource identifier includes a path that includes one or more path segments that are natural language representations of one or more first search parameters that each indicate a criterion for selecting search results, and wherein the uniform resource identifier includes an additional representation of one or more other encoded parameters that (i) are not expressed as natural language representations in the uniform resource identifier and (ii) represent one or more second search parameters that each indicate a criterion for selecting search results, wherein the additional representation is not a natural language representation;

identifying, by the uniform resource identifier interpreter of the search engine, (i) the one or more first search parameters from the one or more path segments that are natural language representations and (ii) the one or more second search parameters using the additional representation of the one or more other encoded parameters that are not natural language representations in the uniform resource identifier;

performing, by a results generator of the search engine, a search by comparing records of a search index with the one or more first search parameters and the one or more second search parameters, wherein the records of the search index comprise keyword data derived from multiple sources over the network, and wherein the search identifies results based at least in part on the keyword data; and

providing, by the search engine, a set of the results of the search over the network for display by the client device.

2 . The system of claim 1 , wherein the additional representation is a session identifier; and

wherein identifying the one or more second search parameters comprises using the session identifier in the uniform resource identifier to obtain the one or more other encoded parameters that represent the one or more second search parameters that are not represented by natural language representations in the uniform resource identifier.

3 . The system of claim 2 , wherein the operations comprise storing, in a session identifier repository, multiple session identifiers corresponding to different search sessions; and

wherein the session identifier repository indicates, for each of the multiple session identifiers, one or more encoded parameters from the search session that corresponds to the session identifier.

4 . The system of claim 3 , wherein the encoded parameters stored in the session identifier repository comprise values for at least one of a user identifier, a location, a time of search, coordinates of a map, a query, or a search history.

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

displaying the uniform resource identifier;

receiving a user modification of a first natural language representation in the uniform resource identifier to generate a modified uniform resource identifier;

performing a modified search by the search engine using the modified uniform resource identifier as a search request; and

displaying results of the modified search.

6 . The system of claim 5 , wherein:

the first natural language representation comprises one or more words that describe a respective search parameter and one or more filter values that are associated with the respective search parameter; and

receiving a user modification of the first natural language representation comprises receiving a modification of at least one of the one or more filter values.

7 . The system of claim 1 , the operations further comprising formulating a search query based on the identified search parameters, wherein performing the search comprises executing the search query.

8 . The system of claim 7 , wherein executing the search query comprises:

identifying a set of search results response to the search query;

rank the search result in the set of search results; and

returning the ranked set of search results.

9 . The system of claim 1 , wherein the uniform resource identifier was previously generated by the search engine during an earlier browsing session.

10 . The system of claim 1 , wherein the uniform resource identifier is a static uniform resource locator.

11 . The system of claim 1 , wherein the uniform resource identifier is not a dynamic URL.

12 . The system of claim 1 , wherein the path segments are separated by slashes.

13 . The system of claim 1 , wherein the additional representation of the one or more other encoded parameters comprises a session identifier;

wherein the operations include, before receiving the uniform resource identifier, storing, by the search engine, data that associates the session identifier with the one or more other encoded parameters; and

wherein identifying the one or more second search parameters comprises identifying the one or more second search parameters based on the stored data that associates the session identifier with the one or more other encoded parameters.

14 . The system of claim 1 , wherein, in the path of the uniform resource identifier, boundaries of path segments are designated by slashes in the uniform resource identifier;

wherein the one or more other encoded parameters include a first encoded parameter, provided as a single path segment of the uniform resource identifier, that represents multiple different search criteria for selecting search results; and

wherein identifying the second respective search parameters comprises identifying the multiple different search criteria based on the first encoded parameter.

15 . The system of claim 1 , wherein the one or more first search parameters and the one or more second search parameters are search parameters that were specified by interaction of a user with interactive controls on a user interface of a search engine web page provided by the search engine during a previous session of user interaction with the search engine, wherein the uniform resource identifier is generated by the search engine based on the search parameters specified by the interaction of the user with the interactive controls; and

wherein the operations comprise, in response to the search engine receiving the uniform resource identifier, providing, by the search engine, content for a search web page having interactive controls configured with settings that cause the interactive controls to indicate the one or more first search parameters and the one or more second search parameters determined from the uniform resource identifier.

16 . The system of claim 15 , wherein the content for the search web page populates at least one of the interactive controls of the search web page to display a value that specifies the one or more first search parameters determined from the uniform resource identifier or the one or more second search parameters determined from the uniform resource identifier.

17 . The system of claim 1 , wherein providing the set of results of the search over the network for display by the client device comprises providing a list of search results identified by the results generator of the search engine in the search performed using the one or more first search parameters and the one or more second search parameters, wherein the search results in the list are ordered according to a ranking determined based on at least one metric or characteristic of the search results.

18 . The system of claim 17 , wherein the ranking of the search results in the list is based at least in part on a keyword frequency for one or more keywords associated with the search results.

19 . The system of claim 17 , wherein the search results represent entities located at different geographic locations, and wherein the ranking is based at least in part on values describing properties of the entities.

20 . The system of claim 1 , wherein providing the set of results of the search over the network for display by the client device comprises providing data indicating entities selected based on the one or more first search parameters and the one or more second search parameters, wherein the data comprises indications of geographical locations of the entities with respect to a map of a geographical area.

21 . The system of claim 1 , wherein performing the search comprises searching for entities located in a particular geographical region, and wherein the set of results of the search comprises entities located in the particular geographical region.

22 . The system of claim 21 , wherein the particular geographical region is a user-specified geographical region.

23 . The system of claim 1 , wherein the keyword data indicates keywords associated with different entities;

wherein performing the search comprises selecting entities based at least in part on the keyword data; and

wherein providing the results of the search comprises indicating a set of the selected entities that were selected based on based at least in part on the keyword data.

24 . The system of claim 21 , wherein the search index indicates, for each of a plurality of entities, a name of the entity, a geographical location of the entity, and one or more values indicating a property of the entity; and

wherein the entities in the set of selected entities are selected or ranked based at least in part on the names, the geographical locations, or the values indicated by the search index.

25 . The system of claim 1 , wherein the search index comprises information indexed from web pages obtained by a web crawler from the multiple sources over the Internet.

26 . The system of claim 1 , wherein the operations comprise, before performing the search:

using a web crawler to identify and obtain content from a plurality of servers over the network; and

indexing the content using an indexer and storing the indexed content in the search index.

27 . A computer-implemented method comprising:

receiving, by a uniform resource identifier interpreter of a search engine, a uniform resource identifier from a client device over a network, wherein the uniform resource identifier includes a path that includes one or more path segments that are natural language representations of one or more first search parameters that each indicate a criterion for selecting search results, and wherein the uniform resource identifier includes an additional representation of one or more other encoded parameters that (i) are not expressed as natural language representations in the uniform resource identifier and (ii) represent one or more second search parameters that each indicate a criterion for selecting search results, wherein the additional representation is not a natural language representation;

identifying, by the uniform resource identifier interpreter of the search engine, (i) the one or more first search parameters from the one or more path segments that are natural language representations and (ii) the one or more second search parameters using the additional representation of the one or more other encoded parameters that are not natural language representations in the uniform resource identifier;

performing, by a results generator of the search engine, a search by comparing records of a search index with the one or more first search parameters and the one or more second search parameters, wherein the records of the search index comprise keyword data derived from multiple sources over the network, and wherein the search identifies results based at least in part on the keyword data; and

providing, by the search engine, a set of the results of the search over the network for display by the client device.

28 . The method of claim 27 , wherein the additional representation is a session identifier; and

wherein identifying the one or more second search parameters comprises using the session identifier in the uniform resource identifier to obtain the one or more other encoded parameters that represent the one or more second search parameters that are not represented by natural language representations in the uniform resource identifier.

29 . The method of claim 27 , comprising:

displaying the uniform resource identifier;

receiving a user modification of a first natural language representation in the uniform resource identifier to generate a modified uniform resource identifier;

performing a modified search by the search engine using the modified uniform resource identifier as a search request; and

displaying results of the modified search.

30 . The method of claim 29 , wherein:

the first natural language representation comprises one or more words that describe a respective search parameter and one or more filter values that are associated with the respective search parameter; and

receiving a user modification of the first natural language representation comprises receiving a modification of at least one of the one or more filter values.

31 . The method of claim 27 , comprising formulating a search query based on the identified search parameters, wherein performing the search comprises executing the search query.

32 . The method of claim 27 , wherein the uniform resource identifier was previously generated by the search engine during an earlier browsing session.

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

receiving, by a uniform resource identifier interpreter of a search engine, a uniform resource identifier from a client device over a network, wherein the uniform resource identifier includes a path that includes one or more path segments that are natural language representations of one or more first search parameters that each indicate a criterion for selecting search results, and wherein the uniform resource identifier includes an additional representation of one or more other encoded parameters that (i) are not expressed as natural language representations in the uniform resource identifier and (ii) represent one or more second search parameters that each indicate a criterion for selecting search results, wherein the additional representation is not a natural language representation;

identifying, by the uniform resource identifier interpreter of the search engine, (i) the one or more first search parameters from the one or more path segments that are natural language representations and (ii) the one or more second search parameters using the additional representation of the one or more other encoded parameters that are not natural language representations in the uniform resource identifier;

performing, by a results generator of the search engine, a search by comparing records of a search index with the one or more first search parameters and the one or more second search parameters, wherein the records of the search index comprise keyword data derived from multiple sources over the network, and wherein the search identifies results based at least in part on the keyword data; and

providing, by the search engine, a set of the results of the search over the network for display by the client device.

34 . The one or more non-transitory storage devices of claim 33 , wherein the additional representation is a session identifier; and

wherein identifying the one or more second search parameters comprises using the session identifier in the uniform resource identifier to obtain the one or more other encoded parameters that represent the one or more second search parameters that are not represented by natural language representations in the uniform resource identifier.

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

displaying the uniform resource identifier;

receiving a user modification of a first natural language representation in the uniform resource identifier to generate a modified uniform resource identifier;

performing a modified search by the search engine using the modified uniform resource identifier as a search request; and

displaying results of the modified search.

36 . The one or more non-transitory storage devices of claim 35 , wherein:

the first natural language representation comprises one or more words that describe a respective search parameter and one or more filter values that are associated with the respective search parameter; and

receiving a user modification of the first natural language representation comprises receiving a modification of at least one of the one or more filter values.

37 . The one or more non-transitory storage devices of claim 33 , the operations further comprising formulating a search query based on the identified search parameters, wherein performing the search comprises executing the search query.

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/0782 →
Continuity (4)
Continuation 17087919 · Nov 3, 2020
Continuation 16110063 · Aug 23, 2018
Continuation 15042895 · Feb 12, 2016
Related Publication 20240330389A1 · Oct 3, 2024
References Cited (85)
US 6240360B1 · Phelan · 2001 [cited by applicant]
US 6804700B1 · Terek · 2004 [cited by examiner]
US 7293012B1 · Solaro · 2007 [cited by examiner]
US 7363308B2 · Dillon · 2008 [cited by applicant]
US 7886032B1 · Louz-On · 2011 [cited by examiner]
US 7886217B1 · Henzinger · 2011 [cited by examiner]
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 20080140626A1 · Wilson · 2008 [cited by examiner]
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 20130091115A1 · Brake · 2013 [cited by examiner]
US 20130304845A1 · Sanjeev · 2013 [cited by applicant]
US 20140025657A1 · Dorfman · 2014 [cited by examiner]
US 20140215316A1 · Guo · 2014 [cited by applicant]
US 20140222696A1 · Ashby · 2014 [cited by examiner]
US 20140279793A1 · Wohlstadter · 2014 [cited by applicant]
US 20140330865A1 · Xue · 2014 [cited by applicant]
US 20140358911A1 · McCarthy · 2014 [cited by applicant]
US 20150081440A1 · Blemaster · 2015 [cited by applicant]
US 20150205834A1 · Keeton et al. · 2015 [cited by applicant]
US 20150242536A1 · Surkov et al. · 2015 [cited by applicant]
US 20150264082A1 · Belva · 2015 [cited by examiner]
US 20170010763A1 · Mitchell · 2017 [cited by applicant]
US 20170235732A1 · Williams et al. · 2017 [cited by applicant]
US 20170286545A1 · Hewitt et al. · 2017 [cited by applicant]
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 20240330388A1 · 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]
Advisory Action in U.S. Appl. No. 17/087,919, mailed on Apr. 1, 2024, 2 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]
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 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,810, mailed on Aug. 15, 2024, 59 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]
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]
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]
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]
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]
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. 18/740,803, mailed on Dec. 12, 2024, 100 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. 14, 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]
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]
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,784, mailed on Mar. 5, 2025, 115 pages. [cited by applicant]
Office Action in U.S. Appl. No. 18/740,810, mailed on Dec. 27, 2024, 87 pages. [cited by applicant]
Office Action in U.S. Appl. No. 18/740,810, mailed on May 7, 2025, 22 pages. [cited by applicant]
Office Action in U.S. Appl. No. 18/753,023, mailed on Aug. 5, 2025, 41 pages. [cited by applicant]