我目前正在使用大型XML文件OpenCyc本体。 (您可以从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整数。
我的问题归结为:M4I
和M4M
(或我到目前为止发现的其他奇怪值,如M4E
,M4Q
,M4E
)实际上有效的XML Schema整数?或者是OpenCyc本体中的这些错误?
如果它们实际上有效,它们的含义是什么?为什么它们毕竟有效? (即,我应该阅读哪些文档以获得有关其含义的见解?)
答案 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的有效实例。我无法回答任何其他问题。