'M4I'或'M4M'是有效的XML Schema Integer吗?如果是,为什么以及它的含义是什么?

时间:2015-03-21 00:21:02

标签: xml xsd rdf opencyc

我目前正在使用大型XML文件O​​penCyc本体。 (您可以从http://sw.opencyc.org/

下载opencyc-latest.owl.gz

此XML文件包含以下行:

<owl:ObjectProperty rdf:about="Mx4rvVi4w5wpEbGdrcN5Y29ycA">
    <rdfs:label xml:lang="en">Arg 3 Genl</rdfs:label>
    <cycAnnot:label xml:lang="en">arg3Genl</cycAnnot:label>
    <!-- [...] -->

    <!-- [Strange lines begin here] -->
    <Mx4rvViAzpwpEbGdrcN5Y29ycA 
      rdf:datatype="http://www.w3.org/2001/XMLSchema#integer"
      >M4I</Mx4rvViAzpwpEbGdrcN5Y29ycA>
    <Mx4rv6Bnr5wpEbGdrcN5Y29ycA 
      rdf:datatype="http://www.w3.org/2001/XMLSchema#integer"
      >M4M</Mx4rv6Bnr5wpEbGdrcN5Y29ycA>
    <!-- [Strange lines ended here] -->

    <!-- [...] -->
</owl:ObjectProperty>

不要担心标签名称。这就是OpenCyc实际命名其标签的方式。我更愿意将注意力集中在他们的内容上。

对于所有不熟悉RDF / XML文档的人:两个奇怪行的rdf:datatype属性基本上表示标记的内容应该被解释为XML Schema整数。

我的问题归结为:M4IM4M(或我到目前为止发现的其他奇怪值,如M4EM4QM4E)实际上有效的XML Schema整数?或者是OpenCyc本体中的这些错误?

如果它们实际上有效,它们的含义是什么?为什么它们毕竟有效? (即,我应该阅读哪些文档以获得有关其含义的见解?)

3 个答案:

答案 0 :(得分:3)

您引用的文字不是有效的整数。可以在http://www.w3.org/TR/xmlschema-2/#integer在线获取XML Schema类型系统的表示。

基本上说:

  

整数具有由有限长度组成的词汇表示   带有可选前导符号的十进制数字序列(#x30-#x39)。   如果省略符号,&#34; +&#34;假设。例如:-1,0,   12678967543233,+ 100000。

根据描述的语义,您的文件无效。

答案 1 :(得分:2)

这确实是OpenCyc OWL文件中的错误。 M4I应为2,M4M应为3.我们目前正在开发一套新的,更新的OpenCyc OWL文件,并且一定会纠正这个问题。感谢您报告。

答案 2 :(得分:0)

使用XML Schema specification, part 2, section 3.3.13.1,我可以回答您的一个问题:M4I和M4M不是xs:integer的有效实例。我无法回答任何其他问题。