Ultima lansare a pachetului patentsview R

URMĂREȘTE-NE
16,065FaniÎmi place
1,142CititoriConectați-vă

Pachetul patentsview R a fost creat de Chris Baker pentru a simplifica interacțiunile cu API-ul PatentsView, așa cum a anunțat în postarea lui Chris pe blog în 2017. API-ul poate fi interogat pentru date din brevetele americane acordate din 1976, precum și cererile de brevet din 2001 (nu toate vor deveni brevete acordate).
După cum se arată în vignetele pachetului, datele de locație pot fi mapate, diagrame ale cesionaților pot fi create etc. folosind alte pachete R, limitate doar de imaginația dezvoltatorului.

Redirecționarea rapidă până astăzi ne găsește într-o poziție precară, deoarece echipa API-ului PatentsView a făcut modificări de ultimă oră și a depășit API-ul original (toate apelurile către punctele finale originale returnează 410 Gone). Ca atare, am petrecut ceva timp acum actualizând patentsview pentru a lucra cu aceste modificări API. Pachetul actualizat patentsview este acum pe CRAN, dar, din păcate, pe măsură ce această notă tehnică era pregătită, echipa API-ului PatentsView a făcut schimbări îngrijorătoare.

La sfârșitul lunii februarie și-au înlocuit forumul cu un mesaj care spunea că pagina nu este disponibilă temporar. Mai mult, au eliminat și linkul pentru a solicita o cheie API, așa că nu este clar dacă vor onora solicitările de chei API folosind linkul de mai jos. Nimic nu a fost anunțat oficial, dar viabilitatea pe termen lung a API-ului pare incertă.

🍴 Aici ați ajuns la o furculiță (și un cuțit) pe drum, continuați să citiți dacă utilizați/folosizați versiunea originală a pachetului patentsview și vă vom ghida prin modificările necesare. Dacă sunteți interesat de datele privind brevetele din SUA, dar nu ați folosit încă pachetul patentsview (și sunteți dispus să vă asumați riscul!), consultați vigneta reelaborată din postarea inițială de blog a lui Chris pentru a utiliza noua versiune a pachetului R și a API-ului.

Noi modificări la API:

  1. Utilizatorii vor trebui să solicite o cheie API și să seteze o variabilă de mediu PATENTSVIEW_API_KEY la această valoare.
  2. Modificări ale punctelor finale:
    • The nber_subcategoriesunul dintre cele șapte puncte finale originale, a fost eliminat
    • cpc_subsections este acum cpc_group
    • Restul de cinci puncte finale originale au trecut de la plural la singular, patents este acum patentde exemplu. Interesant, structurile de date returnate sunt încă plural în cea mai mare parte.
    • Acum există 27 de puncte finale și poate fi necesar să fie apelate mai multe pentru a prelua câmpurile care erau disponibile dintr-un singur apel către unul dintre punctele finale originale
    • Unele dintre punctele finale returnează acum link-uri HATEOAS (Hypermedia ca motor al stării aplicației) care pot fi apelate pentru a prelua date suplimentare
  3. Unele câmpuri sunt acum imbricate și trebuie să fie complet calificate atunci când sunt utilizate într-o interogare, de exemplu, search_pv('{"cpc_current.cpc_group_id":"A01B1/00"}') atunci când se utilizează punctul final de brevet. În parametrul câmpuri, câmpurile imbricate pot fi complet calificate sau poate fi utilizată o nouă prescurtare API, care vă permite să specificați nume de grup. Când sunt folosite nume de grup, toate câmpurile imbricate ale grupului vor fi returnate. De exemplu, definirea fields = c("assignees") atunci când utilizați punctul final de brevet înseamnă că toate câmpurile cesionaților imbricați vor fi returnate de API.
  4. Unele nume de câmpuri s-au schimbat, cel mai semnificativ, patent_number este acum patent_idiar unele câmpuri au fost eliminate în întregime, de exemplu, rawinventor_first_name şi rawinventor_last_name.
  5. Versiunea originală a API-ului avea câmpuri interogabile și câmpuri suplimentare care puteau fi preluate, dar nu puteau face parte dintr-o interogare condiționată. Această noțiune nu se aplică noii versiuni a API, deoarece toate câmpurile sunt acum interogabile. Este posibil să vă puteți simplifica codul dacă v-ați trezit că faceți o postprocesare a datelor returnate, deoarece un câmp de care erați interesat nu era interogabil.
  6. Acum nu ar trebui să existe o diferență între operatorii utilizați pe șiruri de caractere față de câmpurile de text complet, așa cum era în versiunea originală a API-ului. Consultați sfatul de mai jos secțiunea Sintaxă.
  7. Paginarea setului de rezultate s-a schimbat semnificativ. Acest lucru contează doar pentru utilizatorii care implementează propria paginare, deoarece pachetul continuă să gestioneze paginarea setului de rezultate cu search_pv()lui all_pages = TRUE. Există o nouă vignetă de paginare cu set de rezultate pentru a explica paginarea API-ului, folosind size şi after parametri mai degrabă decât page şi per_page.
  8. Dimensiunile setului de rezultate sunt aparent nelimitate acum. Versiunea originală a rezultatului cu plafon API se stabilește la 100.000 de rânduri.

