チェンジセット 27

差分発生行の前後
無視リスト:
更新日時:
2014/01/31 02:22:35 (11 年 前)
更新者:
nori
ログメッセージ:

getNextClass のexists句を変えてSPARQLの処理速度が向上したはず

ファイル:
1 変更

凡例:

変更なし
追加
削除
  • BH13SPARQLBuilder/src/org/biohackathon/SPARQLBuilder/OWL/OWLQueryBuilderImpl.java

    r26 r27  
    295295                } 
    296296                queryStr.append("WHERE{\n"); 
    297                 queryStr.append("  { ?c rdf:type rdfs:Class. }\n  UNION\n  { ?c rdf:type owl:Class. }\n"); 
     297//              queryStr.append("  { ?c rdf:type rdfs:Class. }\n  UNION\n  { ?c rdf:type owl:Class. }\n"); 
    298298                queryStr.append("  { ?p rdfs:domain <"); 
    299299                queryStr.append(originClass); 
    300300                queryStr.append(">.\n    ?p rdfs:range ?c.\n"); 
     301 
     302                 
    301303                if (countLinks) { 
    302304                        queryStr.append("    ?o ?p ?s."); 
    303305                }else{ 
    304                         queryStr.append("    filter(exists{?o ?p ?s}) "); 
     306                        queryStr.append("filter(exists{\n"); 
     307                        queryStr.append("  ?o rdf:type ?c.\n"); 
     308                        queryStr.append(" ?s rdf:type <"); 
     309                        queryStr.append(originClass); 
     310                        queryStr.append(">.\n"); 
     311                        queryStr.append("       ?s ?p ?o.})\n"); 
    305312                } 
    306313 
     
    314321                        queryStr.append("    ?s ?p ?o."); 
    315322                }else{ 
    316                         queryStr.append("    filter( exists{?s ?p ?o})"); 
    317                 } 
    318  
    319                 queryStr.append("}\n"); 
    320  
    321                 queryStr.append("    ?p ?pDirection ?c.\n"); 
    322  
    323                 queryStr.append("  ?s rdf:type ?c.\n"); 
    324  
    325                 if (countLinks) { 
    326                         queryStr.append("  ?o rdf:type <"); 
     323                        queryStr.append("filter(exists{\n"); 
     324                        queryStr.append("  ?s rdf:type ?c.\n"); 
     325                        queryStr.append(" ?o rdf:type <"); 
    327326                        queryStr.append(originClass); 
    328327                        queryStr.append(">.\n"); 
     328                        queryStr.append("       ?s ?p ?o.})\n"); 
     329                } 
     330 
     331                queryStr.append("}\n"); 
     332 
     333                queryStr.append("    ?p ?pDirection ?c.\n"); 
     334 
     335                queryStr.append("  ?s rdf:type ?c.\n"); 
     336 
     337                if (countLinks) { 
    329338                        queryStr.append("}\nGROUP BY ?p ?pDirection ?c\n"); 
    330339                } else {