{"id":19175599,"url":"https://github.com/fhg-imw/epo-ops","last_synced_at":"2025-05-07T19:10:27.903Z","repository":{"id":56844748,"uuid":"51434872","full_name":"FHG-IMW/epo-ops","owner":"FHG-IMW","description":"Ruby interface to the European Patent Office API (OPS)","archived":false,"fork":false,"pushed_at":"2017-07-04T15:16:44.000Z","size":205,"stargazers_count":6,"open_issues_count":0,"forks_count":3,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-04-13T11:42:28.865Z","etag":null,"topics":["epo-ops","patents","ruby-gem","ruby-interface"],"latest_commit_sha":null,"homepage":"","language":"Ruby","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/FHG-IMW.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2016-02-10T10:39:39.000Z","updated_at":"2021-10-29T12:56:31.000Z","dependencies_parsed_at":"2022-09-09T19:11:37.088Z","dependency_job_id":null,"html_url":"https://github.com/FHG-IMW/epo-ops","commit_stats":null,"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FHG-IMW%2Fepo-ops","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FHG-IMW%2Fepo-ops/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FHG-IMW%2Fepo-ops/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FHG-IMW%2Fepo-ops/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/FHG-IMW","download_url":"https://codeload.github.com/FHG-IMW/epo-ops/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252940934,"owners_count":21828769,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["epo-ops","patents","ruby-gem","ruby-interface"],"created_at":"2024-11-09T10:24:06.773Z","updated_at":"2025-05-07T19:10:27.876Z","avatar_url":"https://github.com/FHG-IMW.png","language":"Ruby","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![Build Status](https://travis-ci.org/FHG-IMW/epo-ops.svg?branch=master)](https://travis-ci.org/FHG-IMW/epo-ops)\n[![Code Climate](https://codeclimate.com/github/FHG-IMW/epo-ops/badges/gpa.svg)](https://codeclimate.com/github/FHG-IMW/epo-ops)\n\n# epo-ops\nRuby interface to the EPO Open Patent Services (OPS).\n\n[Full documentation can be found here](http://www.rubydoc.info/gems/epo-ops/)\n\n\n\n# Usage\n\n## Quickstart\nSimply install this gem and start a ruby console.\n```\n$ gem install epo-ops\n$ irb\n```\n\nand start querying the API\n\n```ruby\nrequire 'epo_ops'\n\npatent_application = EpoOps::PatentApplication.find(\"EP14731659\")\npatent_application.title  # \"DEVICE AND METHOD FOR INTRODUCING FIBRES INTO AN EXTRUDER\"\npatent_application.classifications # [\"B29C47/10\", \"B29C47/68\", \"B29C47/92\", \"B29C45/00\", \"B01D46/24\"]\npatent_application.applicants.first.name # \"Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V.\"\n```\n\n## Supported Ruby Versions\nFor supported versions see _.travis.yml_. We try to keep it updated to officially supported Ruby versions.\n\n## Advanced Usage\n\n### OAuth\n\nEPO offers an anonymous developer access to their API with very little quota. To get extended quotas you can register\nan account at the [EPO for OAuth](https://developers.epo.org/user/register)\n\nAfter your account has been approved configure your credentials\n\n```ruby\n\nEpoOps.configure do |conf|\n  conf.authentication = :oauth\n  conf.consumer_key = \"YOUR_KEY\"\n  conf.consumer_secret = \"YOUR_SECRET\"\nend\n\n```\n\nThe temporary access token is kept in memory for subsequent retrievals. To share this between several processes the\ntoken storage strategy may be changed as shown in `epo/ops/token_store` for redis.\n\n\n### Querying and searching patent applications\n\nCurrently this gem focuses mostly around patent applications.\nIt is possible to search for specific applications by application number and to search for applications using a\nCQL search query\n\nFor example to find all applications in IPC Class _A01_ (and all subclasses) that were updated on 2016-01-01\n\n```ruby\nquery = EpoOps::SearchQueryBuilder.build(\"A01\", Date.parse(\"2016-01-06\"))\napplications = EpoOps::PatentApplication.search(query)\napplications.count #=\u003e 66\napplications.map {|application| puts application.application_nr } # print all application numbers\napplications.map {|application| application.fetch} # fetch complete bibliographic data for each document\n\n```\n\nThe Request will return a search result containing the number of all applications matching the search. By default the\nsearch will return 10 documents (max is 100). You can use `start_rang` and `end_range` of `EpoOps::SearchQueryBuilder.build`\nto page through all results\n\n**Note: EPO will always only return up to 2000 documents even if the search would return more**\n\n\n### Search for all Patents on a given Date\n\nTo circumvent the restriction of max 2000 search results this gem\noffers a convenient method to search for all patents updated on a given date and/or a given IPC class\n\n```ruby\nEpoOps::Register.search(\"A\", Date.new(2016,2 ,3))\n# or for all ipc classes\nEpoOps::Register.search(nil, Date.new(2016,2 ,3))\n```\n\nYou can now retrieve the bibliographic entries of all these:\n\n```ruby\npatent_applications = EpoOps::Register.search(nil, Date.new(2016,2 ,3))\npatent_applications.count == patent_applications.patents.count #=\u003e true\n```\n\n**Note: Both operations take a considerable amount of time. Also you may not\nwant to develop and test with many of these requests, as they can quite quickly exceed your limits.**\n\n\n# Further Reading\n\nThe EPO provides [a developer playground](https://developers.epo.org/), where you can test-drive the OPS-API.\nThey also provide extensive [documentation](https://www.epo.org/searching-for-patents/technical/espacenet/ops.html)\nof the different endpoints and how to use them (see the 'Downloads' section).\n\n\n# Development\n\nThis gem is still an early version and it is far from covering the whole API.\nIf you are interested to include different API endpoints than the register it should be easy to include those and we\nare happy to accept pull requests.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffhg-imw%2Fepo-ops","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffhg-imw%2Fepo-ops","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffhg-imw%2Fepo-ops/lists"}