sexta-feira, 29 de junho de 2018

Patentes de bancos de dados com dados não técnicos


Em T779/11 a Câmara de Recursos avaliou um sistema para facilitação de recuperação de documentos legais em resposta a uma consulta por opiniões legais, e que inclui um bando de dados de assinante contendo credenciais de autenticação para uma pluralidade de assinantes, um banco de dados contendo uma pluralidade de decisões judiciais e um banco de dados com documentos associados a litígios com decisão judicial. Embora a Câmara reconheça que o conteúdo destas bases judiciais não se referem a matéria técnica. Por outro lado é notório que o controle de acesso a serviços online pode ser feito usando-se credenciais de autenticação armazenadas em bancos de dados. A Câmara de Recursos discorda que a mera enumeração de um primeiro, segundo e terceiros bancos de dados, cada qual contendo um conjunto diferente de dados, implica em uma característica não técnica por tratar-se meramente de algo de natureza conceitual. Para a Câmara de Recursos o termo “base de dados” é bastante amplo e mesmo quando contempla coleções de dados não técnicos, ainda assim representa uma entidade técnica.[1]


[1] STEINBRENER, Stefan. Patentable subject matter under Article 52(2) and (3) EPC: a whitelist of positive cases from the EPO Boards of Appeal—Part 2. Journal of Intellectual Property Law & Practice, 2018, Vol. 13, No. 2, p. 106

quarta-feira, 27 de junho de 2018

TKDL


A Índia iniciou em 2001 um projeto de construção de um repositório digital de conhecimentos tradicionais, muitos deles até então mantidos apenas oralmente, conhecido como TKDL[1] – Traditional Knowledge Digital Library[2] e disponibilizado para escritórios de patente como a EPO, Australia, Canada, Alemanha e Inglaterra.[3] bem como Estados Unidos [4][5] que mostra uma lista bem completa de bibliotecas disponíveis, nenhuma das quais organizada pelo Brasil. A China com o Traditional Chinese Medicine (TCM)[6] e a Coreia com o Korea Traditional Knowledge Portal desenvolveram projetos semelhantes. [7] A WIPO lista diversas iniciativas similares no Panamá, Peru, Austria [8]



[1] http://www.tkdl.res.in/tkdl/langdefault/common/Home.asp
[2] https://en.wikipedia.org/wiki/Traditional_Knowledge_Digital_Library
[3] MANI, Sunil, et all. TRIPS compliance of national patente regimes and domestic innovative activity: the Indian experience. In: MANI, Sunil; NELSON, Richard. TRIPS compliance, national patente regimes and innovation, Northampton:Elgar, 2013, p.80
[4] https://www.uspto.gov/patent/laws-and-regulations/comments-public/traditional-knowledge-and-medicine-dictionariesdatabases
[5] http://www.patentbaristas.com/archives/2009/12/02/u-s-patent-office-gains-access-to-traditional-knowledge-digital-library-tkdl/
[6] CHEN, Calvin. TCM Database@Taiwan: The World's Largest Traditional Chinese Medicine Database for Drug Screening In Silico, PLOS, janeiro 2011, http://journals.plos.org/plosone/article?id=10.1371/journal.pone.0015939
[7] http://www.koreantk.com/en/m_about/about_01.jsp?about=1
[8] http://www.wipo.int/edocs/pubdocs/en/wipo_pub_1049.pdf

terça-feira, 26 de junho de 2018

Exame deve apontar as passagens relevantes nas anterioridades


T655/13 OJ 2018 o relatório de busca internacional pelo PC feito pelo escritório japonês cita um artigo científico japonês D1 cotra a atividade inventiva da patente. Em suas notificações a divisão de exame da EPO repetiu as mesmas objeções citando as figuras de D1 e a tradução do relatório internacional de busca IPRP. A recorrente contestou a presença de determinadas características em D1 mas a divisão de exame manteve sua posição e indeferiu o pedido. Nenhum tradução de D1, ainda que parcial foi fornecida pela divisão de exame.  A Câmara de Recursos considera que a decisão da divisão de exame não foi corretamente motivada. No intuito de dar oportunidade de contestação a Divisão de Exame deveria indicar as passagens do documento D1 citado em que as características da reivindicação são encontradas. Como D1 foi escrito em um idioma não oficial da EPC a divisão de exame teria de ter fornecido ao menos uma tradução parcial. Não se pode presumir que os membros da Câmara de Recursos sejam competentes em um idioma não oficial, e mesmo que este fosse o caso, sua própria tradução poderia ser diferente da usada no exame. Na ausência de uma tradução a Câmara está incapacitada de analisar as motivações da decisão, nem mesmo decidir se a decisão foi justificada ou não. A obrigação de fornecer uma tradução aplica-se mesmo que o depositante tenha domínio sobre o idioma em questão (que é o caso). O fornecimento de uma tradução é  única forma de permitir que o depositante corrija uma traução eventualmente errônea. A propósito, o fornecimento de uma tradução é mencionada nas Diretrizes de Exame G-IV-4 (If the applicant (i) disputes the relevance of a document in a non-official language cited in the search report (for procedure at the search stage, see B-X, 9.1.2 and 9.1.3), and (ii) gives specific reasons, the examiner should consider whether, in the light of these reasons and of the other prior art available to him, he is justified in pursuing the matter. If so, he should obtain a translation of the document (or merely the relevant part of it if that can be easily identified). If he remains of the view that the document is relevant, he should send a copy of the translation to the applicant with the next official communication). Em conclusão, ao não identificar precisamente as passagens de D1 revelando a característica contestada e deixando de fornecer ao menos uma tradução da seção citada, a divisão de exame violou o direito de obter uma decisão fundamentada.[1]
 
