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

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

SPARQLの答がないときにヌルポが出る不具合を修正

ファイル:
1 変更

凡例:

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

    r20 r22  
    66import java.util.HashSet; 
    77import java.util.Set; 
    8  
    98 
    109import com.hp.hpl.jena.query.Query; 
     
    1918/** 
    2019 * 繧ッ繧ィ繝ェ繧堤函謌舌☆繧九◆繧√�讖溯�繧呈署萓帙☆繧区ク繧ッ繝ゥ繧ケ 
     20 *  
    2121 * @author Norio KOBAYASHI 
    2222 * @since 28.01.2014 
     
    2828        private String endpointURI = null; 
    2929 
    30          
    3130        /** 
    3231         * 繧「繧ッ繧サ繧ケ縺吶kSPARQL endpoint縺ョURI繧呈欠螳壹☆繧区ァ区�蟄� 
    3332         *  
    34          * @param endpointURI縲€繧「繧ッ繧サ繧ケ縺吶kSPARQL endpoint縺ョURI 
     33         * @param endpointURI 
     34         *            縲€繧「繧ッ繧サ繧ケ縺吶kSPARQL endpoint縺ョURI 
    3535         * @throws Exception 
    3636         * @since 28.01.2014 
     
    4545         * 繧ッ繧ィ繝ェ繝薙Ν繝€繝シ縺ョ譛ャ逡ェ繝励Ο繧ー繝ゥ繝縺ァ縺ッ縺薙�繝。繧ス繝�ラ縺ッ菴ソ逕ィ縺励↑縺� 
    4646         * </p> 
    47          * @param args 菴ソ逕ィ縺励↑縺� 
     47         *  
     48         * @param args 
     49         *            菴ソ逕ィ縺励↑縺� 
    4850         * @throws Exception 
    4951         * @since 28.01.2014 
    5052         */ 
    5153        public static void main(String[] args) throws Exception { 
    52                 String sparqlEndpoint = "http://dbpedia.org/sparql"; 
    53                 String keyword = "artiste"; 
     54                // String sparqlEndpoint = "http://dbpedia.org/sparql"; 
     55                String sparqlEndpoint = "http://lsd.dbcls.jp/sparql"; 
     56                // String keyword = "artiste"; 
     57                String keyword = "Agent"; 
    5458                String[] graphURIs = new String[0]; 
    5559 
    5660                OWLQueryBuilder builder = new OWLQueryBuilderImpl(sparqlEndpoint); 
    5761                SClass[] clz = builder.getOWLClasses(graphURIs, keyword); 
    58                 for(SClass cls: clz){ 
     62                for (SClass cls : clz) { 
    5963                        System.out.println(cls); 
    6064                } 
    6165 
    62                 System.out.println("CLS"); 
    63                 ClassLink[] cls = builder.getNextClass(null, clz[0].getClassURI(), 0, false); 
    64                 if( cls != null ){ 
    65                         for( ClassLink cl: cls){ 
    66                                 System.out.println(cl.toString()); 
    67                         } 
    68                 } 
    69  
    70                 System.out.println("CLS-INS"); 
    71                 cls = builder.getNextClassViaInstanceLink(null, clz[0].getClassURI(), 100); 
    72                 if( cls != null ){ 
    73                         for( ClassLink cl: cls){ 
    74                                 System.out.println(cl.toString()); 
    75                         } 
    76                 } 
    77  
    78                 System.out.println("Instances"); 
    79                 Instance[] ins = builder.getInstances(null, "\"A.C. Reed\"@en"); 
    80                 if( ins != null ){ 
    81                         for( Instance in: ins){ 
    82                                 System.out.println(in.toString()); 
    83                         } 
    84                 } 
    85  
    86                  
    87                 System.out.println("INS-INS"); 
    88                 ins = builder.getInstances(null, "\"A.C. Reed\"@en"); 
    89                 InstanceLink[] iLinks = builder.getNextInstancesViaInstanceLink(null, ins[0].getInstanceURI(), 100); 
    90                  
    91  
    92                  
    93                 if( iLinks != null ){ 
    94                         for( InstanceLink in: iLinks){ 
    95                                 System.out.println(in.toString()); 
    96                         } 
    97                 } 
    98                  
    99                  
    100         } 
    101  
    102          
     66                /* 
     67                 * System.out.println("CLS"); ClassLink[] cls = 
     68                 * builder.getNextClass(null, clz[0].getClassURI(), 0, false); if( cls 
     69                 * != null ){ for( ClassLink cl: cls){ 
     70                 * System.out.println(cl.toString()); } } 
     71                 *  
     72                 * System.out.println("CLS-INS"); cls = 
     73                 * builder.getNextClassViaInstanceLink(null, clz[0].getClassURI(), 100); 
     74                 * if( cls != null ){ for( ClassLink cl: cls){ 
     75                 * System.out.println(cl.toString()); } } 
     76                 *  
     77                 * System.out.println("Instances"); Instance[] ins = 
     78                 * builder.getInstances(null, "\"A.C. Reed\"@en"); if( ins != null ){ 
     79                 * for( Instance in: ins){ System.out.println(in.toString()); } } 
     80                 *  
     81                 *  
     82                 * System.out.println("INS-INS"); ins = builder.getInstances(null, 
     83                 * "\"A.C. Reed\"@en"); InstanceLink[] iLinks = 
     84                 * builder.getNextInstancesViaInstanceLink(null, 
     85                 * ins[0].getInstanceURI(), 100); 
     86                 *  
     87                 *  
     88                 *  
     89                 * if( iLinks != null ){ for( InstanceLink in: iLinks){ 
     90                 * System.out.println(in.toString()); } } 
     91                 */ 
     92        } 
     93 
    10394        /** 
    10495         * 譏守、コ逧�↓RDF縺ァ譖ク縺九l縺ヲ縺�k繧ッ繝ゥ繧ケ繧貞叙蠕励☆繧� 
    10596         * <p> 
    106          * 謖�ョ壹&繧後◆graphURIs縺ョ荳ュ縺九i縲√く繝シ繝ッ繝シ繝峨↓繝偵ャ繝医☆繧九Λ繝吶Ν繧呈戟縺、繧ッ繝ゥ繧ケ��dfs:Class�峨r縺吶∋縺ヲ霑斐☆ 
    107          * <br> 
     97         * 謖�ョ壹&繧後◆graphURIs縺ョ荳ュ縺九i縲√く繝シ繝ッ繝シ繝峨↓繝偵ャ繝医☆繧九Λ繝吶Ν繧呈戟縺、繧ッ繝ゥ繧ケ��dfs:Class�峨r縺吶∋縺ヲ霑斐☆ <br> 
    10898         * </p> 
    10999         *  
    110          * @param graphURIs縲€讀懃エ「蟇セ雎。縺ョgraph縺ョURI驟榊� (null繧�聞縺�縺ョ驟榊�繧ょ庄) 
    111          * @param keyword ��ull繧�ゥコ譁�ュ励�荳榊庄�� 
     100         * @param graphURIs 
     101         *            縲€讀懃エ「蟇セ雎。縺ョgraph縺ョURI驟榊� (null繧�聞縺�縺ョ驟榊�繧ょ庄) 
     102         * @param keyword 
     103         *            ��ull繧�ゥコ譁�ュ励�荳榊庄�� 
    112104         * @return 繧ッ繝ゥ繧ケURI縺ョ驟榊� 
    113105         * @throws Exception 
     
    129121                } 
    130122                queryStr.append("WHERE{\n"); 
    131                  
     123 
    132124                queryStr.append(" {?c rdf:type rdfs:Class} UNION {?c rdf:type owl:Class}\n"); 
    133125 
     
    136128                queryStr.append("      ?i rdf:type ?c.\n"); 
    137129 
    138 //              queryStr.append("      ?c rdfs:label "); 
    139 //              queryStr.append(keyword); 
    140 //              queryStr.append("."); 
    141  
    142                 queryStr.append("  FILTER (\n");  
     130                // queryStr.append("      ?c rdfs:label "); 
     131                // queryStr.append(keyword); 
     132                // queryStr.append("."); 
     133 
     134                queryStr.append("  FILTER (\n"); 
    143135                queryStr.append("    REGEX( ?label , \""); 
    144136                queryStr.append(keyword); 
    145137                queryStr.append("\" , \"i\" )\n"); 
    146                 queryStr.append("  )");  
     138                queryStr.append("  )"); 
    147139                queryStr.append("\n}  GROUP BY ?c ?pLabel"); 
    148140 
    149 // System.out.println(queryStr.toString()); 
    150                  
     141                System.out.println(queryStr.toString()); 
     142 
    151143                Query query = QueryFactory.create(queryStr.toString()); 
    152144                QueryExecution qexec = QueryExecutionFactory.sparqlService(endpointURI, 
     
    154146 
    155147                ResultSet results = qexec.execSelect(); 
    156                 HashMap<String,SClass> classMap = new HashMap<String,SClass>(); 
     148                HashMap<String, SClass> classMap = new HashMap<String, SClass>(); 
    157149                for (; results.hasNext();) { 
    158150                        QuerySolution sol = results.next(); 
    159151                        Resource res = sol.getResource("c"); 
    160                         String uri = res.getURI(); 
    161                         int numOfInstances = sol.getLiteral("numOfInstances").getInt(); 
    162 //System.out.println(numOfInstances); 
    163                         Literal labelLiteral = sol.getLiteral("pLabel"); 
    164                         SClass sClass = null; 
    165                         if( classMap.containsKey(uri)){ 
    166                                 sClass = classMap.get(uri); 
    167                         } 
    168                         else{ 
     152                        if (res != null) { 
     153                                String uri = res.getURI(); 
     154                                int numOfInstances = sol.getLiteral("numOfInstances").getInt(); 
     155                                // System.out.println(numOfInstances); 
     156                                Literal labelLiteral = sol.getLiteral("pLabel"); 
     157                                SClass sClass = null; 
     158                                if (classMap.containsKey(uri)) { 
     159                                        sClass = classMap.get(uri); 
     160                                } else { 
    169161                                        sClass = new SClass(uri, null, numOfInstances); 
    170162                                        classMap.put(uri, sClass); 
    171                         } 
    172                                 if( labelLiteral != null ){ 
     163                                } 
     164                                if (labelLiteral != null) { 
    173165                                        String label = labelLiteral.getString(); 
    174166                                        String lang = labelLiteral.getLanguage(); 
    175167                                        sClass.addLabel(new Label(label, lang)); 
    176168                                } 
     169                        } 
    177170                } 
    178171                qexec.close(); 
     
    180173        } 
    181174 
    182  
    183175        /** 
    184          *縲€繧、繝ウ繧ケ繧ソ繝ウ繧ケ繧貞叙蠕励☆繧� 
     176         * 縲€繧、繝ウ繧ケ繧ソ繝ウ繧ケ繧貞叙蠕励☆繧� 
    185177         * <p> 
    186          * 謖�ョ壹&繧後◆graphURIs縺ョ荳ュ縺九i縲√く繝シ繝ッ繝シ繝峨↓繝偵ャ繝医☆繧九Λ繝吶Ν繧呈戟縺、繧、繝ウ繧ケ繧ソ繝ウ繧ケ繧偵☆縺ケ縺ヲ霑斐☆ 
    187          * <br> 
    188          * 縺薙%縺ァ繧、繝ウ繧ケ繧ソ繝ウ繧ケ縺ィ縺ッ縲〉df:type縺ョ荳サ隱槭→縺励※險倩ソー縺輔l縺ヲ縺�k繧ゅ�繧偵>縺� 
    189          * <br> 
     178         * 謖�ョ壹&繧後◆graphURIs縺ョ荳ュ縺九i縲√く繝シ繝ッ繝シ繝峨↓繝偵ャ繝医☆繧九Λ繝吶Ν繧呈戟縺、繧、繝ウ繧ケ繧ソ繝ウ繧ケ繧偵☆縺ケ縺ヲ霑斐☆ <br> 
     179         * 縺薙%縺ァ繧、繝ウ繧ケ繧ソ繝ウ繧ケ縺ィ縺ッ縲〉df:type縺ョ荳サ隱槭→縺励※險倩ソー縺輔l縺ヲ縺�k繧ゅ�繧偵>縺�<br> 
    190180         * </p> 
    191181         *  
    192          * @param graphURIs縲€讀懃エ「蟇セ雎。縺ョgraph縺ョURI驟榊� (null繧�聞縺�縺ョ驟榊�繧ょ庄) 
    193          * @param keyword ��ull繧�ゥコ譁�ュ励�荳榊庄�� 
     182         * @param graphURIs 
     183         *            縲€讀懃エ「蟇セ雎。縺ョgraph縺ョURI驟榊� (null繧�聞縺�縺ョ驟榊�繧ょ庄) 
     184         * @param keyword 
     185         *            ��ull繧�ゥコ譁�ュ励�荳榊庄�� 
    194186         * @return 繧ッ繝ゥ繧ケURI縺ョ驟榊� 
    195187         * @throws Exception 
     
    211203                } 
    212204                queryStr.append("WHERE{\n"); 
    213 //              queryStr.append(" {?c rdf:type rdfs:Class} UNION {?c rdf:type owl:Class}\n"); 
    214  
    215                  
     205                // queryStr.append(" {?c rdf:type rdfs:Class} UNION {?c rdf:type owl:Class}\n"); 
     206 
    216207                queryStr.append("      ?ins rdf:type ?c.\n"); 
    217208                queryStr.append("      ?ins rdfs:label "); 
     
    220211                queryStr.append(" FILTER (?c != rdf:Property)"); 
    221212                queryStr.append("}"); 
    222                                  
    223 // System.out.println(queryStr.toString()); 
    224                  
     213 
     214                // System.out.println(queryStr.toString()); 
     215 
    225216                Query query = QueryFactory.create(queryStr.toString()); 
    226217                QueryExecution qexec = QueryExecutionFactory.sparqlService(endpointURI, 
     
    235226                        String clsURI = cls.getURI(); 
    236227                        String insURI = ins.getURI(); 
    237                         if( instanceMap.containsKey(insURI)){ 
     228                        if (instanceMap.containsKey(insURI)) { 
    238229                                HashSet<String> classes = instanceMap.get(insURI); 
    239230                                classes.add(clsURI); 
    240                         }else{ 
     231                        } else { 
    241232                                HashSet<String> classes = new HashSet<String>(); 
    242233                                instanceMap.put(insURI, classes); 
     
    247238                Set<String> keySet = instanceMap.keySet(); 
    248239                ArrayList<Instance> instanceList = new ArrayList<Instance>(); 
    249                 for(String key: keySet){ 
    250                         Instance ins = new Instance(key, instanceMap.get(key).toArray(new String[0])); 
     240                for (String key : keySet) { 
     241                        Instance ins = new Instance(key, instanceMap.get(key).toArray( 
     242                                        new String[0])); 
    251243                        instanceList.add(ins); 
    252244                } 
     
    254246        } 
    255247 
    256          
    257248        /** 
    258          *縲€謖�ョ壹&繧後◆繧ッ繝ゥ繧ケ繧定オキ轤ケ縺ィ縺励€∵�遉コ逧�↓險倩ソー縺輔l縺ヲ縺�kOWL縺ョproperty蛻カ邏�r隱ソ縺ケ縲√◎縺ョproperty蛻カ邏�〒 
     249         * 縲€謖�ョ壹&繧後◆繧ッ繝ゥ繧ケ繧定オキ轤ケ縺ィ縺励€∵�遉コ逧�↓險倩ソー縺輔l縺ヲ縺�kOWL縺ョproperty蛻カ邏�r隱ソ縺ケ縲√◎縺ョproperty蛻カ邏�〒 
    259250         * 髢「騾」縺・縺代i繧後※縺�k繧ッ繝ゥ繧ケ繧堤カイ鄒�噪縺ォ蜿門セ励☆繧� 
    260251         * <p> 
    261          * 蜃ヲ逅�ッセ雎。繝��繧ソ繧暖raphURIs縺ァ謖�ョ壹☆繧九%縺ィ縺後〒縺阪k 
    262          * <br> 
     252         * 蜃ヲ逅�ッセ雎。繝��繧ソ繧暖raphURIs縺ァ謖�ョ壹☆繧九%縺ィ縺後〒縺阪k <br> 
    263253         * <br> 
    264254         * </p> 
    265255         *  
    266          * @param graphURIs縲€讀懃エ「蟇セ雎。縺ョgraph縺ョURI驟榊� 縲€(null繧�聞縺�縺ョ驟榊�繧ょ庄) 
    267          * @param originClass 襍キ轤ケ縺ィ縺ェ繧九け繝ゥ繧ケ縺ョURI縲€��ull荳榊庄�� 
    268          * @param limit 隗」縺ィ縺励※霑斐&繧後kClassLink驟榊�縺ョ髟キ縺輔�荳企剞蛟、繧呈欠螳壹☆繧九€�荳企剞蛟、繧定ィュ螳壹@縺ェ縺�エ蜷医�0莉・荳九�蛟、繧呈欠螳壹☆繧� 
     256         * @param graphURIs 
     257         *            縲€讀懃エ「蟇セ雎。縺ョgraph縺ョURI驟榊� 縲€(null繧�聞縺�縺ョ驟榊�繧ょ庄) 
     258         * @param originClass 
     259         *            襍キ轤ケ縺ィ縺ェ繧九け繝ゥ繧ケ縺ョURI縲€��ull荳榊庄�� 
     260         * @param limit 
     261         *            隗」縺ィ縺励※霑斐&繧後kClassLink驟榊�縺ョ髟キ縺輔�荳企剞蛟、繧呈欠螳壹☆繧九€�荳企剞蛟、繧定ィュ螳壹@縺ェ縺�エ蜷医�0莉・荳九�蛟、繧呈欠螳壹☆繧� 
    269262         * @return ClassLink縺ョ驟榊�縲ゅ%縺薙↓縺ッ縲∝叙蠕励&繧後◆繧ッ繝ゥ繧ケ縺ィ髢「菫ゅ▼縺代i繧後※縺�k繝励Ο繝代ユ繧」縲�未菫ゅ�蜷代″縺悟性縺セ繧後k縲� 
    270263         * @throws Exception 
     
    279272 
    280273                // SELECT 
    281                 if( countLinks ){ 
    282                                 queryStr.append("SELECT DISTINCT ?p ?pDirection ?c (COUNT(?s) AS ?numOfLinks) \n"); 
    283                 } 
    284                 else{ 
     274                if (countLinks) { 
     275                        queryStr.append("SELECT DISTINCT ?p ?pDirection ?c (COUNT(?s) AS ?numOfLinks) \n"); 
     276                } else { 
    285277                        queryStr.append("SELECT DISTINCT ?p ?pDirection ?c \n"); 
    286278                } 
    287                  
     279 
    288280                if (graphURIs != null) { 
    289281                        for (String graphURI : graphURIs) { 
     
    299291                queryStr.append(">.\n    ?p rdfs:range ?c.\n"); 
    300292 
    301                 if( countLinks ){ 
    302                                 queryStr.append("    ?o ?p ?s."); 
    303                 } 
    304                  
     293                if (countLinks) { 
     294                        queryStr.append("    ?o ?p ?s."); 
     295                } 
     296 
    305297                queryStr.append("}\n  UNION\n"); 
    306298                queryStr.append("  { ?p rdfs:range <"); 
     
    309301                queryStr.append("    ?p rdfs:domain ?c.\n"); 
    310302 
    311                 if( countLinks ){ 
    312                                 queryStr.append("    ?s ?p ?o."); 
    313                 } 
    314                  
     303                if (countLinks) { 
     304                        queryStr.append("    ?s ?p ?o."); 
     305                } 
     306 
    315307                queryStr.append("}\n"); 
    316308 
    317309                queryStr.append("    ?p ?pDirection ?c.\n"); 
    318310 
    319                  
    320311                queryStr.append("  ?s rdf:type ?c.\n"); 
    321312 
    322                 if( countLinks){ 
     313                if (countLinks) { 
    323314                        queryStr.append("  ?o rdf:type <"); 
    324315                        queryStr.append(originClass); 
    325316                        queryStr.append(">.\n"); 
    326317                        queryStr.append("}\nGROUP BY ?p ?pDirection ?c\n"); 
    327                 } 
    328                 else{ 
     318                } else { 
    329319                        queryStr.append("}\n"); 
    330320                } 
     
    334324                        queryStr.append("\n"); 
    335325                } 
    336                  
    337                 System.out.println(queryStr.toString());         
    338          
     326 
     327                System.out.println(queryStr.toString()); 
     328 
    339329                Query query = QueryFactory.create(queryStr.toString()); 
    340330                QueryExecution qexec = QueryExecutionFactory.sparqlService(endpointURI, 
     
    346336                        QuerySolution sol = results.next(); 
    347337                        Resource pro = sol.getResource("p"); 
    348                         Resource cls = sol.getResource("c"); 
    349                         Resource dir = sol.getResource("pDirection"); 
    350                         String proURI = pro.getURI(); 
    351                         String clsURI = cls.getURI(); 
    352                         String dirURI = dir.getURI(); 
    353  
    354 //                      System.out.println(pro.getURI() + " " + cls.getURI() + " " + dir.getURI()); 
    355                          
    356                          
    357                         Direction direction = null; 
    358                         if( dirURI.equals("http://www.w3.org/2000/01/rdf-schema#domain") || dirURI.equals("rdfs:domain")){ 
    359                                 direction = Direction.reverse; 
    360                         } 
    361                         if( dirURI.equals("http://www.w3.org/2000/01/rdf-schema#range") || dirURI.equals("rdfs:range")){ 
    362                                 if( direction != null ){ 
    363                                         direction = Direction.both; 
    364                                 }else{ 
    365                                 direction = Direction.forward; 
     338                        if (pro != null) { 
     339                                Resource cls = sol.getResource("c"); 
     340                                Resource dir = sol.getResource("pDirection"); 
     341                                String proURI = pro.getURI(); 
     342                                String clsURI = cls.getURI(); 
     343                                String dirURI = dir.getURI(); 
     344 
     345                                // System.out.println(pro.getURI() + " " + cls.getURI() + " " + 
     346                                // dir.getURI()); 
     347 
     348                                Direction direction = null; 
     349                                if (dirURI 
     350                                                .equals("http://www.w3.org/2000/01/rdf-schema#domain") 
     351                                                || dirURI.equals("rdfs:domain")) { 
     352                                        direction = Direction.reverse; 
    366353                                } 
    367                         } 
    368 //                      System.out.println(direction); 
    369                         int numOfLinks = sol.getLiteral("numOfLinks").getInt(); 
    370                         ClassLink cl = new ClassLink(proURI, clsURI, direction, numOfLinks); 
    371                         solCLs.add(cl); 
     354                                if (dirURI.equals("http://www.w3.org/2000/01/rdf-schema#range") 
     355                                                || dirURI.equals("rdfs:range")) { 
     356                                        if (direction != null) { 
     357                                                direction = Direction.both; 
     358                                        } else { 
     359                                                direction = Direction.forward; 
     360                                        } 
     361                                } 
     362                                // System.out.println(direction); 
     363                                int numOfLinks = sol.getLiteral("numOfLinks").getInt(); 
     364                                ClassLink cl = new ClassLink(proURI, clsURI, direction, 
     365                                                numOfLinks); 
     366                                solCLs.add(cl); 
     367                        } 
    372368                } 
    373369                qexec.close(); 
    374370                return solCLs.toArray(new ClassLink[0]); 
    375371        } 
    376          
    377          
     372 
    378373        /** 
    379          *縲€謖�ョ壹&繧後◆繧ッ繝ゥ繧ケ繧定オキ轤ケ縺ィ縺励€√◎縺ョ繧ッ繝ゥ繧ケ縺ォ螻槭@縺ヲ縺�k繧、繝ウ繧ケ繧ソ繝ウ繧ケ縺ィ繝ェ繝ウ繧ッ縺悟シオ繧峨l縺ヲ縺�k繧、繝ウ繧ケ繧ソ繝ウ繧ケ縺ョ髮�粋繧貞叙蠕励@縲∝叙蠕励@縺溘う繝ウ繧ケ繧ソ繝ウ繧ケ縺ョ繧ッ繝ゥ繧ケ繧堤カイ鄒�噪縺ォ蜿門セ励☆繧� 
     374         * 縲€謖�ョ壹&繧後◆繧ッ繝ゥ繧ケ繧定オキ轤ケ縺ィ縺励€√◎縺ョ繧ッ繝ゥ繧ケ縺ォ螻槭@縺ヲ縺�k繧、繝ウ繧ケ繧ソ繝ウ繧ケ縺ィ繝ェ繝ウ繧ッ縺悟シオ繧峨l縺ヲ縺�k繧、繝ウ繧ケ繧ソ繝ウ繧ケ縺ョ髮�粋繧貞叙蠕励@縲� 
     375         * 蜿門セ励@縺溘う繝ウ繧ケ繧ソ繝ウ繧ケ縺ョ繧ッ繝ゥ繧ケ繧堤カイ鄒�噪縺ォ蜿門セ励☆繧� 
    380376         * <p> 
    381          * 縺薙%縺ァ繧、繝ウ繧ケ繧ソ繝ウ繧ケ縺ィ縺ッ縲〉df:type縺ョ荳サ隱槭→縺励※險倩ソー縺輔l縺ヲ縺�k繧ゅ�繧偵>縺� 
    382          * <br> 
    383          * 蜃ヲ逅�ッセ雎。繝��繧ソ繧暖raphURIs縺ァ謖�ョ壹☆繧九%縺ィ縺後〒縺阪k 
    384          * <br> 
     377         * 縺薙%縺ァ繧、繝ウ繧ケ繧ソ繝ウ繧ケ縺ィ縺ッ縲〉df:type縺ョ荳サ隱槭→縺励※險倩ソー縺輔l縺ヲ縺�k繧ゅ�繧偵>縺�<br> 
     378         * 蜃ヲ逅�ッセ雎。繝��繧ソ繧暖raphURIs縺ァ謖�ョ壹☆繧九%縺ィ縺後〒縺阪k <br> 
    385379         * </p> 
    386380         *  
    387          * @param graphURIs縲€讀懃エ「蟇セ雎。縺ョgraph縺ョURI驟榊� 縲€(null繧�聞縺�縺ョ驟榊�繧ょ庄) 
    388          * @param originClass 襍キ轤ケ縺ィ縺ェ繧九け繝ゥ繧ケ縺ョURI縲€��ull荳榊庄�� 
    389          * @param limit 隗」縺ィ縺励※霑斐&繧後kClassLink驟榊�縺ョ髟キ縺輔�荳企剞蛟、繧呈欠螳壹☆繧九€�荳企剞蛟、繧定ィュ螳壹@縺ェ縺�エ蜷医�0莉・荳九�蛟、繧呈欠螳壹☆繧� 
     381         * @param graphURIs 
     382         *            縲€讀懃エ「蟇セ雎。縺ョgraph縺ョURI驟榊� 縲€(null繧�聞縺�縺ョ驟榊�繧ょ庄) 
     383         * @param originClass 
     384         *            襍キ轤ケ縺ィ縺ェ繧九け繝ゥ繧ケ縺ョURI縲€��ull荳榊庄�� 
     385         * @param limit 
     386         *            隗」縺ィ縺励※霑斐&繧後kClassLink驟榊�縺ョ髟キ縺輔�荳企剞蛟、繧呈欠螳壹☆繧九€�荳企剞蛟、繧定ィュ螳壹@縺ェ縺�エ蜷医�0莉・荳九�蛟、繧呈欠螳壹☆繧� 
    390387         * @return ClassLink縺ョ驟榊�縲ゅ%縺薙↓縺ッ縲∝叙蠕励&繧後◆繧ッ繝ゥ繧ケ縺ィ髢「菫ゅ▼縺代i繧後※縺�k繝励Ο繝代ユ繧」縲�未菫ゅ�蜷代″縺悟性縺セ繧後k縲� 
    391388         * @throws Exception 
    392389         * @since 28.01.2014 
    393390         */ 
    394         public ClassLink[] getNextClassViaInstanceLink(String[] graphURIs, String originClass, 
    395                         int limit) throws Exception { 
     391        public ClassLink[] getNextClassViaInstanceLink(String[] graphURIs, 
     392                        String originClass, int limit) throws Exception { 
    396393                StringBuffer queryStr = new StringBuffer(); 
    397394                queryStr.append("PREFIX owl: <http://www.w3.org/2002/07/owl#>\n"); 
     
    418415                        queryStr.append("\n"); 
    419416                } 
    420                  
    421 //              System.out.println(queryStr.toString());         
    422          
     417 
     418                // System.out.println(queryStr.toString()); 
     419 
    423420                Query query = QueryFactory.create(queryStr.toString()); 
    424421                QueryExecution qexec = QueryExecutionFactory.sparqlService(endpointURI, 
     
    434431                        Direction direction = null; 
    435432                        String propURI = null; 
    436                         if( proForward != null ){ 
    437                                 if( proReverse != null ){ 
     433                        if (proForward != null) { 
     434                                if (proReverse != null) { 
    438435                                        direction = Direction.both; 
    439                                 }else{ 
     436                                } else { 
    440437                                        direction = Direction.forward; 
    441438                                } 
    442439                                propURI = proForward.getURI(); 
    443                         }else{ 
     440                        } else { 
    444441                                direction = Direction.reverse; 
    445442                                propURI = proReverse.getURI(); 
    446443                        } 
    447444                        String clsURI = cls.getURI(); 
    448 //                      System.out.println(propURI + " " + clsURI + " " + direction); 
    449                          
     445                        // System.out.println(propURI + " " + clsURI + " " + direction); 
     446 
    450447                        ClassLink cl = new ClassLink(propURI, clsURI, direction, 0); 
    451448                        solCLs.add(cl); 
     
    455452        } 
    456453 
    457          
    458          
    459454        public Path[] getPaths(String startClass, String endClass) throws Exception { 
    460455                OWLClassGraph graph = new OWLClassGraph(startClass, endClass); 
     
    466461        } 
    467462 
    468  
    469          
    470          
    471 /* 
    472         private String executeSelect(String sparqlQuery) throws Exception { 
    473                 HttpClient client = HttpClientBuilder.create().build(); 
    474                 HttpPost httppost = new HttpPost(endpointURI); 
    475                 httppost.setHeader("Content-Type", "application/x-www-form-urlencoded"); 
    476                 httppost.setHeader("Accept", "application/sparql-results+xml"); 
    477                 List<NameValuePair> nvpList = new ArrayList<NameValuePair>(); 
    478                 nvpList.add(new BasicNameValuePair("query", sparqlQuery)); 
    479                 // nvpList.add(new BasicNameValuePair("format", 
    480                 // outputFormat.getMime())); 
    481                 httppost.setEntity(new UrlEncodedFormEntity(nvpList, Charset 
    482                                 .forName("UTF-8"))); 
    483                 HttpResponse response = client.execute(httppost); 
    484                 // System.out.println("[StatusLine] " + response.getStatusLine()); 
    485                 HttpEntity entity = response.getEntity(); 
    486                 String entityString = EntityUtils.toString(entity, "UTF-8"); 
    487                 return entityString; 
    488         } 
    489 */ 
    490          
     463        /* 
     464         * private String executeSelect(String sparqlQuery) throws Exception { 
     465         * HttpClient client = HttpClientBuilder.create().build(); HttpPost httppost 
     466         * = new HttpPost(endpointURI); httppost.setHeader("Content-Type", 
     467         * "application/x-www-form-urlencoded"); httppost.setHeader("Accept", 
     468         * "application/sparql-results+xml"); List<NameValuePair> nvpList = new 
     469         * ArrayList<NameValuePair>(); nvpList.add(new BasicNameValuePair("query", 
     470         * sparqlQuery)); // nvpList.add(new BasicNameValuePair("format", // 
     471         * outputFormat.getMime())); httppost.setEntity(new 
     472         * UrlEncodedFormEntity(nvpList, Charset .forName("UTF-8"))); HttpResponse 
     473         * response = client.execute(httppost); // 
     474         * System.out.println("[StatusLine] " + response.getStatusLine()); 
     475         * HttpEntity entity = response.getEntity(); String entityString = 
     476         * EntityUtils.toString(entity, "UTF-8"); return entityString; } 
     477         */ 
     478 
    491479        /** 
    492          *縲€謖�ョ壹&繧後◆繧、繝ウ繧ケ繧ソ繝ウ繧ケ繧定オキ轤ケ縺ィ縺励€√◎縺ョ繧、繝ウ繧ケ繧ソ繝ウ繧ケ縺ォ繝ェ繝ウ繧ッ縺悟シオ繧峨l縺ヲ縺�k繧、繝ウ繧ケ繧ソ繝ウ繧ケ縺ョ髮�粋繧貞叙蠕励☆繧九€� 
    493          *縲€蜿門セ励&繧後◆蜷�う繝ウ繧ケ繧ソ繝ウ繧ケ縺ョ繧ッ繝ゥ繧ケ繧らカイ鄒�噪縺ォ蜿門セ励☆繧� 
     480         * 縲€謖�ョ壹&繧後◆繧、繝ウ繧ケ繧ソ繝ウ繧ケ繧定オキ轤ケ縺ィ縺励€√◎縺ョ繧、繝ウ繧ケ繧ソ繝ウ繧ケ縺ォ繝ェ繝ウ繧ッ縺悟シオ繧峨l縺ヲ縺�k繧、繝ウ繧ケ繧ソ繝ウ繧ケ縺ョ髮�粋繧貞叙蠕励☆繧九€� 
     481         * 縲€蜿門セ励&繧後◆蜷�う繝ウ繧ケ繧ソ繝ウ繧ケ縺ョ繧ッ繝ゥ繧ケ繧らカイ鄒�噪縺ォ蜿門セ励☆繧� 
    494482         * <p> 
    495          * 縺薙%縺ァ繧、繝ウ繧ケ繧ソ繝ウ繧ケ縺ィ縺ッ縲〉df:type縺ョ荳サ隱槭→縺励※險倩ソー縺輔l縺ヲ縺�k繧ゅ�繧偵>縺� 
    496          * <br> 
    497          * 蜃ヲ逅�ッセ雎。繝��繧ソ繧暖raphURIs縺ァ謖�ョ壹☆繧九%縺ィ縺後〒縺阪k 
    498          * <br> 
     483         * 縺薙%縺ァ繧、繝ウ繧ケ繧ソ繝ウ繧ケ縺ィ縺ッ縲〉df:type縺ョ荳サ隱槭→縺励※險倩ソー縺輔l縺ヲ縺�k繧ゅ�繧偵>縺�<br> 
     484         * 蜃ヲ逅�ッセ雎。繝��繧ソ繧暖raphURIs縺ァ謖�ョ壹☆繧九%縺ィ縺後〒縺阪k <br> 
    499485         * </p> 
    500486         *  
    501          * @param graphURIs縲€讀懃エ「蟇セ雎。縺ョgraph縺ョURI驟榊� 縲€(null繧�聞縺�縺ョ驟榊�繧ょ庄) 
    502          * @param originInstance 襍キ轤ケ縺ィ縺ェ繧九う繝ウ繧ケ繧ソ繝ウ繧ケ縺ョURI縲€��ull荳榊庄�� 
    503          * @param limit 隗」縺ィ縺励※霑斐&繧後kInstanceLink驟榊�縺ョ髟キ縺輔�荳企剞蛟、繧呈欠螳壹☆繧九€�荳企剞蛟、繧定ィュ螳壹@縺ェ縺�エ蜷医�0莉・荳九�蛟、繧呈欠螳壹☆繧� 
     487         * @param graphURIs 
     488         *            縲€讀懃エ「蟇セ雎。縺ョgraph縺ョURI驟榊� 縲€(null繧�聞縺�縺ョ驟榊�繧ょ庄) 
     489         * @param originInstance 
     490         *            襍キ轤ケ縺ィ縺ェ繧九う繝ウ繧ケ繧ソ繝ウ繧ケ縺ョURI縲€��ull荳榊庄�� 
     491         * @param limit 
     492         *            隗」縺ィ縺励※霑斐&繧後kInstanceLink驟榊�縺ョ髟キ縺輔�荳企剞蛟、繧呈欠螳壹☆繧九€�荳企剞蛟、繧定ィュ螳壹@縺ェ縺�エ蜷医�0莉・荳九�蛟、繧呈欠螳壹☆繧� 
    504493         * @return InstanceLink縺ョ驟榊�縲ゅ%縺薙↓縺ッ縲∝叙蠕励&繧後◆繧ッ繝ゥ繧ケ縺ィ髢「菫ゅ▼縺代i繧後※縺�k繝励Ο繝代ユ繧」縲�未菫ゅ�蜷代″縺悟性縺セ繧後k縲� 
    505494         * @throws Exception 
    506495         * @since 28.01.2014 
    507496         */ 
    508         public InstanceLink[] getNextInstancesViaInstanceLink(String[] graphURIs, String originInstance, 
    509                         int limit) throws Exception { 
     497        public InstanceLink[] getNextInstancesViaInstanceLink(String[] graphURIs, 
     498                        String originInstance, int limit) throws Exception { 
    510499                StringBuffer queryStr = new StringBuffer(); 
    511500                queryStr.append("PREFIX owl: <http://www.w3.org/2002/07/owl#>\n"); 
     
    521510                } 
    522511                queryStr.append("WHERE{\n"); 
    523 //              queryStr.append("  { ?c rdf:type rdfs:Class. }\n  UNION\n  { ?c rdf:type owl:Class. }\n"); 
     512                // queryStr.append("  { ?c rdf:type rdfs:Class. }\n  UNION\n  { ?c rdf:type owl:Class. }\n"); 
    524513                queryStr.append("  ?ins rdf:type ?c.\n"); 
    525514                queryStr.append("  { ?ins ?pr <"); 
     
    537526                        queryStr.append("\n"); 
    538527                } 
    539                  
    540 //              System.out.println(queryStr.toString());         
    541          
     528 
     529                // System.out.println(queryStr.toString()); 
     530 
    542531                Query query = QueryFactory.create(queryStr.toString()); 
    543532                QueryExecution qexec = QueryExecutionFactory.sparqlService(endpointURI, 
     
    554543                        Direction direction = null; 
    555544                        String propURI = null; 
    556                         if( proForward != null ){ 
    557                                 if( proReverse != null ){ 
     545                        if (proForward != null) { 
     546                                if (proReverse != null) { 
    558547                                        direction = Direction.both; 
    559                                 }else{ 
     548                                } else { 
    560549                                        direction = Direction.forward; 
    561550                                } 
    562551                                propURI = proForward.getURI(); 
    563                         }else{ 
     552                        } else { 
    564553                                direction = Direction.reverse; 
    565554                                propURI = proReverse.getURI(); 
     
    568557                        String insURI = ins.getURI(); 
    569558                        String key = propURI + "\t" + insURI + "\t" + direction; 
    570                         if( insLinkMap.containsKey(key)){ 
     559                        if (insLinkMap.containsKey(key)) { 
    571560                                InstanceLink insLink = insLinkMap.get(key); 
    572561                                insLink.addLinkedClassURI(clsURI); 
    573                         }else{ 
    574                                 InstanceLink insLink = new InstanceLink(propURI, insURI, new String[]{clsURI}, direction); 
     562                        } else { 
     563                                InstanceLink insLink = new InstanceLink(propURI, insURI, 
     564                                                new String[] { clsURI }, direction); 
    575565                                insLinkMap.put(key, insLink); 
    576566                        } 
     
    581571        } 
    582572 
    583          
    584         public LabelMap[] getLabels(String[] graphURIs, String[] resourceURIs, String language) throws Exception{ 
    585                 if( resourceURIs == null || resourceURIs.length == 0 ){ 
     573        public LabelMap[] getLabels(String[] graphURIs, String[] resourceURIs, 
     574                        String language) throws Exception { 
     575                if (resourceURIs == null || resourceURIs.length == 0) { 
    586576                        return new LabelMap[0]; 
    587577                } 
     
    602592                queryStr.append("  FILTER(?res IN ("); 
    603593                boolean f = false; 
    604                 for( String resourceURI: resourceURIs ){ 
    605                         if(f){ 
     594                for (String resourceURI : resourceURIs) { 
     595                        if (f) { 
    606596                                queryStr.append(", "); 
    607597                        } 
     
    613603                queryStr.append("))\n"); 
    614604                queryStr.append("}"); 
    615                  
    616                 System.out.println(queryStr.toString());         
    617          
     605 
     606                System.out.println(queryStr.toString()); 
     607 
    618608                Query query = QueryFactory.create(queryStr.toString()); 
    619609                QueryExecution qexec = QueryExecutionFactory.sparqlService(endpointURI, 
     
    626616                        String uri = sol.getResource("res").getURI(); 
    627617                        Literal literal = sol.getLiteral("label"); 
    628                         if( literal != null ){ 
     618                        if (literal != null) { 
    629619                                String label = literal.getString(); 
    630620                                String lang = literal.getLanguage(); 
    631                                 if( language != null && language.equals(lang)){ 
     621                                if (language != null && language.equals(lang)) { 
    632622                                        Label lbl = new Label(label, lang); 
    633                                         if( lMap.containsKey(uri)){ 
     623                                        if (lMap.containsKey(uri)) { 
    634624                                                LabelMap lm = lMap.get(uri); 
    635625                                                lm.addLabel(lbl); 
    636                                         }else{ 
    637                                                 LabelMap lm = new LabelMap(uri, new Label[]{lbl}); 
     626                                        } else { 
     627                                                LabelMap lm = new LabelMap(uri, new Label[] { lbl }); 
    638628                                                lMap.put(uri, lm); 
    639629                                        } 
     
    643633                return lMap.values().toArray(new LabelMap[0]); 
    644634        } 
    645          
     635 
    646636}