MS RFC 76:向输出图像添加许可证元数据

日期

2011/06/22

作者

保罗·拉姆齐

联系

opengeo.org的pramsey

状态

通过

版本

地图服务器6.2

描述:此RFC建议允许XML元数据信息嵌入到MapServer输出图像中。这个用例适用于任何一个组织,它可以生成希望将许可和作者信息直接嵌入到输出图像中的地图。

1。概述

XMP是“可扩展的元数据平台” 1 它允许跨多种文档和图像格式嵌入元数据信息:png、gif、jpeg、pdf等。xmp最初由Adobe开发。 2 并在整个产品线中得到支持。现在,它越来越多地被包含在元数据嵌入的其他标准中,并被用于查看图像信息的工具(例如exiftools)所支持。Creative Commons有使用XMP嵌入Commons许可的标准 3 在图像和其他文档中,包括特定的创作共享模式。

在WMS和其他Web映射服务中,广告许可和使用条款的挑战之一是这些条款通常与实际内容分开发布。因此,WMS服务可能会在功能文档中指定术语,但图像本身将不会被标记。使用标准标记将许可证URL嵌入到图像本身中,使组织能够清楚地了解附加到其内容的条件。

此更改的目标是允许用户选择使用开放源代码的xmp实用程序库将xmp元数据嵌入到其mapserver输出中。

2。拟议技术变更

2.1。驱动程序支持

利布斯维尼 4 提供一个标准的C接口,用于从多个图像格式读取和写入XMP内容。libexempi(以及我们研究的所有其他XMP库)的一个限制是它只在现有文件上工作。这意味着要用元数据标记的任何图像都必须首先写入磁盘。幸运的是,gdal映像驱动程序已经为每个请求向磁盘写入了一个临时文件,因此我们建议只有在使用gdal输出格式驱动程序时才提供XMP支持。

例如::

OUTPUTFORMAT
  NAME png
  DRIVER "GDAL/PNG"
  MIMETYPE "image/png"
  IMAGEMODE RGB
  EXTENSION "png"
END

XMP元数据嵌入代码将在临时文件流回到客户机之前在mssaveimagegdal中调用。

2.2。映射文件配置

元数据信息是按图像写入的,因此将存储在映射文件中Web对象的元数据块中。

每个标记的元数据键的格式为“xmp_u<namespace>”,例如,“xmp_dc_title”,表示都柏林核心标题。

默认情况下,将支持八个命名空间:

  • “meta”是标准的xmp标记集 5

  • “cc”,这是创意共享标记集 6

  • “DC”是都柏林核心标签集 7

  • “权限”是标准的XMP权限标记集 8

  • “exif”是exif标记集 9

  • “tiff”,即tiff标签集[10]。_

  • “crs”是photoshop相机的原始模式[11]。_

  • “photoshop”是photoshop标签集[12]。_

在这些名称空间中,用户可以指定任何标记。mapserver代码不会检查标记是否对名称空间有效,这将由用户负责。

以下是默认名称空间中常见标记的一些示例:

  • xmp_rights_marked('true'或'false')表示图像是版权(true)还是公共域(false)

  • xmp_rights_webstatement(url)链接到一个页面,该页面解释了授权图像的条款和条件。

  • xmp_rights_usageterms(文本)对图像授权的条款和条件的描述。为了节省图像空间并确保许可保持最新,Web语句比使用条款更受欢迎。

  • xmp_cc_许可证(url)链接到应用于此图像的Creative Commons许可证(例如http://creative commons.org/licenses/by-sa/2.0/)

  • xmp_cc_morepermissions(url)链接到一个页面,描述CC条款之外的其他条款和条件

  • xmp_cc_attributionurl(url)链接到有关生成内容的作者或组织的信息页

  • xmp_cc_attributionname(文本)生成内容的人员或组织的名称

  • 图像的xmp_dc_标题(文本)标题

  • xmp_dc_权限(文本)图像许可制度的文本描述

以下是使用默认名称空间设置标记的示例:

WEB
  METADATA
    "xmp_rights_Marked" "true"
    "xmp_cc_License" "http://creativecommons.org/licenses/by-sa/2.0/"
    "xmp_cc_AttributionURL" "http://www.landgate.wa.gov.au/corporate.nsf/web/About+Us"
    "xmp_cc_AttributionName" "Landgate (landgate.wa.gov.au)"
  END
END

用户还可以设置自己的名称空间并将标记插入其中。用户必须包含格式为“xmp_u<name>namespace”的元数据键,该键的值为命名空间URI。一旦声明了名称空间,就可以使用通常形式的其他元数据键将标记插入到XMP中。

以下是使用自定义命名空间设置标记的示例:

WEB
  METADATA
    "xmp_lightroom_namespace" "http://ns.adobe.com/lightroom/1.0/"
    "xmp_lightroom_PrivateRTKInfo" "My Information Here"
  END
END

2.3。生成配置

XMP元数据支持将需要存在libexempi库。必须请求或直接指向库以使用--with-exempi= [是否路径] /configure脚本中的配置选项。如果不使用--with exempi,则不会启用XMP元数据支持。

三。实施细节

3.1。受影响的文件

将为此RFC修改以下文件:

Makefile.in
Makefile.vc
mapgdal.c
mapxmp.c
configure.in
configure

3.2。臭虫识别码

这里可以找到RFC76(包含概念验证代码)的票据(bug 3932

3.3。文档

此功能的文档将添加到相应的映射文件文档(元数据关键字)中,并创建一个单独的howto文档来解释XMP元数据。

第四章。增强

在输出驱动程序之间使用xmp工具的能力是可取的,但这需要在图像流到用户之前截取图像,并将其写入磁盘,以允许exempi库更改元数据。对于gdal,写入磁盘步骤已经是输出序列的一部分。其他驱动程序将其输出直接流到stdout。

5。投票历史

   Steve Lime
+1 Daniel Morissette
+1 Frank Warmerdam
+1 Assefa Yewondwossen
   Howard Butler
+1 Steve Woodbridge
+1 Perry Nacionales
+1 Tom Kralidis
+1 Jeff McKenna
   Umberto Nicoletti
   Tamas Szekeres
+0 Thomas Bonfort
+1 Olivier Courtin
+1 Mike Smith
1

http://en.wikipedia.org/wiki/Extensible_Metadata_Platform

2

http://www.adobe.com/products/xmp/overview.html

3

http://wiki.creativecommons.org/XMP

4

http://libopenraw.freedesktop.org/wiki/Exempi

5

http://www.sno.phy.queensu.ca/~phil/exiftool/tagnames/xmp.html_xmp

6

http://www.sno.phy.queensu.ca/~phil/exiftool/tagnames/xmp.html_cc

7

http://www.sno.phy.queensu.ca/~phil/exiftool/tagnames/xmp.html_dc

8

http://www.sno.phy.queensu.ca/~phil/exiftool/tagnames/xmp.html_xmprights

9

http://www.sno.phy.queensu.ca/~phil/exiftool/tagnames/xmp.html exif

10

http://www.sno.phy.queensu.ca/~phil/exiftool/tagnames/xmp.html tiff

11

http://www.sno.phy.queensu.ca/~phil/exiftool/tagnames/xmp.html crs

12

http://www.sno.phy.queensu.ca/~phil/exiftool/tagnames/xmp.html photoshop