[1] http://europeanpatentcaselaw.blogspot.com/2018/06/t65513-la-division-dexamen-aurait-du.html

Meios mais funções no USPTO


Zeroclick v. Apple (Fed. Cir. 2018) analisa patente para interface gráfica de usuário (GUI) que compreende a atualização de um programa existente que pode operar uma interface GUI por um método de movimentação de um ponteiro para operar uma ou mais funções dentro da GUI em duas etepas, em uma primeira etapa o ponteiro atravessa uma área de controle e em uma segunda etapa de acordo com um movimento pré determinado gera um evento de click acionando uma ou mais funções dentro da GUI. O Federal Cicuit entendeu que a Corte Distrital erroneamente tratou as referência a “programa” e “código de interface de usuário” como substitutos de “meios” segundo a seção 112(f), e portanto como “meios mais funções”. O Federal Circuit discordou tratar-se de reivindicações do tipo meios mais funções. Segundo o Federal Circuit “o mero fato de que as limitações em disputa incorporem linguagem funcional não automaticamente convertem tais palavras em meios para executar tais funções”. Muitos componentes estruturais ou dispositivos são citados após as funções que eles executam. “Em segundo lugar a análise da Corte Distrital removeu os termos de seu contexto, que de outra forma sugere o significado comum dado a estes termos”. Segundo a seção 112(f) uma vez tendo os ditos meios reivindicados sido enquadradas na seção 112(f) o escopo desta reivindicação deve ficar restrito as implementações de código de programa de computador e de interface gráficas utilizadas mencionadas no relatório descritivo.[1]


[1] http://www.patentdocs.org/2018/06/zeroclick-llc-v-apple-inc-fed-cir-2018.html

quarta-feira, 20 de junho de 2018

Mais patentes, mais recursos para o USPTO; mais salário para os examinadores

Nos Estados Unidos críticos apontam que o sistema de pontuação da produção dos examinadores ao conferir o mesmo peso para deferimentos ou indeferimentos tem uma tendência em estimular os deferimentos que exigem menos tempo de exame e menos etapas de exame.[1] Adam Jaffe e Josh Lerner sugerem que o esquema de pontuação da produção dos examinadores do USPTO que contabiliza um ponto para o primeiro exame e outro ponto para decisão, estimula os examinadores a evitarem a rejeição em seus exames visto que isto protela a contagem do segundo ponto. [2] Outro aspecto a ser considerado é o pouco tempo de exame: estima-se que o examinador no USPTO disponha de somente dezoito horas em média para todo o processo de exame que inclui ler o pedido, realizar a busca de anterioridades, escrever os pareceres, analisar as respostas do requerente e talvez participar de uma entrevista oral com o inventor. Segundo Todd Dickinson este tempo pode variar de oito a trinta e duas horas dependendo da área tecnológica[3] Desde 1986 a média de pedidos de patente por examinador tem sido aproximadamente de 100 pedidos por ano no USPTO[4].

Para Robert Merges um outro aspecto não menos importante é o fato de que parte da receita do USPTO é resultado do pagamento das taxas de manutenção de uma patente o que conduz a um viés pró deferimento pelo escritório de patentes.[5] Peter Drahos observa que “uma organização que opera baseadas nas taxas cobradas tend e a ver a pessoa que paga as taxas como um cliente. Mas na análise da patente como um contrato social está claro que este raciocínio é simplesmente errôneo no caso de um escritório de patentes. Seu cliente real é o público”. [6] Adam Jaffe e Josh Lerner mostram que no início dos anos 1990 o USPTO converteu-se de uma agência financiada pela receita de impostos, que coletava taxas nominais de seus requerentes de pedidos de patentes, para uma agência financiada pelas taxas que arrecada, o que tem transformado o USPTO em um centro de lucros uma vez que suas receitas excedem os gastos correntes. [7] Courtenay Brinckerhoff mostra que o sistema de qualidade do USPTO prevê metas de produção que levam em conta a tecnologia e o nível de experiência do examinador [8] Relatório do USPTO mostra que examinadores seniores são três vezes mais produtivos que os examinadores mais novos [9] Ao comentar o sistema de pontuação do USPTO Gene Quinn comenta que na primeira instância o sistema incentiva a concesão, deixando para as instâncias revisoras as maiores taxas de rejeição: "Thus, it seems to me at least looking at the count system on paper that it is fair to say that this agreement seeks to put the emphasis back on granting patents and away from the reject, reject, reject mentality that took hold in the office post second-pair of eyes review". [10]





