チェンジセット 42 : BH13SPARQLBuilder

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

wrap: getNextClass and countLinks

パス:
BH13SPARQLBuilder
ファイル:
18 追加
2 変更

凡例:

変更なし
追加
削除
  • BH13SPARQLBuilder/.classpath

    r2 r42  
    1717                </attributes> 
    1818        </classpathentry> 
     19        <classpathentry kind="lib" path="lib2/agraph-4.5.jar"/> 
    1920        <classpathentry kind="output" path="target/classes"/> 
    2021</classpath> 
  • BH13SPARQLBuilder/src/org/biohackathon/SPARQLBuilder/OWL/OWLQueryBuilderImpl.java

    r36 r42  
    6161 
    6262                OWLQueryBuilder builder = new OWLQueryBuilderImpl(sparqlEndpoint); 
     63 
     64/* 
    6365                SClass[] clz = builder.getOWLClasses(graphURIs, keyword, false); 
    6466                for (SClass cls : clz) { 
     
    6971                        System.out.println(cls); 
    7072                } 
    71  
     73*/ 
    7274                System.out.println("CLS"); 
    7375 
    74                 ClassLink[] cls = builder.getNextClass(null, clz[0].getClassURI(), 100, 
    75                                 false); 
     76                String uri = "http://purl.jp/bio/10/lsd/ontology/201209#EnglishEntry"; 
     77                 
     78                ClassLink[] cls = builder.getNextClass(null, uri, 100, false); 
     79 
    7680                if (cls != null) { 
    7781                        for (ClassLink cl : cls) { 
    7882                                System.out.println(cl.toString()); 
    7983                        } 
    80                         cls = builder.countLinks(null, clz[0].getClassURI(), cls); 
     84                        cls = builder.countLinks(null, uri, cls); 
    8185                        for (ClassLink cl : cls) { 
    8286                                System.out.println(cl.toString()); 
    8387                        } 
    8488                } 
    85  
     89/* 
    8690                System.out.println("CLS-INS"); 
    8791                cls = builder.getNextClassViaInstanceLink(null, clz[0].getClassURI(), 
     
    100104                        } 
    101105                } 
    102  
     106*/ 
    103107                /* 
    104108                 * System.out.println("INS-INS"); ins = builder.getInstances(null, 
     
    112116        } 
    113117 
     118         
     119         
     120         
    114121        /** 
    115122         * 譏守、コ逧�↓RDF縺ァ譖ク縺九l縺ヲ縺�k繧ッ繝ゥ繧ケ繧貞叙蠕励☆繧� 
     
    146153                queryStr.append("WHERE{\n"); 
    147154 
     155                //  
    148156                queryStr.append(" {?c rdf:type rdfs:Class} UNION {?c rdf:type owl:Class}\n"); 
    149157//              queryStr.append("  ?i rdf:type ?c.\n"); 
     
    303311        public ClassLink[] getNextClass(String[] graphURIs, String originClass, 
    304312                        int limit, boolean countLinks) throws Exception { 
    305                 StringBuffer queryStr = new StringBuffer(); 
     313                ClassLink[] cLinks = getNextClassSub(graphURIs, originClass, limit, false); 
     314                if( countLinks ){ 
     315                        cLinks = countLinks(graphURIs, originClass, cLinks); 
     316                } 
     317                return cLinks; 
     318        } 
     319 
     320        private ClassLink[] getNextClassSub(String[] graphURIs, String originClass,  
     321                        int limit, boolean countLinks) throws Exception { 
     322                                StringBuffer queryStr = new StringBuffer(); 
    306323                queryStr.append("PREFIX owl: <http://www.w3.org/2002/07/owl#>\n"); 
    307324                queryStr.append("PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>\n"); 
     
    714731                                queryStr.append(classLink.getLinkedClassURI()); 
    715732                                queryStr.append(">.\n"); 
    716                                 queryStr.append("?is ?p ?os.\n"); 
     733                                queryStr.append("?is <"); 
     734                                queryStr.append(classLink.getPropertyURI()); 
     735                                queryStr.append("> ?os.\n"); 
    717736                                queryStr.append("}"); 
    718737                        } else { 
     
    724743                                        queryStr.append(classLink.getLinkedClassURI()); 
    725744                                        queryStr.append(">.\n"); 
    726                                         queryStr.append("?is ?p ?os.\n"); 
     745                                        queryStr.append("?is <"); 
     746                                        queryStr.append(classLink.getPropertyURI()); 
     747                                        queryStr.append("> ?os.\n"); 
    727748                                        queryStr.append("}"); 
    728749                                } else { 
     
    733754                                        queryStr.append(classLink.getLinkedClassURI()); 
    734755                                        queryStr.append(">.\n"); 
    735                                         queryStr.append("{?is ?p ?os.}\n"); 
     756                                        queryStr.append("{?is <"); 
     757                                        queryStr.append(classLink.getPropertyURI()); 
     758                                        queryStr.append("> ?os.}\n"); 
    736759                                        queryStr.append("UNION\n"); 
    737                                         queryStr.append("{?os ?p ?is.}\n"); 
     760                                        queryStr.append("{?os <"); 
     761                                        queryStr.append(classLink.getPropertyURI()); 
     762                                        queryStr.append("> ?is.}\n"); 
    738763                                        queryStr.append("}"); 
    739764                                }