Создайте OWL-файл с помощью JENA - PullRequest
0 голосов
/ 12 мая 2011

Моя работа требует построения модулей онтологий. Для этого мне нужно создать файлы совы, содержащие эти онтологии. Мой ввод - это xml-файл с разобранными и разбитыми предложениями.

<Subject> A tumor </Subject> 
<Verb> is </Verb> 
<Object> an abnormal growth </Object> 
</sentence> 
<sentence> 
<Subject> A kidney tumor </Subject> 
<Verb> is </Verb> 
<Object> an abnormal growth </Object> 

Что мне нужно сделать сейчас:

  • преобразование "субъекта" и "объекта" в OntClass
  • преобразовать "глагол" в переходное свойство между "obj" и "sub"

Я новичок в области онтологии, возможно, это основные вопросы, но я борюсь с созданием этих файлов, особенно с переходным свойством.

Любая помощь приветствуется.

1 Ответ

2 голосов
/ 12 мая 2011

Чтобы создать 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 , чтобы помочь с этим.

...