Импорт файлов совы - PullRequest
       9

Импорт файлов совы

0 голосов
/ 14 июня 2010

У меня проблема с импортом файлов owl с использованием api owl в Java. Я успешно могу импортировать 2 файла совы. Тем не менее возникает проблема, когда я пытаюсь импортировать 3 или более совы файлы, которые интегрированы друг с другом. Э.Г.

Base.owl -- base ontology
Electronics.owl -- electronics ontology which imports Base.owl
Telephone.owl -- telephone ontology which imports Base.owl and Electronics.owl

Когда я просто импортирую Base.owl и запускаю Electronics.owl, он работает гладко. Код приведен ниже:

File fileBase = new File("filepath/Base.owl");
File fileElectronic = new File("filePath/Electronic.owl");
SimpleIRIMapper iriMapper =  new SimpleIRIMapper(IRI.create("url/Base.owl"),
                IRI.create(fileBase));
OWLOntologyManager manager = OWLManager.createOWLOntologyManager();
manager.addIRIMapper(iriMapper);
OWLOntology ont = manager.loadOntologyFromOntologyDocument(fileElectronic);

Однако, когда я хочу загрузить Telephone.owl, я просто создаю дополнительный iriMapper и добавляю его в менеджер. Дополнительный код отображается с **:

File fileBase = new File("filepath/Base.owl");
File fileElectronic = new File("filePath/Electronic.owl");
**File fileTelephone = new File("filePath/Telephone.owl");**
SimpleIRIMapper iriMapper =  new SimpleIRIMapper(IRI.create("url/Base.owl"),
                IRI.create(fileBase));
**SimpleIRIMapper iriMapper2 =  new SimpleIRIMapper(IRI.create("url/Electronic.owl"),
                IRI.create(fileElectronic));**
OWLOntologyManager manager = OWLManager.createOWLOntologyManager();
manager.addIRIMapper(iriMapper);
**manager.addIRIMapper(iriMapper2);**
OWLOntology ont = manager.loadOntologyFromOntologyDocument(**fileTelephone**);

Код, показанный выше, дает эту ошибку:

Could not load import:        
Import(url/Electronic.owl>)
Reason: Could not loaded imported ontology:       
<url/Base.owl> Cause: null

Было бы очень признательно, если бы кто-нибудь протянул мне руку ... Заранее спасибо ...

Ответы [ 2 ]

2 голосов
/ 07 марта 2012

Я знаю, что этот вопрос старый, но это был мой первый удар по поиску в Google для аналогичной проблемы (загрузка многих сов-импортов). И мне нужно много времени, чтобы найти ответ.

Так что для всех, у кого есть проблема, что owlapi скажет: «Не удалось загрузить импортированную онтологию»: owlapi предоставляет служебный класс с именем «AutoIRIMapper» (описано здесь: http://owlapi.sourceforge.net/2.x.x/utilityclasses.html и http://owlapi.sourceforge.net/javadoc/index.html). После создания экземпляр «AutoIRIMapper» можно добавить в «OWLOntologyManager», используя следующий код:

"manager.addIRIMapper(autoIRIMapper);"

После этого OWLOntologyManager сможет автоматически загружать все импортированные OWL-файлы.

Надеюсь, это кому-нибудь поможет.

1 голос
/ 17 июня 2010

Если вы хотите отправить менеджеру запрос на загрузку онтологии, объявленной в операторе импорта, вы можете использовать метод makeLoadImportRequest, который принимает OWLImportsDeclaration в качестве параметра.

Проверьте, решает ли это вашу проблему.

Удачи!

...