Невозможно импортировать онтологию с помощью Protege

Я пытаюсь загрузить в Protege более раннюю версию онтологии, которую я создал ранее. Однако при использовании TutleOntologyParser я получаю следующую ошибку (я сохранил онтологию как файл Turtle):

uk.ac.manchester.cs.owl.owlapi.turtle.parser.ParseException: Encountered " <PNAME_LN> ":isNotGivenCombo "" at line 38, column 1.
Was expecting:
    "." ...

Открытие в текстовом редакторе, это то, что у меня в строках 36-40:

###  http://purl.org/net/ontologyName/isNotGivenCombo

:isNotGivenCombo rdf:type owl:ObjectProperty ;

                           rdfs:subPropertyOf :isNotGiven .

Другие парсеры выдают другие ошибки. Что вызывает эту проблему? Как я могу это решить?

Это полная трассировка стека:

uk.ac.manchester.cs.owl.owlapi.turtle.parser.ParseException: обнаружено "": isNotGivenCombo "" в строке 38, столбце 1. Ожидалось: "." ...

Full Stack Trace
-----------------------------------------------------------------------------------------

uk.ac.manchester.cs.owl.owlapi.turtle.parser.TurtleParserException: uk.ac.manchester.cs.owl.owlapi.turtle.parser.ParseException: Encountered " <PNAME_LN> ":isNotGivenCombo "" at line 38, column 1.
Was expecting:
    "." ...

    at uk.ac.manchester.cs.owl.owlapi.turtle.parser.TurtleOntologyParser.parse(TurtleOntologyParser.java:129)
    at uk.ac.manchester.cs.owl.owlapi.ParsableOWLOntologyFactory.loadOWLOntology(ParsableOWLOntologyFactory.java:216)
    at uk.ac.manchester.cs.owl.owlapi.OWLOntologyManagerImpl.loadOntology(OWLOntologyManagerImpl.java:868)
    at uk.ac.manchester.cs.owl.owlapi.OWLOntologyManagerImpl.loadOntologyFromOntologyDocument(OWLOntologyManagerImpl.java:797)
    at org.protege.editor.owl.model.OWLModelManagerImpl.loadOntologyFromPhysicalURI(OWLModelManagerImpl.java:298)
    at org.protege.editor.owl.OWLEditorKit.handleLoadFrom(OWLEditorKit.java:207)
    at org.protege.editor.owl.OWLEditorKit.handleLoadRequest(OWLEditorKit.java:201)
    at org.protege.editor.core.ui.action.OpenAction.openInCurrentWorkspace(OpenAction.java:65)
    at org.protege.editor.core.ui.util.UIUtil.openRequest(UIUtil.java:227)
    at org.protege.editor.core.ui.action.OpenAction.actionPerformed(OpenAction.java:33)
    at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
    at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
    at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
    at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
    at javax.swing.AbstractButton.doClick(Unknown Source)
    at javax.swing.plaf.basic.BasicMenuItemUI.doClick(Unknown Source)
    at javax.swing.plaf.basic.BasicMenuItemUI$Handler.mouseReleased(Unknown Source)
    at java.awt.AWTEventMulticaster.mouseReleased(Unknown Source)
    at java.awt.Component.processMouseEvent(Unknown Source)
    at javax.swing.JComponent.processMouseEvent(Unknown Source)
    at java.awt.Component.processEvent(Unknown Source)
    at java.awt.Container.processEvent(Unknown Source)
    at java.awt.Component.dispatchEventImpl(Unknown Source)
    at java.awt.Container.dispatchEventImpl(Unknown Source)
    at java.awt.Component.dispatchEvent(Unknown Source)
    at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
    at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
    at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
    at java.awt.Container.dispatchEventImpl(Unknown Source)
    at java.awt.Window.dispatchEventImpl(Unknown Source)
    at java.awt.Component.dispatchEvent(Unknown Source)
    at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
    at java.awt.EventQueue.access$500(Unknown Source)
    at java.awt.EventQueue$3.run(Unknown Source)
    at java.awt.EventQueue$3.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
    at java.awt.EventQueue$4.run(Unknown Source)
    at java.awt.EventQueue$4.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
    at java.awt.EventQueue.dispatchEvent(Unknown Source)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
    at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    at java.awt.EventDispatchThread.run(Unknown Source)
Caused by: uk.ac.manchester.cs.owl.owlapi.turtle.parser.ParseException: Encountered " <PNAME_LN> ":isNotGivenCombo "" at line 38, column 1.
Was expecting:
    "." ...

    at uk.ac.manchester.cs.owl.owlapi.turtle.parser.TurtleParser.generateParseException(TurtleParser.java:1968)
    at uk.ac.manchester.cs.owl.owlapi.turtle.parser.TurtleParser.jj_consume_token(TurtleParser.java:1829)
    at uk.ac.manchester.cs.owl.owlapi.turtle.parser.TurtleParser.parseDocument(TurtleParser.java:107)
    at uk.ac.manchester.cs.owl.owlapi.turtle.parser.TurtleOntologyParser.parse(TurtleOntologyParser.java:121)
    ... 48 more

person kurious    schedule 04.04.2016    source источник
comment
Можете ли вы поделиться строками от начала файла до строки 38? Иначе сложно воспроизвести   -  person Ignazio    schedule 05.04.2016


Ответы (1)


Решил проблему. У меня был базовый uri, заканчивающийся на /, в то время как URI, сгенерированные с помощью Protege для доменов и диапазонов, начинались с #. В результате некоторые из формируемых URI имели /#, что недопустимо. Например:

www.example.com/#somedomain

Чтобы исправить ошибку, я заменил все :# на : и установил базовый uri, заканчивающийся на #, т.е. www.example.com#.

person kurious    schedule 05.04.2016