Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/379.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Jena SPARQL不';没有显示期望的结果_Java_Lucene_Full Text Search_Sparql_Jena - Fatal编程技术网

Java Jena SPARQL不';没有显示期望的结果

Java Jena SPARQL不';没有显示期望的结果,java,lucene,full-text-search,sparql,jena,Java,Lucene,Full Text Search,Sparql,Jena,当我从自己的RDF查询时,使用Jena和SPARQL时遇到了问题。我从中得到了这个例子。这是我的查询代码: public static void queryData( Dataset dataset ) { System.out.println("Query data...") ; String prefix = "PREFIX cs: <" + URI + "> " + "PREFIX text: <http://

当我从自己的RDF查询时,使用Jena和SPARQL时遇到了问题。我从中得到了这个例子。这是我的查询代码:

 public static void queryData( Dataset dataset )
{
    System.out.println("Query data...") ;

    String prefix = "PREFIX cs: <" + URI + "> " + 
                    "PREFIX text: <http://jena.apache.org/text#> ";

    String query = "SELECT * WHERE " +
           "{ ?informatika text:query (cs:hasBranch 'sistem') ." +
            "?informatika cs:hasBranch ?konsentrasi."+
           " }"; 

    long startTime = System.currentTimeMillis() ;

    dataset.begin( ReadWrite.READ ) ;
    try 
    {
        Query q = QueryFactory.create( prefix + query );
        QueryExecution qexec = QueryExecutionFactory.create( q , dataset );
        QueryExecUtils.executeQuery( q, qexec );
    }
    finally 
    {
        dataset.end() ; 
    }
publicstaticvoidquerydata(数据集)
{
System.out.println(“查询数据…”);
字符串前缀=“前缀cs:”+
“前缀文本:”;
String query=“选择*WHERE”+
“{?informatika text:query(cs:hasBranch'sistem')”+
“informatika cs:hasBranch?konsentrasi。”+
" }"; 
long startTime=System.currentTimeMillis();
dataset.begin(ReadWrite.READ);
尝试
{
Query q=QueryFactory.create(前缀+查询);
QueryExecution qexec=QueryExecutionFactory.create(q,数据集);
执行(q,qexec);
}
最后
{
dataset.end();
}
这是我在代码中包含的RDF(OntologyCS2.RDF):


信息系统
雷卡亚萨·佩朗卡特·卢纳克
Jaringan和Keamanan Komputer
科姆普塔西和塞尔达斯系统
医学信息
多媒体可视计算机
该查询应仅显示“Sistem Informasi”。但是,结果显示:


这有什么不对?我希望你能清楚地阅读我的解释。请告诉我。谢谢你

现在的问题到底是什么?你有一个数据集,其中一个个体有多个
hasBranch
值。你的查询做的正是它所做的,它会找到所有具有与字符串匹配的分支的个体“sistem“”,然后通过第二个三重模式获取这些个体的所有分支。如果您只需要分支文本,请执行
select?konsentrasi where{(?s?score?konsentrasi)text:query(cs:hasBranch'sistem')}
@UninformedUser感谢您的回答并编辑了我的问题。我做了您建议的查询,但它出现了错误。它说
在第205列第1行遇到了“\'sistem\”。
我看不到这里的问题。您能试试
选择?konsentrasi哪里{(?s?score?konsentrasi)text:query(cs:hasBranch“sistem”)}
请?这是正确的语法。@unformedUser“score”的功能是什么?我已经尝试过了,但不幸的是它不能工作。它显示了与我上面的评论类似的错误。哦,是的,我不能使用“”,所以我改为使用“”。
<rdf:RDF
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:cs="http://www.semanticweb.org/ulfaamalia/ontologies/2020/1/OntologyCS#" >
<rdf:Description rdf:about="http://www.semanticweb.org/ulfaamalia/ontologies/2020/1/OntologyCS#Informatika">
    <cs:hasBranch>Sistem Informasi</cs:hasBranch>
  </rdf:Description>
  <rdf:Description rdf:about="http://www.semanticweb.org/ulfaamalia/ontologies/2020/1/OntologyCS#Informatika">
    <cs:hasBranch>Rekayasa Perangkat Lunak</cs:hasBranch>
  </rdf:Description>
  <rdf:Description rdf:about="http://www.semanticweb.org/ulfaamalia/ontologies/2020/1/OntologyCS#Informatika">
    <cs:hasBranch>Jaringan dan Keamanan Komputer</cs:hasBranch>
  </rdf:Description>
  <rdf:Description rdf:about="http://www.semanticweb.org/ulfaamalia/ontologies/2020/1/OntologyCS#Informatika">
    <cs:hasBranch>Komputasi dan Sistem Cerdas</cs:hasBranch>
  </rdf:Description>
  <rdf:Description rdf:about="http://www.semanticweb.org/ulfaamalia/ontologies/2020/1/OntologyCS#Informatika">
    <cs:hasBranch>Informatika Medis</cs:hasBranch>
  </rdf:Description>
  <rdf:Description rdf:about="http://www.semanticweb.org/ulfaamalia/ontologies/2020/1/OntologyCS#Informatika">
    <cs:hasBranch>Multimedia Visi Komputer</cs:hasBranch>
  </rdf:Description>
</rdf:RDF>