如何在RDF类型字面量中使用IANA MIME类型?是否有官方URI命名空间?
RDF类型字面量与MIME类型的URI映射问题
问题背景
RDF允许使用类型字面量来指定字符串值的数据类型,最常见的就是XML Schema数据类型,比如xsd:integer、xsd:date,示例代码如下:
<https://example.org/> dc:created "1999-12-17"^^xsd:date.
我希望用RDF类型字面量来标记由IANA MIME类型注册表定义(或扩展)的数据类型,理想写法如下:
<https://example.org/> dc:description "I love cookies!" ; dc:description "I <em>love</em> cookies!"^^<text/html> ; dc:description "I *love* cookies!"^^<text/x-markdown> ; dc:description "I \emph{love} cookies!"^^<application/x-tex> .
但普通MIME类型并不是有效的数据类型IRI,请问有没有针对MIME类型的官方URI命名空间,可用于RDF类型字面量?
解决方案
目前有两种主流的标准化方案,能将MIME类型转换为合法的RDF数据类型IRI:
1. 使用urn:mime:命名空间
这是IANA推荐的URN格式,转换规则极其简单:直接在MIME类型前添加urn:mime:前缀即可。例如:
text/html→urn:mime:text/htmltext/x-markdown→urn:mime:text/x-markdown
对应的合法RDF写法如下:
<https://example.org/> dc:description "I love cookies!" ; dc:description "I <em>love</em> cookies!"^^urn:mime:text/html ; dc:description "I *love* cookies!"^^urn:mime:text/x-markdown ; dc:description "I \emph{love} cookies!"^^urn:mime:application/x-tex .
这个方案兼容性强,大部分语义网工具都能直接解析这类URN作为数据类型标识。
2. 使用W3C官方媒体类型命名空间
W3C维护了专门的媒体类型命名空间http://www.w3.org/ns/media-types/,将MIME类型直接拼接在该前缀后即可得到合法的IRI。例如:
text/html→http://www.w3.org/ns/media-types/text/htmltext/x-markdown→http://www.w3.org/ns/media-types/text/x-markdown
对应的RDF写法如下:
<https://example.org/> dc:description "I love cookies!" ; dc:description "I <em>love</em> cookies!"^^<http://www.w3.org/ns/media-types/text/html> ; dc:description "I *love* cookies!"^^<http://www.w3.org/ns/media-types/text/x-markdown> ; dc:description "I \emph{love} cookies!"^^<http://www.w3.org/ns/media-types/application/x-tex> .
这个方案属于W3C官方标准,有对应的本体定义,更适合需要严格遵循语义网规范的场景。
注意事项
- 自定义MIME类型(比如带
x-前缀的text/x-markdown)同样可以用上述两种方式转换,只要MIME类型本身合法即可。 - 少数小众RDF解析工具可能需要额外配置才能识别这些非XSD的数据类型,但主流工具(如Apache Jena、RDF4J)均已支持这两种命名空间。
内容的提问来源于stack exchange,提问作者Jakob
相关产品推荐
相关产品推荐

