Является ли M4I или M4M действительным целым числом схемы XML? Если да, то почему и в чем его смысл?
В настоящее время я работаю с большим XML-файлом, онтологией OpenCyc. (Вы можете скачать его как opencyc-latest.owl.gz
отсюда: http://sw.opencyc.org/)
Этот 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-схемы.
Мои вопросы сводятся к: M4I
а также M4M
(или другие странные значения, которые я нашел до сих пор, как M4E
, M4Q
, M4E
) действительно допустимые целые числа XML-схемы? Или это ошибки в онтологии OpenCyc?
Если они действительно действительны, каково их значение? И почему они действительны в конце концов? (Т.е. какую документацию мне следует прочитать, чтобы получить представление об их значении?)
3 ответа
Литералы, на которые вы ссылаетесь, не являются допустимыми целыми числами. Их представление в терминах системы типа XML-схемы доступно в Интернете по адресу http://www.w3.org/TR/xmlschema-2/.
Это в основном говорит:
Целое число имеет лексическое представление, состоящее из последовательности десятичных цифр конечной длины (#x30-#x39) с необязательным начальным знаком. Если знак опущен, предполагается "+". Например: -1, 0, 12678967543233, +100000.
Согласно описанной семантике, ваш файл недействителен.
Это действительно ошибка в файле OpenCyc OWL. M4I должно быть 2, а M4M должно быть 3. В настоящее время мы работаем над новым, обновленным набором файлов OpenCyc OWL, и обязательно исправим это. Спасибо, что сообщили об этом.
Используя спецификацию XML-схемы, часть 2, раздел 3.3.13.1, я могу ответить на один из ваших вопросов: M4I и M4M не являются допустимыми экземплярами xs:integer. Я не могу ответить ни на один из других.