我想获得DBPedia页面的URI,其标签等于"London".也就是说,当我查询DBPedia时,如果页面是属性rdfs:label值"London",那么我想得到它的URI,例如http://dbpedia.org/resource/London.我正在使用以下Java代码,但我没有得到任何结果.我在这做错了什么?
String strings = "London";
String service = "http://dbpedia.org/sparql";
String query = "PREFIX dbo:<http://dbpedia.org/ontology/>"
+ "PREFIX : <http://dbpedia.org/resource/>"
+ "PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#/>"
+ "select ?URI where {?URI rdfs:label "+strings+".}";
QueryExecution qe=QueryExecutionFactory.sparqlService(service, query);
ResultSet rs = qe.execSelect();
while (rs.hasNext()){
QuerySolution s= rs.nextSolution();
System.out.println(s.getResource("?URI").toString());
}
Run Code Online (Sandbox Code Playgroud) 我有这个查询SPARQL我在它上运行.dbpedia.org/sparql:
select ?resource where {
?resource rdfs:label "Piemonte"@it
}
Run Code Online (Sandbox Code Playgroud)
我得到这个结果:
http://it.dbpedia.org/resource/Categoria:Piemonte
http://it.dbpedia.org/resource/Piemonte
Run Code Online (Sandbox Code Playgroud)
我希望只有http://it.dbpedia.org/resource/Piemonte.我试图写这个查询SPARQL 从结果中删除http://it.dbpedia.org/resource/Categoria:Piemonte:
select ?resource where {
?resource rdfs:label "Piemonte"@it
FILTER (rdf:type != skos:Concept)
}
Run Code Online (Sandbox Code Playgroud)
因为我注意到http://it.dbpedia.org/resource/Categoria:Piemonte有对象skos:Concept而http://it.dbpedia.org/resource/Piemonte没有,但我得到了相同的结果.为什么?我在这做错了什么?
我也尝试添加LIMIT 1,但结果是http://it.dbpedia.org/resource/Categoria:Piemonte,因为结果不保证是相同的顺序.
我有一个问题问你.
我想编写一个查询,检索与给定字符串"Londn"相似的值(给定相似函数,如Lev),以与DBPedia的谓词"RDFS:label"进行比较.例如,在输出中,我想获得"伦敦"的价值.我已经读过可用的方法可能是使用iSPARQL("不精确的SPARQL"),尽管它在文献中没有被广泛使用.
我可以使用iSPARQL还是有一些SPARQL方法来执行相同的操作?
我有一个问题问你.
我有一个三元店"Jena TDB",我读过我可以为本地存储的RDF数据设置SPARQL端点.特别是,我在文献中看到,与耶拿TDB一起使用的是Fuseki.我以这种方式在Jena TDB中加载了我的文件rdf:
public void store(){
String directory = "C:\\tdb";
String source = "C:\\file1.rdf";
String source1 = "C:\\file2.rdf";
Dataset dataset = openTDB(directory);
Model tdb = loadModel(source, dataset);
dataset.addNamedModel("File1", tdb);
Model tdb1 = loadModel(source1, dataset);
dataset.addNamedModel("File2", tdb1);
tdb.close();
tdb1.close();
dataset.close();
}
public Dataset openTDB(String directory){
// open TDB dataset
Dataset dataset = TDBFactory.createDataset(directory);
return dataset;
}
public Model loadModel(String source, Dataset dataset){
Model tdb = ModelFactory.createDefaultModel();
FileManager.get().readModel( tdb, source, "RDF/XML" );
return tdb;
}
Run Code Online (Sandbox Code Playgroud)
我正在阅读Apache网站上的Fuseki文档和这篇针对Jena(TDB)的Desktop SPARQL客户端文章?,但我有问题. …
我想知道在Java代码中编写此SPARQL查询的简单方法:
select ?input
?string
(strlen(?match)/strlen(?string) as ?percent)
where {
values ?string { "London" "Londn" "London Fog" "Lando" "Land Ho!"
"concatenate" "catnap" "hat" "cat" "chat" "chart" "port" "part" }
values (?input ?pattern ?replacement) {
("cat" "^x[^cat]*([c]?)[^at]*([a]?)[^t]*([t]?).*$" "$1$2$3")
("Londn" "^x[^Londn]*([L]?)[^ondn]*([o]?)[^ndn]*([n]?)[^dn]*([d]?)[^n]*([n]?).*$" "$1$2$3$4$5")
}
bind( replace( concat('x',?string), ?pattern, ?replacement) as ?match )
}
order by ?pattern desc(?percent)
Run Code Online (Sandbox Code Playgroud)
此代码包含在讨论中使用iSPARQL使用相似性度量来比较值.此代码的目的是查找与DBPedia上的给定单词类似的资源.这个方法考虑到我事先知道字符串及其长度.我想知道如何在参数化方法中编写此查询,无论单词和长度如何,它都会返回给我相似性度量.
我有个问题:
我有一个用不同值填充的 List Java。例如,我有:
List<String[]> l = new ArrayList();
String[] lis = new String[3];
lis[0] = "A";
lis[1] = "B";
lis[2] = "C";
l.add(lis);
Run Code Online (Sandbox Code Playgroud)
我也有其他价值观。现在,我只想在此列表中搜索第一个字段。例如,我想要 A 的 indexOf。我曾尝试编写此代码:
int index = l.indexOf("A");
Run Code Online (Sandbox Code Playgroud)
但我得到 -1 作为回报。我想知道在加载数组时如何访问列表的字段。
我有个问题:
我正在尝试将我的 CSV 文件转换为 XML 文件,并且我看到了这篇文章的响应:Java lib 或应用程序将 CSV 转换为 XML 文件?
我看到我需要使用这个 OpenCSV 库,特别是,我必须使用以下代码:
CSVReader reader = new CSVReader(new FileReader(startFile));
Run Code Online (Sandbox Code Playgroud)
在哪里 String startFile = "./startData.csv";
现在,我没有得到一个字符串作为 startFile,但我有一个byte[],因为对于其他问题,我已经将我的文件转换为 byte[]。如何将此代码与 byte[] 一起使用?
有替代品吗?
谢谢
我有个问题.
我正在http://virtuoso.openlinksw.com/dataspace/doc/dav/wiki/Main/VirtJenaProvider上关注sample8 .
特别是,我有这个代码:
package ExampleVirtuoso;
import com.hp.hpl.jena.query.*;
import com.hp.hpl.jena.rdf.model.RDFNode;
import virtuoso.jena.driver.*;
public class ExampleVirtuoso {
public static void main(String[] args) {
/* STEP 1 */
VirtGraph set = new VirtGraph("jdbc:virtuoso://localhost:1111", "dba", "dba");
/* STEP 2 */
System.out.println("\nexecute: CLEAR GRAPH <http://test1>");
String str = "CLEAR GRAPH <http://test1>";
VirtuosoUpdateRequest vur = VirtuosoUpdateFactory.create(str, set);
vur.exec();
System.out.println("\nexecute: INSERT INTO GRAPH <http://test1> { <aa> <bb> 'cc' . <aa1> <bb1> 123. }");
str = "INSERT INTO GRAPH <http://test1> { <aa> <bb> 'cc' . …Run Code Online (Sandbox Code Playgroud)