Echipa API a redenumit și API-ul, API-ul de căutare a lui PatentsView este acum API-ul PatentSearch. Rețineți că pachetul R își va păstra numele, continua să îl utilizați library(patentsview) pentru a încărca pachetul.

Noi modificări la pachetul R:

  1. Accelerarea este acum impusă de API și gestionată de pachetul R (sleep așa cum este specificat de răspunsul accelerației înainte de o nouă încercare)
  2. Există cinci viniete noi
  3. Pachetul R s-a schimbat intern de la utilizarea httr la httr2. Acest lucru afectează utilizatorii numai dacă au transmis argumente suplimentare (...) la search_pv(). Anterior dacă au trecut config = httr::timeout(40)
    ar trece acum timeout = 40 (perechile nume-valoare de opțiuni de curl valide, așa cum se găsesc în curl::curl_options() vezi req_options)
  4. Acum că pachetul R folosește httr2, utilizatorii îl pot folosi last_request() pentru a vedea ce a fost trimis către API. Acest lucru ar putea fi util atunci când încercați să remediați o solicitare nevalidă. De asemenea, distractiv ar fi să vedem răspunsul brut API.
httr2::last_request()
httr2::last_response()
httr2::last_response() |> httr2::resp_body_json()
  1. A fost adăugată o nouă funcție
    retrieve_linked_data() pentru a prelua date de la o legătură HATEOAS API-ul trimis înapoi, reîncercând dacă este accelerat
  2. O funcție existentă a fost eliminată. Odată cu modificările API, este mai puțin nevoie de
    cast_pv_data() care anterior făcea parte din pachetul R. API-ul returnează acum majoritatea câmpurilor ca tipuri adecvate, boolean, numeric etc., în loc să returneze întotdeauna șiruri.

Documentație online API

Echipa PatentsView API a furnizat cu atenție o pagină Swagger UI pentru noua versiune a API la https://search.patentsview.org/swagger-ui/. Gândiți-vă la ea ca la o versiune online a Postman deja încărcată cu noile puncte finale și returnări ale API. Pagina Swagger UI documentează ce câmpuri sunt returnate de fiecare punct final la un apel reușit (codul de răspuns http 200). Puteți chiar să trimiteți solicitări și să vedeți răspunsurile API reale dacă introduceți cheia API și apăsați butoanele „Încercați” și „Executați” ale unui punct final. Chiar și răspunsurile de eroare pot fi informative, antetul de răspuns X-Status-Reason al API-ului indică de obicei ce a mers prost.

Într-un format similar, documentația actualizată API listează ceea ce face fiecare punct final. În plus, pachetul R fieldsdf cadrul de date a fost actualizat, listând acum noul set de puncte finale și câmpuri care pot fi interogate și/sau returnate. Paginile de referință ale pachetului R au fost, de asemenea, actualizate.

Gânduri finale

După cum se arată în vigneta actualizată de Top Assignees, acum vor exista ocazii în care sunt necesare mai multe apeluri API pentru a prelua aceleași date ca într-un singur apel API în versiunea originală a pachetului API și R. În plus, postarea rOpenSci reelaborată explică ce modificări au trebuit făcute, deoarece latitudinea și longitudinea cesionarului nu mai sunt disponibile de la punctul final al brevetului.

Problemele pentru pachetul R pot fi ridicate în depozitul patentsview.

După cum am menționat la început, viitorul API-ului PatentsView este puțin incert. PatentsView este finanțat de USPTO, care ar putea căuta să reducă costurile. Cu toate acestea, până când vom ști cu certitudine, sperăm că patentsview vă va fi de folos. Dacă nimic altceva, a fost o cursă grozavă, începând din 2015 pentru API și 2017 pentru pachetul R!

Dominic Botezariu
Dominic Botezariuhttps://www.noobz.ro/
Creator de site și redactor-șef.

Cele mai noi știri

Pe același subiect

LĂSAȚI UN MESAJ

Vă rugăm să introduceți comentariul dvs.!
Introduceți aici numele dvs.