为什么W3C RDF验证器用自己的RDF URI替换?

Mas*_*oor 5 validation rdf w3c-validation

假设我们在http://www.w3.org/RDF/Validator/上向W3C RDF验证器输入以下RDF代码.

<?xml version="1.0" encoding="UTF-8"?>
<rdf:RDF
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:xsd="http://www.w3.org/2001/XMLSchema#"
    xmlns:uni="http://www.example.org/uni-ns#">

  <rdf:Description rdf:about="949352">
    <uni:name>Grigoris Antoniou</uni:name>
    <uni:title>Professor</uni:title>
  </rdf:Description>
</rdf:RDF>
Run Code Online (Sandbox Code Playgroud)

一旦我要求解析RDF代码,我发现在三元组中,RDF URI已被替换为验证器的自己的URI.

在此输入图像描述

不应该是三元组的主题http://www.w3.org/1999/02/22-rdf-syntax-ns#949352吗?

为什么验证器会这样做?

uno*_*nor 6

rdf:about属性将IRI作为值.

你有949352一个值,这是一个相对的IRI.它被解析为基础文档的IRI(在您的情况下是验证器).

例如,您可以提供绝对IRI(示例1),或指定xml:base(示例2).

例1:

<?xml version="1.0" encoding="UTF-8"?>
<rdf:RDF
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:xsd="http://www.w3.org/2001/XMLSchema#"
    xmlns:uni="http://www.example.org/uni-ns#">

  <rdf:Description rdf:about="http://my-site.example.com/my-page/949352">
    <uni:name>Grigoris Antoniou</uni:name>
    <uni:title>Professor</uni:title>
  </rdf:Description>
</rdf:RDF>
Run Code Online (Sandbox Code Playgroud)

例2:

<?xml version="1.0" encoding="UTF-8"?>
<rdf:RDF
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:xsd="http://www.w3.org/2001/XMLSchema#"
    xmlns:uni="http://www.example.org/uni-ns#"
    xml:base="http://my-site.example.com/my-page/">

  <rdf:Description rdf:about="949352">
    <uni:name>Grigoris Antoniou</uni:name>
    <uni:title>Professor</uni:title>
  </rdf:Description>
</rdf:RDF>
Run Code Online (Sandbox Code Playgroud)