我正在使用此查询来获取使用耶拿和 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();
我应该如何更改查询以获取单词是其标签一部分的类?实际上,我需要在 Spark 中使用类似"sql Like 语句"之类的东西。谢谢你帮助我!
它不是Spark,而是Sparql,因为apache spark head在这里。您正在寻找的是字符串函数。您可能正在寻找 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、文字。
经过更多搜索,我找到了正确的查询
String Quert ="PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>"
+ " SELECT ?x WHERE { ?x rdfs:label ?v ." +
"FILTER regex(?v, "word", "i")}" ;