Как использовать FOAF как часть другой онтологии?
Я хочу иметь класс Professor
который будет иметь некоторые свойства: имя, фамилия и национальность.
Теперь я только что создал класс Professor
, класс Person
и класс Nationality
и некоторые свойства данных для name
а также surname
и свойство объекта hasNationaity
связать профессора с национальностью.
Имеет ли смысл использовать FOAF для Person
и может быть что-то вроде Group
а также member
для национальностей?
Для этого мне нужно будет импортировать FOAF, верно?
Я предполагаю, что мой главный вопрос - каковы причины, оправдывающие импорт верхней онтологии? и это то, что люди обычно делают?
В любом случае онтология в Turtle доступна здесь на GitHub.
1 ответ
Онтологии и, в более общем смысле, "технологии семантической паутины" предназначены для объединения знаний.
Как указал сир Тим Бернерс-Ли в 5-звездочном рейтинге открытых данных, наилучший уровень открытия достигается, когда вы "связываете свои данные с другими данными для обеспечения контекста". Так что это хорошо!
По поводу "импорта", не вся онтология FOAF является обязательной в вашем случае, я думаю. По моему опыту, импорт всех утверждений онтологии важен, когда вам необходимо реализовать много ресурсов, относящихся к верхней онтологии (просмотр графов, изменение структуры,...). С другой стороны, простое использование префиксов может решить многие проблема без взвешивания приложения:
xmlns:foaf="http://xmlns.com/foaf/0.1/#"
Что касается вопроса о национальности, группа из FOAF может быть решением. Nota Bene, что другие онтологии могут дать подходящий ответ, как YAGO (еще одна великая онтология). Некоторые могут создавать несколько импортов / подключений, чтобы повысить контекстуальность своей базы знаний.