Российская Академия Наук
Государственный геологический музей им. Вернадского
БД Проба.
Онтология реляционной базы данных
Промежуточный отчёт-2
отдел ГИС, руководитель: В.М. Ряховский
алгоритмы: А.В. Шкотин
2008-2016
© 2008 - 2011 Государственный геологический музей им. Вернадского
ACKNOWLEDGEMENTS
We would like to thank Dr. Kaarel Kaljurand from Attempto group for idea to use proper names.
This report was prepared for RAS use, and is released for information. Comments on its applicability for wider use would be welcome and should be sent to Alex dot Shkotin at gmail dot com.
Введение
Представление знаний в виде текста на естественном языке является наиболее распространённой можно сказать канонической формой. Всё что требуется от человека для их "усвоения" — знание терминологии предметной области, конечно при условии что он является "носителем языка". Представление знаний в виде текста является наиболее устойчивым к техническим и культурным изменениям, до тех пор пока значение слова не изменилось или не потерялось. Наличие в настоящий момент средств автоматической формализации текста на ограниченном естественном языке позволяет формировать тексты, которые ещё понятны человеку и уже "понятны" "компьютеру", т.е. могут быть автоматически преобразованы в высказывания некоторой формальной (логической) теории, что даст возможность использовать логический вывод при ответе на запрос и проверке на непротиворечивость при пополнении знаний.
Целью первого этапа проекта является разработка метода преобразования реляционной БД (RDB) в предложения на контролируемом естественном языке (КЕЯ - CNL) и создание соответствующего средства (конвертера) для конкретной БД (БД Проба) http://earth.jscc.ru/proba/search.php?lang=ru. В качестве целевого CNL выбран ACE – Attempto Controlled English [ACE]. Причём необходимо сформировать CNL-предложения, которые могут быть автоматически преобразованы ACE транслятором APE [APE] в OWL-текст. Замечание: не всякое ACE-предложение транслируется в OWL.
Существует два важнейших требования к сформированным ACE-предложениям:
Получающаяся совокупность элементов OWL (свойств, классов и экземпляров) исследуется на соответствие логике предметной области. Что приводит к дополнительным требованиям к преобразованию RDB - CNL.
Сама необходимость использования значений колонок RDB в качестве элементов CNL-предложений накладывает на эти значения дополнительные ограничения, как по их лексике (что касается текстовых колонок RDB), так и по правильности самих значений. Это приводит к изменению (выверке) значений колонок RDB, а в некоторых случаях к изменению схемы, т.к. приходится проводить нормализацию БД в тех местах, где это не было доведено до конца.
Целью второго этапа проекта является: подключение русского языка, подключение FOL и YAFOLL, уточнение описания предметной области (ПО) и методов формализации.
КРЯ означает Контролируемый Русский Язык. КРЯ есть часть Русского языка, для которой существуют алгоритмы преобразования КРЯ-предложений в онтологические. Наличие для КРЯ алгоритма синтаксического разбора желательно.
В целом, БД хранит в структурированном виде сведения из научных статей (публикаций) о концентрации химических соединений, элементов и их изотопов в образцах породы.
Основные таблицы содержат сведения об основных объектах предметной области.
Основных таблиц четыре:
- bibliography - сведения о статьях (публикациях),
- localities - сведения о местах сбора образцов,
- measurements - сведения из статей об образцах породы,
- concentrations - сведения о концентрациях химических веществ и изотопов в образцах.
Значения из остальных (вспомогательных) таблиц приписываются объектам из основных таблиц (через ссылки).
Диаграмма показывает:
- таблицы (отдельные поименованные прямоугольники),
- имена атрибутов (обязательные атрибуты выделены жирным шрифтом),
- первичные ключи (PK) таблиц,
- связь между таблицами посредством внешних ключей (FK), для этого используются стрелки помеченные именем атрибута внешнего ключа.
Fig. 1. DB Proba. Schema
Некоторые таблицы содержат термины определённых областей знаний:
- Таблицы lglobal, lgroup содержат общепринятые имена собственные географических объектов;
- таблица rocks содержит английские наименования видов горных пород;
- таблица erupttypes содержит английские наименования видов материала образца,
- таблица elements содержит обозначения химических веществ, элементов и их изотопов.
- таблица ages содержит наименования геологических периодов для указания возраста образца.
Таблица alt_depth содержит глубину сбора образца в кривом виде и без единицы измерения.
Таблица localities содержит географические координаты места сбора образца.
Таблица llocal содержит указание на местности места сбора образца, довольно волюнтаристское;-)
БД содержит сведения о 1174 статьях, 49285 образцах. И о 277 веществах и изотопах, обнаруженных в образцах.
Мы занимаемся сведениями об образцах горных пород, собранных в различных местах Земли, хранящихся в специальных хранилищах и описанных в публикациях (обычно научных статьях).
Мы не занимаемся строением публикаций и "томов печатной продукции" и сведения о статье отсылочные, т.е. достаточные чтобы найти её в Реале: это заголовок, сведения о журнале (журнал издания, номер выпуска журнала), год выпуска, а также номера первой и последней страниц статьи, что в общем-то для минимальной отсылки лишнее. В целом эта отсылочная информация относится к библиографии - самостоятельной интересной области знаний.
Сведения об образце это авторский номер, порода, характер материала образца. Основное сведение об образце это весовое процентное содержание в образце набора химических веществ и изотопов.
Сведения о месте сбора образца это координаты (в locality), высота места сбора (в alt_depth), указатель места сбора на местности (в llocal). Для места сбора имеется его принадлежность к двум географическим объектам: региональному и глобальному.
Образец описан в статье (отображение bibl_id) и приписан к месту сбора (отображения: locality_id, llocal_id, alt_depth_id).
Замечания
В принципе образец может быть описан в нескольких статьях и привязывать к статьям надо через промежуточную таблицу-связь. То что в БД образец привязан к одной статье означает что либо повторное описание большая редкость, либо заново/ещё раз описанный образец считается другим.
То что место сбора не выделено в отдельную таблицу похоже на "перенормализацию": сведения не потеряны, но дублированы (когда несколько образцов собраны в одном месте). Запросы "сколько мест сбора?", "в каком месте сбора собрано больше всего образцов?" требуют тщательной в-SQL-трансляции;-)
Тем самым считается что указание места сбора на местности, которое не у всех образцов есть, является необязательной характеристикой, а обязательные - координаты места.
Формальная теория посвящённая образцам горных пород, включает в себя де-факто описательную часть физико-математической модели коры Земли. Которая в данном отчёте считается статической. Планета Земля считается твёрдым телом к которому привязана система географических координат. Это твёрдое тело частично (2/3 поверхности) покрыто плёнкой жидкости. Кора Земли представляет собой комбинацию образований (пластов...) горных пород. Геометрически мы имеем трёхмерную мозаику таких образований, что отражено на геологических картах той или иной местности. Из верхнего слоя коры из того или иного образования добываются образцы горной породы. Естественно каждый образец имеет координаты места сбора. При сборе из-под жидкой фазы координаты пожалуй единственное указание на местности. При сборе с твёрдой поверхности возможно указание общепринятого названия местности и/или даже места на местности, т.е. возможно приписывание образцу информации позволяющей повторно найти место его сбора.
В общем случае образец представляет собой "ссыпь", т.е. совокупность твёрдых тел любого количества (ср. песок), хранящуюся надлежащим образом в лаборатории. С образцом проводятся различные исследования (которые могут начаться ещё в экспедиции) в лаборатории, где могут происходить в несколько этапов. Важнейшие характеристики образца:
- молекулярный/химический состав в виде весового процентного содержания тех или иных молекул, а также изотопов;
- вид горной породы.
Эти характеристики образца считаются характеристиками коры Земли в месте сбора, характеристиками того пласта (образования) из которого взят образец. Таким образом в физической модели эти характеристики есть характеристики "точки коры Земли". Фактически это точки принадлежащие к геологической карте Земли или обогащающие её (например сведениями об изотопах).
Полученные характеристики публикуются в статьях и подвергаются анализу для построения гипотез, умозаключений, открытий.
Полная модель должна также включать сведения о местах хранения образцов, но пока это известно только косвенно: через статью где указаны люди проводившие исследования и организации, которым они принадлежали на тот момент.
Формализация проходит следующим образом:
- вербализация данных: сведения из БД формулируются в виде высказываний/предложений КЕЯ (КРЯ, ACE). Проверяется что все нужные данные в предложениях имеются.
- выявляются термины, которые надо формализовать, выбирается вид термина в той или иной формализации и идентификатор для него.
- записывается формула той или иной формализации, соответствующая высказыванию.
Формализация проводится в:
- YAFOLL,
- трёх-сортный (индивиды, строки и числа) FOL с равенством;
- OWL2.
Нотация для FOL (через константы, предикаты, функции):
- конструкция в скобках у идентификатора указывает к-во аргументов - оно равно количеству запятых в скобках плюс 1. Если конструкции нет то это константа.
- конструкция после ":" указывает вид результата функции (R - число, S - строка...). Если её нет то это предикат.
Формализация в OWL2 "изоморфна" бинарному FOL: унарным функциям соответствуют бинарные функциональные предикаты (данных или объектные), константам соответствуют именованные индивиды.
Для формализации(!) в OWL2 (из-за бинарности его свойств (property)) нам понадобится углубиться в предметную область. Рассмотрим все молекулы определённого химического вещества находящиеся возможно в "разбросанном" положении (сравни раствор) в образце. Будем называть эту совокупность вещество - мыслимая часть образца, состоящая из всего того или иного конкретного химического вещества или изотопа. Будем говорить что образец содержит то или иное вещество (изотоп).
Для каждого вида элементов физ-модели поддерживаются атрибуты, по значениям которых элемент может быть найдено в реале (как найти образец, место сбора, публикацию, но не вещество;-). Будем называть их - атрибуты отсылки в реал (АОР), они отмечены в таблице буквой "!" (см. ниже "Сводная таблица терминов"). Следует подчеркнуть что у нас АОР для образца это авторский номер который считается глобально уникальным (в БД это может быть не так;-)
Для географических мест используются их глобальные английские имена, например, Iceland, но с буквой "_" в начале, т.е. _Iceland.
Кроме глобальных гео-имён надо иметь идентификаторы для публикаций, образцов, мест сбора, веществ, сведения о которых хранятся в БД Проба.
Во всех таблицах БД присутствует колонка id, уникально идентифицирующая строку таблицы. Поэтому каждому образцу, статье, месту сбора сопоставляется уникальный в рамках нашей системы представитель - идентификатор из id соответствующей записи и префикса:
- так для статьи с id=5633 соответствующий идентификатор будет _PUB5633,
- для образца с id=32994 - _SAM32994,
- для места сбора с id=1809 - _PLC1809,
- для вещества с id=469812 - _SUB469812.
Из этих 4-х видов сущих только место сбора относится к целевой физ-мат модели, в которой к нему как точке коры Земли приписываются геологические, химические и изотопные характеристики образца.
Итак следуя физической модели у нас есть четыре вида не пересекающихся сущих (они же - нечто): образец породы, место сбора, публикация, вещество. В YAFOLL это будут сорта, в FOL - унарные предикаты sample, place, publication, substance, в OWL2 - классы.
Замечание об идентификаторах в формальном языке. Они могут быть любые и должны сопровождаться точным описанием смысла, так вместо sample можно было бы использовать s.
Отношений между этими сущими:
- место сбора образца, представляется функцией gathering_place из sample в place.
- статья публикации об образце, представляется функцией described из sample в publication. Функции достаточно для БД Проба, но при переходе к EarthChem надо будет переходить на бинарный предикат, т.к. образец может быть описан в нескольких статьях.
- вещество содержится в образце, что представляется функцией included из substance в sample.
Формализация идентификации элементов физической модели
Географические английские имена, например, Iceland, считаются в FOL идентификаторами констант теории, чему в YAFOLL соответствуют 0-функции.
YAFOLL. Каждой такой 0-функции должно быть назначено значение - уникальный элемент основы, например, так !Iceland():_Iceland!
YAFOLL Формирование элементов основ. Кроме глобальных гео-имён элементы основ используются для: публикаций, образцов, мест сбора, сведения о которых хранятся в БД Проба. Все эти элементы основ берутся из физической модели предметной области (см. выше).
Бинаризация для OWL2
Для формализации в OWL2 нам понадобится углубиться в предметную область за:
- термином "вещество", который мыслится как сорт элемент которого есть мыслимая часть образца, состоящая из конкретного химического вещества или изотопа.
- термином "содержит", который приписывает элемент основы "вещество", образцу мыслимую часть которого этот эо представляет.
Например пусть вещество _SUB469812 мыслится как вся та часть образца _SAM32994 которая имеет формулу SIO2, т.е. фактически это совокупность молекул SIO2 в образце.
Формализация оператором в YAFOLL
Рассмотрим фразу
Весовое процентное содержание SIO2 в образце _SAM32994
которая явно функциональна, т.е. имеет значение, например, 73.95. Химическая формула непосредственно в химии считается именем собственным вида вещества. В формализации будем считать её идентификатором унарного предиката.
Введём оператор WPC: вход - предикат вещества, выход - функция дающая вещественное число на образце:
WPC(В1)(Т2)=Ч1, для примера выше - WPC(SIO2)(_S32994)=73.95.
т.е. оператор WPC для каждого предиката вещества В1 даёт функцию из sample в R (вещественное число), которая даёт значение весового процентного содержания в образце.
WPC есть сокращение для словосочетания weight percentage content - перевода термина "весовое процентное содержание".
Можно сказать что операторы возникают естественно из понимания предметной области и даже языка: Предикат вещества В1 для любого тела говорит состоит оно из этого вещества "целиком и полностью" или нет. WPC же, говоря о весовом процентном содержании данного вещества в данном теле оказывается применим к любому веществу, а получившаяся функция - к любому телу, т.к. ноль означает отсутствие вещества в теле.
предикаты хим-веществ и изотопов
Непосредственно наименования химических веществ и изотопов именуют молекулы и ядра определённого строения. Естественно распространить/добавить им смысл на физическом теле - утверждение что тело состоит только из молекул одного вида или содержит только ядра определённого изотопа. Конечно с определённой допустимой долей примесей (см. химически чистые вещества). Этот реализованный вариант простейшей формализации состоит в том, что предикат вещества (например, SiO2) считается предикатом на образцах. Причём как раз для кремнезёма реалистично считать что образцы содержащие только оный попадутся.
+У:мы здесь имеем термины из другой науки (химии или возможно молекулярной физики) и используем их по-своему - возможно не лучшим образом;-)
Формализовать наименования горных пород предикатами на образцах естественно и прямолинейно. Так термин риолит формализуется предикатом rhyolite.
Конечно Атлантический океан как часть Мирового океана, есть тело и тело условное, но формализуя его по простому можно попробовать считать его местом с идентификатором Atlantic_Ocean. Равно как и Исландию (с идентификатором Iceland). В этом случае и Атлантический океан и Исландия абстрагируются до 3-х мерной геометрической фигуры, что даёт возможность говорить (опять всё упрощая), что Исландия есть часть Атлантического океана, а место сбора образца, найденного на вулкане Kerlingarfjell есть часть Исландии.
+У:конечно по результатам эксплуатации и развития онтологии географии скорее всего надо будет переформализовывать.
Ниже в таблице (в двух видах) представлен состав терминов предметной области выбранных для формализации и их декларация в FOL и YAFOLL.
Пояснения к таблице. Мы формализовали сведениями об образцах горных пород (sample - унарный предикат/сорт), собранных в различных местах (place - унарный предикат/сорт) Земли и описанных в научных статьях (publication - унарный предикат/сорт).
Сведения о статье это заголовок (title - унарная функция в строку), журнал издания (journal_reference - унарная функция в строку), год издания (year - унарная функция в число), а также номера первой (first_page - унарная функция в число) и последней страниц (last_page - унарная функция в число) статьи.
Вспомогательные сведения об образце это авторский номер (authorial_number - унарная функция в строку), порода (см. ниже). Указание на местности (reference - унарная функция в строку) точки сбора образца.
Основное сведение об образце это весовое процентное содержание (weight_percent_content - бинарная функция в число/оператор см. дальше) в образце набора химических веществ и изотопов.
Сведения о месте сбора (place - унарный предикат/сорт) образца это его координаты (latitude, longitude - унарные функции в число). Для места сбора имеется его принадлежность (part_of - бинарный предикат) к двум географическим объектам: региональному и глобальному (см. ниже).
Образец описан (described - унарная функция в publication) в статье и приписан к месту сбора (gathering_place - унарная функция в place).
Кроме того:
Каждое наименование породы представлено в FOL/YAFOLL унарным предикатом, например, rhyolite().
Каждое обозначение химического вещества и изотопа представлено в FOL/YAFOLL унарным предикатом, например, SIO2().
Каждый географический объект представлен в FOL константой, например, Iceland, а в YAFOLL - 0-функцией.
Основное требование состоит в том, чтобы КЕЯ-текст содержал все те знания, которые представлены средствами СУБД.
Предложения в которые преобразуется ("выгружается") БД должны быть:
- грамматически правильными предложениями естественного языка;
- пониматься, а ещё лучше употребляться специалистами той области знаний к которой относится БД;
- правильно грамматически и семантически анализироваться программой и тем самым алгоритмически обрабатываться, в том числе преобразовываться в ту или иную формальную онтологию.
Преимущества представления знаний в виде высказываний:
- понимается любым специалистом предметной области и тем самым может быть им проверено на соответствие действительности или использовано в своей деятельности;
- устойчиво к техническим и программным средствам обработки информации. В том числе может быть загружено в эти средства для специфической обработки;
- даёт возможность проверить значения БД на "правильность", т.е. избавиться от сокращений, опечаток, т.е. привести (в том числе и содержимое БД!) к общезначимому виду.
Представлен полный состав КЕЯ предложений для представления знаний БД Проба для языков ACE и КРЯ. Сопоставлением этих предложений предложениям формальных языков FOL и YAFOLL задана трансляция. Это допустимо, т.к. мы имеем конечное число видов предложений КЕЯ.
Замечание. В Приложении 0 "Шаблоны предложений" (может устареть) для каждой колонки каждой таблицы БД Проба формально задаётся способ формирования ACE предложения (высказывания), содержащего значение этой колонки.
ACE. Мы имитируем возможность, которая отсутствует в ACE: термин может иметь на конце добавку $dic, где dic - префикс словаря, которому принадлежит термин. Это делается чтобы позднее отличить этот термин от внутреннего термина онтологии.
Так вместо "publication" в ACE тексте будет стоять "publication$dic".
Колонка FOL таблиц, следующих далее, содержит запись высказываний на языке исчисления предикатов, т.е. трансляцию.
Колонка YAFOLL содержит трансляцию в приказы по построению конечной системы (КС), моделирующей предметную область.
Таблица bibliography содержит сведения о статьях (публикациях). Существуют колонки, которые ещё не выдаются в текст, например потому что значения в них не нормализованы. Но выдаётся достаточно, чтобы в библиотеке найти соответствующую публикацию.
Представитель для статьи начинается с "_PUB" далее идёт номер записи о статье в БД.
Возможно на КРЯ те же сведения можно выразить в два предложения (это зависит от реализации КРЯ):
Название статьи _PUB5633 есть "A CONTRIBUTION TO THE GEOLOGY OF THE KERLINGARFJELL".
Номер "1(2)" журнала "ACTA NAT. ISLAND." за 1946 год содержит статью _PUB5633 на страницах 1-15.
Или даже в одно:
Номер "1(2)" журнала "ACTA NAT. ISLAND." за 1946 год содержит статью "A CONTRIBUTION TO THE GEOLOGY OF THE KERLINGARFJELL" на страницах 1-15.
Но локальное имя собственное понадобится в дальнейшем для удобства ссылок на статью.
Таблица measurements Строка таблицы содержит информацию об образце породы, описанном в научной статье.
Мы различаем образец и место сбора образца. Соответственно нам нужны два вида представителей (элементов основ):
_SAMnnn - для образца,
_PLCnnn - для места сбора,
где nnn обозначает номер в БД записи об образце/месте соответственно.
Место, местность, географические объекты и их соотношения предмет дальнейшего исследования.
КРЯ:
Образец _SAM32994 находился в местности Kerlingarfjell в месте с координатами 64.7 градусов северной широты, -19.2 градусов восточной долготы.
Kerlingarfjell находится на острове Исландия, в Атлантическом океане.
Замечание. Для данного образца в БД нет отсылки на местности, которая именуют/адресует "точку" изъятия образца. Например так "Q12-32". Эта строка (вместе с кавычками) должна была бы стоять между "месте" и "с".
Таблица concentrations В этой таблице хранятся данные о концентрациях различных химических веществ/изотопов в образцах.
КРЯ: Весовое процентное содержание SIO2 в образце _SAM32994 равно 73.95.
В FOL хочется написать: weight_percent_content(_SAM32994,SIO2)=73.95. Но SIO2 - предикат и не может быть аргументом. Один из способов - вести обозначения химических веществ/изотопов как строки ("SIO2"), т.к. их "предикатность" не используется, тогда низведя эти "глобальные" предикаты до "глобальных" (нормативных) строк получим weight_percent_content(_SAM32994,"SIO2")=73.95. С другой стороны то что будет верно для OWL2 будет выразимо и в FOL (см. дальше).
В OWL2, вообще, предикаты только унарные и бинарные, а для weight_percent_content нужен тернарный предикат. В OWL2 и FOL термин "весовое процентное содержание" будет формализовываться функцией weight_percent_content (см. таблицу деклараций).
КРЯ для бинаризации указан как перевод ACE и вербализация на русский OWL и FOL.
Нам понадобятся эо вида _SUBnnn, обозначающие "вещество" - мыслимую часть образца, состоящую из всего того конкретного химического вещества или изотопа содержащихся в образце, nnn - номер записи в таблице concentrations.
Замечание. В онтологии на YAFOLL эти эо не используется.
Скрипт выбирает из БД Проба сведения об образцах содержащиеся в одной конкретной статье (далее в статье № 5633) и формирует по ним текст онтологии. Таким образом онтологий будет столько сколько статей в БД (более 1000). То что каждая статья есть целостное знание вполне реалистично.
Здесь мы анализируем что же получилось с точки зрения формализации знаний предметной области.
- префикс онтологии статьи № 5633, будет http://earth.jscc.ru/ontologies/Art5633#
- термины приписаны онтологии с префиксом http://earth.jscc.ru/ontologies/dic#
В настоящий момент для работы с OWL используются средства Protege.
Кроме того были использованы:
- Ontology Browser - http://owl.cs.manchester.ac.uk/browser - не доступен по ссылке.
- OwlSight - http://pellet.owldl.com/ontology-browser/ - не поддерживается где-то с 2011 года.
Вот как выглядит "статистика" по онтологии в Ontology Browser:
или в OwlSight:
Свойства данных в OwlSight:
Часть OWL использованная в онтологии является надстройкой над исчислением предикатов первого порядка (FOL) и известна как OWL-DL. Поэтому мы будем сразу указывать каким элементам FOL соответствуют элементы онтологии.
На схеме представлены все элементы онтологии Art5633 ссылающиеся на онтологию словаря (префикс - dic).
Голубые прямоугольники это OWL-классы (унарные предикаты в FOL).
Прямоугольник ge_name группирует OWL-индивидов/individual (константы в FOL) упомянутых в онтологии.
Свойства данных (бинарные предикаты в FOL) относящиеся к каждому классу перечислены после имени класса вместе с обобщённым типом значения.
Помеченные стрелки это объектные свойства OWL (бинарные предикаты в FOL). Стрелка идёт от первого аргумента к второму.
Текст зелёного цвета в онтологии не присутствует, т.е. имеется только на схеме.
На рисунке из Protege перечислены все индивиды онтологии. PLC принадлежат place, PUB - publication, SAM - sample, SUB - substance.
1. Правильность английского ACE-предложений можно проверить на http://spellcheckplus.com/
2. Проверка ACE-предложений на транслируемость в OWL проводится через web-страницу ACE: http://attempto.ifi.uzh.ch/site/tools/ или средством APE. При этом ему разрешается делать предположения о неизвестных словах и должна быть включена опция — OWL RDF, т.к. не всякое ACE-предложение транслируется в OWL!
Коррекция значений в БД
Приведение текстовых значений к общепринятому виду.
В том числе выяснение специальных значений (в дополнение к null) обозначающих отсутствие информации: пустая строка, "unknown", "not given"(rocks)...
В том числе решение об оформлении сложных терминов.
Пока: сложные термины должны храниться в общепринятой форме. Если же движок КЕЯ(CNL) их не воспринимает, то преобразование помещается в соответствующий скрипт.
...
Анализ БД на связность: использование null значений в ссылках, т.к. почти все ссылки могут быть null.
Скрипт 1art.sh имеет параметр - номер статьи в БД и при запуске выдает предложения для конкретной статьи. В том числе сведения обо всех образцах описанных в ней.
Кроме того у скрипта есть шаг пропускающий некоторые "плохие" строки:
gawk '{if ($0 !~ / \$dic\./ && $0 !~ / \./ && length($0)!=0) print $0}' <Art$1_.ace >Art$1.ace
т.е. те в которых встретились слова: " $dic." или " .". А так же строки нулевой длины, которые в ACE прерывают зону действия переменных.
Предложение в проект Attempto: отказаться от трактовки строк нулевой длины (или даже пустых?) как прерывающих зону действия переменных. Альтернативой может быть любой явный способ приказа транслятору. Например, Ape, reset variables!
Слово " $dic." получается в том случае, если значение колонки из таблицы терминов равно Null.
Требование доработки скриптов (ТД-1): учесть в скрипте!
Слово " ." получается в том случае, если значение числовой колонки равно Null. Это немного грубо, т.к. оно может встретиться в литералах.
Требование доработки скриптов (ТД-2): учесть в скрипте!
Необходимые для ACE-парсера изменения в общепринятом виде:
- составные (из нескольких слов) термины и имена собственные - через подчёркивание ("_").
Полная разгрузка БД идёт по схеме от внешних объектов к внутренним (ссылающимся). Тогда мы получаем ситуацию при чтении текста, когда объект сначала "задан", а потом "употребляется".
Таким образом при выгрузке измерений статьи уже выгружены.
Создана группа SQL-скриптов выдачи информации по одной статье: статья (bibl.sql), её образцы (meas.sql), вспомогательный скрипт генерации "or conc.measurement=" (con_gen.sql), con_begin.sql, con_end.sql.
Пока не все предложения проходят трансляцию в OWL. Причина этого
- "ошибки" в данных БД (например, непечатные символы).
- и несовершенство скриптов (пустые значения надо обрабатывать особым образом, сложные термины надо соединять дефисом).
Предложения иногда приходилось менять "вручную", чтобы получить тестовый OWL.
Для статьи id=5633 совокупность предложений см. Приложение 2.
Правильность английского можно проверить на http://spellcheckplus.com/
Трансляция "корпуса" ACE-предложений в OWL, N3, N-triple. Сообщения об ошибках и их обработка.
Параметры APE: -guess -solo owlrdf
Обязательно нужен параметр guess, т.е. компилятору разрешалось делать предположения о неизвестных словах и должна быть включена опция OWLRDF, т.к. не всякое ACE-предложение транслируется в OWL.
Проверка через web-страницу ACE: http://attempto.ifi.uzh.ch/site/tools/ не проходит по времени.
Для статьи с id=5633 соответствующий OWL см. Приложения.
Технические замечания к APE:
- чрезмерное использование sameAs, но в переписке разработчиков это не смутило;) Пришлось отказаться от местоимений в пользу внутренних имён собственных.
- пример плохой генерации кода: A2 is an article. A2 is an article. И APE плодит дубли!!!
Для анализа OWL использовались средства Protege, Ontology Browser, OwlSight.
Понятно, что информации в (коде) БД недостаточно для формирования совокупности предложений, соответствующей области знаний. Более того, БД оказывается не готова как по строению так и по наполнению к преобразованию в знания. Соответствующую деятельность можно считать восстановлением (reverse knowledge engineering) знаний из реляционной БД.
Высказывания вполне читабельны, хотя надо бы их проверить у англичанина — геолога. Осталось сформировать высказывания для части библиографии. Полученную совокупность "шаблонов" высказываний предлагается обсудить с западными коллегами из консорциума EarthChem. Они даже могут заменить "метаданные". Интересно рассмотреть предложения на КЕЯ (в данном случае ACE) как "замену" метаданным различных специфических например XML-форматов. Преимущество очевидно: любой человек (умеющий писать;) сможет написать о том что он знает, например о своей статье:
A title of MyArticle01 is "I hate XML".
Такой подход должен привести к резкому увеличению количества "метаданных" доступных программной обработке.
Следует подчеркнуть важнейшее проектное решение данного исследования: для трансляции предложений CNL в OWL используется универсальный транслятор APE. Универсальный транслятор может быть использован только для получения первого приближения формальных предложений. В общем случае необходим подход, когда сигнатура формального языка предметной области разрабатывается самостоятельно, а транслятор должен содержать средства настройки на трансляцию в ту или иную формальную теорию.
[ACE] - Attempto Controlled English (ACE): http://attempto.ifi.uzh.ch/site/
[APE] - Attempto Parsing Engine: http://attempto.ifi.uzh.ch/site/docs/ и здесь http://attempto.ifi.uzh.ch/site/tools/
Текст до раздела "Анализ OWL" согласован с текущей версией YAFOLL: для эо добавлен _ в начало, константы переведены на 0-функции...
Изъято употребление термина ОРЯ. Оставлен КРЯ.
Добавлены версии предложений на YAFOLL.