Application authority of utility models & address information

Here you can post your opinions, ask questions and share experiences on the PATSTAT product line. Please always indicate the PATSTAT edition (e.g. 2015 Autumn Edition) and the database (e.g. PATSTAT Online, MySQL, MS SQL Server, ...) you are using.
Post Reply

carmen.calatrava
Posts: 8
Joined: Mon May 22, 2017 5:36 pm

Application authority of utility models & address information

Post by carmen.calatrava » Mon Feb 12, 2018 3:55 pm

Hi,

I would like to retrieve information on German applicants of utility models. After trying different, queries I have reached the conclusion that utility model applications are submitted to the national authorities, rather than to the EPO. For example, the query below (with appln_auth = 'EP') does not return data. However, the following one (with appln_auth = 'DE') does. Is this right?

Code: Select all

SELECT distinct(p.person_name), p.person_id, p.person_address
FROM tls201_appln a join tls209_appln_ipc aipc on a.appln_id = aipc.appln_id
join tls207_pers_appln pa on a.appln_id = pa.appln_id
join tls206_person p on p.person_id = pa.person_id
WHERE 
pa.applt_seq_nr > 0 -- consider only applicants
AND a.ipr_type = 'UM' -- utility model
AND a.granted = 1
AND a.appln_filing_year between 2005 and 2015
AND p.person_ctry_code = 'DE'
AND a.appln_auth = 'EP'
ORDER BY p.person_name

Code: Select all

SELECT distinct(p.person_name), p.person_id, p.person_address
FROM tls201_appln a join tls209_appln_ipc aipc on a.appln_id = aipc.appln_id
join tls207_pers_appln pa on a.appln_id = pa.appln_id
join tls206_person p on p.person_id = pa.person_id
WHERE 
pa.applt_seq_nr > 0 -- consider only applicants
AND a.ipr_type = 'UM' -- utility model
AND a.granted = 1
AND a.appln_filing_year between 2005 and 2015
AND p.person_ctry_code = 'DE'
AND a.appln_auth = 'DE'
ORDER BY p.person_name
Moreover, I see that the applicants' address information is not available in the query above. Is it that the address of utility model applicants is not saved in PATSTAT?

Note: I am using the raw data of Spring 2017.

Thank you very much in advance and best regards,
Carmen


EPO / PATSTAT Support
Posts: 425
Joined: Thu Feb 22, 2007 5:33 pm
Contact:

Re: Application authority of utility models & address information

Post by EPO / PATSTAT Support » Wed Mar 21, 2018 2:47 pm

Hello Carmen,
It is important to remember that not all patent authorities have a "utility model" IP protection regime.
EPO for one does not grant utility models, so your first query will not give any results because ipr_type=UM will not return an hits where a.appln_auth=EP. The second query is fine as you have changed a.appln_auth = 'EP' into a.appln_auth = 'DE' . It is good practice to sometimes have a quick look at the available data in PATSTAT when you do analysis across patent authorities.
This query gives for each patent authority an overview of the number of UM filed in the specific years; you can easily adapt it with extra tables and conditions :

Code: Select all

--Utility models in PATSTAT
SELECT appln_auth, 
count(distinct((case when appln_filing_year < 1995 then tls201_appln.appln_id end))) as '<1995',
count(distinct((case when appln_filing_year = 1995 then tls201_appln.appln_id end))) as '1995',
count(distinct((case when appln_filing_year = 1996 then tls201_appln.appln_id end))) as '1996',
count(distinct((case when appln_filing_year = 1997 then tls201_appln.appln_id end))) as '1997',
count(distinct((case when appln_filing_year = 1998 then tls201_appln.appln_id end))) as '1998',
count(distinct((case when appln_filing_year = 1999 then tls201_appln.appln_id end))) as '1999',
count(distinct((case when appln_filing_year = 2000 then tls201_appln.appln_id end))) as '2000',
count(distinct((case when appln_filing_year = 2001 then tls201_appln.appln_id end))) as '2001',
count(distinct((case when appln_filing_year = 2002 then tls201_appln.appln_id end))) as '2002',
count(distinct((case when appln_filing_year = 2003 then tls201_appln.appln_id end))) as '2003',
count(distinct((case when appln_filing_year = 2004 then tls201_appln.appln_id end))) as '2004',
count(distinct((case when appln_filing_year = 2005 then tls201_appln.appln_id end))) as '2005',
count(distinct((case when appln_filing_year = 2006 then tls201_appln.appln_id end))) as '2006',
count(distinct((case when appln_filing_year = 2007 then tls201_appln.appln_id end))) as '2007',
count(distinct((case when appln_filing_year = 2008 then tls201_appln.appln_id end))) as '2008',
count(distinct((case when appln_filing_year = 2009 then tls201_appln.appln_id end))) as '2009',
count(distinct((case when appln_filing_year = 2010 then tls201_appln.appln_id end))) as '2010',
count(distinct((case when appln_filing_year = 2011 then tls201_appln.appln_id end))) as '2011',
count(distinct((case when appln_filing_year = 2012 then tls201_appln.appln_id end))) as '2012',
count(distinct((case when appln_filing_year = 2013 then tls201_appln.appln_id end))) as '2013',
count(distinct((case when appln_filing_year = 2014 then tls201_appln.appln_id end))) as '2014',
count(distinct((case when appln_filing_year = 2015 then tls201_appln.appln_id end))) as '2015',
count(distinct((case when appln_filing_year = 2016 then tls201_appln.appln_id end))) as '2016',
count (appln_id) as total
FROM tls201_appln 
where ipr_type = 'UM'
group by appln_auth
order by total desc
About the addresses; indeed many are missing for various reasons. In most cases this is due to the fact that many national patent offices do no provide us with addresses. There is a small work around by replenishing addresses based on other applications from the same applicant. Here is a possible approach. It will replenish 82.000 out of 138.000 application with an address. The approach is far from perfect, and can definitely be fine tuned and improved, but it will give you probably enough data to work with.

Code: Select all

--Replenish addresses 
SELECT distinct p.psn_name, p.psn_id, longest.person_address,a.appln_nr_epodoc, appln_filing_date
FROM tls201_appln a join tls209_appln_ipc aipc on a.appln_id = aipc.appln_id
join tls207_pers_appln pa on a.appln_id = pa.appln_id
join tls206_person p on p.person_id = pa.person_id
join tls206_person longest on p.psn_id = longest.psn_id,
(select psn_id, max(len(person_address)) maxlength from tls206_person where person_ctry_code = 'DE' group by psn_id )  temp1
WHERE 
pa.applt_seq_nr > 0 -- consider only applicants
AND a.ipr_type = 'UM' -- utility model
AND a.granted = 1
AND a.appln_filing_year between 2005 and 2015
AND p.person_ctry_code = 'DE'
AND a.appln_auth = 'DE'
and longest.psn_id = temp1.psn_id
and len(longest.person_address) = temp1.maxlength
ORDER BY p.psn_name, a.appln_filing_date
PATSTAT Support Team
EPO - Vienna
patstat @ epo.org


Post Reply