数据中心的数据在向期刊进行投稿时,通常需要对数据引用有一定的格式变换。比如,Nature Scientific Data期刊,对Data Citation部分的建议是:
1. Lastname1, Initial1., Lastname2, Initial2., … & LastnameN. InitialN. Repository_name Dataset_accession_number_or_DOI (YYYY).
数据中心的数据作者在数据库中是有记录的,其通过一个表存储:
CREATE TABLE datadoi ( id serial NOT NULL, doi character varying(250) NOT NULL DEFAULT ''::character varying, authors text[], uuid uuid, author_en text[], CONSTRAINT datadoi_pkey PRIMARY KEY (id), CONSTRAINT datadoi_doi_key UNIQUE (doi) )
可以看出,作者是通过一个字符串数据存储。在PostgreSQL中,数组是通过如下形式记录的:
{value1,value2,…}
对于数据的作者信息,数据中心则要求其通过如下的形式记录到数据库中:
Wang Yijia, Zhang Eryi,…
而为了满足期刊的投稿要求,则需要将格式转换为:
Wang Y., Zhang E.,…
在数据库里,最终通过这样的形式进行处理:
select translate(regexp_replace(datadoi.author_en::text,'\s+(\w)\w*"',' \1.','g'),'{}"','')
即,将数组转换为字符串,剔除大括号,用逗号区分不同作者,用空格区分作者的姓和名,提取名的首字母,然后全局替换即可。
发表回复