我正在使用此查询使用jena和spark获取本体中的特定类。
final String queryString = "" +
"prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>\n" +
"\n" +
"select ?class where {\n" +
" ?class rdfs:label \""+ word +"\"\n" +
"}\n" +
"";
ResultSet results = QueryExecutionFactory.create( queryString, model).execSelect();
我应该如何更改查询以获取word是其标签的一部分? 实际上我需要类似&#34; sql之类的声明&#34;在火花中。 谢谢你的帮助!
答案 0 :(得分:0)
对于apache spark head here,它不是Spark它是Sparql。您正在寻找的是String函数。您可能正在寻找regex()函数。但是除了最简单的查询之外的任何事情都需要花费很多时间,事实上建议不要在任何数据库系统中使用。您的SPARQL字符串应该是:
final String queryString =
"PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> " +
"SELECT ?s ?label ?contains"
"WHERE {" +
" ?s rdfs:label ?label ." +
" BIND(CONTAINS(?label,\""+ variableToFind +"\") AS ?contains)"
"}";
此外,您不是在寻找正在寻找主题的课程,而且可以是URI,BN,文字。
答案 1 :(得分:0)
经过多次搜索后我找到了正确的查询
String Quert ="PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>"
+ " SELECT ?x WHERE { ?x rdfs:label ?v ." +
"FILTER regex(?v, \"word\", \"i\")}" ;