Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/350.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java org.obolibrary.oboformat.parser.OBOFormatParser警告:行:901位置处应为空白行:</rdf:rdf>;_Java_Parsing_Ontology_Owl Api - Fatal编程技术网

Java org.obolibrary.oboformat.parser.OBOFormatParser警告:行:901位置处应为空白行:</rdf:rdf>;

Java org.obolibrary.oboformat.parser.OBOFormatParser警告:行:901位置处应为空白行:</rdf:rdf>;,java,parsing,ontology,owl-api,Java,Parsing,Ontology,Owl Api,我正在使用一个java项目从一个文件(dbpedia_2016-10.owl)加载一个本体,向这个本体添加一些公理,然后作为一个新的本体写入.owl文件。后来在我的项目中,我使用loadOntologyFromOntologyDocument(新文件(“DBpedia_modified.owl”)从OWLOntology加载了新的本体,我收到了多行警告:我注意到解析器在pos 5或pos 6,这与字符:相关: Jan 04, 2020 12:57:49 PM org.obolibrary.obo

我正在使用一个java项目从一个文件(
dbpedia_2016-10.owl
)加载一个本体,向这个本体添加一些公理,然后作为一个新的本体写入
.owl
文件。后来在我的项目中,我使用
loadOntologyFromOntologyDocument(新文件(“DBpedia_modified.owl”)
OWLOntology
加载了新的本体,我收到了多行警告:我注意到解析器在
pos 5
pos 6
,这与字符
相关:

Jan 04, 2020 12:57:49 PM org.obolibrary.oboformat.parser.OBOFormatParser warn
WARNING: LINE: 84  Expected white space at pos: 5  LINE:
<owl:someValuesFrom rdf:resource="http://dbpedia.org/ontology/MusicGenre"/>
Jan 04, 2020 12:57:49 PM org.obolibrary.oboformat.parser.OBOFormatParser warn
WARNING: LINE: 85  Expected white space at pos: 6  LINE:
</owl:Restriction>
2020年1月4日12:57:49 PM org.obolibrary.oboformat.parser.OBOFormatParser警告
警告:行:84位置5处的预期空白行:
2020年1月4日12:57:49 PM org.oboboblibrary.oboformat.parser.OBOFormatParser警告
警告:行:85位置处的预期空白:6行:
由于我对这一领域相当陌生,我不理解为什么解析器希望使用空格而不是
;我的问题是警告有多严重?我怎样才能修好它?我在谷歌上搜索了一下,但没有找到正确的答案


提前感谢您的指导。

您可以忽略此警告。您的文件是RDF格式的,警告来自OBO解析器

如果不指定本体使用的格式,OWLAPI将尝试所有可用的解析器,直到找到一个接受本体的解析器。OBO解析器拒绝(正确地)解析本体,并且还发出警告,这超出了它应该做的,因为此时它应该已经抛出异常

编辑:为避免使用OBO解析器,您可以选择应使用的格式:

manager.loadOntologyFromOntologyDocument(
        new FileDocumentSource(file, new RDFXMLDocumentFormat()));

这将只尝试一个解析器(我猜您的文件格式是RDF/XML)。

有没有办法“隐藏”这个警告?它是通过slf4j记录的,这样您就可以配置日志系统,只为obo包输出错误。我不认为我使用sel4j进行日志记录,至少不直接使用;我hma在哪里配置日志系统有点问题(我正在使用Eclipse),我非常感谢您的指导!OWLAPI使用slf4j,并且,鉴于您看到的是日志记录,在您的类路径中必须有一个slf4j实现。我不知道到底是哪一个,而且配置也各不相同。如果您检查您的类路径,您将发现slf4j api和至少一个名称中包含slf4j的jar。知道那个jar的名称会告诉我们它接受什么配置。是的,我可以在我的Maven依赖中看到有
self4j-api-1.7.10.jar
jcl-over-sel4j-1.7.7.jar
。对于您答案中的编辑,我得到的
构造函数FileDocumentSource(File,RDFXMLDocumentFormat)是未定义的
。构造函数似乎只接受一个参数,即
File
type。