我正在使用WebAnno,并且试图将创建的zip文件作为项目导入,但是由于zip无效,我一直收到错误消息。 从WebAnno导出项目会创建一个zip文件,当我将其重新导入时该文件是有效的。但是,当我解压缩然后重新压缩时,它略有不同,WebAnno不会将其识别为有效。 我在源代码中找到了用于测试有效性的函数,但我不明白它对该zip文件的确切测试内容。
public static boolean isZipValidWebanno(File aZipFile)
throws IOException
{
boolean isZipValidWebanno = false;
ZipFile zip = new ZipFile(aZipFile);
for (Enumeration zipEnumerate = zip.entries(); zipEnumerate.hasMoreElements();) {
ZipEntry entry = (ZipEntry) zipEnumerate.nextElement();
if (entry.toString().replace("/", "").startsWith(ImportUtil.EXPORTED_PROJECT)
&& entry.toString().replace("/", "").endsWith(".json")) {
isZipValidWebanno = true;
break;
}
}
return isZipValidWebanno;
}
答案 0 :(得分:0)
重新打包WebAnno项目存档时的典型错误是在ZIP存档中包含一个顶级文件夹。
适当的WebAnno project archive的结构类似于:
+- <project ID>.json - project metadata file
+- annotation
| +- <source document name>
| +- <user ID>.XXX - file representing the annotations for this user in the selected format.
+- annotation_ser
| +- <source document name>
| +- <user ID>.ser - serialized CAS file representing the annotations for this user
+- curation
| +- <source document name>
| +- CURATION_USER.XXX - file representing the state of curation in the selected format.
| +- CORRECTION_USER.XXX - correction project: original document state, automation project automatically generated suggestions
curation_ser
+- <source document name>
| +- CURATION_USER.ser - serialized UIMA CAS representing the state of curation
| +- CORRECTION_USER.ser - correction project: original document state, automation project automatically generated suggestions
+- log
| +- <project ID>.log - project log file
+- source - folder containing the original source files
一个典型的错误是人们提取了这样的档案,提取工具创建了一个文件夹来存放所有内容。重新打包时,用户倾向于将此文件夹包含在重新打包的档案中。结果是这样的结构:
+- SOME FOLDER NAME
+- <project ID>.json
+- annotation
. +- ...
.
WebAnno不会导入此类存档。确保重新打包的存档文件不包括其他顶级文件夹。
披露:我是WebAnno的维护者