[1] MERGES, Robert. As Many as Six Impossible Patents Before Breakfast: Property Rights For Business Concepts and Patent System Reform, 14 BERKELEY TECH. L.J. 577 (1999). LEMLEY, Mark. Rational Ignorance at the Patent Office, 2000 THE BERKELEY LAW & ECONOMICS WORKING PAPERS 2, Article 5, at n.3 (2001).; KESAN, Jay. Carrots and sticks to create a better patent system,v.17 Berkeley Tech Law Jornal, 2001, p.765-766,
[2] Cf. KLEMENS, Ben. Math you can´t use, Brookings Institution Press: Washington,2006, p.75
[3] BURK, Dan L.; LEMLEY, Mark, A. The patent crisis and how the Courts can solve it. The University of Chicago Press, 2009, p.15, 23
[4] JAFFE, Adam; LERNER, Josh. Innovation and its discontents: how our broken patent system is endangering innovation and progress, and what to do about it. Princeton University Press, 2007, p. 2367/5128 (kindle version)
[5] cf. RAI, Arti. Addressing the Patent Gold Rush: The Role of Deference to PTO Patent Denials, february 2000, USD School of Law, Public Law Working Paper No. 05 and Law and Economics Research Paper No. 02 http://papers.ssrn.com/sol3/papers.cfm?abstract_id=223758
[6] DRAHOS, Peter. The global governance of knowledge: patent offices and their clients. Cambrige University Press:United Kingdom, 2010, p.159
[7] JAFFE, Adam; LERNER, Josh. Innovation and its discontents: how our broken patent system is endangering innovation and progress, and what to do about it. Princeton University Press, 2007, p. 309/5128 (kindle version)
[8] BRINCKERHOFF, Courtenay. USPTO Examination Time Goals -- How Much Time Should Examiners Have To Examine A Patent Application? 08/11/2016 https://www.pharmapatentsblog.com/2016/11/08/uspto-examination-time-goals-how-much-time-should-examiners-have-to-examine-a-patent-application/
[9] USPTO. U.S. Patent Trademark Office: Transforming to Meet the Challenges of the 21st Century Aug 01, 2005 https://www.napawash.org/studies/academy-studies/us-patent-trademark-office-transforming-to-meet-the-challenges-of-the-21s
USPTO. USPTO Should Reassess How Examiner Goals, Performance Appraisal Plans, and The Award System Stimulate and Reward Examiner Production, 2004 https://www.americanbar.org/content/dam/aba/migrated/intelprop/109legis/CommerceDept_IGReportonPTO.authcheckdam.pdf
[10] QUINN, Gene. USPTO’s New Examiner Count System Go Into Effect 26/02/1010 http://www.ipwatchdog.com/2010/02/26/usptos-new-examiner-count-system-go-into-effect/id=9310/ PENNY, John. The Examiner Count System: Why Patent Examiners Are on Your Side, 18/11/2014 https://www.nutter.com/ip-law-bulletin/the-examiner-count-system-why-patent-examiners-are-on-your-side


segunda-feira, 18 de junho de 2018

Patente para método de indexação de arquivos na EPO


Em T1351/04 OJ 2007 decidiu-se caso que trata de arquivo de criação de índices formando diferentes níveis de hierarquia e dispositivo de busca em arquivo. A Corte entendeu que há a presença de caráter técnico uma vez que o método determina o modo com que o computador efetua a busca de informações[1]. Dados funcionais tendo como objetivo o controle de um dispositivo técnico normalmente é considerado de natureza técnica A Câmara de Recursos concluiu que a informação de gerenciamento contida nas reivindicações deve ser considerada como contribuindo para o caráter técnico da invenção. A escolha do método de busca leva em conta características como velocidade o que constitui uma indicação adicional de seu caráter técnico: “um índice de arquivos contendo informações de gerenciamento para ser usada na busca de um arquivo é um meio técnico uma vez que determina o modo com que o computador realiza a busca de informação, o que é uma tarefa técnica. Um método executável por computador de criação de tal índice de arquivo pode portanto ser considerado como um método de fabricação de um meio técnico, tendo caráter técnico”.[2]




[1] http://legal.european-patent-office.org/dg3/biblio/t041351eu1.htm
[2] STEINBRENER, Stefan. Patentable subject matter under Article 52(2) and (3) EPC: a whitelist of positive cases from the EPO Boards of Appeal—Part 2. Journal of Intellectual Property Law & Practice, 2018, Vol. 13, No. 2, p. 106

quinta-feira, 14 de junho de 2018

Patente de banco de dados na EPO


Em T435/11 trata de método para cópia de elementos de dados a partir de um banco de dados origem para um banco de dados alvo para atualizar as informações armazenadas no banco de dados alvo. Subsistemas móveis em geral criam bancos de dados locais com cópia de subconjuntos de dados de um banco de dados central. Contudo o usuário pode ter feito modificações nestes dados locais que não deseja perder. O método proposto na patente permite ao usuários controlar a cópia destas informações entre os dois sistemas, local e central. A Câmara de Recursos considerou a matéria técnica e devolveu o pedido á divisão de exame para proceder as buscas de anterioridade. Em T1568/05 a patente trata de sistema de arquivos distribuídos que devem ser armazenados de forma segura evitando o acesso por pessoas não autorizadas. Ao mesmo tempo a existência de dados redundantes deve ser minimizada. O método proposto permite os arquivos serem criptografados de um modo que arquivos tendo conteúdos idênticos possam ser reconhecidos como tal sem revelar suas chaves de criptografia. O método estabelece um critério para escolha da chave adequada. A Câmara concluiu: “um efeito técnico consiste não somente na encriptação dos arquivos mas também na verificação eficiente e identificação dos arquivos criptografados”. [1]


[1] STEINBRENER, Stefan. Patentable subject matter under Article 52(2) and (3) EPC: a whitelist of positive cases from the EPO Boards of Appeal—Part 2. Journal of Intellectual Property Law & Practice, 2018, Vol. 13, No. 2, p. 105

quarta-feira, 13 de junho de 2018

Emendas em pedido PCT

Um pedido PCT revela a matéria X no depósito internacional. Pode o pedido no momento do depósito do pedido no Brasil, ao entrar na fase nacional, incluir no relatório descritivo matéria Y não revelada no depósito internacional PCT ?

Resposta: Não


