java - 从lastfm.rdfize.com 添加RDF 模型

标签 java rdf jena last.fm

我正在使用 Java 进行编程,尝试使用 Jena 库和 lastfm.rdfize.com 网站创建一个简单的 RDF 存储。

我遇到了以下问题: lastfm.rdfize.com 生成一个 rdf,例如在 Turtle 中,请求如下: “http://lastfm.rdfize.com/?username=&eventID=&artistName="+artistName+"&venueID=&output=turtle”

我发出请求并获取生成的网页的内容。 如果我打印它们 - 对我来说它们似乎是一个不错的 RDF。

但是,我无法将它们添加到模型中。

我尝试创建一个文件,将字符串(即 HTML 内容)写入该文件(看起来也不错)并将其读取到模型中,如下所示:

InputStream lastf = FileManager.get().open("lastfm.txt");
Model temp=null;
temp=ModelFactory.createOntologyModel(OntModelSpec.OWL_DL_MEM_RDFS_INF);
temp.read(lastf,null,"Turtle");

但是,此时我收到以下错误消息:

(ErrorHandlerLib.java:49) - [行:22,列:2] 未知字符:

最佳答案

你的代码确实对我有用,比如一个简单的 RDF/Turtle ...

@base <http://example.org/ns/> .                                                                                                                     
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

<s1> <p1> <o1>;
<p2> "some typed literal"^^xsd:string;
<p2> "some non-typed literal";
<p4> 10 .
<o1> <label> "some label" .

因此,您的数据文件 lastfm.txt 中似乎存在某些格式或字符集错误。 我建议使用 RDF validator 验证您的文件,尝试使用 http://www.rdfabout.com/demo/validator/ 使用此 validator ,您可以测试 RDF/XML 和 RDF/Turtle,确保您为正在使用的 RDF 序列化类型选择正确的格式。

验证数据的另一个选项可能是来自http://librdf.orgraptor工具。 但这有点复杂,您需要在本地安装它。

如果 validator 提示字符集错误,那么您可以更改用于读取数据的字符集。像这样的东西应该可以工作..

package t1;                        
import java.io.*;
import com.hp.hpl.jena.util.*;
import com.hp.hpl.jena.ontology.*;
import com.hp.hpl.jena.rdf.model.*;
import java.nio.charset.*;

class test {
 public static void main (String[] args) { 
       InputStreamReader lastf = new 
          InputStreamReader(FileManager.get().open("lastfm.txt"),
                            Charset.forName("ISO-8859-1"));

       Model temp=null;
       temp=ModelFactory.createOntologyModel(OntModelSpec.OWL_DL_MEM_RDFS_INF);
       temp.read(lastf,null,"Turtle");
       System.out.println(temp.size());
       temp.write(System.out);
    }
}

所有这些应该为您提供发现错误的指南(我希望如此),但如果您没有发现它,请发布数据,以便我们查看它。

关于java - 从lastfm.rdfize.com 添加RDF 模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4148116/

相关文章:

java - Cassandra 的一致性

java - 为什么 Java 7 在成功安装 JRE 后无法验证 - Java 7 未运行我的任何浏览器

java - 从 ResultSet 创建一个 Object[](对于 JOptionPane 对话框)

java - 为个人添加属性并将它们全部插入我的 file.owl

java - Maven:无法在项目上执行目标。 Hibernate 5 从 repo.spring.io 消失了?

java - 如何重构 map 转换操作

sparql - 插入有序列表本体中的位置

rdf - 如何在 RDF Schema 中声明 RDF 容器?

python - rdf :ID in RDFlib? 相当于什么

列出耶拿实例的对象属性