如何使用RDFa为CC BY-SA 3.0协议衍生作品标注归属信息
RDFa衍生图片归属标注优化方案
原有代码问题梳理
你当前的实现逻辑方向正确,但存在三个可优化点:
- 多次重复声明原作品的
about属性,导致代码冗余 - 解析得到的三元组中原作品的
dcterms:属性缺失creator后缀,属于书写疏漏,会导致归属信息无法被正确识别 - 未声明
cc前缀,重复书写完整命名空间地址增加了不必要的冗余
优化后实现代码
<span prefix="dcterms: http://purl.org/dc/terms/ dctype: http://purl.org/dc/dcmitype/ cc: http://creativecommons.org/ns#"> <!-- 衍生图片声明 --> <span resource="/img/fox.svg" typeof="dctype:Image"> <p>本作品衍生自: <!-- 原作品所有属性统一放在同一个about节点下 --> <span about="https://commons.wikimedia.org/wiki/Vulpes_vulpes#/media/File:Captive_red_foxes.JPG"> <a property="dcterms:source" href="https://commons.wikimedia.org/wiki/Vulpes_vulpes#/media/File:Captive_red_foxes.JPG">红狐原摄影作品</a> ,作者为 <a property="dcterms:creator" href="https://commons.wikimedia.org/wiki/User:GDallimore">GDallimore</a>, 原作品以 <a property="cc:license" href="https://creativecommons.org/licenses/by-sa/3.0/">CC BY-SA 3.0</a> 协议共享。 </span> </p> <!-- 衍生作品自身的许可协议声明 --> <p>本衍生作品许可协议:<a property="cc:license" href="https://creativecommons.org/licenses/by-sa/3.0/">CC BY-SA 3.0</a></p> </span> </span>
代码说明
- 最外层统一声明所有需要的命名空间前缀,避免重复定义
- 原作品的所有元数据都放在同一个带
about属性的节点下,不需要多次重复声明原作品URL - 所有元数据属性和可见文本绑定,既满足机器识别要求,也符合CC协议要求的人类可识别署名规则
- 解析得到的三元组会自动关联所有属性,不会出现字段缺失或冗余的问题
更精简的绑定写法
如果希望直接将元数据和img标签绑定,可以进一步简化:
<span prefix="dcterms: http://purl.org/dc/terms/ dctype: http://purl.org/dc/dcmitype/ cc: http://creativecommons.org/ns#"> <img resource="/img/fox.svg" typeof="dctype:Image" src="/img/fox.svg" alt="红狐插画"> <span about="https://commons.wikimedia.org/wiki/Vulpes_vulpes#/media/File:Captive_red_foxes.JPG" property="dcterms:source" resource="https://commons.wikimedia.org/wiki/Vulpes_vulpes#/media/File:Captive_red_foxes.JPG"> <p>原作品作者:<a property="dcterms:creator" href="https://commons.wikimedia.org/wiki/User:GDallimore">GDallimore</a></p> <p>原作品许可:<a property="cc:license" href="https://creativecommons.org/licenses/by-sa/3.0/">CC BY-SA 3.0</a></p> <p>衍生作品许可:<a property="cc:license" href="https://creativecommons.org/licenses/by-sa/3.0/">CC BY-SA 3.0</a></p> </span> </span>
内容的提问来源于stack exchange,提问作者user17331505
相关产品推荐
相关产品推荐

