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

差分発生行の前後
無視リスト:
更新日時:
2014/07/03 14:59:43 (10 年 前)
更新者:
nori
ログメッセージ:

新しいクローラデータに対応した構造アナライザー

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

凡例:

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

    r93 r94  
    1414import com.hp.hpl.jena.rdf.model.Literal; 
    1515import com.hp.hpl.jena.rdf.model.Model; 
     16import com.hp.hpl.jena.rdf.model.Property; 
    1617import com.hp.hpl.jena.rdf.model.Resource; 
    1718 
     
    3334         
    3435        public static void main(String[] args) throws Exception{ 
    35                 JenaModelGenerator jmGene = new JenaModelGenerator("c:\\temp\\allie.ttl"); 
     36                JenaModelGenerator jmGene = new JenaModelGenerator("c:\\temp\\dberdf.ttl"); 
    3637                AcquiredStructureAnalyzer impl  
    3738                        = new AcquiredStructureAnalyzer(jmGene.getEndpointURI(), jmGene.getGraphURIs(), jmGene.getModel()); 
     39                System.out.println("--------------------------"); 
    3840                SClass[] scs = impl.getOWLClasses(null, null, null, true); 
     41                System.out.println("list classes:---------------"); 
    3942                for(SClass sc: scs){ 
    4043                        System.out.println(sc.toString()); 
    4144                } 
    42                 ClassLink[] cls = impl.getNextClass(null,"http://purl.org/goodrelations/v1#Offering",100,true ); 
     45                System.out.println("--------------------------"); 
     46                 
     47                ClassLink[] cls = impl.getNextClass(null,"http://purl.org/allie/ontology/201108#EachPair",100,true ); 
    4348                for(ClassLink cl: cls){ 
    4449                        System.out.println(cl.toString()); 
    4550                } 
     51                System.out.println("--------------------------"); 
    4652                 
    4753        } 
     
    7581                queryStr.append("PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>\n"); 
    7682                queryStr.append("SELECT DISTINCT ?c ?pLabel ?numOfInstances\n"); 
    77                 if (targetGraphURIs != null) { 
    78                         for (String graphURI : targetGraphURIs) { 
    79                                 queryStr.append("FROM <"); 
    80                                 queryStr.append(graphURI); 
    81                                 queryStr.append(">\n"); 
    82                         } 
    83                 } 
     83//              if (targetGraphURIs != null) { 
     84//                      for (String graphURI : targetGraphURIs) { 
     85//                              queryStr.append("FROM <"); 
     86//                              queryStr.append(graphURI); 
     87//                              queryStr.append(">\n"); 
     88//                      } 
     89//              } 
    8490                queryStr.append("WHERE{\n"); 
    85  
    86                 // 
    8791                queryStr.append(" ?c rdf:type rdfs:Class. \n"); 
    8892                queryStr.append(" ?c <http://sparqlbuilder.org/numberOfInstances> ?numOfInstances. \n"); 
     
    96100                        queryStr.append("\') && \n ("); 
    97101 
    98                         // (LANG(?keywords) = 'en') && 
    99  
    100102                        for (int i = 0; i < keywords.length; i++) { 
    101103                                if (i > 0) 
     
    119121                ResultSet results = null; 
    120122                try { 
    121                         long start = System.currentTimeMillis(); 
     123//                      long start = System.currentTimeMillis(); 
    122124                        qexec = QueryExecutionFactory.create(query, model); 
    123125                        results = qexec.execSelect(); 
    124                         long end = System.currentTimeMillis(); 
    125                         System.out.println("EXEC TIME: " + (end - start)); 
     126//                      long end = System.currentTimeMillis(); 
     127//                      System.out.println("EXEC TIME: " + (end - start)); 
    126128                } catch (Exception ex) { 
    127129                        ex.printStackTrace(); 
     
    133135                        QuerySolution sol = results.next(); 
    134136                        Resource res = sol.getResource("c"); 
    135                         if (res != null) { 
     137                        if (res != null && res.getURI() != null) { 
    136138                                String uri = res.getURI(); 
    137139                                int numOfInstances = 0; 
     
    156158                qexec.close(); 
    157159                return classMap.values().toArray(new SClass[0]); 
    158  
    159160        } 
    160161 
     
    174175 
    175176                // SELECT 
    176                 queryStr.append("SELECT DISTINCT ?c ?d ?p ?numInsStart ?numInsEnd ?numTriples \n"); 
    177  
    178                 if (targetGraphURIs != null) { 
    179                         for (String graphURI : targetGraphURIs) { 
    180                                 queryStr.append("FROM <"); 
    181                                 queryStr.append(graphURI); 
    182                                 queryStr.append(">\n"); 
    183                         } 
    184                 } 
     177                queryStr.append("SELECT DISTINCT ?indPropCat ?c ?d ?p ?numLnkInsStart ?numLnkInsEnd ?numInsDom ?numInsRan ?numTriples ?isStartClsLim ?isEndClsLim\n"); 
     178 
     179//              if (targetGraphURIs != null) { 
     180//                      for (String graphURI : targetGraphURIs) { 
     181//                              queryStr.append("FROM <"); 
     182//                              queryStr.append(graphURI); 
     183//                              queryStr.append(">\n"); 
     184//                      } 
     185//              } 
    185186 
    186187                queryStr.append("WHERE{\n"); 
    187188                queryStr.append(" ?cr rdf:type <http://sparqlbuilder.org/ClassRelation>. \n"); 
    188                 queryStr.append(" <" + originClass + "> <http://sparqlbuilder.org/numberOfInstances> ?numInsStart. \n"); 
     189//              queryStr.append(" <" + originClass + "> <http://sparqlbuilder.org/numberOfInstances> ?numInsStart. \n"); 
    189190                queryStr.append(" {"); 
    190191                queryStr.append(" ?cr <http://sparqlbuilder.org/startClass> <" + originClass + ">. \n"); 
     
    192193                queryStr.append(" ?cr <http://sparqlbuilder.org/property> ?p. \n"); 
    193194                queryStr.append(" ?cr <http://sparqlbuilder.org/numberOfTriples> ?numTriples. \n"); 
    194                 queryStr.append(" ?c <http://sparqlbuilder.org/numberOfInstances> ?numInsEnd. \n"); 
     195                queryStr.append(" ?cr <http://sparqlbuilder.org/numberOfInstancesOfStartClass> ?numLnkInsStart. \n"); 
     196                queryStr.append(" ?cr <http://sparqlbuilder.org/numberOfInstancesOfEndClass> ?numLnkInsEnd. \n"); 
     197                queryStr.append(" ?cr <http://sparqlbuilder.org/startClassLimitedQ> ?isStartClsLim. \n"); 
     198                queryStr.append(" ?cr <http://sparqlbuilder.org/endClassLimitedQ> ?isEndClsLim. \n"); 
    195199                queryStr.append("}\n"); 
    196200                queryStr.append(" UNION\n"); 
     
    200204                queryStr.append(" ?cr <http://sparqlbuilder.org/property> ?p. \n"); 
    201205                queryStr.append(" ?cr <http://sparqlbuilder.org/numberOfTriples> ?numTriples.\n"); 
    202                 queryStr.append(" ?d <http://sparqlbuilder.org/numberOfInstances> ?numInsEnd. \n"); 
     206                queryStr.append(" ?cr <http://sparqlbuilder.org/numberOfInstancesOfStartClass> ?numLnkInsEnd. \n"); 
     207                queryStr.append(" ?cr <http://sparqlbuilder.org/numberOfInstancesOfEndClass> ?numLnkInsStart. \n"); 
     208                queryStr.append(" ?cr <http://sparqlbuilder.org/startClassLimitedQ> ?isEndClsLim. \n"); 
     209                queryStr.append(" ?cr <http://sparqlbuilder.org/endClassLimitedQ> ?isStartClsLim. \n"); 
    203210                queryStr.append("}\n"); 
     211                 
     212                queryStr.append(" ?pp rdf:type <http://sparqlbuilder.org/PropertyProfile>. \n"); 
     213                queryStr.append(" ?pp <http://sparqlbuilder.org/property> ?p. \n"); 
     214                queryStr.append(" ?pp <http://sparqlbuilder.org/individualPropertyCategory> ?indPropCat. \n"); 
     215                queryStr.append(" ?pp <http://sparqlbuilder.org/numberOfInstancesOfDomainClass> ?numInsDom. \n"); 
     216                queryStr.append(" ?pp <http://sparqlbuilder.org/numberOfInstancesOfRangeClass> ?numInsRan \n"); 
     217         
     218 
    204219                queryStr.append("}\n"); 
    205220                 
     
    212227 
    213228//              System.out.println("getNextClasses SPARQL Query: "); 
    214 //              System.out.println(queryStr.toString()); 
     229                System.out.println(queryStr.toString()); 
    215230 
    216231                Query query = QueryFactory.create(queryStr.toString()); 
     
    234249                        String clsURI = null; 
    235250                        if (pro != null) { 
     251                                int indPropCat = 4; 
     252                                Literal indPropCatLit = sol.getLiteral("indPropCat"); 
     253                                if( indPropCatLit != null ){ 
     254                                        indPropCat = indPropCatLit.getInt(); 
     255                                } 
     256                                if( indPropCat < 4 ) { 
    236257                                String proURI = pro.getURI(); 
    237258                                Resource ccls = sol.getResource("c"); 
     
    248269                                        } 
    249270                                } 
     271                                 
     272                                 
    250273                                int numTriples = 0; 
    251274                                Literal numTriplesLit = sol.getLiteral("numTriples"); 
     
    253276                                        numTriples = numTriplesLit.getInt(); 
    254277                                } 
    255                                 int numInsStart = 0; 
    256                                 Literal numInsStartLit = sol.getLiteral("numInsStart"); 
     278 
     279                                int numLnkInsStart = 0; 
     280                                Literal numInsStartLit = sol.getLiteral("numLnkInsStart"); 
    257281                                if( numInsStartLit != null ){ 
    258                                         numInsStart = numInsStartLit.getInt(); 
    259                                 } 
    260                                 int numInsEnd = 0; 
    261                                 Literal numInsEndLit = sol.getLiteral("numInsEnd"); 
     282                                        numLnkInsStart = numInsStartLit.getInt(); 
     283                                } 
     284                                int numLnkInsEnd = 0; 
     285                                Literal numInsEndLit = sol.getLiteral("numLnkInsEnd"); 
    262286                                if( numInsEndLit != null ){ 
    263                                         numInsEnd = numInsEndLit.getInt(); 
    264                                 } 
     287                                        numLnkInsEnd = numInsEndLit.getInt(); 
     288                                } 
     289 
     290                                int numInsDom = 0; 
     291                                Literal numInsDomLit = sol.getLiteral("numInsDom"); 
     292                                if( numInsDomLit != null ){ 
     293                                        numInsDom = numInsDomLit.getInt(); 
     294                                } 
     295                                int numInsRan = 0; 
     296                                Literal numInsRanLit = sol.getLiteral("numInsRan"); 
     297                                if( numInsRanLit != null ){ 
     298                                        numInsRan = numInsRanLit.getInt(); 
     299                                } 
     300 
     301                                boolean isStartClsLim = false; 
     302                                Literal isStartClsLimLit = sol.getLiteral("isStartClsLim"); 
     303                                if( isStartClsLimLit != null ){ 
     304                                        isStartClsLim = isStartClsLimLit.getBoolean(); 
     305                                } 
     306                                boolean isEndClsLim = false; 
     307                                Literal isEndClsLimLit = sol.getLiteral("isEndClsLim"); 
     308                                if( isEndClsLimLit != null ){ 
     309                                        isEndClsLim = isEndClsLimLit.getBoolean(); 
     310                                } 
     311                                 
    265312                                ClassLink cl = new ClassLink(proURI, clsURI, direction, 
    266                                                 numTriples, 0, 0, numInsEnd, numInsStart); 
     313                                                numTriples, numInsDom, numInsRan,  numLnkInsStart, numLnkInsEnd, isStartClsLim, isEndClsLim); 
    267314                                solCLs.add(cl); 
    268                         } 
    269                 } 
    270                 qexec.close(); 
     315 
     316                                } 
     317                        } 
     318                } 
     319                qexec.close();   
    271320                return solCLs.toArray(new ClassLink[0]); 
    272321        } 
     
    347396                return lMap.values().toArray(new LabelMap[0]); 
    348397        } 
     398 
    349399/* 
    350  public ClassLink[] countLinks(String[] graphURIs, String startClassURI, 
    351                         ClassLink[] classLinks) throws Exception; 
    352  
     400        public ClassLink[] countLinks(String[] graphURIs, String startClassURI, ClassLink[] classLinks) throws Exception; 
    353401        public SClass[] countInstances(String[] graphURIs, SClass[] classes) throws Exception; 
    354402         
    355  
    356403*/ 
     404 
    357405} 
  • BH13SPARQLBuilder/src/org/biohackathon/SPARQLBuilder/OWL/ClassLink.java

    r76 r94  
    2020        private int numOfOriginClassInstances = 0; 
    2121        private int numOfLinkedClassInstances = 0; 
     22        private boolean domainClassLimitedQ = false; 
     23        private boolean rangeClassLimitedQ = false; 
     24         
    2225         
    2326        /** 
     
    3336        public ClassLink(String propertyURI, String linkedClassURI, Direction direction,  
    3437                                int numLinks, int numOfOriginInstances, int numOfLinkedInstances, 
    35                                 int numOfOriginClassInstances, int numofLinkedClassInstances){ 
     38                                int numOfOriginClassInstances, int numofLinkedClassInstances, 
     39                                boolean domainClassLimitedQ, boolean rangeClassLimitedQ){ 
    3640                this.propertyURI = propertyURI; 
    3741                this.linkedClassURI = linkedClassURI; 
     
    4246                this.numOfOriginClassInstances = numOfOriginClassInstances; 
    4347                this.numOfLinkedClassInstances = numofLinkedClassInstances; 
     48                this.domainClassLimitedQ = domainClassLimitedQ; 
     49                this.rangeClassLimitedQ = rangeClassLimitedQ; 
    4450        } 
    4551         
     
    122128                sb.append(linkedClassURI); 
    123129                sb.append(" ["); 
     130                sb.append(numOfOriginClassInstances); 
     131                sb.append("/"); 
    124132                sb.append(numOfOriginInstances); 
    125                 sb.append("/"); 
    126                 sb.append(numOfOriginClassInstances); 
    127133                sb.append("]縲€---"); 
    128134 
     
    133139 
    134140                sb.append(" ["); 
     141                sb.append(numOfLinkedClassInstances); 
     142                sb.append("/"); 
    135143                sb.append(numOfLinkedInstances); 
    136                 sb.append("/"); 
    137                 sb.append(numOfLinkedClassInstances); 
    138144                sb.append("]"); 
    139145                return sb.toString(); 
     
    168174 
    169175 
     176         
     177         
     178        public final boolean isDomainClassLimitedQ() { 
     179                return domainClassLimitedQ; 
     180        } 
     181 
     182 
     183        public final boolean isRangeClassLimitedQ() { 
     184                return rangeClassLimitedQ; 
     185        } 
     186 
     187 
    170188        public final int getNumOfOriginInstances() { 
    171189                return numOfOriginInstances; 
  • BH13SPARQLBuilder/src/org/biohackathon/SPARQLBuilder/OWL/Label.java

    r19 r94  
    5656                } 
    5757                sb.append("\""); 
    58                 if (language != null) { 
     58                if (language != null && !language.equals("")) { 
    5959                        sb.append("@"); 
    6060                        sb.append(language);