2017-01-20 3 views
0

Я хочу прочитать классы для LNC/LOINC RDF/Turtle версии от BioPortal, как можно найти на http://bioportal.bioontology.org/ontologies/LOINC/, новейшая подача.Невозможно разобрать файлы формата черепахи с OWL API

Мой синтаксический код так просто, как

OWLOntologyManager ontologyManager = OWLManager.createOWLOntologyManager(); 
ontologyManager.loadOntologyFromOntologyDocument(new File("LOINC.ttl")); 

Однако я получаю ошибку о не синтаксический анализатор сможет анализировать онтологию (укороченный из-за лимита символов):

Exception in thread "main" org.semanticweb.owlapi.io.UnparsableOntologyException: Problem parsing file:/home/faessler/Coding/workspace/bioportal-ontology-tools/LOINC.ttl 
Could not parse ontology. Either a suitable parser could not be found, or parsing failed. See parser logs below for explanation. 
The following parsers were tried: 
1) [email protected] 
2) [email protected] 
3) org.se[email protected]120f38e6 
4) org.semanticweb.owlapi.rio.RioParserImpl : [email protected]fd655c 
5) org.semanticweb.o[email protected]3ad394e6 
6) org.semanticweb.owlapi.rio.RioParserImpl : [email protected]9ad 
7) org.semanticweb.owlapi.rio.RioParserImpl : [email protected]8dc3 
8) org.semanticweb.owlapi.rio.RioParserImpl : [email protected]ecd36 
9) org.semanticweb.owlapi.rio.RioParserImpl : [email protected] 
10) org.semanticweb.owlapi.rio.RioParserImpl : [email protected]acc47d 
11) org.semanticweb.owlapi.rio.RioParserImpl : [email protected] 
12) org.semanticweb.owlapi.rio.RioParserImpl : [email protected]b9a3bc 
13) [email protected]43e173 
14) org.semanticweb.owlapi.rio.RioTrixParserFactory$TrixParserImpl : [email protected] 
15) [email protected] 
16) [email protected]7 
17) [email protected] 
18) org.semanticweb.owlapi.rio.RioParserImpl : [email protected]f24493 
19) [email protected] 
20) org.semanticweb.owlapi.rio.RioParserImpl : [email protected] 


Detailed logs: 
-------------------------------------------------------------------------------- 

SNIP 

-------------------------------------------------------------------------------- 
Parser: org.semanticweb.owlapi.rio.RioParserImpl : [email protected]fd655c 
    Stack trace: 
org.openrdf.rio.UnsupportedRDFormatException: Did not recognise RDF format object Turtle (mimeTypes=text/turtle, application/x-turtle; ext=ttl)  org.semanticweb.owlapi.rio.RioParserImpl.parse(RioParserImpl.java:138) 
     uk.ac.manchester.cs.owl.owlapi.OWLOntologyFactoryImpl.loadOWLOntology(OWLOntologyFactoryImpl.java:175) 
     uk.ac.manchester.cs.owl.owlapi.OWLOntologyManagerImpl.load(OWLOntologyManagerImpl.java:997) 
     uk.ac.manchester.cs.owl.owlapi.OWLOntologyManagerImpl.loadOntology(OWLOntologyManagerImpl.java:961) 
     uk.ac.manchester.cs.owl.owlapi.OWLOntologyManagerImpl.loadOntologyFromOntologyDocument(OWLOntologyManagerImpl.java:910) 
     uk.ac.manchester.cs.owl.owlapi.OWLOntologyManagerImpl.loadOntologyFromOntologyDocument(OWLOntologyManagerImpl.java:922) 
     de.julielab.bioportal.ontologies.apps.Test.main(Test.java:43) 
