4.8. Дизъюнктивные подклассы
Многие системы позволяют нам явным образом задать, что несколько классов являются дизъюнктивными. Классы дизъюнктивные, если у них не может быть общих экземпляров. Например, в нашей онтологии классы Десертное вино и Белое вино не являются дизъюнктивными: существует множество вин, являющих экземплярами обоих классов. Одним из таких примеров является RothermelTrochenbierenausleseRiesling, экземпляр класса Сладкое Riesling. В то же время, классы Красное вино и Белое вино дизъюнктивны: ни одно вино не может быть одновременно и белым, и красным. Определение классов как дизъюнктивных позволяет системе лучше проверять правильность онтологии. Если мы объявим классы Красное вино и Белое вино дизъюнктивными и затем создадим класс, который будет подклассом и Riesling(подкласс Белого вина) и Port(подкласс Красного вина), то система может показать, что имеется ошибка в моделировании.
5. Определение свойств – боле подробно
В этой главе мы затронем еще несколько деталей, которые нужно иметь при определении слотов в онтологии (Шаги 5 и 6 в Главе 3). В основном, мы обсуждаем обратные слоты и значения слота по умолчанию.
5.1. Обратные слоты
Значение слота может зависеть от значения другого слота. Например, если вино было произведено на винном заводе, то винный завод производит это вино. Эти два отношения, производитель и производит, называются обратными отношениями. Излишне хранить информацию и о том, и о другом. Когда мы знаем, что вино производится на винном заводе, то приложение, которое использует базу знаний, всегда может вывести значение для обратного отношения: винный завод производит вино. Тем не менее, с точки зрения приобретения знаний удобно иметь оба блока информации доступными в явном виде. Этот подход позволяет пользователям указать вино в одном случае и винный завод в другом. После это система приобретения знаний может автоматически заполнить значение для обратного отношения, обеспечивая согласованность базы знаний.
В нашем примере есть пара обратных слотов: слот производитель класса Вино и слот производит класса Винный завод. Когда пользователь создает экземпляр класса Вино и заполняет значение слота производитель, система автоматически добавляет вновь созданный экземпляр к слоту производит соответствующего экземпляра класса Винный завод. Например, когда мы говорим, что SterlingMerlot производится на заводе SterlingVineyard, система автоматически добавляет SterlingMerlot к списку вин, которые производит завод SterlingVineyard (рис. 9).
Рис. 9. Экземпляры с обратными слотами. Слот производит класса Винный завод является обратным для слота производитель класса Вино. Заполнение одного из слотов приводит к автоматическому обновлению другого.
5.2. Значения по умолчанию
Многие фреймовые системы позволяют определить для слотов значения по умолчанию. Если значение определенного слота одинаково для большинства экземпляров класса, то мы можем определить это значение как значение слота по умолчанию. Затем, когда создается каждый экземпляр класса, имеющего этот слот, система автоматически заполняет значение по умолчанию. После этого мы можем изменить это значение на любое другое, которое позволят фацеты. То есть, значения по умолчанию созданы для удобства: в любом случае они не накладывают какие-либо ограничения на модель или никак ее не меняют.
Например, если большинство вин, о которых мы собираемся говорить, являются крепкими, то значение крепости вина мы можем сделать «крепкое» по умолчанию. Тогда все вина, которые мы определяем, будут крепкими, если мы не укажем иное.
Обратите внимание, что это отличается от значений слота. Значения слота не могут быть изменены. Например, мы можем сказать, что слот сахар класса Десертное вино имеет значение «СЛАДКОЕ». Тогда у всех подклассов и экземпляров класса Десертное вино значение слота сахар будет «СЛАДКОЕ». Для всех подклассов или экземпляров этого класса это значение изменить нельзя.
6. Об именах
Определение единых правил присваивания имен понятиям в онтологии, а затем строгое соблюдение этих правил не только делает онтологию более простой для понимания, но также помогает избежать некоторых общих ошибок при моделировании. Существует много вариантов присваивания имен понятиям. Обычно нет особой причины для выбора того или иного варианта. Тем не менее, нам нужно
Определить единые правила присваивания имен классам и слотам и придерживаться их.
На выбор правил присваивания имен влияют следующие особенности системы представления знаний:
Имеет ли система одно и то же пространство имен классов, слотов и экземпляров? То есть, позволяет ли система иметь класс и слот с одинаковым именем (как, например, класс винный завод и слот винный завод)?
Различает ли система регистр букв? То есть, считает ли система разными имена, которые отличаются только регистром (как Винный завод и винный завод)?
Какие разделители в именах позволяет использовать данная система? То есть, могут ли имена содержать пробелы, запятые, звездочки и т.д.?
К примеру, Protеgе-2000 имеет единое пространство имен для всех своих фреймов. Она различает регистр букв. Таким образом, у нас не может быть класса винный завод и слота винный завод. Однако у нас может быть класс Винный завод (не прописные буквы) и слот винный завод. С другой стороны, CLASSIC не различает регистр букв и имеет разные пространства имен для классов, слотов и индивидных концептов. Таким образом, с точки зрения системы, мы можем с легкостью присвоить имя Винный завод и классу, и слоту.
6.1. Заглавные буквы и разделители
Во-первых, мы можем значительно улучшить читаемость онтологии, если мы все время будем писать названия понятий с большой буквы. Например, общепринято начинать имена классов с большой буквы, а имена слотов – с маленькой (предполагая, что система различает регистр букв).
Когда имя понятия содержит больше одного слова (как в Винный завод), нам нужно разделить слова. Вот возможные варианты:
Использовать пробел:Винный завод (многие системы, включая Protеgе, позволяют использовать пробелы в именах понятий).
Соединить слова вместе и каждое слово написать с большой буквы: ВинныйЗавод .
Использовать в имени подчеркивание или тире, или другой разделитель: Винный_Завод, Винный_завод, Винный-Завод, Винный-завод (если вы используете разделитель, вам также нужно решить, писать каждое слово с большой буквы или нет).
Если система представления знаний позволяет использовать пробелы в именах, то для многих разработчиков онтологий пробелы могут быть самым естественным решением. Однако важно учитывать другие системы, с которыми может взаимодействовать ваша система. Если в этих системах не используются пробелы или ваше средство представления не очень хорошо обрабатывает пробелы, то может быть лучше использовать другой метод.
6.2. Единственное или множественное число
Имя класса представляет набор объектов. Например, класс Вино в действительности представляет все вина. Поэтому для многих разработчиков было бы естественнее дать классу имя Вина, а не Вино. Ни один из вариантов не лучше и не хуже другого (хотя на практике для имен классов чаще используется единственное число). Тем не менее, каким бы ни был выбор, его следует придерживаться на протяжении всей онтологии. Некоторые системы даже требуют от своих пользователей заранее объявить, какое число (единственное или множественное) они будут использовать в именах классов, и не дают им отклоняться от своего выбора.
Использование все время одной и той же формы также предотвращает такие ошибки разработчика при моделировании, как создание класса Вина, а затем создание класса Вино как его подкласса (см. Раздел 4.1).
6.3. Договоренность в отношении использования префиксов и суффиксов
Некоторые методологии по базам знаний советуют придерживаться договоренности в отношении использования префиксов и суффиксов в именах для того, чтобы различать классы и слоты. Существует две распространенных традиции: добавлять к именам слотов has-[6] или предлог –of[7] . Таким образом, наши слоты меняются на его-производитель и его-винный_завод, если мы выберем использование его-. Слоты меняются на maker-of и winery-of[8] , если мы выберем использованиеof-. Этот подход позволяет любому, кто посмотрит на термин, сразу же определить, что это: класс или слот. Однако имена терминов становятся немного длиннее.
6.4. Другие соображения по присваиванию имен
Еще несколько моментов, которые нужно иметь в виду при определении правил присваивания имен:
Не добавляйте к именам понятий такие строки как «класс», «свойство», «слот» и т.д.
Из контекста всегда ясно, что это, к примеру, класс или слот. В дополнение к тому, что для классов и слотов вы используете разные правила присваивания имен (скажем, пишете их с большой и с маленькой буквы соответственно), само имя будет показывать, чем является это понятие.
Обычно лучше не сокращать имена понятий (то есть, используйте CabernetSauvignon, а не Cab).
Имя надкласса должно входить или во все имена прямых подклассов, или ни в одно из них. Например, если мы создаем два подкласса класса Вино для представления красных и белых вин, то подклассы должны называться или Красное Вино и Белое Вино, или Красное и Белое, но не Красное Вино и Белое.
7. Другие ресурсы
В наших примерах в качестве среды разработки онтологий мы использовали Protege-2000. Duineveld с коллегами описывает и сравнивает ряд других сред для разработки онтологий.
Мы постарались рассказать о самом основном о разработке онтологий и не коснулись многих углубленных тем или альтернативных методологий разработки онтологий. Gуmez-Pйrez и Uschold представляют альтернативные методологии разработки онтологий. В руководстве по Ontolingua говорится о некоторых формальных аспектах моделирования знаний.
В настоящее время исследователи придают особое значение не только разработке онтологий, но также и анализу онтологий. Чем больше онтологий будет создаваться и повторно использоваться, тем больше будет инструментальных средств для анализа онтологий. К примеру, Chimaera предоставляет диагностические инструментальные средства для анализа онтологий. Анализ, который осуществляет Chimaera, включает как проверку логической верности онтологии, так и диагностику типичных ошибок при проектировании онтологий. Разработчик онтологий может провести диагностику разрабатываемой онтологии с помощью Chimaera, чтобы определить соответствие общим способам моделирования онтологий.
8. Заключение
В этом руководстве мы описали методологию разработки онтологии для декларативных фреймовых систем. Мы перечислили шаги при разработке онтологии и затронули сложные вопросы определения иерархий классов и свойств классов и экземпляров. Тем не менее, помимо всех правил и советов, следует помнить одну из важнейших вещей: для любой предметной области не существует единственно правильной онтологии. Проектирование онтологии – это творческий процесс и две онтологии, разработанные разными людьми, никогда не будут одинаковыми. Потенциальные приложения онтологии, а также понимание разработчиком предметной области и его точка зрения на нее будут, несомненно, влиять на принятие решений при проектировании онтологии. “Цыплят по осени считают” – мы можем оценить качество нашей онтологии, только используя ее в приложениях, для которых мы ее разработали.
Список литературы
Booch, G., Rumbaugh, J. and Jacobson, I. (1997).The Unified Modeling Language userguide: Addison-Wesley.
Brachman, R.J., McGuinness, D.L., Patel-Schneider, P.F.,Resnick, L.A. and Borgida, A. (1991). Living with CLASSIC: When and how to useKL-ONE-like language.Principles ofSemantic Networks. J. F. Sowa, editor, Morgan Kaufmann:401-456.
Brickley, D. and Guha, R.V. (1999). Resource DescriptionFramework (RDF) Schema Specification. Proposed Recommendation, World Wide WebConsortium:http://www.w3.org/TR/PR-rdf-schema.
Chimaera (2000). Chimaera Ontology Environment.www.ksl.stanford.edu/software/chimaera
Duineveld, A.J., Stoter, R., Weiden, M.R., Kenepa, B. andBenjamins, V.R. (2000). WonderTools? A comparative study of ontologicalengineering tools.International Journalof Human-Computer Studies52(6):1111-1133.
Farquhar, A. (1997). Ontolingua tutorial.http://ksl-web.stanford.edu/people/axf/tutorial.pdf
Gуmez-Pйrez, A. (1998). Knowledge sharing and reuse.Handbook of Applied Expert Systems.Liebowitz, editor, CRC Press.
Gruber, T.R. (1993). A Translation Approach to PortableOntology Specification.KnowledgeAcquisition5: 199-220.
Gruninger, M. and Fox, M.S. (1995). Methodology for theDesign and Evaluation of Ontologies. In:Proceedings of the Workshop on BasicOntological Issues in Knowledge Sharing, IJCAI-95, Montreal.
Hendler, J. and McGuinness, D.L. (2000). The DARPA AgentMarkup Language.IEEE IntelligentSystems16(6): 67-73.
Humphreys, B.L. and Lindberg, D.A.B. (1993). The UMLSproject: making the conceptual connection between users and the information theyneed.Bulletin of the Medical LibraryAssociation81(2): 170.
McGuinness, D.L., Abrahams, M.K., Resnick, L.A.,Patel-Schneider, P.F., Thomason, R.H., Cavalli-Sforza, V. and Conati, C. (1994).Classic Knowledge Representation System Tutorial.http://www.bell-labs.com/project/classic/papers/ClassTut/ClassTut.html
McGuinness, D.L., Fikes, R., Rice, J. and Wilder, S. (2000).An Environment for Merging and Testing Large Ontologies.Principles of Knowledge Representation andReasoning: Proceedings of the Seventh International Conference (KR2000). A.G. Cohn, F. Giunchiglia and B. Selman, editors. San Francisco, CA, MorganKaufmann Publishers.
McGuinness, D.L. and Wright, J. (1998). Conceptual Modelingfor Configuration: A Description Logic-based Approach.Artificial Intelligence for EngineeringDesign, Analysis, and Manufacturing - special issue on Configuration.
Musen, M.A. (1992). Dimensions of knowledge sharing andreuse.Computers and BiomedicalResearch25: 435-467.
Ontolingua (1997). Ontolingua System Reference Manual.http://www-ksl-svc.stanford.edu:5915/doc/frame-editor/index.html
Price, C. and Spackman, K. (2000). SNOMED clinical terms.BJHC&IM-British Journal of HealthcareComputing&Information Management17(3): 27-31.
Protege (2000). The Protege Project.http://protege.stanford.edu
Rosch, E. (1978). Principles of Categorization.Cognition and Categorization. R. E. andB. B. Lloyd, editors. Hillside, NJ, Lawrence Erlbaum Publishers:27-48.
Rothenfluh, T.R., Gennari, J.H., Eriksson, H., Puerta, A.R.,Tu, S.W. and Musen, M.A. (1996). Reusable ontologies, knowledge-acquisitiontools, and performance systems: PROTEGE-II solutions to Sisyphus-2.International Journal of Human-ComputerStudies44: 303-332.
Rumbaugh, J., Blaha, M., Premerlani, W., Eddy, F. andLorensen, W. (1991).Object-orientedmodeling and design. Englewood Cliffs, New Jersey: Prentice Hall.
Uschold, M. and Gruninger, M. (1996). Ontologies: Principles,Methods and Applications.KnowledgeEngineering Review11(2).
[1] Имена классов мы начинаем с большой буквы, а имена слотов – с маленькой. Также для всех терминов из онтологии, приведенной в качестве примера, мы используем шрифт печатной машинки.
[2] Мы также можем рассматривать классы как унарные предикаты – вопросы с одним аргументом. Например, «Этот предмет является вином?» Унарные предикаты (или классы) противоположны бинарным предикатам (или слотам) – вопросам с двумя аргументами. Например, «Этот предмет имеет сильный вкус?» «Какой вкус у этого предмета?»
[3] Некоторые системы только определяют тип значения с помощью класса и не требуют специальной формулировки для слотов-экземпляров.
[4] В нашей онтологии мы решили представить только красные вина Port: белые вина Port существуют, но они очень редко встречаются.
[5] Здесь мы предполагаем, что каждый анатомический орган является классом, поскольку мы также хотели бы говорить о «1-м левом ребре Джона». В нашей онтологии отдельные органы реально существующих людей будут представлены как индивидные концепты.
[1] В большинстве американских колледжей вступительный курс любого предмета имеет номер «101»: «Химия 101», «Биология 101» и т.д. Следующие два более углубленных курса по химии назывались бы «Химия 102» и «Химия 103» соответственно. В США номер «101» означает «Введение». Т.е., название статьи нужно понимать как «Введение в разработку онтологий: Руководство по созданию Вашей первой онтологии». (Здесь и далее в тексте примечания переводчика. Авторские примечания вынесены в конец статьи самими авторами.)
[2] Буквально «является».
[3] Буквально «вид, разновидность [чего-то]».
[4] «Shrimp» и «prawn» - это синонимы, которые переводятся одинаково – «креветка».
[5] Также переводится как «креветка».
[6] «has» в данном случае можно перевести как «его».
[7] В английском языке предлог «of» используется для отношений, которые в русском языке передаются родительным падежом без предлога. Поэтому использование этого суффикса для русскоязычных пользователей теряет смысл.
[8] maker-of– производитель [чего-то], а winery-of – винный завод [по производству чего-то]
10-09-2015, 03:05