RDF/XML rdflib:无效的 属性 元素 URI

RDF/XML rdflib: Invalid property element URI

我正在尝试使用 rdflib 解析 python 中的 RDF/XML 文件。该文件使用 W3 验证器验证正常,但是 rdflib 抛出解析器错误 7:6: Invalid property element URI: http://www.w3.org/1999/02/22-rdf-syntax-ns#RDF。使用这个 RDF 转换器时也会发生同样的情况(因为它也是基于 rdflib 的):http://rdf-translator.appspot.com

显然这个 URI 是有效的,因为它是目前使用最广泛的 URI 之一,并且在 W3 验证器中有效。我忽略了什么?

正如您可能从我笨拙的问题中了解到的那样,我是 RDF 的新手,RDF/XML 所以如果这很明显,我深表歉意。

这是有问题的文件(的一部分):

<?xml version="1.0" encoding="UTF-8"?>
<result>
  <version>1.0</version>
  <totalHits>1245</totalHits>
  <records>
    <record>
      <rdf:RDF xmlns="http://kulturarvsdata.se/ksamsok#" xmlns:foaf="http://xmlns.com/foaf/0.1/" xmlns:geoF="http://www.mindswap.org/2003/owl/geo/geoFeatures20040307.owl#" xmlns:owl="http://www.w3.org/2002/07/owl#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" xmlns:time="http://www.w3.org/2006/time#">
        <Entity rdf:about="http://kulturarvsdata.se/shm/context/157">
          <ksamsokVersion>1.1</ksamsokVersion>
          <buildDate>2016-02-24</buildDate>
          <collection>Björkögravar</collection>
          <createdDate>2008-02-26</createdDate>
          <lastChangedDate>2008-02-26</lastChangedDate>
          <serviceOrganization>shm</serviceOrganization>
          <serviceName>context</serviceName>
          <url>http://mis.historiska.se/mis/sok/kontext.asp?kId=157&amp;g=1</url>
          <thumbnail>http://catview.historiska.se/catview/media/thumbnail/412519</thumbnail>
          <subject rdf:resource="http://kulturarvsdata.se/resurser/Subject#archaeology"/>
          <mediaType>text/plain</mediaType>
          <dataQuality rdf:resource="http://kulturarvsdata.se/resurser/DataQuality#raw"/>
          <itemSuperType rdf:resource="http://kulturarvsdata.se/resurser/EntitySuperType#object"/>
          <itemType rdf:resource="http://kulturarvsdata.se/resurser/EntityType#monument"/>
          <itemLicense rdf:resource="http://kulturarvsdata.se/resurser/License#cc0"/>
          <itemLicenseUrl rdf:resource="http://creativecommons.org/publicdomain/zero/1.0/"/>
          <itemName rdf:nodeID="name001"/>
          <itemLabel>Grav,</itemLabel>
          <itemSpecification rdf:nodeID="spec001"/>
          <itemDescription rdf:nodeID="desc001"/>
          <itemDescription rdf:nodeID="desc002"/>
          <itemDescription rdf:nodeID="desc003"/>
          <itemDescription rdf:nodeID="desc004"/>
          <itemDescription rdf:nodeID="desc005"/>
          <itemDescription rdf:nodeID="desc006"/>
          <itemKeyWord>Hemlanden</itemKeyWord>
          <itemKeyWord>Bj 98</itemKeyWord>
          <itemNumber rdf:nodeID="num001"/>
          <itemNumber rdf:nodeID="num002"/>
          <context rdf:nodeID="ctx001"/>
          <context rdf:nodeID="ctx002"/>
          <context rdf:nodeID="ctx003"/>
          <hasParent>http://kulturarvsdata.se/shm/site/53418</hasParent>
          <hasChild>http://kulturarvsdata.se/shm/context/158</hasChild>
          <hasChild>http://kulturarvsdata.se/shm/context/159</hasChild>
          <presentation xmlns:pres="http://kulturarvsdata.se/presentation#" rdf:parseType="Literal">
            <pres:item>
              <pres:version>1.1</pres:version>
              <pres:entityUri>http://kulturarvsdata.se/shm/context/157</pres:entityUri>
              <pres:type>Miljö</pres:type>
              <pres:id>157</pres:id>
              <pres:idLabel>Bj 98</pres:idLabel>
              <pres:itemLabel>Grav,</pres:itemLabel>
              <pres:tag>Stolpe, Hjalmar</pres:tag>
              <pres:tag>Bj 98</pres:tag>
              <pres:description>Hög . Diameter 7,5 meter, Höjd 1 meter. . .</pres:description>
              <pres:context>
                <pres:event>Datering</pres:event>
                <pres:placeLabel>Uppland Adelsö Björkö, Hemlanden</pres:placeLabel>
                <pres:timeLabel>vikingatid</pres:timeLabel>
              </pres:context>
              <pres:image>
                <pres:src type="thumbnail">http://catview.historiska.se/catview/media/thumbnail/412519</pres:src>
                <pres:src type="lowres">http://catview.historiska.se/catview/media/412519</pres:src>
                <pres:src type="highres">http://catview.historiska.se/catview/media/highres/412519</pres:src>
                <pres:byline>Hjalmar Stolpe, 2015-11-30, ATA</pres:byline>
                <pres:copyright>ATA</pres:copyright>
                <pres:mediaLicense>http://creativecommons.org/publicdomain/zero/1.0/</pres:mediaLicense>
                <pres:mediaUri>http://kulturarvsdata.se/shm/media/412519</pres:mediaUri>
                <pres:mediaUrl>http://kulturarvsdata.se/shm/media/html/412519</pres:mediaUrl>
              </pres:image>
              <pres:references>
                <hasParent>http://kulturarvsdata.se/shm/site/53418</hasParent>
                <pres:reference>http://kulturarvsdata.se/shm/context/html/158</pres:reference>
                <pres:reference>http://kulturarvsdata.se/shm/context/html/159</pres:reference>
              </pres:references>
              <pres:representations>
                <pres:representation format="HTML">http://kulturarvsdata.se/shm/context/html/157</pres:representation>
                <pres:representation format="XML">http://kulturarvsdata.se/shm/context/xml/157</pres:representation>
                <pres:representation format="RDF">http://kulturarvsdata.se/shm/context/rdf/157</pres:representation>
              </pres:representations>
              <pres:service>context</pres:service>
              <pres:organization>Statens historiska museum</pres:organization>
              <pres:organizationShort>SHM</pres:organizationShort>
              <pres:dataQuality>Rådata</pres:dataQuality>
              <pres:buildDate>2016-02-24</pres:buildDate>
            </pres:item>
          </presentation>
        </Entity>
        <Context rdf:nodeID="ctx001">
          <contextSuperType rdf:resource="http://kulturarvsdata.se/resurser/ContextSuperType#interact"/>
          <contextType rdf:resource="http://kulturarvsdata.se/resurser/ContextType#use"/>
          <contextLabel>Brukad</contextLabel>
          <fromPeriodName>vikingatid</fromPeriodName>
          <toPeriodName>vikingatid</toPeriodName>
          <fromPeriodId>p323</fromPeriodId>
          <toPeriodId>p323</toPeriodId>
          <country rdf:resource="http://kulturarvsdata.se/resurser/aukt/geo/country#SE"/>
          <geoF:county rdf:resource="http://kulturarvsdata.se/resurser/aukt/geo/county#1"/>
          <geoF:province rdf:resource="http://kulturarvsdata.se/resurser/aukt/geo/province#Up"/>
          <geoF:municipality rdf:resource="http://kulturarvsdata.se/resurser/aukt/geo/municipality#125"/>
          <geoF:parish rdf:resource="http://kulturarvsdata.se/resurser/aukt/geo/parish#1"/>
          <countyName>Stockholm</countyName>
          <provinceName>Uppland</provinceName>
          <municipalityName>Ekerö</municipalityName>
          <parishName>Adelsö</parishName>
          <placeName>Björkö, Hemlanden</placeName>
          <placeName>Hemlanden</placeName>
          <coordinates rdf:parseType="Literal">
            <gml:Point xmlns:gml="http://www.opengis.net/gml" srsName="EPSG:4326">
              <gml:coordinates cs="," decimal="." ts=" ">17.5507,59.337</gml:coordinates>
            </gml:Point>
          </coordinates>
        </Context>
        <ItemNumber rdf:nodeID="num001">
          <type>Kontextnummer</type>
          <number>Bj 98</number>
        </ItemNumber>
        <ItemNumber rdf:nodeID="num002">
          <type>Kontextidentitet</type>
          <number>157</number>
        </ItemNumber>
        <ItemName rdf:nodeID="name001">
          <type>Typ</type>
          <name>Grav</name>
        </ItemName>
        <ItemSpecification rdf:nodeID="spec001">
          <type>Undertyp</type>
          <spec/>
        </ItemSpecification>
        <ItemDescription rdf:nodeID="desc001">
          <type>Gravfältszon</type>
          <desc>1E</desc>
        </ItemDescription>
        <ItemDescription rdf:nodeID="desc002">
          <type>Inre beskrivning</type>
          <desc/>
        </ItemDescription>
        <ItemDescription rdf:nodeID="desc003">
          <type>Inre gravskick</type>
          <desc/>
        </ItemDescription>
        <ItemDescription rdf:nodeID="desc004">
          <type>Undersökare</type>
          <desc>Stolpe, Hjalmar</desc>
        </ItemDescription>
        <ItemDescription rdf:nodeID="desc005">
          <type>Yttre beskrivning</type>
          <desc>Diameter 7,5 meter, Höjd 1 meter</desc>
        </ItemDescription>
        <ItemDescription rdf:nodeID="desc006">
          <type>Yttre gravskick</type>
          <desc>Hög</desc>
        </ItemDescription>
      </rdf:RDF>
      <rel:score xmlns:rel="info:srw/extension/2/relevancy-1.0">9.5520115</rel:score>
    </record>
      </records>
  <echo>
    <method>search</method>
    <startRecord>1</startRecord>
    <hitsPerPage>10</hitsPerPage>
    <query>collection="Björkögravar"</query>
  </echo>
</result>

发生这种情况是因为 RDF/XML 文档应以 <rdf:RDF> 开头(作为顶级 XML 元素),但您的示例不是。

删除 <rdf:RDF> 部分之外的所有 XML 标签,它将解析/验证 OK。

更准确地说:rdflib 看到这个 URI (rdf:RDF) 出现在它期望 RDF 属性 的地方,但是这个特定的 URI 应该作为顶级 XML 元素和 (显然)不能用作 属性 URI。