Did not recognise RDF format object Turtle (mimeTypes=text/turtle, application/x-turtle; ext=ttl)  org.openrdf.rio.Rio.lambda$unsupportedFormat$0(Rio.java:630) 
     java.util.Optional.orElseThrow(Optional.java:290) 
     org.openrdf.rio.Rio.createParser(Rio.java:119) 
     org.semanticweb.owlapi.rio.RioParserImpl.parseDocumentSource(RioParserImpl.java:173) 
     org.semanticweb.owlapi.rio.RioParserImpl.parse(RioParserImpl.java:125) 
     uk.ac.manchester.cs.owl.owlapi.OWLOntologyFactoryImpl.loadOWLOntology(OWLOntologyFactoryImpl.java:175) 
     uk.ac.manchester.cs.owl.owlapi.OWLOntologyManagerImpl.load(OWLOntologyManagerImpl.java:997) 
     uk.ac.manchester.cs.owl.owlapi.OWLOntologyManagerImpl.loadOntology(OWLOntologyManagerImpl.java:961) 
     uk.ac.manchester.cs.owl.owlapi.OWLOntologyManagerImpl.loadOntologyFromOntologyDocument(OWLOntologyManagerImpl.java:910) 
     uk.ac.manchester.cs.owl.owlapi.OWLOntologyManagerImpl.loadOntologyFromOntologyDocument(OWLOntologyManagerImpl.java:922) 


-------------------------------------------------------------------------------- 

Parser: [email protected]43e173 
    Stack trace: 
org.semanticweb.owlapi.rdf.turtle.parser.ParseException: Encountered " <PN_CHARS> "- "" at line 3635316, column 64. 
Was expecting: 
    "." ... 
      org.semanticweb.owlapi.rdf.turtle.parser.TurtleOntologyParser.parse(TurtleOntologyParser.java:60) 
     uk.ac.manchester.cs.owl.owlapi.OWLOntologyFactoryImpl.loadOWLOntology(OWLOntologyFactoryImpl.java:175) 
     uk.ac.manchester.cs.owl.owlapi.OWLOntologyManagerImpl.load(OWLOntologyManagerImpl.java:997) 
     uk.ac.manchester.cs.owl.owlapi.OWLOntologyManagerImpl.loadOntology(OWLOntologyManagerImpl.java:961) 
     uk.ac.manchester.cs.owl.owlapi.OWLOntologyManagerImpl.loadOntologyFromOntologyDocument(OWLOntologyManagerImpl.java:910) 
     uk.ac.manchester.cs.owl.owlapi.OWLOntologyManagerImpl.loadOntologyFromOntologyDocument(OWLOntologyManagerImpl.java:922) 
     de.julielab.bioportal.ontologies.apps.Test.main(Test.java:43) 
Encountered " <PN_CHARS> "- "" at line 3635316, column 64. 
Was expecting: 
    "." ... 
      org.semanticweb.owlapi.rdf.turtle.parser.TurtleParser.generateParseException(TurtleParser.java:1960) 
     org.semanticweb.owlapi.rdf.turtle.parser.TurtleParser.jj_consume_token(TurtleParser.java:1829) 
     org.semanticweb.owlapi.rdf.turtle.parser.TurtleParser.parseDocument(TurtleParser.java:111) 
     org.semanticweb.owlapi.rdf.turtle.parser.TurtleOntologyParser.parse(TurtleOntologyParser.java:56) 
     uk.ac.manchester.cs.owl.owlapi.OWLOntologyFactoryImpl.loadOWLOntology(OWLOntologyFactoryImpl.java:175) 
     uk.ac.manchester.cs.owl.owlapi.OWLOntologyManagerImpl.load(OWLOntologyManagerImpl.java:997) 
     uk.ac.manchester.cs.owl.owlapi.OWLOntologyManagerImpl.loadOntology(OWLOntologyManagerImpl.java:961) 
     uk.ac.manchester.cs.owl.owlapi.OWLOntologyManagerImpl.loadOntologyFromOntologyDocument(OWLOntologyManagerImpl.java:910) 
     uk.ac.manchester.cs.owl.owlapi.OWLOntologyManagerImpl.loadOntologyFromOntologyDocument(OWLOntologyManagerImpl.java:922) 
     de.julielab.bioportal.ontologies.apps.Test.main(Test.java:43) 