Em T605/93 a Câmara de Recursos entendeu que para pedidos PCT depositados na EPO o pedido tal como depositado refere-se ao pedido internacional de modo que assume-se que o pedido depositado na EPO deva ser idêntico ao pedido internacional publicado (também citado em T1402/09). Em PI0810084 é feito um acréscimo de um elemento na reivindicação, antes do requerimento do pedido de exame, não presente no depósito original do pedido na entrada na fase nacional. O requerente alega que este elemento consta do pedido PCT originalmente publicado WO2008116640 porém por um equívoco ao entrar na fase nacional usou o pedido EP que não descrevia tal elemento. Desta forma, o requerente entendeu oportuna a correção do erro e apresentação do dito elemento. Esta emenda não é considerada violação do artigo 32 uma vez que o artigo 11(3) do PCT determina que o pedido internacional terá os efeitos a partir da data de depósito internacional de um depósito nacional regular em cada um dos Estados designados. Ademais a Resolução n°93/2013 no item 2.1(ii) admite correções no intuito de corrigir inequívoco erro material de tradução a qualquer momento. Segundo o artigo 28 (2) do PCT as emendas no pedido não podem ir além do conteúdo do pedido internacional tal como depositado salvo se a legislação nacional do Estados designado permitir tais acréscimos.[1] No Brasil o artigo 32 da LPI veda a possibilidade de emendas que ampliem a matéria presente no depósito do pedido. Segundo o artigo 11 parágrafo único da Resolução PR nº 77/2013 as modificações (Artigo 32 da LPI) do relatório descritivo, reivindicações, listagem de sequência biológicas e desenhos, junto ao Organismo Designado (Artigo 28 do PCT) ou Eleito (Artigo 41 do PCT) poderão ser efetuadas até o requerimento do exame (Artigo 33 da LPI). As modificações não deverão ir além do conteúdo do pedido internacional originalmente depositado, conforme Artigo 28.2 do PCT para a designação ou Artigo 41.2 do PCT para eleição e Artigo 50 inciso III da LPI.


[1] The amendments shall not go beyond the disclosure in the international application as filed unless the national law of the designated State permits them to go beyond the said disclosure. http://www.wipo.int/pct/en/texts/articles/a28.htm

Patente da Máquina virtual Java


T121/06 trata de um “garbage collector” um programa de computador usado para liberação da alocação de memória não utilizada por uma aplicação corrente. O programa verifica os ponteiros de memória em uso e os objetos para os quais estão apontando, indicando que estes objetos são necessários e a memória respectivamente alocada aos mesmos não pode ser liberada. A Câmara de Recursos conclui que há um efeito técnico adicional – further technical effect que diz respeito á liberação de memória livre que de outra forma estaria desnecessariamente bloqueada para uso por novos aplicativos e desta froma, isso modifica o funcionamento interno do computador. Tal efeito vai além de um efeito técnico “normal” isto é a mera interação física entre o programa de computador e a memória do computador. O mesmo raciocínio se aplica as reivindicações de sistema e de máquina virtual Java ou a reivindicação de portador de dados.[1]
[1] STEINBRENER, Stefan. Patentable subject matter under Article 52(2) and (3) EPC: a whitelist of positive cases from the EPO Boards of Appeal—Part 2. Journal of Intellectual Property Law & Practice, 2018, Vol. 13, No. 2, p. 104

terça-feira, 12 de junho de 2018

Patente de gerenciamento de memória com clipboard na EPO


Em T424/03 o pedido EP0717354 em questão trata de uma área de memória clipboard que permite um mecanismo de arrastar e colar coo parte de um formato do protocolo OLE (Object linking and embedding) que em tese não se configuraria como uma entidade do mundo real, mas um elemento virtual, entendido como estrutura funcional de dados, independente do hardware utilizado e que contribui para o caráter técnico da invenção. A reivindicação de programa de computador para realização do método X é rejeitada porém as de método X implementado por programa de computador, produto de programa de computador para implementação do método X e suporte físico para o mesmo (tal como discutido em T258/03) foram consideradas patenteáveis. Segundo a Câmara de Recursos “a categoria de reivindicação de método implementado por computador é distinta daquela de programa de computador. Ainda que um método, em particular um método de operação de um computador possa ser colocado em prática com a ajuda de um programa de computador, uma reivindicação relativa a tal método não reivindica um programa de computador”.[1] T1173/97 estabelece que uma reivindicação de programa de computador não é excluída de patenteabilidade se o programa ao ser executado em um computador é capaz de produzir efeitos técnicos que vão além das interações físicas normais entre o hardware e o sofwtare.  


[1] STEINBRENER, Stefan. Patentable subject matter under Article 52(2) and (3) EPC: a whitelist of positive cases from the EPO Boards of Appeal—Part 2. Journal of Intellectual Property Law & Practice, 2018, Vol. 13, No. 2, p. 103

sexta-feira, 8 de junho de 2018

Método bancário na EPO


T2217/11 trata de método para pagamento seguro através de uma rede de comunicação envolvendo uma sessão de pagamento com três agentes (cliente, corretor e um vendedor) e definido em termos de uma sequência de mensagens trocadas entre estes três agentes. A Câmara de Recursos considerou que não se tratada de método financeiro mas de um método relacionado com a segurança de comunicação sobre uma rede usando criptografia. A Câmara de Recurso reconhece que algumas características individuais na reivindicação sejam puramente relacionadas a parte financeira como a transferência  de u pagamento por parte de um corretor para a conta de um vendedor. Isto contudo é irrelevante segundo a Câmara de Recursos diante das demais características técnicas pleiteadas. Em T928/07 relacionado a um sistema de caixa automático e cartão de acesso a Cãmara de Recursos entendeu que a solução de proporcionar uma área no cartão para armazenar detalhes da conta do usuário de modo que não possam ser apagados subsequentemente é de natureza técnica. A Cãmara observou que um meio legível por computador tem caráter técnico na medida que evita do cartão ser inadvertidamente totalmente apagado.[1]


