parkerhancock / patent_client

A collection of ORM-style clients to public patent data
Other
89 stars 34 forks source link

Naive questions #106

Closed mazzespazze closed 1 year ago

mazzespazze commented 1 year ago

Hi!

Thank you for writing such a great library! Though I have several questions. Most of them might be replied in the docs, but I couldn't find my way. So forgive me if there is already a quick answer.

  1. I can't see the filters. In the documentation it is mentioned: image

Though when calling that I don't get any field. And in the source code I only get "this call returns fields". So which ones are the fields for filtering?

  1. I can't see a way to perform full-text search In my line of work, I would like to explore a string of text towards title, claims and description. Perhaps related with question number 1, but I couldn't get it.

USApplication.objects.filter(patent_title='Integrated docking system for intelligent devices') For example matches nothing even though there is a patent exactly with that title: https://patents.google.com/patent/US11651258B2/en?q=(Integrated+Docking+System+for+Intelligent+Devices)&oq=Integrated+Docking+System+for+Intelligent+Devices

  1. How does one Iterate over PublicSearch object?

results: patent_client.uspto.public_search.manager.PublicSearchManager = PublicSearch.objects.filter(query='"6103599".PN. OR @APD=20210101')

Whatever I do on results gives a JSONEncording Error.

TLDR; I would love to learn more how to use this tool in a full-text search way, where I can give words, and it returns patents that contain those words in title, claims and description. Thank you for your replies!

parkerhancock commented 1 year ago

1. Fields - The USApplication object is based on the USPTO's PEDS interface. You can look at its documentation for a complete list of fields that are searchable. The only difference between those available in patent_client and directly through PEDs is that you have to convert from CamelCase to snake_case (i.e. patentNumber becomes patent_number).

Also, the docs are incorrect, and there is a bug here. I'll fix it today. You should be able to get a field list from USApplication.fields.

2. Full-Text Search - So, full text search is complicated. You can absolutely do it with USApplication, and in fact, you already are! PEDS is a Solr-based system, so all your queries are handled by a system that can do full-text searching. You can actually craft full queries with the full power of Solr by passing the query with the special keyword query - i.e. USApplication.objects.filter(query=<solr query here>). Just be aware it has to match the query format used by PEDS (look at the site above for documentation). Through that interface, you can do more than is available through simple keyword filtering.

3. Public Search - As is noted in the docs, and in #101, Public Search has been broken by the USPTO's new web application firewall. So it is totally inoperable until either (1) the USPTO provides a new interface or (2) someone figures out a way around the WAF and submits a PR.

Thanks for your interest in the library!