SNIP 

Заглянувший может загрузить файл штрафом и даже с использованием TurtleParser непосредственно, как в

java.net.URL documentUrl = new File("LOINC.ttl").toURI().toURL(); 
    InputStream inputStream = documentUrl.openStream(); 
    RDFParser rdfParser = new TurtleParser(); 
    java.util.ArrayList myList = new ArrayList(); 
    StatementCollector collector = new StatementCollector(myList); 
    rdfParser.setRDFHandler(collector); 
    try { 
     rdfParser.parse(inputStream, documentUrl.toString()); 
    } catch (IOException | RDFParseException | RDFHandlerException e) { 
     e.printStackTrace(); 
    } 

работает через. Однако я полагаюсь на OWL-API.

Я не думаю, что есть синтаксическая ошибка, так как Protégé может открыть файл без жалобы (ничего особенного в журналах). Я также попробовал сокращенные версии файла, потому что он довольно большой. Работает около половины файла. Но я не нашел ничего о ограничениях длины OWL-API. И опять. Protégé может открыть его.

То же самое с файлами MESH.ttl и PDQ.ttl на BioPortal. Однако NCBITAXON.ttl работает.

Версия OWL-API 5.0.5, Protege 5.0beta для Mac используется для успешного открытия файла.

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

Спасибо!

ответ

0

В совах api отсутствует явный предел, за исключением доступной памяти и размера коллекций, которая ограничена максимальным значением, которое может принимать целое число.

Что такое подробный журнал для этого парсера?

13) [email protected]43e173

Это черепаха парсер в самой owlapi, а не парсер Рио.

Кроме того, какую версию owlapi и protégé вы используете?

РЕДАКТИРОВАТЬ: с сообщением об ошибке для синтаксического анализа, я был в состоянии найти неудовлетворительную строку:

<http://purl.bioontology.org/ontology/LNC/LRN2> """3'''-acetate; [cut]"""^^xsd:string ;

Проблема заключается в том, что три цитаты: ''' те, которые интерпретируются как эквивалент """, что буквальный разделитель. Старые OWLAPI неправильно работали со спецификациями в этом, но похоже, что этот литерал неверен и поэтому он не работает с более новым OWLAPI. Protege Beta до (я думаю), версия 15 использует OWLAPI 3.5, у которого есть старший парсер.

Я не уверен, что это может быть исправлено в синтаксических анализаторах или если данные необходимо исправить вместо этого на данном этапе. Я остановлюсь на GitHub. https://github.com/owlcs/owlapi/issues/610

Второе редактирование: это ошибка; Литерал должен быть правильно проанализирован. См. the relevant Turtle specs.

+0

Hi Ignazio! О, извините, как я мог забыть: сначала я попробовал OWL-API 4.2.3 и переключился на 5.0.5 в надежде на устранение проблемы. Поэтому приведенный выше отчет об ошибке создается с помощью OWL-API 5.0.5. Я добавляю сообщение об ошибке черепахи Parser в свой вопрос. Protégé я использую 5.0 для Mac. – khituras

+0

:-D более точная бета-версия поможет решить проблему. Бета-версии Protege 5 охватывают длительный промежуток времени; ранние использовали OWLAPI 3.5.x, а последний использует 4.1.x, если я правильно помню. – Ignazio

+0

Ха-ха, мне очень жаль - его Protege-5.0.0-beta-21 ;-) Проблема, однако, действительно выглядит как '' '' '. Большое спасибо за это, потому что я тоже посмотрел на линию, но не заметил этой проблемы. Интересно, почему это запрещено. Означает ли это, что строка, начинающаяся с '" "" ', может быть закончена с' '' ''. Это показалось мне необычным. – khituras

Смежные вопросы