Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

EP Register Support #68

Open
parkerhancock opened this issue Sep 13, 2022 · 1 comment
Open

EP Register Support #68

parkerhancock opened this issue Sep 13, 2022 · 1 comment
Labels
enhancement New feature or request

Comments

@parkerhancock
Copy link
Owner

This issue is tracking the work to implement the EP Register endpoints on patent_client. At least for the moment, @xi2pi has volunteered to make a run at this.

The endpoints we'd want to include are:

  • Register Search w/o Constituents - register/search
  • Register Retrieval Service - register/{type}/{format}/{number}/biblio
  • Register Events Service - register/{type}/{format}/{number}/events
  • Register Procedural Steps - /register/{type}/{format}/{number}/procedural-steps

These can be played around with at (https://developers.epo.org/ops-v3-2/apis). They are also documented in the EPO OPS documentation at pages 103-112.

A (broken) example of use is in the documentation:

>>> from patent_client import Epo 
>>> pub = Epo.objects.get("EP3221665A1") 
>>> pub.status[0] 
{'description': 'Request for examination was made', 'code': '15', 'date': '20170825'}
>>> pub.title 
'INERTIAL CAROUSEL POSITIONING'
>>> pub.procedural_steps[0] 
http://ops.epo.org/3.2/rest-services/register/publication/epodoc/EP.3221665.A1/procedural-steps {}
{'phase': 'undefined', 'description': 'Renewal fee payment - 03', 'date': '20171113', 'code': 'RFEE'}

This issue will track notes and thoughts on implementation details. For starters, let's do the EPO Search, which should look a lot like the Inpadoc search as an example, which is implemented in 4 files:

  • API Wrapper - src/patent_client/epo/ops/published/api.py
  • Manager - src/patent_client/epo/ops/published/manager.py
  • Model - src/patent_client/epo/ops/published/model/search.py
  • Schema - src/patent_client/epo/ops/published/schema/search.py

I would suggest this order for development:

  1. Write an API Wrapper at src/patent_client/epo/ops/register/api.py that just returns raw XML data. Don't worry about processing it, just get it to return the right XML data from the EPO endpoint. Use the PublishedSearchAPI in the published/api.py file as an example.

  2. Write a Schema at src/patent_client/epo/ops/register/schema.py that converts the raw XML data into a Python dictionary with the data attributes you want. Use the SearchSchema class and InpadocSchema classes in published/schema/search.py as examples.

  3. Write a Model at src/patent_client/epo/ops/register/model.py to hold the data the Schema produced. Use the Search and Inpadoc classes in published/model/search.py as examples.

  4. Write a Manager at src/patent_client/epo/ops/register/manager.py that will serve as the manager for the EP Register resource. use the SearchManager class in published/manager.py as an example.

And please let me know if you have any questions or concerns!

@parkerhancock parkerhancock added the enhancement New feature or request label Sep 13, 2022
@xi2pi
Copy link

xi2pi commented Sep 26, 2022

I followed your instruction and created a first prototype.

There is an example case in src/patent_client/epo/ops/register/example_ep_register.py

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

2 participants