root/SPARQLBuilderWWW/src/java/org/biohackathon/SPARQLBuilder/OWL/ClassLink.java @ 227

リビジョン 221, 9.7 KB (コミッタ: atsuko, 10 年 前)

パス探索アルゴリズムを大幅変更

  • 属性 svn:mime-type の設定値 text/plain
行番号 
1package org.biohackathon.SPARQLBuilder.OWL;
2
3import org.json.JSONException;
4import org.json.JSONObject;
5
6/**
7 * 繧ッ繝ゥ繧ケ縺ク縲√≠繧九>縺ッ繧ッ繝ゥ繧ケ縺九i縺ョ1繧ケ繝�ャ繝励Μ繝ウ繧ッ繧定ィ倩ソー縺吶k
8 * @author Norio KOBAYASHI
9 * @since 28.01.2014
10 * @version 29.01.2014
11 */
12public class ClassLink {
13
14        private String propertyURI = null;
15        private String linkedClassURI = null;
16        private String linkedLiteralDatatypeURI = null;
17        private Direction direction = null;
18        private int numOfLinks = 0;
19        private int numOfLinkedInstances = 0;
20        private int numOfOriginInstances = 0;
21        private int numOfOriginClassInstances = 0;
22        private int numOfLinkedClassInstances = 0;
23        private boolean domainClassLimitedQ = false;
24        private boolean rangeClassLimitedQ = false;
25       
26       
27        /**
28         * 繝励Ο繝代ユ繧」URI縲√Μ繝ウ繧ッ蜈茨シ亥��峨け繝ゥ繧ケ縲√Μ繝ウ繧ッ縺ョ蜷代″繧剃ク弱∴繧区ァ区�蟄�
29         *
30         * @param propertyURI縲€繝励Ο繝代ユ繧」縺ョURI
31         * @param linkedClassURI縲€繝ェ繝ウ繧ッ縺ョ荳サ隱槭€√€√≠繧九>縺ッ繝ェ繝ウ繧ッ縺ョ逶ョ逧�ェ槭→縺ェ縺」縺ヲ縺�k繧ッ繝ゥ繧ケ縺ョURI
32         * @param direction 繝励Ο繝代ユ繧」縺ョ蜷代″縲〕inkedClassURI縺ョ繧ッ繝ゥ繧ケ縺後Μ繝ウ繧ッ蜈医↓縺ェ縺」縺ヲ縺�k縺ィ縺阪�Direction.forward,繝ェ繝ウ繧ッ蜈�↓縺ェ縺」縺ヲ縺�k縺ィ縺阪�Direction.reverse, 縺昴l繧我ク。譁ケ縺ョ譎ゅ�Direction.both繧呈欠螳壹☆繧�
33         * @param numOfLinks 蠖楢ゥイ繝励Ο繝代ユ繧」縺ァ荳。遶ッ繧ッ繝ゥ繧ケ縺ョ繧、繝ウ繧ケ繧ソ繝ウ繧ケ蜷悟」ォ繧偵▽縺ェ縺�〒縺�k繝ェ繝ウ繧ッ謨ー�医ヨ繝ェ繝励Ν謨ー��
34         * @throws Exception
35         * @since 28.01.2014
36         */
37        public ClassLink(String propertyURI, String linkedClassURI, String linkedLiteralDatatypeURI, Direction direction,
38                                int numLinks, int numOfOriginInstances, int numOfLinkedInstances,
39                                int numOfOriginClassInstances, int numofLinkedClassInstances,
40                                boolean domainClassLimitedQ, boolean rangeClassLimitedQ){
41                this.propertyURI = propertyURI;
42                this.linkedClassURI = linkedClassURI;
43                this.linkedLiteralDatatypeURI = linkedLiteralDatatypeURI;
44                this.direction = direction;
45                this.numOfLinks = numLinks;
46                this.numOfLinkedInstances = numOfLinkedInstances;
47                this.numOfOriginInstances = numOfOriginInstances;
48                this.numOfOriginClassInstances = numOfOriginClassInstances;
49                this.numOfLinkedClassInstances = numofLinkedClassInstances;
50                this.domainClassLimitedQ = domainClassLimitedQ;
51                this.rangeClassLimitedQ = rangeClassLimitedQ;
52        }
53       
54       
55        public JSONObject toJSON() throws JSONException{
56                JSONObject obj = new JSONObject();
57                if( propertyURI != null ) {
58                        obj.put("propertyURI", propertyURI);
59                }
60                if( linkedClassURI != null ){
61                        obj.put("linkedClassURI", linkedClassURI);
62                }
63                if( linkedLiteralDatatypeURI != null ){
64                        obj.put("linkedLiteralDatatypeURI", linkedLiteralDatatypeURI);
65                }
66                if( direction != null ){
67                        obj.put("direction", direction);
68                }
69                //obj.put("numOfLinks", numOfLinks);
70                //obj.put("numOfLinkedInstances", numOfLinkedInstances);
71                //obj.put("numOfOriginInstances", numOfOriginInstances);
72                //obj.put("numOfOriginClassInstances", numOfOriginClassInstances);
73                //obj.put("numOfLinkedClassInstances", numOfLinkedClassInstances);
74                return obj;
75        }
76        // add direction and other variations   
77        public String toJSONString2() {
78                String json_str ="{";
79               
80                if( propertyURI != null ) {
81                        json_str+="\"propertyURI\":"+"\""+propertyURI+"\",";
82                }
83                else{
84                        json_str+="\"propertyURI\":"+"\"propertyURI\",";                       
85                }
86                if( linkedClassURI != null ){
87                        json_str+="\"linkedClassURI\":"+"\""+linkedClassURI+"\",";
88                }
89                else{
90                        json_str+="\"linkedClassURI\":"+"\"linkedClassURI\",";                 
91                }
92                if( linkedLiteralDatatypeURI != null ){
93                        json_str+="\"linkedLiteralDatatypeURI\":"+"\""+linkedLiteralDatatypeURI+"\",";
94                }
95                else{
96                        json_str+="\"linkedLiteralDatatypeURI\":"+"\"linkedLiteralDatatypeURI\",";                     
97                }
98               if( direction != null ){
99                        json_str+="\"direction\":"+"\""+direction.toString()+"\"";
100                }
101                else{
102                        json_str+="\"direction\":"+"\"direction\"";                     
103                }
104               
105        //      json_str+="\"numOfLinks\":"+"\""+numOfLinks+"\",";
106        //      json_str+="\"numOfLinkedInstances\":"+"\""+numOfLinkedInstances+"\",";
107        //      json_str+="\"numOfOriginInstances\":"+"\""+numOfOriginInstances+"\",";
108        //      json_str+="\"numOfOriginClassInstances\":"+"\""+numOfOriginClassInstances+"\",";
109        //      json_str+="\"numOfLinkedClassInstances\":"+"\""+numOfLinkedClassInstances+"\"";
110               
111                json_str+="}";
112
113                return json_str;
114        }
115
116        public String toJSONString3(SClass[] classes) {
117                String json_str ="{";
118               
119                if( propertyURI != null ) {
120                        //json_str+="\"propertyURI\":"+"\""+propertyURI+"\",";
121                    json_str+="\"predicate\":"+"\""+propertyURI+"\",";
122                }
123                else{
124                        json_str+="\"predicate\":"+"\"propertyURI\",";                 
125                }
126                if( linkedClassURI != null ){
127                        //json_str+="\"linkedClassURI\":"+"\""+linkedClassURI+"\",";
128                    json_str+="\"linkedClass\":"+"\""+linkedClassURI+"\",";
129                }
130                else{
131                        //json_str+="\"linkedClassURI\":"+"\"linkedClassURI\",";       
132                    json_str+="\"linkedClass\":"+"\""+linkedClassURI+"\",";
133                }
134                if( linkedLiteralDatatypeURI != null ){
135                        json_str+="\"linkedLiteralDatatypeURI\":"+"\""+linkedLiteralDatatypeURI+"\",";
136                }
137                else{
138                        json_str+="\"linkedLiteralDatatypeURI\":"+"\"linkedLiteralDatatypeURI\",";                     
139                }
140                if( direction != null ){
141                        json_str+="\"direction\":"+"\""+direction.toString()+"\",";
142                }
143                else{
144                        json_str+="\"direction\":"+"\"direction\",";                   
145                }
146                if ( linkedClassURI != null ){
147                    String label = getLinkedClassLabel(classes);
148                    json_str+="\"label\":"+"\""+label+"\"";
149                }else if ( linkedLiteralDatatypeURI != null ){
150                    String url[] = linkedLiteralDatatypeURI.split("/");
151                    String tmplabel = url[url.length-1];
152                    String[] tmplabel2 = tmplabel.split("#");
153                    String label = tmplabel2[tmplabel2.length-1];
154                    json_str+="\"label\":"+"\""+label+"\"";                   
155                }else{
156                    json_str+="\"label\":"+"\""+"\"No Label\""+"\"";               
157                }
158        //      json_str+="\"numOfLinks\":"+"\""+numOfLinks+"\",";
159        //      json_str+="\"numOfLinkedInstances\":"+"\""+numOfLinkedInstances+"\",";
160        //      json_str+="\"numOfOriginInstances\":"+"\""+numOfOriginInstances+"\",";
161        //      json_str+="\"numOfOriginClassInstances\":"+"\""+numOfOriginClassInstances+"\",";
162        //      json_str+="\"numOfLinkedClassInstances\":"+"\""+numOfLinkedClassInstances+"\"";
163               
164                json_str+="}";
165
166                return json_str;
167        }
168       
169        public int getNumOfLinks() {
170                return numOfLinks;
171        }
172
173
174
175
176        public void setNumOfLinks(int numOfLinks) {
177                this.numOfLinks = numOfLinks;
178        }
179
180
181
182
183        /**
184         * 譁�ュ怜�陦ィ險倥r蜿門セ励☆繧�
185         *
186         * @since 28.01.2014
187         */
188        public String toString(){
189                StringBuffer sb = new StringBuffer();
190                sb.append(propertyURI);
191                if( direction == Direction.forward ){
192                        sb.append(" --> ");
193                }else{
194                        if( direction == Direction.reverse ){
195                        sb.append(" <-- ");
196                        }else{
197                                sb.append(" <-> ");
198                        }
199                }
200                sb.append(linkedClassURI);
201                sb.append(" [");
202                sb.append(numOfOriginClassInstances);
203                sb.append("/");
204                sb.append(numOfOriginInstances);
205                sb.append("]縲€---");
206
207               
208                sb.append(" [");
209                sb.append(numOfLinks);
210                sb.append("] --->");
211
212                sb.append(" [");
213                sb.append(numOfLinkedClassInstances);
214                sb.append("/");
215                sb.append(numOfLinkedInstances);
216                sb.append("]");
217                return sb.toString();
218        }
219       
220        public String getPropertyURI() {
221                return propertyURI;
222        }
223        public void setPropertyURI(String propertyURI) {
224                this.propertyURI = propertyURI;
225        }
226        public String getLinkedClassURI() {
227                return linkedClassURI;
228        }
229        public void setLinkedClassURI(String linkedClassURI) {
230                this.linkedClassURI = linkedClassURI;
231        }
232        public Direction getDirection() {
233                return direction;
234        }
235        public void setDirection(Direction direction) {
236                this.direction = direction;
237        }
238
239        public final int getNumOfLinkedInstances() {
240                return numOfLinkedInstances;
241        }
242
243        public final void setNumOfLinkedInstances(int numOfLinkedInstances) {
244                this.numOfLinkedInstances = numOfLinkedInstances;
245        }
246
247
248       
249       
250        public final boolean isDomainClassLimitedQ() {
251                return domainClassLimitedQ;
252        }
253
254
255        public final boolean isRangeClassLimitedQ() {
256                return rangeClassLimitedQ;
257        }
258
259
260        public final int getNumOfOriginInstances() {
261                return numOfOriginInstances;
262        }
263
264
265        public final void setNumOfOriginInstances(int numOfOriginInstances) {
266                this.numOfOriginInstances = numOfOriginInstances;
267        }
268
269
270        public final int getNumOfOriginClassInstances() {
271                return numOfOriginClassInstances;
272        }
273
274
275        public final void setNumOfOriginClassInstances(int numOfOriginClassInstances) {
276                this.numOfOriginClassInstances = numOfOriginClassInstances;
277        }
278
279
280        public final int getNumOfLinkedClassInstances() {
281                return numOfLinkedClassInstances;
282        }
283
284
285        public final void setNumOfLinkedClassInstances(int numOfLinkedClassInstances) {
286                this.numOfLinkedClassInstances = numOfLinkedClassInstances;
287        }
288
289
290        public final String getLinkedLiteralDatatypeURI() {
291                return linkedLiteralDatatypeURI;
292        }
293
294
295        public final void setLinkedLiteralDatatypeURI(String linkedLiteralDatatypeURI) {
296                this.linkedLiteralDatatypeURI = linkedLiteralDatatypeURI;
297        }
298
299
300        public final void setDomainClassLimitedQ(boolean domainClassLimitedQ) {
301                this.domainClassLimitedQ = domainClassLimitedQ;
302        }
303
304
305        public final void setRangeClassLimitedQ(boolean rangeClassLimitedQ) {
306                this.rangeClassLimitedQ = rangeClassLimitedQ;
307        }
308               
309        private String getLinkedClassLabel(SClass[] classes){
310            return QueryPathGenerator.getClassLabelfromList(linkedClassURI, classes);
311        }
312       
313        // private String[] propertyDomainClassURIs = null;
314        // private String[] propertyRangeClassURIs = null;
315       
316       
317       
318}
Note: リポジトリブラウザについてのヘルプは TracBrowser を参照してください。