我需要对DBpedia执行查询:
SELECT DISTINCT ?poi ?lat ?long ?photos ?template ?type ?label WHERE {
?poi <http://www.w3.org/2000/01/rdf-schema#label> ?label .
?poi <http://www.w3.org/2003/01/geo/wgs84_pos#lat> ?lat .
?poi <http://www.w3.org/2003/01/geo/wgs84_pos#long> ?long .
?poi <http://dbpedia.org/property/hasPhotoCollection> ?photos .
OPTIONAL {?poi <http://dbpedia.org/property/wikiPageUsesTemplate> ?template } .
OPTIONAL {?poi <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> ?type } .
FILTER ( ?lat > x && ?lat < y &&
?long > z && ?long < ? &&
langMatches( lang(?label), "EN" ))
}
Run Code Online (Sandbox Code Playgroud)
我猜这些信息分散在不同的转储(.nt)文件中,不知怎的,SPARQL端点为我们提供了结果集.我需要在本地下载这些不同的.nt文件(不是所有的DBpedia),只执行一次查询并在本地存储结果(我不想使用SPARQL端点).
我从这篇文章中读到有点困惑:
因此,您可以将整个DBPedia数据加载到磁盘上的单个TDB位置(即单个目录).这样,您就可以对它运行SPARQL查询.
如果我们有三个.nt DBpedia文件,如何以Jena术语将DBpedia加载到单个TDB位置?我们如何在这些.nt文件上应用上述查询?(任何代码都会有所帮助.)
例如,这是错的吗?
String tdbDirectory = "C:\\TDB";
String dbdump1 = "C:\\Users\\dump1_en.nt"; …Run Code Online (Sandbox Code Playgroud) 一个 我需要执行词组搜索.在搜索结果中,我得到了确切的短语匹配,但看着突出显示的部分,我看到短语是标记化的,即这是我在搜索"第1天"时得到的结果:
<arr name="post">
<str><em>Day</em> <em>1</em> We have begun a new adventure! An early morning (4:30 a.m.) has found me meeting with</str>
</arr>
Run Code Online (Sandbox Code Playgroud)
这是我想要收到的结果:
<arr name="post">
<str><em>Day 1</em> We have begun a new adventure! An early morning (4:30 a.m.) has found me meeting with</str>
</arr>
Run Code Online (Sandbox Code Playgroud)
我正在做的查询是这样的: 管理控制台:
q = day 1
fq = post:"day 1" OR title:"day 1"
hl = true
hl.fl =title,post
Run Code Online (Sandbox Code Playgroud)
选择Q =天+ 1&FQ =张贴%3A%22天+ 1%22 + OR +标题%3A%22天+ 1%22重量= XML&缩进=真HL =真hl.fl =标题%2Cpost&hl.simple.pre =%3Cem%3E&HL .simple.post =%3C%2Fem%3E
Theese是我的领域:
<field …Run Code Online (Sandbox Code Playgroud)