チェンジセット 20 : BH13SPARQLBuilder/src/org

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

getNextClassでcountLinksパラメータを追加した

パス:
BH13SPARQLBuilder/src/org/biohackathon/SPARQLBuilder/OWL
ファイル:
2 変更

凡例:

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

    r10 r20  
    5959         * @since 28.01.2014 
    6060         */ 
    61         public ClassLink[] getNextClass(String[] graphURIs, String originClass, int limit) throws Exception; 
     61        public ClassLink[] getNextClass(String[] graphURIs, String originClass, int limit, boolean countLinks) throws Exception; 
    6262 
    6363        /** 
     
    7373         * @param originClass 襍キ轤ケ縺ィ縺ェ繧九け繝ゥ繧ケ縺ョURI縲€��ull荳榊庄�� 
    7474         * @param limit 隗」縺ィ縺励※霑斐&繧後kClassLink驟榊�縺ョ髟キ縺輔�荳企剞蛟、繧呈欠螳壹☆繧九€�荳企剞蛟、繧定ィュ螳壹@縺ェ縺�エ蜷医�0莉・荳九�蛟、繧呈欠螳壹☆繧� 
     75         * @param countLinks 繧、繝ウ繧ケ繧ソ繝ウ繧ケ髢薙�繝ェ繝ウ繧ッ縺ョ謨ー�医ヨ繝ェ繝励Ν謨ー�峨r霑斐@縺溘>縺ィ縺阪�true繧呈欠螳壹☆繧� 
    7576         * @return ClassLink縺ョ驟榊�縲ゅ%縺薙↓縺ッ縲∝叙蠕励&繧後◆繧ッ繝ゥ繧ケ縺ィ髢「菫ゅ▼縺代i繧後※縺�k繝励Ο繝代ユ繧」縲�未菫ゅ�蜷代″縺悟性縺セ繧後k縲� 
    7677         * @throws Exception 
     
    101102 InstanceLink[] getNextInstancesViaInstanceLink(String[] graphURIs, String originInstance, 
    102103                        int limit) throws Exception; 
     104        public LabelMap[] getLabels(String[] graphURIs, String[] resourceURIs, String language) throws Exception; 
     105 
    103106} 
  • BH13SPARQLBuilder/src/org/biohackathon/SPARQLBuilder/OWL/OWLQueryBuilderImpl.java

    r19 r20  
    6161 
    6262                System.out.println("CLS"); 
    63                 ClassLink[] cls = builder.getNextClass(null, clz[0].getClassURI(), 0); 
     63                ClassLink[] cls = builder.getNextClass(null, clz[0].getClassURI(), 0, false); 
    6464                if( cls != null ){ 
    6565                        for( ClassLink cl: cls){ 
     
    272272         */ 
    273273        public ClassLink[] getNextClass(String[] graphURIs, String originClass, 
    274                         int limit) throws Exception { 
     274                        int limit, boolean countLinks) throws Exception { 
    275275                StringBuffer queryStr = new StringBuffer(); 
    276276                queryStr.append("PREFIX owl: <http://www.w3.org/2002/07/owl#>\n"); 
    277277                queryStr.append("PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>\n"); 
    278278                queryStr.append("PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>\n"); 
    279 //              queryStr.append("SELECT DISTINCT ?p ?pDirection ?c (COUNT(?s) AS ?numOfLinks) \n"); 
    280                 queryStr.append("SELECT DISTINCT ?p ?pDirection ?c \n"); 
     279 
     280                // SELECT 
     281                if( countLinks ){ 
     282                                queryStr.append("SELECT DISTINCT ?p ?pDirection ?c (COUNT(?s) AS ?numOfLinks) \n"); 
     283                } 
     284                else{ 
     285                        queryStr.append("SELECT DISTINCT ?p ?pDirection ?c \n"); 
     286                } 
     287                 
    281288                if (graphURIs != null) { 
    282289                        for (String graphURI : graphURIs) { 
     
    291298                queryStr.append(originClass); 
    292299                queryStr.append(">.\n    ?p rdfs:range ?c.\n"); 
    293 //              queryStr.append("    ?o ?p ?s."); 
     300 
     301                if( countLinks ){ 
     302                                queryStr.append("    ?o ?p ?s."); 
     303                } 
     304                 
    294305                queryStr.append("}\n  UNION\n"); 
    295306                queryStr.append("  { ?p rdfs:range <"); 
     
    297308                queryStr.append(">.\n"); 
    298309                queryStr.append("    ?p rdfs:domain ?c.\n"); 
    299 //              queryStr.append("    ?s ?p ?o."); 
     310 
     311                if( countLinks ){ 
     312                                queryStr.append("    ?s ?p ?o."); 
     313                } 
     314                 
    300315                queryStr.append("}\n"); 
    301316 
     
    304319                 
    305320                queryStr.append("  ?s rdf:type ?c.\n"); 
    306 //              queryStr.append("  ?o rdf:type <"); 
    307 //              queryStr.append(originClass); 
    308 //              queryStr.append(">.\n"); 
    309                 queryStr.append("}\n"); 
    310 //              queryStr.append("GROUP BY ?p ?pDirection ?c\n"); 
     321 
     322                if( countLinks){ 
     323                        queryStr.append("  ?o rdf:type <"); 
     324                        queryStr.append(originClass); 
     325                        queryStr.append(">.\n"); 
     326                        queryStr.append("}\nGROUP BY ?p ?pDirection ?c\n"); 
     327                } 
     328                else{ 
     329                        queryStr.append("}\n"); 
     330                } 
    311331                if (limit > 0) { 
    312332                        queryStr.append("limit "); 
     
    602622                ResultSet results = qexec.execSelect(); 
    603623                HashMap<String, LabelMap> lMap = new HashMap<String, LabelMap>(); 
    604                 HashMap<String, InstanceLink> insLinkMap = new HashMap<String, InstanceLink>(); 
    605624                for (; results.hasNext();) { 
    606625                        QuerySolution sol = results.next(); 
     
    623642                } 
    624643                return lMap.values().toArray(new LabelMap[0]); 
    625                  
    626                  
    627644        } 
    628645