[1] STEINBRENER, Stefan. Patentable subject matter under Article 52(2) and (3) EPC: a whitelist of positive cases from the EPO Boards of Appeal—Part 1. Journal of Intellectual Property Law & Practice, 2018, Vol. 13, No. 1, p. 35

Método de pagamento na EPO


Em T1051/07 de setembro de 2010 a patente descreve um sistema de transação financeira de um serviço para assinantes de telefonia compreendendo uma unidade de controle de serviços, uma interface de assinantes para apresentar o resultado de uma cobrança, uma interface de transação de serviço para conectar a unidade de controle de serviço com uma instituição bancária e processar a transferência de dinheiro e uma base de dados para armazenar os dados da transação. Uma anterioridade apresenta sistema de cobranças de serviço com assinante de telefonia mas que não inclui qualquer meio para transferência de fundos com instituição bancária. Um segundo documento mostra sistema similar porém sem apresentar como o usuário carrega dinheiro na conta do computador central, tampouco uma interface que mostre o valor cobrado pelo serviço ou conexão com instituição financeira. A Corte concorda que o problema de recarga do computador central com dinheiro fundamentalmente constitui um método de fazer negócios e portanto sem caráter técnico, no entanto, apesar de procedimentos bancários não possuírem caráter técnico,a reivindicação proposta não se resume a isto, mas proporciona uma solução técnica, envolvendo meios técnicos para solução do problema técnico de como recarregar tal conta, sendo tal solução não considerada como óbvia diante dos documentos do estado da técnica.[1]


[1] STEINBRENER, Stefan. Patentable subject matter under Article 52(2) and (3) EPC: a whitelist of positive cases from the EPO Boards of Appeal—Part 1. Journal of Intellectual Property Law & Practice, 2018, Vol. 13, No. 1, p. 35. http://www.epo.org/law-practice/case-law-appeals/recent/t071051eu1.html

quarta-feira, 6 de junho de 2018

Método de autenticação de usuário

Em T844/09 OJ 2013 em Paypal foi analisada patente referente a autenticação de um usuário pelo uso de transações financeiras de teste numa conta de cartão de crédito. A Câmara de Recursos entendeu que o método financeiro foi modificado para resolver um problema técnico em contraste com a decisão em T258/03 em Hitachi que tratou de um método de leilão modificado de modo a contornar problemas de atraso na transmissão de dados. Enquanto em T844/09 o método cumpre um papel de unicamente resolver um problema técnico em T258/03 o método financeiro foi elaborado não propriamente para resolver um problema técnico mas para contorná-lo de modo que o resultado continua sendo um método financeiro. A invenção em T844/09 foi implementada por computador ainda que se refira a elementos não técnicos na reivindicação de modo que como um todo a reivindicação possui caráter técnico: “embora a verificação da autorização de um usuário para acessar uma conta financeira possa em certos casos ser visto como um procedimento administrativa destituído de carpater técnico, este não é o caso [...] nem o profissional da área de negócios nem o profissional da área administrativa seriam, na perspectiva desta Cãmara de Recursos, as pessoas qualificadas para projetar qualquer destas ideias propostas na medida em que fojem á sua área de competência”.[1] Tipicamente as patentes relacionadas a sistemas operacionais, sistemas de comunicação e em rede, processamento de áudio, vídeo e imagem, compressão e criptografia, bioinformática, estruturas de dados e sincronização tem sido concedidos enquanto que sistema de tarifação em telefonia, algoritmos de previsão financeira e sistema  de comércio tem sido rejeitadas. [2]


[1] STEINBRENER, Stefan. Patentable subject matter under Article 52(2) and (3) EPC: a whitelist of positive cases from the EPO Boards of Appeal—Part 1. Journal of Intellectual Property Law & Practice, 2018, Vol. 13, No. 1, p. 34
[2] KEMP, J. Protecting software inventions in Europe, IAM, 11/04/2016

terça-feira, 5 de junho de 2018

Método de autenticação na EPO


T823/08 trata de um método de contabilidade implementado por computador sendo o método utilizado em redes de computadores distribuídas autônomas baseado no uso mútuo de recursos e serviços em uma rede de computadores distribuída, or exemplo, em um sistema peer-to-peer. Toknes digitais identificáveis de forma não ambígua são distribuídas a participantes da rede, e especifica etapas para distribuição, agregação e trroca de tais tokes. O método prevê a emissão de novos tokens com uma assinatura digital por participantes selecionados, denominados super peers. A Câmara de Recursos não ficou convencida de que a contribuição técnica da matéria reivindicada  relativa ao uso dos tokens seria de fato capaz de promover um aperfeiçoamento do desempenho da rede de computadores a partir de um ponto de vista técnico. Desta forma nem o uso dos tokens como meios de pagamento dentro de um sistema de pagamento virtual, nem o fato dos tokens serem usados por um proprietário em particular ou ser conversível nos tokens de um outro participante foram considerados efeito técnicos. Um efeito técnico foi considerado como o fato do método proporcionar meios virtuais de pagamento imunes á fraude, da mesma forma, que seria o uso de marcas dágua ou hologramas em cartões ou cheques de banco. A Câmara concluiu que o uso de tokes assinados criptograficamente por um grupo de super usuários usando chaves criptográficas distribuídas constitui um aspecto técnico. Em T1321/11 foi discutido um método de autenticação usado em um tocador de mídias media player. Ao invés de bloquear o uso do equipamento até que a operação de autenticação se complete, a invenção permite o acesso do equipamento pelo usuário durante a operação de autenticação, e somente no caso da operação de autenticação falhar, o métodm impede o acesso pelo usuário. Os aspectos não técnico da invenção contribuem para o caráter técnica da invenção e desta forma, devem ser levados em cota na avaliação de atividade inventiva. [1]



