Чтобы создать OntClass
, вам просто нужно позвонить OntModel.createClass( uri )
.Конечно, тогда возникает вопрос, какой uri
вы должны использовать.Вам понадобится пространство имен, что-то вроде http://yourcompany.com/ontology/diagnosis#
;в идеале это пространство имен должно соответствовать веб-адресу, по которому можно получить документ о онтологии.
Тогда вам понадобится алгоритм для преобразования фразы типа «опухоль» в имя класса.Это может быть довольно просто:
- удалить префиксы, такие как определенные и неопределенные статьи (a, an, the)
- удалить пробелы и использовать CamelCase для обозначения границ слова
Тогда uri
будет объединением пространства имен и преобразованного имени.
Создание транзитивных свойств также просто (OntModel.createTransitiveProperty()
), но в примере, который вы показываете, кажется, чтовы на самом деле говорите о подклассе отношений между классами.Если всегда верно, что все ns:KidneyTumor
экземпляры также находятся в наборе ns:AbnormalGrowth
экземпляров, тогда ваш <Verb>is</Verb>
соответствует существующему свойству RDF rdfs:subClassOf
.Конечно, если это отношение более тонкое (например, может быть условно или вероятностно истинным), тогда вам потребуются другие отношения с вашей конкретной семантикой.
Что касается чтения XML-файла, существует множество учебников в Интернете или вопросов по Stackoverflow , чтобы помочь с этим.