Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/363.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/17.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 如何从RDF文件解析有效实例?_Java_Parsing_Rdf_Jena_Turtle Rdf - Fatal编程技术网

Java 如何从RDF文件解析有效实例?

Java 如何从RDF文件解析有效实例?,java,parsing,rdf,jena,turtle-rdf,Java,Parsing,Rdf,Jena,Turtle Rdf,我有一个乌龟格式的RDF文件。下面给出了一个例子: qb4o:levelrdf:type-rdf:Property,owl:ObjectProperty; rdfs:标签“级别”@en; rdfs:comment“qb:componentProperty的一个替代方案,它明确了组件是一个级别”@en; rdfs:qb的子属性:componentProperty; rdfs:isDefinedBy; rdfs:range qb4o:LevelProperty。 ### http://purl.or

我有一个乌龟格式的RDF文件。下面给出了一个例子:

qb4o:levelrdf:type-rdf:Property,owl:ObjectProperty;
rdfs:标签“级别”@en;
rdfs:comment“qb:componentProperty的一个替代方案,它明确了组件是一个级别”@en;
rdfs:qb的子属性:componentProperty;
rdfs:isDefinedBy;
rdfs:range qb4o:LevelProperty。
### http://purl.org/qb4olap/cubes#memberOf
qb4o:memberOf-rdf:type-rdf:Property,owl:ObjectProperty;
rdfs:标签“级别成员是级别成员”@en;
rdfs:comment“表示级别成员所属的级别”@en;
rdfs:isDefinedBy;
rdfs:domain qb4o:LevelMember;
rdfs:range qb4o:LevelProperty。
现在,我需要解析这个文件中的实例。我可以在Jena中使用Sparql实现这一点。但是,问题是可能仍然存在一些无效的实例,我无法将它们加载到Jena模型中。下面给出了一个例子:

qb4o:levelrdf:type-rdf:Property,owl:ObjectProperty;
rdfs:标签“级别”@en;
rdfs:comment“qb:componentProperty的一个替代方案,它明确了组件是一个级别”@en;
rdfs:qb的子属性:componentProperty;
rdfs:isDefinedBy;
rdfs:range qb4o:LevelProperty。
### http://purl.org/qb4olap/cubes#memberOf
qb4o:memberOf-rdf:type-rdf:Property,owl:ObjectProperty;
rdfs:标签“级别成员是级别成员”@en;
rdfs:comment“表示级别成员所属的级别”@en;
rdfs:isDefinedBy;
所以,我决定用正则表达式解析它们。但是,我无法找出正则表达式来忽略无效的实例而只获取正确的实例。这有点困难,因为turtle文件也可以采用以下格式:


A.
“1人”;
"1" .
A.
“2人”;
"2" .

如何解决此问题?

什么是“无效”?也许你的意思是
qb4o:memberOf
节没有以
结尾?Turtle文件通常最好使用Turtle解析器来处理,尤其是在使用RDF时。它通常帮助我们帮助您,如果您能让我们更全面地了解您正在尝试做什么,以及为什么要这样做——因为具体的小问题可以通过在更大的步骤上进行更改来避免。是的,通过验证,我指的是检测不以点结尾的实例。我想区分不以点结尾的实例,然后忽略它们@实际上,我想做的是,如果一个文件包含这样的错误,Jena不会将它们加载到模型中。但是我想忽略那些无效的实例(如果有的话),然后将它们加载到Jena模型中,这样我就可以对它们运行Sparql查询了。只需使用一些容错机制调整Jena RDF解析器,它将跳过那些解析错误并继续。实际上,“更好”的方法是修复根错误,即数据本身,或者更好地修复生成数据的工具。