Является ли 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. Я не могу ответить ни на один из других.

Другие вопросы по тегам