如何通过使用耶拿提供属性名称来获取dbpedia中属性的名称空间?

| 我试图在耶拿使用sparql的以下dbpedia链接中获取属性类型的值http://dbpedia.org/page/Black_Sabbath 但是我不知道如何从dbpedia(在我的示例中为dbpedia-owl.genre)获取属性名称空间,我不想对其进行硬编码。谁能帮我... 非常感谢     
已邀请:
您的第一个问题使我认为您想要像Jena schemagen这样的东西,它会自动从本体中使用的标识符URI生成Java常量的集合。但是,DbPedia OWL模式相当大,我认为schemagen可能不会产生有用的结果(我还没有尝试过)。如果是这样,您始终可以选择感兴趣的资源和属性的子集,然后在该子集上运行schemagen。 但是,在您的澄清评论中,您谈论使用诸如纬度等其他属性,使我认为您在问一个不同的问题:即,如何避免将特定属性硬编码到SPARQL查询中。这对您来说是否是一个问题,完全取决于您要解决的问题以及代码的体系结构。一个程序完全可以维护许多SPARQL查询字符串,而只需选择特定作业所需的字符串即可。这是一种常见的用法模式。 但是,在某些合理的用例中,您需要采用通用查询字符串(例如
select * where {?s ?p \"foo\"}
),并确保将变量之一预先绑定到特定值。尽管可以通过字符串操作来做到这一点,但还有一种更优雅的方法。例如,要进行上述查询,并将
?p
预绑定到属性
dc:creator
,可以执行以下操作:
String q = \"select * where {?s ?p \\\"foo\\\"}\";
QuerySolutionMap qsm = new QuerySolutionMap();
qsm.bind( \"p\", DC.creator );
Query query = QueryFactory.create( q );
QueryExecution exec = QueryExecutionFactory.create( query, model, qsm );
ResultSet rs = exec.execSelect();
另请参阅此博客文章以获取更多信息或JavaDoc。     

要回复问题请先登录注册