[1] STEINBRENER, Stefan. Patentable subject matter under Article 52(2) and (3) EPC: a whitelist of positive cases from the EPO Boards of Appeal—Part 1. Journal of Intellectual Property Law & Practice, 2018, Vol. 13, No. 1, p. 33

Conversor XML em TXT

A RPI está iniciando nesta terça feira dia 05/06/2018 na RPI 2464 a disponibilizar o formato XML.

A previsão é que a partir de 2019 seja disponibilizado apenas o formato XML
http://www.inpi.gov.br/comunicados/arquivos-no-formato-txt-passarao-para-xml-na-rpi

A seguir eu disponibilizo um código em PHP que desenvolvi para converter o arquivo XML atual em TXT, desta maneira você pode recuperar a RPI em TXT e continuar usando seus sistemas sem qualquer necessidade de reprogramar o código de leitura da revista.

  $fname="P$rpi.TXT";
  @$fp = fopen($fname,"w");
  if (!$fp)
  {
   echo "Não foi identificado o arquivo texto $fname";
   exit();
  }
  $data2 = substr($data,8,2).'/'.substr($data,5,2).'/'.substr($data,0,4);
  $msg = "No $rpi de $data2";
  echo "$msg<BR>";
  fputs($fp,$msg."\n");

  $saveFileName = "revistas/Patente_$rpi.xml";
  $data2 = substr($data,8,2).'/'.substr($data,5,2).'/'.substr($data,0,4);

  $myprocessos= array();
  $filename = $saveFileName;
  if(file_exists($filename)) {

      $doc = new DOMDocument('1.0', 'utf-8');
      $xmlfile = file_get_contents($filename);
      $doc->loadXML($xmlfile);
   $xpath = new DOMXPath($doc);
   $n = 0;
   $entry = $xpath->query("//revista/despacho");

   foreach($entry as $ent){
    $n++;
       //fputs($fp,"\n");

    foreach($ent->childNodes as $nodename_main)
    {

     if($nodename_main->nodeName=='codigo')
     {
      $inid = 'Cd';
      $codigo_main = utf8_decode(trim($nodename_main->nodeValue));
      if ($codigo_main>=100 and $codigo_main<=140) $codigo_main = 'PR - Recursos';
      if ($codigo_main>=200 and $codigo_main<=218) $codigo_main = 'PR - Nulidades';
      $myprocessos[$n][$inid]=$codigo_main;
      if ($codigo_main=='PR - Recursos' or $codigo_main=='PR - Nulidades') $myprocessos[$n]['Di']='DIRPA';
     }

     if($nodename_main->nodeName=='processo-patente')
     {
      foreach($nodename_main->childNodes as $nodename)
      {
       if($nodename->nodeName=='numero')
       {
        //$inid = 11;
        $inid = $nodename->getAttribute('inid');
        $numero = trim($nodename->nodeValue);
        $kindcode = $nodename->getAttribute('kindcode');
        $myprocessos[$n][$inid]=$numero.' '.$kindcode;
       }

       if($nodename->nodeName=='data-deposito')
       {
        //$inid = 22;
        $inid = $nodename->getAttribute('inid');
        $data_deposito = trim($nodename->nodeValue);
        //$data_deposito = substr($data_deposito,8,2).'/'.substr($data_deposito,5,2).'/'.substr($data_deposito,0,4);
        $myprocessos[$n][$inid]=$data_deposito;
       }

       if($nodename->nodeName=='concessao')
       {
        //$inid = 45;
        $inid = $nodename->getAttribute('inid');
        foreach($nodename->childNodes as $subNodes)
        {
         if($subNodes->nodeName=='data')
         {
          $concessao = trim($subNodes->nodeValue);
          //$concessao = substr($concessao,8,2).'/'.substr($concessao,5,2).'/'.substr($concessao,0,4);
          $myprocessos[$n][$inid]=$concessao;
         }
        }
       }

       if($nodename->nodeName=='publicacao-nacional')
       {
        //$inid = 44;
        $inid = $nodename->getAttribute('inid');
        foreach($nodename->childNodes as $subNodes)
        {
         if($subNodes->nodeName=='data-rpi')
         {
          $data_rpi = trim($subNodes->nodeValue);
          //$data_rpi = substr($data_rpi,8,2).'/'.substr($data_rpi,5,2).'/'.substr($data_rpi,0,4);
          $myprocessos[$n][$inid]=$data_rpi;
         }
        }
       }

       if($nodename->nodeName=='pedido-principal')
       {
        //$inid = 61;
        $inid = $nodename->getAttribute('inid');
        foreach($nodename->childNodes as $subNodes)
        {
         if($subNodes->nodeName=='numero')
         {
          $numero = trim($subNodes->nodeValue);
         }
         if($subNodes->nodeName=='data-deposito')
         {
          $data_deposito = trim($subNodes->nodeValue);
          //$data_deposito = substr($data_deposito,8,2).'/'.substr($data_deposito,5,2).'/'.substr($data_deposito,0,4);
         }
         $myprocessos[$n][$inid]=$numero.' '.$data_deposito;
        }
       }

       if($nodename->nodeName=='data-fase-nacional')
       {
        //$inid = 85;
        $inid = $nodename->getAttribute('inid');
        $data = trim($nodename->nodeValue);
        //$data = substr($data,8,2).'/'.substr($data,5,2).'/'.substr($data,0,4);
        $myprocessos[$n][$inid]=$data;
       }


       if($nodename->nodeName=='pedido-internacional')
       {
        //$inid = 86;
        $inid = $nodename->getAttribute('inid');
        foreach($nodename->childNodes as $subNodes)
        {
         if($subNodes->nodeName=='numero-pct')
         {
          $numero_pct = trim($subNodes->nodeValue);
         }
         if($subNodes->nodeName=='data-pct')
         {
          $data_pct = trim($subNodes->nodeValue);
          //$data_pct = substr($data_pct,8,2).'/'.substr($data_pct,5,2).'/'.substr($data_pct,0,4);
         }
         $myprocessos[$n][$inid]="$numero_pct de $data_pct";
        }
       }

       if($nodename->nodeName=='publicacao-internacional')
       {
        //$inid = 87;
        $inid = $nodename->getAttribute('inid');
        foreach($nodename->childNodes as $subNodes)
        {
         if($subNodes->nodeName=='numero-ompi')
         {
          $numero_ompi = trim($subNodes->nodeValue);
         }
         if($subNodes->nodeName=='data-ompi')
         {
          $data_ompi = trim($subNodes->nodeValue);
          //$data_ompi = substr($data_ompi,8,2).'/'.substr($data_ompi,5,2).'/'.substr($data_ompi,0,4);
         }
         $myprocessos[$n][$inid]="$numero_ompi de $data_ompi";
        }
       }

       if($nodename->nodeName=='resumo')
       {
        //$inid = 57;
        $inid = $nodename->getAttribute('inid');
        $resumo = utf8_decode(trim($nodename->nodeValue));
        $myprocessos[$n][$inid]=$resumo;
       }


       if($nodename->nodeName=='classificacao-internacional-lista')
       {
        $i=0;
        foreach($nodename->childNodes as $subNodes)
        {
         if($subNodes->nodeName=='classificacao-internacional')
         {
          //$inid = 51;
          $inid = $subNodes->getAttribute('inid');
          $sequencia = $subNodes->getAttribute('sequencia');
          $ano = $subNodes->getAttribute('ano');
          $codigo_subNodes = trim($subNodes->nodeValue);
          if ($i++==0)
           $myprocessos[$n][$inid]=$codigo_subNodes." "."($ano)";
          else
           $myprocessos[$n][$inid]=$myprocessos[$n][$inid].", ".$codigo_subNodes.' '."($ano)";
         }
        }
       }


       //if($nodename->nodeName=='classificacao-CPC-lista')
       if($nodename->nodeName=='classificacao-nacional-lista')
       {
        $i=0;
        foreach($nodename->childNodes as $subNodes)
        {
         //if($subNodes->nodeName=='classificacao-CPC')
         if($subNodes->nodeName=='classificacao-nacional')
         {
          //$inid = 52;
          $inid = $subNodes->getAttribute('inid');
          $sequencia = $subNodes->getAttribute('sequencia');
          $classificacao_cpc = trim($subNodes->nodeValue);
          if ($i++==0)
           $myprocessos[$n][$inid]=$classificacao_cpc;
          else
           $myprocessos[$n][$inid]=$myprocessos[$n][$inid].' , '.$classificacao_cpc;
         }
        }
       }


       if($nodename->nodeName=='prioridade-unionista-lista')
       {
        $i=0;
        foreach($nodename->childNodes as $subNodes)
        {
         if($subNodes->nodeName=='prioridade-unionista')
         {
          //$inid = 30;
          $inid = $subNodes->getAttribute('inid');
          $sequencia = $subNodes->getAttribute('sequencia');
          foreach($subNodes->childNodes as $subNodes2)
          {
           if($subNodes2->nodeName=='sigla-pais')
           {
            $sigla_pais = trim($subNodes2->nodeValue);
           }
           if($subNodes2->nodeName=='numero-prioridade')
           {
            $numero_prioridade = trim($subNodes2->nodeValue);
           }
           if($subNodes2->nodeName=='data-prioridade')
           {
            $data_prioridade = trim($subNodes2->nodeValue);
            //$data_prioridade = substr($data_prioridade,8,2).'/'.substr($data_prioridade,5,2).'/'.substr($data_prioridade,0,4);
           }
          }
          if ($i++==0)
           $myprocessos[$n][$inid]=$data_prioridade.' '.$sigla_pais.' '.$numero_prioridade;
          else
           $myprocessos[$n][$inid]=$myprocessos[$n][$inid].'; '.$data_prioridade.' '.$sigla_pais.' '.$numero_prioridade;
         }

        }
       }


       if($nodename->nodeName=='prioridade-interna-lista')
       {
        $i=0;
        foreach($nodename->childNodes as $subNodes)
        {
         if($subNodes->nodeName=='prioridade-interna')
         {
          //$inid = 66;
          $inid = $subNodes->getAttribute('inid');
          $sequencia = $subNodes->getAttribute('sequencia');
          foreach($subNodes->childNodes as $subNodes2)
          {
           if($subNodes2->nodeName=='data-prioridade')
           {
            $data_prioridade = trim($subNodes2->nodeValue);
            //$data_prioridade = substr($data_prioridade,8,2).'/'.substr($data_prioridade,5,2).'/'.substr($data_prioridade,0,4);
           }
           if($subNodes2->nodeName=='numero-prioridade')
           {
            $numero_prioridade = trim($subNodes2->nodeValue);
           }

          }
          if ($i++==0)
           $myprocessos[$n][$inid]="$numero_prioridade $data_prioridade";
          else
           $myprocessos[$n][$inid]=$myprocessos[$n][$inid].'; '."$numero_prioridade $data_prioridade";
         }
        }
       }


       if($nodename->nodeName=='divisao-pedido')
       {
        //$inid = 62;
        $inid = $nodename->getAttribute('inid');
        foreach($nodename->childNodes as $subNodes)
        {
         if($subNodes->nodeName=='numero')
         {
          $numero = trim($subNodes->nodeValue);
         }
         if($subNodes->nodeName=='data-deposito')
         {
          $data_deposito = trim($subNodes->nodeValue);
          //$data_deposito = substr($data_deposito,8,2).'/'.substr($data_deposito,5,2).'/'.substr($data_deposito,0,4);
         }

         $myprocessos[$n][$inid]=$numero.' '.$data_deposito;
        }
       }

       if($nodename->nodeName=='titulo')
       {
        //$inid = 54;
        $inid = $nodename->getAttribute('inid');
        $titulo = utf8_decode(trim($nodename->nodeValue));
        $myprocessos[$n][$inid]=$titulo;
       }


       if($nodename->nodeName=='titular-lista')
       {
        $i=0;
        foreach($nodename->childNodes as $subNodes)
        {
         if($subNodes->nodeName=='titular')
         {
          //$inid = 71;
          $inid = $subNodes->getAttribute('inid');
          $sequencia = $subNodes->getAttribute('sequencia');
          foreach($subNodes->childNodes as $subNodes2)
          {
           if($subNodes2->nodeName=='nome-completo')
           {
            $nome_completo = utf8_decode(trim($subNodes2->nodeValue));
           }
           $uf='';
           if($subNodes2->nodeName=='endereco')
           {
            foreach($subNodes2->childNodes as $subNodes3)
            {
             if($subNodes3->nodeName=='uf')
             {
              $uf = '/'.trim($subNodes3->nodeValue);
             }
             if($subNodes3->nodeName=='pais')
             {
              $siglaPais = trim($subNodes3->nodeValue);
             }
            }

            if ($i++==0)
             $myprocessos[$n][$inid]=trim($nome_completo." "."($siglaPais$uf)");
            else
             $myprocessos[$n][$inid]=$myprocessos[$n][$inid].", ".trim($nome_completo.' '."($siglaPais$uf)");
           }
          }
         }
        }
       }


       if($nodename->nodeName=='inventor-lista')
       {
        $i=0;
        foreach($nodename->childNodes as $subNodes)
        {
         if($subNodes->nodeName=='inventor')
         {
          //$inid = 72;
          $inid = $subNodes->getAttribute('inid');
          $sequencia = $subNodes->getAttribute('sequencia');
          foreach($subNodes->childNodes as $subNodes2)
          {
           if($subNodes2->nodeName=='nome-completo')
           {
            $nome_completo = utf8_decode(trim($subNodes2->nodeValue));
           }
          }

          if ($i++==0)
           $myprocessos[$n][$inid]=$nome_completo;
          else
           $myprocessos[$n][$inid]=$myprocessos[$n][$inid].'; '.$nome_completo;
         }
        }
       }


       if($nodename->nodeName=='procurador-lista')
       {
        $i=0;
        foreach($nodename->childNodes as $subNodes)
        {
         if($subNodes->nodeName=='procurador')
         {
          //$inid = 74;
          $inid = $subNodes->getAttribute('inid');
          $sequencia = $subNodes->getAttribute('sequencia');
          foreach($subNodes->childNodes as $subNodes2)
          {
           if($subNodes2->nodeName=='nome-completo')
           {
            $nome_completo = utf8_decode(trim($subNodes2->nodeValue));
           }
          }

          if ($i++==0)
           $myprocessos[$n][$inid]=$nome_completo;
          else
           $myprocessos[$n][$inid]=$myprocessos[$n][$inid].', '.$nome_completo;
         }
        }
       }
      }
     }

     if($nodename_main->nodeName=='comentario')
     {
      //$inid = 'Co';
      $inid = $nodename_main->getAttribute('inid');
      $comentario = utf8_decode(trim($nodename_main->nodeValue));
      $myprocessos[$n][$inid]=$comentario;
      //$myprocessos[$n]['De']=$decisao;
     }

     if($nodename_main->nodeName=='titulo')
     {
      $inid = 'De';
      $decisao = utf8_decode(trim($nodename_main->nodeValue));
      //$myprocessos[$n][$inid]=$decisao;
     }
    }

    //print_r($myprocessos[$n]);
    ksort($myprocessos[$n]);
    $msg_ultimo = '';
    foreach ($myprocessos[$n] as $key=>$value)
    {
     $msg = "($key) $value";
     if ($key=='co' or $key=='De')
      $msg_ultimo = $msg;
     else
     {
      echo "$msg<BR>";
      fputs($fp,$msg."\n");
     }
    }
    if ($msg_ultimo<>'')
    {
      echo "$msg_ultimo<BR>";
      fputs($fp,$msg_ultimo."\n");
    }
    echo "<BR><BR><BR>";
   }

  }
  fclose($fp);
  echo "Fim de processamento";
  exit();