l0o0 / translators_CN

Zotero translator中文网页抓取翻译器🎉This is Zotero translators for Chinese Sites(beta), not the official Zotero repo
GNU Affero General Public License v3.0
4.11k stars 525 forks source link

新增北大法宝转换器(#129) #134

Closed zepinglee closed 1 year ago

zepinglee commented 2 years ago

目前尚未实现的功能:

  1. 从搜索结果批量抓取;
  2. 期刊文章的 PDF 附件。

需要请教 @l0o0 。

Himejima5 commented 2 years ago

抓取法律法规和司法案例时,能够同时保存网页快照吗?(就是问问)

zepinglee commented 2 years ago

抓取法律法规和司法案例时,能够同时保存网页快照吗?(就是问问)

应该可以,但我还需要研究一下调用哪个函数。

zepinglee commented 2 years ago

67e9190 中添加了网页快照。

@Himejima5 需要注意的是,公开的 Zotero 群组不能保存附件。

Himejima5 commented 2 years ago

十分感谢:D 有快照果然更方便了!!

l0o0 commented 2 years ago

目前尚未实现的功能:

1. 从搜索结果批量抓取;

2. 期刊文章的 PDF 附件。

需要请教 @l0o0 。

从搜索页面批量保存的方法:

  1. 如果有相关的接口,可以从搜索页面获取类似ID之类的信息,利用接口获取。如知网转换器
  2. 如果没有接口,可以获取对应的结果的URL,然后调用处理URL的函数,获取该URL的页面HTML。这样就可以用单个条目的办法进行处理了

https://www.zotero.org/support/dev/translators/coding#web_translators 参考batch saving 那部分 Zotero.Utilities.processDocuments(url, callback, onDone, charset)函数。用 Zotero 函数获取页面HTML,如果这个页面有许多JavaScript生成的动态页面,获取的页面和实际浏览器里展示的,会有区别。

zepinglee commented 2 years ago

目前尚未实现的功能:

1. 从搜索结果批量抓取;

2. 期刊文章的 PDF 附件。

需要请教 @l0o0 。

从搜索页面批量保存的方法:

  1. 如果有相关的接口,可以从搜索页面获取类似ID之类的信息,利用接口获取。如知网转换器
  2. 如果没有接口,可以获取对应的结果的URL,然后调用处理URL的函数,获取该URL的页面HTML。这样就可以用单个条目的办法进行处理了

https://www.zotero.org/support/dev/translators/coding#web_translators 参考batch saving 那部分 Zotero.Utilities.processDocuments(url, callback, onDone, charset)函数。用 Zotero 函数获取页面HTML,如果这个页面有许多JavaScript生成的动态页面,获取的页面和实际浏览器里展示的,会有区别。

感谢指导!我后来发现“北大法宝”有访问频率的限制,如果过于频繁会需要横条验证,所以批量抓取的方法不太实用。

zepinglee commented 2 years ago

@Himejima5 已经更新 translator,可以结合 redleafnew/Chinese-STD-GB-T-7714-related-csl 的 law 分支的 301manual-of-legal-citation-multi-lingual.csl 进行测试。

另外我测试的时候发现,Extra 种不宜存放过多内容,所以除了 CSL 的字段外仅保留了法宝引证码。

l0o0 commented 2 years ago

这个PR,目前可以合并了么?@zepinglee

zepinglee commented 2 years ago

尚未收到反馈信息,先不急发自我的 iPhone在 2022年10月26日,16:19,Linxzh @.> 写道: @.

—Reply to this email directly, view it on GitHub, or unsubscribe.You are receiving this because you were mentioned.Message ID: @.***>

Himejima5 commented 2 years ago

抱歉未能在第一时间反馈(光顾着刷新另一个issue了)。

我按照《手册》示例抓取了相应条目,导入了群组“测试-北大法宝”文件夹,并更新了个别条目的信息。

关于司法案例。测试了指导性案例和公报案例的抓取和引用,未发现问题。普通案例的抓取也没有问题,只是在引用上,根据《手册》,裁判时间一般无须注明,确有必要时,可以标明裁判时间;《手册》提供的示例中,包郑照案的引注方式是原则上的 ,“凯奇莱案”则是例外的。这种“原则—例外”的区分可能实现吗?如果在样式上难以实现,个人的想法是,在样式上,略去司法案例的裁判时间,正如略去规范性文件的发布日期一样。

关于法律文件。目前遇到的一个问题是,根据《手册》,引用规范性文件时,是否引用具体条文(司法解释通常与法律一样,有多个条文,也有“条文序号”)会导致体例上的差别,涉及“条文序号”字段的插入位置等。能够根据是否填入“条文序号“,区别相应样式吗?

另外,能否支持抓取和引用以下类型的法律文件?

一是全国人大及其常委会通过的法律性质的决定(北大法宝将其“效力级别”归为“有关法律问题和重大问题的决定”)。与普通法律如《公司法》相比,可能需要:网页内抓取正文标题之下的“会期”字段信息,样式上使用“颁布日期”和“会期”字段信息。

二是立法说明(北大法宝将其“类别”归为“草案及其说明”)。可能需要:抓取的条目类型设置为“报告”,网页内抓取“发布部门”相关信息、填入“机构组织”字段,抓取正文标题之下的“作者”字段信息,以及将会期信息填入“地点”字段,样式上,除标题外,使用“作者”字段(而非“机构组织”字段)和“地点”“日期”字段。

三是官方会议决议(这里主要是指北大法宝将其“效力级别”归为“党内法规制度”的文件)。此类文件与前述第一类文件在引注体例上相同,但从性质(“条目类型”)上看,应当归为“报告”。

截屏2022-10-27 12 19 39
zepinglee commented 2 years ago

关于司法案例。测试了指导性案例和公报案例的抓取和引用,未发现问题。普通案例的抓取也没有问题,只是在引用上,根据《手册》,裁判时间一般无须注明,确有必要时,可以标明裁判时间;《手册》提供的示例中,包郑照案的引注方式是原则上的 ,“凯奇莱案”则是例外的。这种“原则—例外”的区分可能实现吗?如果在样式上难以实现,个人的想法是,在样式上,略去司法案例的裁判时间,正如略去规范性文件的发布日期一样。

这个无法实现,那我改为略去吧。

关于法律文件。目前遇到的一个问题是,根据《手册》,引用规范性文件时,是否引用具体条文(司法解释通常与法律一样,有多个条文,也有“条文序号”)会导致体例上的差别,涉及“条文序号”字段的插入位置等。能够根据是否填入“条文序号“,区别相应样式吗?

这里的差别指什么?能否给个示例?

另外,能否支持抓取和引用以下类型的法律文件?

一是全国人大及其常委会通过的法律性质的决定(北大法宝将其“效力级别”归为“有关法律问题和重大问题的决定”)。与普通法律如《公司法》相比,可能需要:网页内抓取正文标题之下的“会期”字段信息,样式上使用“颁布日期”和“会期”字段信息。

根据 https://www.zotero.org/support/kb/item_types_and_fields,这里的“第七届全国人大常委会”似乎更适合填在“Legislative Body”(写在 extra 字段),但我还没搞懂 session 的用法,按照 https://aurimasv.github.io/z2csl/typeMap.xml#map-statute session 是映射到 CSL 的 chapter-number,属于 number 类型变量,所以这里似乎只填 21?可能需要对比一些美国法律中关于 session 的用法。

二是立法说明(北大法宝将其“类别”归为“草案及其说明”)。可能需要:抓取的条目类型设置为“报告”,网页内抓取“发布部门”相关信息、填入“机构组织”字段,抓取正文标题之下的“作者”字段信息,以及将会期信息填入“地点”字段,样式上,除标题外,使用“作者”字段(而非“机构组织”字段)和“地点”“日期”字段。

我觉得“草案及其说明”更适合“法案”(bill)类型。

三是官方会议决议(这里主要是指北大法宝将其“效力级别”归为“党内法规制度”的文件)。此类文件与前述第一类文件在引注体例上相同,但从性质(“条目类型”)上看,应当归为“报告”。

截屏2022-10-27 12 19 39

我觉得“党内法规制度”可以归入“法规”(regulation)类。目前“法规”类型是借用“法律”,并在 Extra 中填写 Type: regulation,这样在导出到 CSL 处理时转为 regulation 类型。使用“报告”类型也是可以的,在填写 Type: regulation 后对 CSL 而言是一样的,只是在 Zotero 界面显示的图标不同。“标准”类型也是使用“报告”并填写 Type: standard

Himejima5 commented 2 years ago

这里的差别指什么?能否给个示例?

请参见附图的脚注2和脚注9。在无需注明具体条文时,体例如脚注2,文件名与文件号之间以逗号分隔;在注明条文序号时,体例如脚注9,条文序号插入脚注末尾而非文件名之后,文件号填入括号内。

这里的“第七届全国人大常委会”似乎更适合填在“Legislative Body”(写在 extra 字段)

我的理解是,“全国人大”“全国人大常委会”“国务院”“国家市场监督管理总局”等(北大法宝网页中的“发布部门”)应当填入“Legislative Body”(在宽泛的意义上,这些立法主体也可以视为法律的“作者”),但“第七届全国人大常委会第二十一次会议”等应填入“Session”。

可能需要对比一些美国法律中关于 session 的用法。

然而,正如您所说,涉及美国法律时,情况或有不同。例如,美国”数字千年版权法案”(Digital Millennium Copyright Act, DMCA)的“Legislative Body“字段或应填入”105th Congress“(第105届国会),“Session”字段或应填入“2”(第2次会议)。这部法律的信息参见 https://www.congress.gov/bill/105th-congress/senate-bill/2037

个人倾向于区别中外法律,但如果这样很麻烦,那么可以考虑遵循CSL的映射逻辑,按照美国法律抓取(也就是您所提出的方案)相应字段的信息。

我觉得“草案及其说明”更适合“法案”(bill)类型。

我的第一反应也是如此。但之后我还是觉得,立法草案(比如《民法典(草案)》, https://www.pkulaw.com/protocol/31f27c0d6df539b1694e8cbe0b2a7d67bdfb.html?keyword=%E6%B0%91%E6%B3%95%E5%85%B8&way=listView )归入法案没有疑义(北大法宝网页的“类别”显示为“征求意见”,草案实为征求意见通知的附件),但是全国人大法工委主任、副主任所作的立法说明(类似于美国法律文献中的“委员会报告”,如DMCA的委员会报告, https://www.congress.gov/congressional-report/105th-congress/senate-report/190/1 ),就是“报告”。应当区分立法草案和立法说明,《手册》也对立法说明的引注体例作出单独规定。

我觉得“党内法规制度”可以归入“法规”(regulation)类。目前“法规”类型是借用“法律”,并在 Extra 中填写 Type: regulation,这样在导出到 CSL 处理时转为 regulation 类型。使用“报告”类型也是可以的,在填写 Type: regulation 后对 CSL 而言是一样的,只是在 Zotero 界面显示的图标不同。

部分的或狭义上的“党内法规制度“(如CPC章程,北大法宝网页的“效力级别”为“党内法规制度”,“法规类别”为“政纪党纪”)可以归入“regulation”,但CCCP所作决定、国家主席所作报告,应当归入“报告”。

zepinglee commented 2 years ago

这里的差别指什么?能否给个示例?

请参见附图的脚注2和脚注9。在无需注明具体条文时,体例如脚注2,文件名与文件号之间以逗号分隔;在注明条文序号时,体例如脚注9,条文序号插入脚注末尾而非文件名之后,文件号填入括号内。

明白了。

这里的“第七届全国人大常委会”似乎更适合填在“Legislative Body”(写在 extra 字段)

我的理解是,“全国人大”“全国人大常委会”“国务院”“国家市场监督管理总局”等(北大法宝网页中的“发布部门”)应当填入“Legislative Body”(在宽泛的意义上,这些立法主体也可以视为法律的“作者”),但“第七届全国人大常委会第二十一次会议”等应填入“Session”。

可能需要对比一些美国法律中关于 session 的用法。

然而,正如您所说,涉及美国法律时,情况或有不同。例如,美国”数字千年版权法案”(Digital Millennium Copyright Act, DMCA)的“Legislative Body“字段或应填入”105th Congress“(第105届国会),“Session”字段或应填入“2”(第2次会议)。这部法律的信息参见 https://www.congress.gov/bill/105th-congress/senate-bill/2037

个人倾向于区别中外法律,但如果这样很麻烦,那么可以考虑遵循CSL的映射逻辑,按照美国法律抓取(也就是您所提出的方案)相应字段的信息。

我的想法是,“第七届全国人大常委会”和“105th Congress”都是立法机构,应该处于相同的字段。不过将“第七届全国人大常委会第二十一次会议”完整地填入 session 对于 CSL 输出也没什么问题,而且比分开填写 Legislative Body 方便很多。

我觉得“草案及其说明”更适合“法案”(bill)类型。

我的第一反应也是如此。但之后我还是觉得,立法草案(比如《民法典(草案)》, https://www.pkulaw.com/protocol/31f27c0d6df539b1694e8cbe0b2a7d67bdfb.html?keyword=%E6%B0%91%E6%B3%95%E5%85%B8&way=listView )归入法案没有疑义(北大法宝网页的“类别”显示为“征求意见”,草案实为征求意见通知的附件),但是全国人大法工委主任、副主任所作的立法说明(类似于美国法律文献中的“委员会报告”,如DMCA的委员会报告, https://www.congress.gov/congressional-report/105th-congress/senate-report/190/1 ),就是“报告”。应当区分立法草案和立法说明,《手册》也对立法说明的引注体例作出单独规定。

有道理,我改成 report 类型。

我觉得“党内法规制度”可以归入“法规”(regulation)类。目前“法规”类型是借用“法律”,并在 Extra 中填写 Type: regulation,这样在导出到 CSL 处理时转为 regulation 类型。使用“报告”类型也是可以的,在填写 Type: regulation 后对 CSL 而言是一样的,只是在 Zotero 界面显示的图标不同。

部分的或狭义上的“党内法规制度“(如CPC章程,北大法宝网页的“效力级别”为“党内法规制度”,“法规类别”为“政纪党纪”)可以归入“regulation”,但CCCP所作决定、国家主席所作报告,应当归入“报告”。

有道理,我加一些这方面的测试案例。

zepinglee commented 2 years ago

@Himejima5 发现《关于〈中华人民共和国行政诉讼法修正案(草案)〉的说明(2013)》不太方便抓取报告人姓名,而且有的立法说明甚至没有报告人、报告场合等信息(比如 CLI.DL.21400)。

Screen Shot 2022-10-31 at 21 47 32

Place 一般用于地理位置,“第十二届全国人大常委会第六次会议”就不太合适,感觉放到“institution”更合适。

Himejima5 commented 2 years ago

我的想法是,“第七届全国人大常委会”和“105th Congress”都是立法机构,应该处于相同的字段。不过将“第七届全国人大常委会第二十一次会议”完整地填入 session 对于 CSL 输出也没什么问题,而且比分开填写 Legislative Body 方便很多。

我请教了几位朋友,结论仍是:论及我国的立法主体,学界一律称“全国人大”“全国人大常委会”等,仅在说明某部法律的立法过程时称“x年x月x日,《xx法》由第x届全国人大常委会第x次会议通过”;论及美国的立法,一般也认为联邦立法机关即美国国会,包括参议院和众议院,极少注明“第x届国会”。因此,个人仍支持区分中英文条目的抓取,对于中文条目,将“第x届全国人大常委会第x次会议”完整填入“session”,对于英文条目,则分开填写(因为较少使用Westlaw、LexisNexis等数据库,不知是否有相应的translator;如有,这点或许可以参考)。

发现《关于〈中华人民共和国行政诉讼法修正案(草案)〉的说明(2013)》不太方便抓取报告人姓名,而且有的立法说明甚至没有报告人、报告场合等信息(比如 CLI.DL.21400)。

对于您所提到的立法法修正草案,我也不明白相关信息缺失的原因。也许是因为这一说明刚刚发布、修正草案正处于征求意见阶段?报告人和报告场合的信息是公开的,这时或许只能手动录入了:http://www.npc.gov.cn/npc/c30834/202210/7389edf32cea498890c459ad2af765ff.shtml

Place 一般用于地理位置,“第十二届全国人大常委会第六次会议”就不太合适,感觉放到“institution”更合适。

我看了一下 https://www.zotero.org/support/kb/item_types_and_fields ,但仍然坚持,只能抓取“全国人大常委会法制工作委员会”填入“institution”字段,发布机构和发布场合绝不能混淆;如果“第十二届全国人大常委会第六次会议”真的不太适合填入“place”字段(最准确的可能是 Conference Name),那么,个人倾向于该字段留空,不抓取会期信息。

Himejima5 commented 2 years ago

目前尚未实现的功能:从搜索结果批量抓取;期刊文章的 PDF 附件。

另外问问下载期刊文章的 PDF 附件这项功能可以实现吗?

zepinglee commented 2 years ago

我的想法是,“第七届全国人大常委会”和“105th Congress”都是立法机构,应该处于相同的字段。不过将“第七届全国人大常委会第二十一次会议”完整地填入 session 对于 CSL 输出也没什么问题,而且比分开填写 Legislative Body 方便很多。

我请教了几位朋友,结论仍是:论及我国的立法主体,学界一律称“全国人大”“全国人大常委会”等,仅在说明某部法律的立法过程时称“x年x月x日,《xx法》由第x届全国人大常委会第x次会议通过”;论及美国的立法,一般也认为联邦立法机关即美国国会,包括参议院和众议院,极少注明“第x届国会”。因此,个人仍支持区分中英文条目的抓取,对于中文条目,将“第x届全国人大常委会第x次会议”完整填入“session”,对于英文条目,则分开填写(因为较少使用Westlaw、LexisNexis等数据库,不知是否有相应的translator;如有,这点或许可以参考)。

OK。

Place 一般用于地理位置,“第十二届全国人大常委会第六次会议”就不太合适,感觉放到“institution”更合适。

我看了一下 https://www.zotero.org/support/kb/item_types_and_fields ,但仍然坚持,只能抓取“全国人大常委会法制工作委员会”填入“institution”字段,发布机构和发布场合绝不能混淆;如果“第十二届全国人大常委会第六次会议”真的不太适合填入“place”字段(最准确的可能是 Conference Name),那么,个人倾向于该字段留空,不抓取会期信息。

会期填在 Place 不太合适的另一点原因是,这样填写信息后使用其他 CSL 样式(比如国标)输出时会产生奇怪的结果(比如原“出版地: 出版社”的部分会输出“第十二届全国人大常委会第六次会议: 全国人大常委会法制工作委员会”)。那我就填在 ExtraConference Name 吧。

zepinglee commented 2 years ago

目前尚未实现的功能:从搜索结果批量抓取;期刊文章的 PDF 附件。

另外问问下载期刊文章的 PDF 附件这项功能可以实现吗?

我没有相关的 PDF 下载权限,所以不太方便实现这个功能。

Himejima5 commented 2 years ago

会期填在 Place 不太合适的另一点原因是,这样填写信息后使用其他 CSL 样式(比如国标)输出时会产生奇怪的结果(比如原“出版地: 出版社”的部分会输出“第十二届全国人大常委会第六次会议: 全国人大常委会法制工作委员会”)。

原来如此!

我没有相关的 PDF 下载权限,所以不太方便实现这个功能。

请您试试这个网站:http://www.90tsg.com 。账号:56045095,密码:086052。通过“资源列表—法律数据库—北大法宝—北大法宝(中央财经)”,亲测可以下载北大法宝法学期刊库的PDF。

Himejima5 commented 2 years ago

另外,您是否可以指个路:最新的北大法宝转换器(.js)和《法学引注手册》样式(.csl)的下载地址是?呈现测试案例/示例的页面是?十分感谢!

zepinglee commented 2 years ago

另外,您是否可以指个路:最新的北大法宝转换器(.js)和《法学引注手册》样式(.csl)的下载地址是?呈现测试案例/示例的页面是?十分感谢!

我最近还没修改这这些内容。

我一般喜欢喜欢测试修改完成后再从这些分支合并到主分支。

zepinglee commented 1 year ago

OK,现在修改了法律法规的格式。

期刊文章 PDF 的抓取还没有实现。

l0o0 commented 1 year ago

@zepinglee 北大法宝,是否也已经可以合并了?

zepinglee commented 1 year ago

@zepinglee 北大法宝,是否也已经可以合并了?

是的