我无法在Alfresco 5.2社区中设置自定义元数据提取器。我已经读过documentation。这是我到目前为止所做的:
首先,我创建了一个新模型,该模型包含一个具有所需字段的自定义类型(例如:DOI,volume,issn),并在该文件夹中创建了一条规则,以便添加到该文件夹的任何文档都将专门用于该类型。
然后,我需要创建一个新的映射,但是为此,我首先需要根据Alfresco知道属性的名称。为此,我修改了log4j.properties,以使log4j.logger.org.alfresco.repo.content.metadata.AbstractMappingMetadataExtracter = debug。这样,在上传包含所需元数据的文档后,我可以检查应在映射中使用的属性的名称。
这是我发现问题的地方。在Alfresco日志文件中,当我上载这些文档之一时,并非PDF中所有可用的元数据都显示为原始属性。例如:
PDF文档具有以下XMP元数据(这只是摘录,它具有更多字段):
<prism:url>https://doi.org/10.1007/s11192-018-2820-9</prism:url>
<prism:doi>10.1007/s11192-018-2820-9</prism:doi>
<prism:issn>1588-2861</prism:issn>
<prism:volume>116</prism:volume>
<prism:number>3</prism:number>
<prism:startingPage>2175</prism:startingPage>
<prism:endingPage>2188</prism:endingPage>
<prism:aggregationType>journal</prism:aggregationType>
<prism:publicationName>Scientometrics</prism:publicationName>
<prism:copyright>Akadémiai Kiadó, Budapest, Hungary</prism:copyright>
<pdfx:CrossmarkMajorVersionDate>2010-04-23</pdfx:CrossmarkMajorVersionDate>
<pdfx:CrossmarkDomainExclusive>true</pdfx:CrossmarkDomainExclusive>
<pdfx:doi>10.1007/s11192-018-2820-9</pdfx:doi>
<pdfx:robots>noindex</pdfx:robots>
<pdfx:CrossMarkDomains>
但是,当我将其上传到Alfresco时,日志文件会显示这些原始属性
原始属性:{date = 2018-08-13T08:56:21Z,pdf:PDFVersion = 1.6, xmp:CreatorTool = Springer,关键字=高引用文档,Google 学者,科学网络,范围,覆盖面,学术期刊,经典 论文,主题=科学计量学, https://doi.org/10.1007/s11192-018-2820-9,pdfa:PDFVersion = A-2b, dc:creator = Enrique Orduna-Malea,Emilio DelgadoLópez-Cózar,Alberto Martín-Martín,描述=科学计量学, https://doi.org/10.1007/s11192-018-2820-9, dcterms:created = 2018-06-26T11:18:02Z, Last-Modified = 2018-08-13T08:56:21Z, dcterms:modified = 2018-08-13T08:56:21Z,dc:format = application / pdf; 版本= 1.6,应用程序/ pdf;版本=“ A-2b”,标题=覆盖范围 Google学术搜索,Web of Science和Scopus中的高引用文献: 多学科比较,Last-Save-Date = 2018-08-13T08:56:21Z, CrossMarkDomains 1 = springer.com,meta:save-date = 2018-08-13T08:56:21Z, dc:title = Web of Google Scholar中高引用文档的覆盖范围 科学与Scopus:多学科比较, pdf:encrypted = false,Modify = 2018-08-13T08:56:21Z, cp:subject =科学计量学,https://doi.org/10.1007/s11192-018-2820-9, 机械手= noindex,内容类型=应用程序/ pdf, TIKA_PARSER_PARSE_SHAPES = false,创建者= Enrique Orduna-Malea,Emilio DelgadoLópez-Cózar,AlbertoMartín-Martín,pdfaid:conformance = B, comments = null,meta:author = Enrique Orduna-Malea,Emilio Delgado 洛佩斯·库萨尔(López-Cózar),阿尔贝托·马丁·马丁(AlbertoMartín-Martín), dc:subject = [Ljava.lang.String; @ 91aba4, meta:creation-date = 2018-06-26T11:18:02Z,created = 2018-06-26T11:18:02Z, 作者= Enrique Orduna-Malea,Emilio DelgadoLópez-Cózar,Alberto 马丁·马丁,xmpTPg:NPages = 14,Creation-Date = 2018-06-26T11:18:02Z, pdfaid:part = 2,CrossMarkDomains [2] = springerlink.com, meta:keyword =高引用文档,Google学术搜索,Web of 科学,范围,覆盖面,学术期刊,经典论文, 作者= Enrique Orduna-Malea,Emilio DelgadoLópez-Cózar,Alberto 马丁·马丁(Martín-Martín),生产者= Acrobat Distiller 10.1.8(Windows), CrossmarkDomainExclusive = true,CrossmarkMajorVersionDate = 2010-04-23, doi = 10.1007 / s11192-018-2820-9}
如您所见,导入了与pdfx名称空间相关的属性,但缺少了与棱柱模型相关的属性。
因此,我的主要问题是,为什么Alfresco无法将PDF中的所有可用元数据都检测为原始属性?
尽管未检测到某些属性,但我还是尝试配置其余的自定义元数据提取器。当然,这意味着因为未检测到我需要的某些属性,所以我不得不猜测它们的名称。
我配置了以下自定义映射:
<bean id="extracter.PDFBox" class="org.alfresco.repo.content.metadata.PdfBoxMetadataExtracter"
parent="baseMetadataExtracter">
<property name="documentSelector" ref="pdfBoxEmbededDocumentSelector" />
<property name="inheritDefaultMapping">
<value>true</value>
</property>
<property name="mappingProperties">
<props>
<prop key="namespace.prefix.prism">http://prismstandard.org/namespaces/basic/2.0</prop>
<prop key="doi">prism:doi</prop>
<prop key="prism:volume">prism:volume</prop>
<prop key="issn">prism:issn</prop>
</props>
</property>
</bean>
设置完成后,我重新启动了Alfresco,并尝试上传带有此元数据的文档。
由于原始属性中提供了“ doi”属性(它是pdfx命名空间的字段之一),因此DOI已成功导入。但是,正如我担心的那样,ISSN和卷字段没有填充。
关于Alfresco的PDF提取器为何未检测到PDF中的某些元数据的任何想法吗?
非常感谢您的提前帮助。