annotate src/main/java/de/mpiwg/itgroup/annotationManager/RDFHandling/RDFSearcher.java @ 30:b37487b756ac

still working on new annotations...
author casties
date Wed, 09 May 2012 11:26:54 +0200
parents a3e324009990
children e5f5848892a2
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
dwinter
parents:
diff changeset
1 package de.mpiwg.itgroup.annotationManager.RDFHandling;
dwinter
parents:
diff changeset
2
dwinter
parents:
diff changeset
3 import java.util.ArrayList;
dwinter
parents:
diff changeset
4 import java.util.List;
dwinter
parents:
diff changeset
5
dwinter
parents:
diff changeset
6 import org.apache.log4j.Logger;
dwinter
parents:
diff changeset
7 import org.openrdf.query.BindingSet;
dwinter
parents:
diff changeset
8 import org.openrdf.query.TupleQueryResult;
dwinter
parents:
diff changeset
9
dwinter
parents:
diff changeset
10 import de.mpiwg.itgroup.annotationManager.Errors.TripleStoreSearchError;
5
0be9d53a6967 editor for annotations
dwinter
parents: 2
diff changeset
11 import de.mpiwg.itgroup.triplestoremanager.exceptions.TripleStoreHandlerException;
0be9d53a6967 editor for annotations
dwinter
parents: 2
diff changeset
12 import de.mpiwg.itgroup.triplestoremanager.owl.TripleStoreHandler;
0
dwinter
parents:
diff changeset
13
dwinter
parents:
diff changeset
14 public class RDFSearcher {
dwinter
parents:
diff changeset
15
17
b0ef5c860464 updating and deleting annotations works now!
casties
parents: 16
diff changeset
16 private String context;
0
dwinter
parents:
diff changeset
17
17
b0ef5c860464 updating and deleting annotations works now!
casties
parents: 16
diff changeset
18 private Logger logger = Logger.getRootLogger();
0
dwinter
parents:
diff changeset
19
17
b0ef5c860464 updating and deleting annotations works now!
casties
parents: 16
diff changeset
20 public RDFSearcher(String context) {
b0ef5c860464 updating and deleting annotations works now!
casties
parents: 16
diff changeset
21 this.context = context;
b0ef5c860464 updating and deleting annotations works now!
casties
parents: 16
diff changeset
22 }
16
667d98fd28bd working on search and update.
casties
parents: 7
diff changeset
23
17
b0ef5c860464 updating and deleting annotations works now!
casties
parents: 16
diff changeset
24 /**
30
b37487b756ac still working on new annotations...
casties
parents: 23
diff changeset
25 * Retrieves Annotations by ID.
17
b0ef5c860464 updating and deleting annotations works now!
casties
parents: 16
diff changeset
26 *
b0ef5c860464 updating and deleting annotations works now!
casties
parents: 16
diff changeset
27 * @param id
30
b37487b756ac still working on new annotations...
casties
parents: 23
diff changeset
28 * id of the Annotation
17
b0ef5c860464 updating and deleting annotations works now!
casties
parents: 16
diff changeset
29 * @return
b0ef5c860464 updating and deleting annotations works now!
casties
parents: 16
diff changeset
30 * @throws TripleStoreHandlerException
b0ef5c860464 updating and deleting annotations works now!
casties
parents: 16
diff changeset
31 * @throws TripleStoreSearchError
b0ef5c860464 updating and deleting annotations works now!
casties
parents: 16
diff changeset
32 */
b0ef5c860464 updating and deleting annotations works now!
casties
parents: 16
diff changeset
33 public List<Annotation> searchById(String id) throws TripleStoreHandlerException, TripleStoreSearchError {
b0ef5c860464 updating and deleting annotations works now!
casties
parents: 16
diff changeset
34 if (id == null) {
b0ef5c860464 updating and deleting annotations works now!
casties
parents: 16
diff changeset
35 return null;
b0ef5c860464 updating and deleting annotations works now!
casties
parents: 16
diff changeset
36 }
b0ef5c860464 updating and deleting annotations works now!
casties
parents: 16
diff changeset
37 List<Annotation> retAnnots = new ArrayList<Annotation>();
b0ef5c860464 updating and deleting annotations works now!
casties
parents: 16
diff changeset
38 TripleStoreHandler th = TripleStoreConnection.newTripleStoreHandler();
b0ef5c860464 updating and deleting annotations works now!
casties
parents: 16
diff changeset
39 String queryString = "";
b0ef5c860464 updating and deleting annotations works now!
casties
parents: 16
diff changeset
40 // query for tuples with id as subject
b0ef5c860464 updating and deleting annotations works now!
casties
parents: 16
diff changeset
41 StringBuilder whereString = new StringBuilder(String.format("<%s> ?p <http://www.w3.org/2000/10/annotationType#Comment>.", id));
b0ef5c860464 updating and deleting annotations works now!
casties
parents: 16
diff changeset
42 whereString.append(String.format("<%s> <http://ontologies.mpiwg-berlin.mpg.de/annotations/annotatesDocuviewerText> ?uri.", id));
b0ef5c860464 updating and deleting annotations works now!
casties
parents: 16
diff changeset
43 whereString.append(String.format("<%s> <http://ontologies.mpiwg-berlin.mpg.de/annotations/textSelection> ?xpointer.", id));
b0ef5c860464 updating and deleting annotations works now!
casties
parents: 16
diff changeset
44 whereString.append(String.format("<%s> <http://www.w3.org/2000/10/annotation-ns#body> ?annotText.", id));
b0ef5c860464 updating and deleting annotations works now!
casties
parents: 16
diff changeset
45 whereString.append(String.format("<%s> <http://www.w3.org/2000/10/annotation-ns#author> ?author.", id));
b0ef5c860464 updating and deleting annotations works now!
casties
parents: 16
diff changeset
46 whereString.append(String.format("<%s> <http://www.w3.org/2000/10/annotation-ns#created> ?created.", id));
b0ef5c860464 updating and deleting annotations works now!
casties
parents: 16
diff changeset
47 whereString.append(" OPTIONAL {?annotText <http://ontologies.mpiwg-berlin.mpg.de/annotations/containsText> ?text.}");
16
667d98fd28bd working on search and update.
casties
parents: 7
diff changeset
48
30
b37487b756ac still working on new annotations...
casties
parents: 23
diff changeset
49 /* StringBuilder whereString = new StringBuilder(String.format("<%s> ?p <http://www.w3.org/2000/10/annotationType#Comment>.", id));
b37487b756ac still working on new annotations...
casties
parents: 23
diff changeset
50 whereString.append(String.format("<%s> <http://ontologies.mpiwg-berlin.mpg.de/annotations/annotatesDocuviewerText> ?uri.", id));
b37487b756ac still working on new annotations...
casties
parents: 23
diff changeset
51 whereString.append(String.format("<%s> <http://ontologies.mpiwg-berlin.mpg.de/annotations/textSelection> ?xpointer.", id));
b37487b756ac still working on new annotations...
casties
parents: 23
diff changeset
52 whereString.append(String.format("<%s> <http://www.w3.org/2000/10/annotation-ns#body> ?annotText.", id));
b37487b756ac still working on new annotations...
casties
parents: 23
diff changeset
53 whereString.append(String.format("<%s> <http://www.w3.org/2000/10/annotation-ns#author> ?author.", id));
b37487b756ac still working on new annotations...
casties
parents: 23
diff changeset
54 whereString.append(String.format("<%s> <http://www.w3.org/2000/10/annotation-ns#created> ?created.", id));
b37487b756ac still working on new annotations...
casties
parents: 23
diff changeset
55 whereString.append(" OPTIONAL {?annotText <http://ontologies.mpiwg-berlin.mpg.de/annotations/containsText> ?text.}"); */
b37487b756ac still working on new annotations...
casties
parents: 23
diff changeset
56
17
b0ef5c860464 updating and deleting annotations works now!
casties
parents: 16
diff changeset
57 queryString = String.format("select distinct * where {%s}", whereString);
16
667d98fd28bd working on search and update.
casties
parents: 7
diff changeset
58
17
b0ef5c860464 updating and deleting annotations works now!
casties
parents: 16
diff changeset
59 logger.debug("RDFSearcher:" + queryString);
16
667d98fd28bd working on search and update.
casties
parents: 7
diff changeset
60
17
b0ef5c860464 updating and deleting annotations works now!
casties
parents: 16
diff changeset
61 try {
b0ef5c860464 updating and deleting annotations works now!
casties
parents: 16
diff changeset
62 TupleQueryResult results = th.querySPARQL(queryString);
b0ef5c860464 updating and deleting annotations works now!
casties
parents: 16
diff changeset
63 while (results.hasNext()) {
b0ef5c860464 updating and deleting annotations works now!
casties
parents: 16
diff changeset
64 BindingSet result = results.next();
b0ef5c860464 updating and deleting annotations works now!
casties
parents: 16
diff changeset
65 String annotUri = result.getBinding("uri").getValue().stringValue();
b0ef5c860464 updating and deleting annotations works now!
casties
parents: 16
diff changeset
66 String annotUser = result.getBinding("author").getValue().stringValue();
b0ef5c860464 updating and deleting annotations works now!
casties
parents: 16
diff changeset
67 String textString = "";
b0ef5c860464 updating and deleting annotations works now!
casties
parents: 16
diff changeset
68 if (result.getBinding("text") != null) {
b0ef5c860464 updating and deleting annotations works now!
casties
parents: 16
diff changeset
69 textString = result.getBinding("text").getValue().stringValue();
b0ef5c860464 updating and deleting annotations works now!
casties
parents: 16
diff changeset
70 }
b0ef5c860464 updating and deleting annotations works now!
casties
parents: 16
diff changeset
71
b0ef5c860464 updating and deleting annotations works now!
casties
parents: 16
diff changeset
72 String xpointer = result.getBinding("xpointer").getValue().stringValue();
b0ef5c860464 updating and deleting annotations works now!
casties
parents: 16
diff changeset
73 String created = result
b0ef5c860464 updating and deleting annotations works now!
casties
parents: 16
diff changeset
74 .getBinding("created").getValue().stringValue();
b0ef5c860464 updating and deleting annotations works now!
casties
parents: 16
diff changeset
75 Annotation annot = new Annotation(xpointer, annotUser, created, textString, null, annotUri, id);
b0ef5c860464 updating and deleting annotations works now!
casties
parents: 16
diff changeset
76 retAnnots.add(annot);
b0ef5c860464 updating and deleting annotations works now!
casties
parents: 16
diff changeset
77 }
b0ef5c860464 updating and deleting annotations works now!
casties
parents: 16
diff changeset
78 } catch (Exception e) {
b0ef5c860464 updating and deleting annotations works now!
casties
parents: 16
diff changeset
79 e.printStackTrace();
b0ef5c860464 updating and deleting annotations works now!
casties
parents: 16
diff changeset
80 throw new TripleStoreSearchError();
b0ef5c860464 updating and deleting annotations works now!
casties
parents: 16
diff changeset
81 }
b0ef5c860464 updating and deleting annotations works now!
casties
parents: 16
diff changeset
82 // TODO Auto-generated method stub
b0ef5c860464 updating and deleting annotations works now!
casties
parents: 16
diff changeset
83 return retAnnots;
b0ef5c860464 updating and deleting annotations works now!
casties
parents: 16
diff changeset
84 }
16
667d98fd28bd working on search and update.
casties
parents: 7
diff changeset
85
17
b0ef5c860464 updating and deleting annotations works now!
casties
parents: 16
diff changeset
86 /**
b0ef5c860464 updating and deleting annotations works now!
casties
parents: 16
diff changeset
87 * Sucht im Triplestore nach Annotationen
b0ef5c860464 updating and deleting annotations works now!
casties
parents: 16
diff changeset
88 *
b0ef5c860464 updating and deleting annotations works now!
casties
parents: 16
diff changeset
89 * @param uri
b0ef5c860464 updating and deleting annotations works now!
casties
parents: 16
diff changeset
90 * Adresse der Annotierten Ressource, in der Regel nicht mit dem xpointer, sonder die URI der kompletten Ressource
b0ef5c860464 updating and deleting annotations works now!
casties
parents: 16
diff changeset
91 * oder NULL oder leer
b0ef5c860464 updating and deleting annotations works now!
casties
parents: 16
diff changeset
92 * @param user
b0ef5c860464 updating and deleting annotations works now!
casties
parents: 16
diff changeset
93 * Author der Annotationen, entweder als uri der Person oder ein Username, je nachdem wie die Annotatinen angelegt
b0ef5c860464 updating and deleting annotations works now!
casties
parents: 16
diff changeset
94 * wurden.
b0ef5c860464 updating and deleting annotations works now!
casties
parents: 16
diff changeset
95 * @param limit
b0ef5c860464 updating and deleting annotations works now!
casties
parents: 16
diff changeset
96 * @param offset
b0ef5c860464 updating and deleting annotations works now!
casties
parents: 16
diff changeset
97 * @return
b0ef5c860464 updating and deleting annotations works now!
casties
parents: 16
diff changeset
98 * @throws TripleStoreHandlerException
b0ef5c860464 updating and deleting annotations works now!
casties
parents: 16
diff changeset
99 * @throws TripleStoreSearchError
b0ef5c860464 updating and deleting annotations works now!
casties
parents: 16
diff changeset
100 */
b0ef5c860464 updating and deleting annotations works now!
casties
parents: 16
diff changeset
101 public List<Annotation> searchByUriUser(String uri, String user, String limit, String offset)
b0ef5c860464 updating and deleting annotations works now!
casties
parents: 16
diff changeset
102 throws TripleStoreHandlerException, TripleStoreSearchError {
b0ef5c860464 updating and deleting annotations works now!
casties
parents: 16
diff changeset
103
b0ef5c860464 updating and deleting annotations works now!
casties
parents: 16
diff changeset
104 List<Annotation> retAnnots = new ArrayList<Annotation>();
b0ef5c860464 updating and deleting annotations works now!
casties
parents: 16
diff changeset
105 TripleStoreHandler th = TripleStoreConnection.newTripleStoreHandler();
b0ef5c860464 updating and deleting annotations works now!
casties
parents: 16
diff changeset
106 String queryString = "";
b0ef5c860464 updating and deleting annotations works now!
casties
parents: 16
diff changeset
107
b0ef5c860464 updating and deleting annotations works now!
casties
parents: 16
diff changeset
108 String whereString = "?s ?p <http://www.w3.org/2000/10/annotationType#Comment>.";
b0ef5c860464 updating and deleting annotations works now!
casties
parents: 16
diff changeset
109 // whereString +="?s <http://ontologies.mpiwg-berlin.mpg.de/annotations/docuviewerText> ?link.";
b0ef5c860464 updating and deleting annotations works now!
casties
parents: 16
diff changeset
110
b0ef5c860464 updating and deleting annotations works now!
casties
parents: 16
diff changeset
111 if (uri != null && !uri.equals("")) {
b0ef5c860464 updating and deleting annotations works now!
casties
parents: 16
diff changeset
112 whereString += String.format("?s <http://ontologies.mpiwg-berlin.mpg.de/annotations/annotatesDocuviewerText> <%s>.",
b0ef5c860464 updating and deleting annotations works now!
casties
parents: 16
diff changeset
113 uri);
b0ef5c860464 updating and deleting annotations works now!
casties
parents: 16
diff changeset
114 } else {
b0ef5c860464 updating and deleting annotations works now!
casties
parents: 16
diff changeset
115 whereString += String.format("?s <http://ontologies.mpiwg-berlin.mpg.de/annotations/annotatesDocuviewerText> ?uri.");
b0ef5c860464 updating and deleting annotations works now!
casties
parents: 16
diff changeset
116 }
b0ef5c860464 updating and deleting annotations works now!
casties
parents: 16
diff changeset
117 whereString += String.format("?s <http://ontologies.mpiwg-berlin.mpg.de/annotations/textSelection> ?xpointer.");
b0ef5c860464 updating and deleting annotations works now!
casties
parents: 16
diff changeset
118 whereString += String.format("?s <http://www.w3.org/2000/10/annotation-ns#body> ?annotText.");
b0ef5c860464 updating and deleting annotations works now!
casties
parents: 16
diff changeset
119
b0ef5c860464 updating and deleting annotations works now!
casties
parents: 16
diff changeset
120 if (user != null && !user.equals("")) {
b0ef5c860464 updating and deleting annotations works now!
casties
parents: 16
diff changeset
121 if (user.startsWith("http")) {
b0ef5c860464 updating and deleting annotations works now!
casties
parents: 16
diff changeset
122 whereString += String.format("?s <http://www.w3.org/2000/10/annotation-ns#author> <%s>.", user);
b0ef5c860464 updating and deleting annotations works now!
casties
parents: 16
diff changeset
123 } else {
b0ef5c860464 updating and deleting annotations works now!
casties
parents: 16
diff changeset
124 whereString += String.format("?s <http://www.w3.org/2000/10/annotation-ns#author> \"%s\".", user);
b0ef5c860464 updating and deleting annotations works now!
casties
parents: 16
diff changeset
125 }
b0ef5c860464 updating and deleting annotations works now!
casties
parents: 16
diff changeset
126 } else {
b0ef5c860464 updating and deleting annotations works now!
casties
parents: 16
diff changeset
127 whereString += String.format("?s <http://www.w3.org/2000/10/annotation-ns#author> ?author.");
16
667d98fd28bd working on search and update.
casties
parents: 7
diff changeset
128 }
667d98fd28bd working on search and update.
casties
parents: 7
diff changeset
129
17
b0ef5c860464 updating and deleting annotations works now!
casties
parents: 16
diff changeset
130 whereString += String.format("?s <http://www.w3.org/2000/10/annotation-ns#created> ?created.");
b0ef5c860464 updating and deleting annotations works now!
casties
parents: 16
diff changeset
131
b0ef5c860464 updating and deleting annotations works now!
casties
parents: 16
diff changeset
132 whereString += String
b0ef5c860464 updating and deleting annotations works now!
casties
parents: 16
diff changeset
133 .format(" OPTIONAL {?annotText <http://ontologies.mpiwg-berlin.mpg.de/annotations/containsText> ?text.}");
b0ef5c860464 updating and deleting annotations works now!
casties
parents: 16
diff changeset
134
b0ef5c860464 updating and deleting annotations works now!
casties
parents: 16
diff changeset
135 queryString = String.format("select distinct * where {%s}", whereString);
b0ef5c860464 updating and deleting annotations works now!
casties
parents: 16
diff changeset
136
b0ef5c860464 updating and deleting annotations works now!
casties
parents: 16
diff changeset
137 logger.debug("RDFSearcher:" + queryString);
0
dwinter
parents:
diff changeset
138
17
b0ef5c860464 updating and deleting annotations works now!
casties
parents: 16
diff changeset
139 try {
b0ef5c860464 updating and deleting annotations works now!
casties
parents: 16
diff changeset
140 TupleQueryResult results = th.querySPARQL(queryString);
b0ef5c860464 updating and deleting annotations works now!
casties
parents: 16
diff changeset
141
b0ef5c860464 updating and deleting annotations works now!
casties
parents: 16
diff changeset
142 while (results.hasNext()) {
b0ef5c860464 updating and deleting annotations works now!
casties
parents: 16
diff changeset
143 BindingSet result = results.next();
b0ef5c860464 updating and deleting annotations works now!
casties
parents: 16
diff changeset
144 String annotUri;
b0ef5c860464 updating and deleting annotations works now!
casties
parents: 16
diff changeset
145 if (uri != null && !uri.equals("")) {
b0ef5c860464 updating and deleting annotations works now!
casties
parents: 16
diff changeset
146 annotUri = uri;
b0ef5c860464 updating and deleting annotations works now!
casties
parents: 16
diff changeset
147 } else {
b0ef5c860464 updating and deleting annotations works now!
casties
parents: 16
diff changeset
148 annotUri = result.getBinding("uri").getValue().stringValue();
16
667d98fd28bd working on search and update.
casties
parents: 7
diff changeset
149 }
0
dwinter
parents:
diff changeset
150
17
b0ef5c860464 updating and deleting annotations works now!
casties
parents: 16
diff changeset
151 String annotUser;
b0ef5c860464 updating and deleting annotations works now!
casties
parents: 16
diff changeset
152 if (user != null && !user.equals("")) {
b0ef5c860464 updating and deleting annotations works now!
casties
parents: 16
diff changeset
153 annotUser = user;
b0ef5c860464 updating and deleting annotations works now!
casties
parents: 16
diff changeset
154 } else {
b0ef5c860464 updating and deleting annotations works now!
casties
parents: 16
diff changeset
155 annotUser = result.getBinding("author").getValue().stringValue();
b0ef5c860464 updating and deleting annotations works now!
casties
parents: 16
diff changeset
156 }
0
dwinter
parents:
diff changeset
157
17
b0ef5c860464 updating and deleting annotations works now!
casties
parents: 16
diff changeset
158 String textString = "";
b0ef5c860464 updating and deleting annotations works now!
casties
parents: 16
diff changeset
159 if (result.getBinding("text") != null) {
b0ef5c860464 updating and deleting annotations works now!
casties
parents: 16
diff changeset
160 textString = result.getBinding("text").getValue().stringValue();
b0ef5c860464 updating and deleting annotations works now!
casties
parents: 16
diff changeset
161 }
b0ef5c860464 updating and deleting annotations works now!
casties
parents: 16
diff changeset
162 Annotation annot = new Annotation(result.getBinding("xpointer").getValue().stringValue(), annotUser, result
b0ef5c860464 updating and deleting annotations works now!
casties
parents: 16
diff changeset
163 .getBinding("created").getValue().stringValue(), textString, null, annotUri, result.getBinding("s")
b0ef5c860464 updating and deleting annotations works now!
casties
parents: 16
diff changeset
164 .getValue().stringValue());
b0ef5c860464 updating and deleting annotations works now!
casties
parents: 16
diff changeset
165 retAnnots.add(annot);
b0ef5c860464 updating and deleting annotations works now!
casties
parents: 16
diff changeset
166 }
b0ef5c860464 updating and deleting annotations works now!
casties
parents: 16
diff changeset
167 } catch (Exception e) {
b0ef5c860464 updating and deleting annotations works now!
casties
parents: 16
diff changeset
168 e.printStackTrace();
b0ef5c860464 updating and deleting annotations works now!
casties
parents: 16
diff changeset
169 throw new TripleStoreSearchError();
b0ef5c860464 updating and deleting annotations works now!
casties
parents: 16
diff changeset
170 }
b0ef5c860464 updating and deleting annotations works now!
casties
parents: 16
diff changeset
171 // TODO Auto-generated method stub
b0ef5c860464 updating and deleting annotations works now!
casties
parents: 16
diff changeset
172 return retAnnots;
b0ef5c860464 updating and deleting annotations works now!
casties
parents: 16
diff changeset
173 }
0
dwinter
parents:
diff changeset
174
17
b0ef5c860464 updating and deleting annotations works now!
casties
parents: 16
diff changeset
175 public void deleteById(String id) throws TripleStoreHandlerException, TripleStoreSearchError {
b0ef5c860464 updating and deleting annotations works now!
casties
parents: 16
diff changeset
176 if (id == null) {
b0ef5c860464 updating and deleting annotations works now!
casties
parents: 16
diff changeset
177 return;
b0ef5c860464 updating and deleting annotations works now!
casties
parents: 16
diff changeset
178 }
b0ef5c860464 updating and deleting annotations works now!
casties
parents: 16
diff changeset
179 TripleStoreHandler th = TripleStoreConnection.newTripleStoreHandler();
b0ef5c860464 updating and deleting annotations works now!
casties
parents: 16
diff changeset
180 // delete triples with id as subject
b0ef5c860464 updating and deleting annotations works now!
casties
parents: 16
diff changeset
181 /* wish Virtuoso would speak SparQL1.1...
b0ef5c860464 updating and deleting annotations works now!
casties
parents: 16
diff changeset
182 String queryString = String.format("WITH <%s> DELETE { <%s> ?p ?o } WHERE { <%s> ?p ?o }", context, id, id);
b0ef5c860464 updating and deleting annotations works now!
casties
parents: 16
diff changeset
183 */
b0ef5c860464 updating and deleting annotations works now!
casties
parents: 16
diff changeset
184 String queryString = String.format("DELETE FROM <%s> { <%s> ?p ?o } WHERE { <%s> ?p ?o }", context, id, id);
0
dwinter
parents:
diff changeset
185
17
b0ef5c860464 updating and deleting annotations works now!
casties
parents: 16
diff changeset
186 logger.debug("RDFSearcher:" + queryString);
b0ef5c860464 updating and deleting annotations works now!
casties
parents: 16
diff changeset
187
b0ef5c860464 updating and deleting annotations works now!
casties
parents: 16
diff changeset
188 try {
b0ef5c860464 updating and deleting annotations works now!
casties
parents: 16
diff changeset
189 th.querySPARQL(queryString);
b0ef5c860464 updating and deleting annotations works now!
casties
parents: 16
diff changeset
190 } catch (Exception e) {
b0ef5c860464 updating and deleting annotations works now!
casties
parents: 16
diff changeset
191 e.printStackTrace();
b0ef5c860464 updating and deleting annotations works now!
casties
parents: 16
diff changeset
192 throw new TripleStoreSearchError();
b0ef5c860464 updating and deleting annotations works now!
casties
parents: 16
diff changeset
193 }
b0ef5c860464 updating and deleting annotations works now!
casties
parents: 16
diff changeset
194 }
0
dwinter
parents:
diff changeset
195 }