annotate src/de/mpiwg/itgroup/triplestoremanager/owl/MetaDataHandler.java @ 2:221a0fd0a5d3

minor
author dwinter
date Tue, 13 Dec 2011 17:45:30 +0100
parents 47075a8171a6
children 6c8dac2c5214
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
47075a8171a6 initial
dwinter
parents:
diff changeset
1 package de.mpiwg.itgroup.triplestoremanager.owl;
47075a8171a6 initial
dwinter
parents:
diff changeset
2
47075a8171a6 initial
dwinter
parents:
diff changeset
3 import java.io.File;
47075a8171a6 initial
dwinter
parents:
diff changeset
4 import java.net.URI;
47075a8171a6 initial
dwinter
parents:
diff changeset
5 import java.net.URISyntaxException;
47075a8171a6 initial
dwinter
parents:
diff changeset
6 import java.util.ArrayList;
47075a8171a6 initial
dwinter
parents:
diff changeset
7 import java.util.Collection;
47075a8171a6 initial
dwinter
parents:
diff changeset
8 import java.util.Iterator;
47075a8171a6 initial
dwinter
parents:
diff changeset
9 import java.util.List;
47075a8171a6 initial
dwinter
parents:
diff changeset
10 import java.util.Map;
47075a8171a6 initial
dwinter
parents:
diff changeset
11 import java.util.Set;
47075a8171a6 initial
dwinter
parents:
diff changeset
12
47075a8171a6 initial
dwinter
parents:
diff changeset
13 import org.apache.log4j.Logger;
47075a8171a6 initial
dwinter
parents:
diff changeset
14 import org.openrdf.repository.RepositoryException;
47075a8171a6 initial
dwinter
parents:
diff changeset
15
47075a8171a6 initial
dwinter
parents:
diff changeset
16 import de.mpiwg.itgroup.triplestoremanager.exceptions.TripleStoreHandlerException;
47075a8171a6 initial
dwinter
parents:
diff changeset
17 import edu.stanford.smi.protege.exception.OntologyLoadException;
47075a8171a6 initial
dwinter
parents:
diff changeset
18 import edu.stanford.smi.protegex.owl.ProtegeOWL;
47075a8171a6 initial
dwinter
parents:
diff changeset
19 import edu.stanford.smi.protegex.owl.jena.JenaOWLModel;
47075a8171a6 initial
dwinter
parents:
diff changeset
20 import edu.stanford.smi.protegex.owl.model.OWLIndividual;
47075a8171a6 initial
dwinter
parents:
diff changeset
21 import edu.stanford.smi.protegex.owl.model.OWLNamedClass;
47075a8171a6 initial
dwinter
parents:
diff changeset
22 import edu.stanford.smi.protegex.owl.model.RDFProperty;
47075a8171a6 initial
dwinter
parents:
diff changeset
23 import edu.stanford.smi.protegex.owl.model.RDFSNamedClass;
47075a8171a6 initial
dwinter
parents:
diff changeset
24 import edu.stanford.smi.protegex.owl.model.impl.DefaultOWLNamedClass;
47075a8171a6 initial
dwinter
parents:
diff changeset
25 import edu.stanford.smi.protegex.owl.model.impl.DefaultRDFSNamedClass;
47075a8171a6 initial
dwinter
parents:
diff changeset
26 import edu.stanford.smi.protegex.owl.repository.RepositoryManager;
47075a8171a6 initial
dwinter
parents:
diff changeset
27 import edu.stanford.smi.protegex.owl.repository.impl.LocalFolderRepository;
47075a8171a6 initial
dwinter
parents:
diff changeset
28
47075a8171a6 initial
dwinter
parents:
diff changeset
29 public class MetaDataHandler {
47075a8171a6 initial
dwinter
parents:
diff changeset
30
47075a8171a6 initial
dwinter
parents:
diff changeset
31 String ontologieUriString = "file:///Users/dwinter/Documents/Projekte/ECHO-eSciDoc-MPDL/escidocMPIWG/NamedIdentityManager/ontologies/namedIdentities.owl";
47075a8171a6 initial
dwinter
parents:
diff changeset
32 //String rdfUriString = "file:///Users/dwinter/Documents/Projekte/ECHO-eSciDoc-MPDL/escidocMPIWG/NamedIdentityManager/ontologies/rdf-schema";
47075a8171a6 initial
dwinter
parents:
diff changeset
33 String owlFolder = "/Users/dwinter/Documents/Projekte/ECHO-eSciDoc-MPDL/escidocMPIWG/NamedIdentityManager/ontologies";
47075a8171a6 initial
dwinter
parents:
diff changeset
34
47075a8171a6 initial
dwinter
parents:
diff changeset
35 static MetaDataHandler instance=null;
47075a8171a6 initial
dwinter
parents:
diff changeset
36
47075a8171a6 initial
dwinter
parents:
diff changeset
37 private JenaOWLModel owlModel;
47075a8171a6 initial
dwinter
parents:
diff changeset
38
47075a8171a6 initial
dwinter
parents:
diff changeset
39 public JenaOWLModel getOwlModel() {
47075a8171a6 initial
dwinter
parents:
diff changeset
40 return owlModel;
47075a8171a6 initial
dwinter
parents:
diff changeset
41 }
47075a8171a6 initial
dwinter
parents:
diff changeset
42
47075a8171a6 initial
dwinter
parents:
diff changeset
43 private Logger logger = Logger.getRootLogger();
47075a8171a6 initial
dwinter
parents:
diff changeset
44
47075a8171a6 initial
dwinter
parents:
diff changeset
45 public MetaDataHandler() {
47075a8171a6 initial
dwinter
parents:
diff changeset
46 try {
47075a8171a6 initial
dwinter
parents:
diff changeset
47 URI ontologieUri = new URI(ontologieUriString);
47075a8171a6 initial
dwinter
parents:
diff changeset
48 loadOWL(owlFolder, ontologieUri);
47075a8171a6 initial
dwinter
parents:
diff changeset
49 } catch (URISyntaxException e) {
47075a8171a6 initial
dwinter
parents:
diff changeset
50 // TODO Auto-generated catch block
47075a8171a6 initial
dwinter
parents:
diff changeset
51 e.printStackTrace();
47075a8171a6 initial
dwinter
parents:
diff changeset
52 return;
47075a8171a6 initial
dwinter
parents:
diff changeset
53 } catch (OntologyLoadException e) {
47075a8171a6 initial
dwinter
parents:
diff changeset
54 // TODO Auto-generated catch block
47075a8171a6 initial
dwinter
parents:
diff changeset
55 e.printStackTrace();
47075a8171a6 initial
dwinter
parents:
diff changeset
56 }
47075a8171a6 initial
dwinter
parents:
diff changeset
57 logger.info("initialized handler");
47075a8171a6 initial
dwinter
parents:
diff changeset
58
47075a8171a6 initial
dwinter
parents:
diff changeset
59 }
47075a8171a6 initial
dwinter
parents:
diff changeset
60
47075a8171a6 initial
dwinter
parents:
diff changeset
61 // public JenaOWLModel createMyJenaOWLModelFromURI(String uri) throws OntologyLoadException {
47075a8171a6 initial
dwinter
parents:
diff changeset
62 // //Collection errors = new ArrayList();
47075a8171a6 initial
dwinter
parents:
diff changeset
63 // OwlProjectFromUriCreator creator = new OwlProjectFromUriCreator();
47075a8171a6 initial
dwinter
parents:
diff changeset
64 // creator.setLang(FileUtils.
47075a8171a6 initial
dwinter
parents:
diff changeset
65 // creator.setOntologyUri(uri);
47075a8171a6 initial
dwinter
parents:
diff changeset
66 // //creator.create(errors);
47075a8171a6 initial
dwinter
parents:
diff changeset
67 // JenaOWLModel owlModel = creator.getOwlModel();
47075a8171a6 initial
dwinter
parents:
diff changeset
68 // //handleErrors(errors);
47075a8171a6 initial
dwinter
parents:
diff changeset
69 // return owlModel;
47075a8171a6 initial
dwinter
parents:
diff changeset
70 // }
47075a8171a6 initial
dwinter
parents:
diff changeset
71
47075a8171a6 initial
dwinter
parents:
diff changeset
72 public void loadOWL(String folder, URI uri) throws OntologyLoadException {
47075a8171a6 initial
dwinter
parents:
diff changeset
73 //owlModel = ProtegeOWL.createJenaOWLModel();
47075a8171a6 initial
dwinter
parents:
diff changeset
74
47075a8171a6 initial
dwinter
parents:
diff changeset
75 owlModel = ProtegeOWL.createJenaOWLModelFromURI(ontologieUriString);
47075a8171a6 initial
dwinter
parents:
diff changeset
76
47075a8171a6 initial
dwinter
parents:
diff changeset
77 //ProfilesManager.setProfile(owlModel, OWLProfiles.RDFSClass_but_not_OWLClass_Type.getURI());
47075a8171a6 initial
dwinter
parents:
diff changeset
78 // Load repository
47075a8171a6 initial
dwinter
parents:
diff changeset
79 RepositoryManager rman = owlModel.getRepositoryManager();
47075a8171a6 initial
dwinter
parents:
diff changeset
80
47075a8171a6 initial
dwinter
parents:
diff changeset
81 // Add working directory to repository manager.
47075a8171a6 initial
dwinter
parents:
diff changeset
82 File workingDirectory = new File(folder);
47075a8171a6 initial
dwinter
parents:
diff changeset
83 rman.addGlobalRepository(new LocalFolderRepository(workingDirectory));
47075a8171a6 initial
dwinter
parents:
diff changeset
84
47075a8171a6 initial
dwinter
parents:
diff changeset
85 LocalFolderRepository localRepository = new LocalFolderRepository(new File("/tmp"));
47075a8171a6 initial
dwinter
parents:
diff changeset
86 rman.addProjectRepository(localRepository);
47075a8171a6 initial
dwinter
parents:
diff changeset
87
47075a8171a6 initial
dwinter
parents:
diff changeset
88
47075a8171a6 initial
dwinter
parents:
diff changeset
89
47075a8171a6 initial
dwinter
parents:
diff changeset
90
47075a8171a6 initial
dwinter
parents:
diff changeset
91 // Load ontology
47075a8171a6 initial
dwinter
parents:
diff changeset
92
47075a8171a6 initial
dwinter
parents:
diff changeset
93 //((JenaOWLModel) owlModel).load(uri, "OWL-FULL");
47075a8171a6 initial
dwinter
parents:
diff changeset
94 }
47075a8171a6 initial
dwinter
parents:
diff changeset
95
47075a8171a6 initial
dwinter
parents:
diff changeset
96 /**
47075a8171a6 initial
dwinter
parents:
diff changeset
97 * Gibt alle Properties der Klasse zurueck, d.h. auch diejenigen die inferiert werden.
47075a8171a6 initial
dwinter
parents:
diff changeset
98 * @param string
47075a8171a6 initial
dwinter
parents:
diff changeset
99 * @return
47075a8171a6 initial
dwinter
parents:
diff changeset
100 */
47075a8171a6 initial
dwinter
parents:
diff changeset
101 public Set getAssociatedPropsForClass(String string) {
47075a8171a6 initial
dwinter
parents:
diff changeset
102
47075a8171a6 initial
dwinter
parents:
diff changeset
103
47075a8171a6 initial
dwinter
parents:
diff changeset
104
47075a8171a6 initial
dwinter
parents:
diff changeset
105 OWLNamedClass owlclass;
47075a8171a6 initial
dwinter
parents:
diff changeset
106 try {
47075a8171a6 initial
dwinter
parents:
diff changeset
107 owlclass = (OWLNamedClass) owlModel.getOWLNamedClass(string);
47075a8171a6 initial
dwinter
parents:
diff changeset
108 } catch (Exception e) {
47075a8171a6 initial
dwinter
parents:
diff changeset
109 logger.debug("Problem getting OWLClass, try RDFS later.");
47075a8171a6 initial
dwinter
parents:
diff changeset
110 //wenn eine Klasse sowohl eine RDFS als auch per Zuordnung in der Ontologie eine OWL classe ist, wir hier eine Fehler ausgeworfen:
47075a8171a6 initial
dwinter
parents:
diff changeset
111 //java.lang.ClassCastException: edu.stanford.smi.protegex.owl.model.impl.DefaultRDFSNamedClass cannot be cast to edu.stanford.smi.protegex.owl.model.OWLNamedClass
47075a8171a6 initial
dwinter
parents:
diff changeset
112 //at edu.stanford.smi.protegex.owl.model.impl.AbstractOWLModel.getOWLNamedClass(Unknown Source)
47075a8171a6 initial
dwinter
parents:
diff changeset
113 owlclass= null;
47075a8171a6 initial
dwinter
parents:
diff changeset
114 }
47075a8171a6 initial
dwinter
parents:
diff changeset
115
47075a8171a6 initial
dwinter
parents:
diff changeset
116 if (owlclass != null) {
47075a8171a6 initial
dwinter
parents:
diff changeset
117 return owlclass.getAssociatedProperties();
47075a8171a6 initial
dwinter
parents:
diff changeset
118 } else {
47075a8171a6 initial
dwinter
parents:
diff changeset
119 logger.debug("Cannot find OWLClass:" + string);
47075a8171a6 initial
dwinter
parents:
diff changeset
120 logger.debug("Trying RDFSClass");
47075a8171a6 initial
dwinter
parents:
diff changeset
121 RDFSNamedClass rdfsclass=(RDFSNamedClass)owlModel.getRDFSNamedClass(string);
47075a8171a6 initial
dwinter
parents:
diff changeset
122 if (rdfsclass != null) {
47075a8171a6 initial
dwinter
parents:
diff changeset
123 return rdfsclass.getAssociatedProperties();
47075a8171a6 initial
dwinter
parents:
diff changeset
124 } else {
47075a8171a6 initial
dwinter
parents:
diff changeset
125 logger.debug("Cannot find RDFSClass:" + string);
47075a8171a6 initial
dwinter
parents:
diff changeset
126 return null;
47075a8171a6 initial
dwinter
parents:
diff changeset
127 }
47075a8171a6 initial
dwinter
parents:
diff changeset
128 }
47075a8171a6 initial
dwinter
parents:
diff changeset
129
47075a8171a6 initial
dwinter
parents:
diff changeset
130
47075a8171a6 initial
dwinter
parents:
diff changeset
131
47075a8171a6 initial
dwinter
parents:
diff changeset
132 }
47075a8171a6 initial
dwinter
parents:
diff changeset
133
47075a8171a6 initial
dwinter
parents:
diff changeset
134 /**
47075a8171a6 initial
dwinter
parents:
diff changeset
135 * Gibt alle direkten Properties der angegebenen Klasse zurueck.
47075a8171a6 initial
dwinter
parents:
diff changeset
136 * @param string
47075a8171a6 initial
dwinter
parents:
diff changeset
137 * @return
47075a8171a6 initial
dwinter
parents:
diff changeset
138 */
47075a8171a6 initial
dwinter
parents:
diff changeset
139 public Collection getDirectPropsForClass(String string, Boolean transitiv) {
47075a8171a6 initial
dwinter
parents:
diff changeset
140
47075a8171a6 initial
dwinter
parents:
diff changeset
141
47075a8171a6 initial
dwinter
parents:
diff changeset
142
47075a8171a6 initial
dwinter
parents:
diff changeset
143 OWLNamedClass owlclass;
47075a8171a6 initial
dwinter
parents:
diff changeset
144 try {
47075a8171a6 initial
dwinter
parents:
diff changeset
145 owlclass = (OWLNamedClass) owlModel.getOWLNamedClass(string);
47075a8171a6 initial
dwinter
parents:
diff changeset
146 } catch (Exception e) {
47075a8171a6 initial
dwinter
parents:
diff changeset
147 logger.debug("Problem getting OWLClass, try RDFS later.");
47075a8171a6 initial
dwinter
parents:
diff changeset
148 //wenn eine Klasse sowohl eine RDFS als auch per Zuordnung in der Ontologie eine OWL classe ist, wir hier eine Fehler ausgeworfen:
47075a8171a6 initial
dwinter
parents:
diff changeset
149 //java.lang.ClassCastException: edu.stanford.smi.protegex.owl.model.impl.DefaultRDFSNamedClass cannot be cast to edu.stanford.smi.protegex.owl.model.OWLNamedClass
47075a8171a6 initial
dwinter
parents:
diff changeset
150 //at edu.stanford.smi.protegex.owl.model.impl.AbstractOWLModel.getOWLNamedClass(Unknown Source)
47075a8171a6 initial
dwinter
parents:
diff changeset
151 owlclass= null;
47075a8171a6 initial
dwinter
parents:
diff changeset
152 }
47075a8171a6 initial
dwinter
parents:
diff changeset
153
47075a8171a6 initial
dwinter
parents:
diff changeset
154 if (owlclass != null) {
47075a8171a6 initial
dwinter
parents:
diff changeset
155 return owlclass.getUnionDomainProperties(transitiv);
47075a8171a6 initial
dwinter
parents:
diff changeset
156 } else {
47075a8171a6 initial
dwinter
parents:
diff changeset
157 logger.debug("Cannot find OWLClass:" + string);
47075a8171a6 initial
dwinter
parents:
diff changeset
158 logger.debug("Trying RDFSClass");
47075a8171a6 initial
dwinter
parents:
diff changeset
159 RDFSNamedClass rdfsclass=(RDFSNamedClass)owlModel.getRDFSNamedClass(string);
47075a8171a6 initial
dwinter
parents:
diff changeset
160 if (rdfsclass != null) {
47075a8171a6 initial
dwinter
parents:
diff changeset
161
47075a8171a6 initial
dwinter
parents:
diff changeset
162 return rdfsclass.getUnionDomainProperties(transitiv);
47075a8171a6 initial
dwinter
parents:
diff changeset
163 } else {
47075a8171a6 initial
dwinter
parents:
diff changeset
164 logger.debug("Cannot find RDFSClass:" + string);
47075a8171a6 initial
dwinter
parents:
diff changeset
165 return null;
47075a8171a6 initial
dwinter
parents:
diff changeset
166 }
47075a8171a6 initial
dwinter
parents:
diff changeset
167 }
47075a8171a6 initial
dwinter
parents:
diff changeset
168
47075a8171a6 initial
dwinter
parents:
diff changeset
169
47075a8171a6 initial
dwinter
parents:
diff changeset
170
47075a8171a6 initial
dwinter
parents:
diff changeset
171 }
47075a8171a6 initial
dwinter
parents:
diff changeset
172
47075a8171a6 initial
dwinter
parents:
diff changeset
173
47075a8171a6 initial
dwinter
parents:
diff changeset
174 public List<String> getEquivalentClasses(String string) {
47075a8171a6 initial
dwinter
parents:
diff changeset
175 OWLNamedClass owlclass = (OWLNamedClass) owlModel
47075a8171a6 initial
dwinter
parents:
diff changeset
176 .getOWLNamedClass(string);
47075a8171a6 initial
dwinter
parents:
diff changeset
177
47075a8171a6 initial
dwinter
parents:
diff changeset
178 List<String> retList = new ArrayList<String>();
47075a8171a6 initial
dwinter
parents:
diff changeset
179 Collection eqClasses = owlclass.getEquivalentClasses();
47075a8171a6 initial
dwinter
parents:
diff changeset
180 Iterator it = eqClasses.iterator();
47075a8171a6 initial
dwinter
parents:
diff changeset
181 while(it.hasNext()){
47075a8171a6 initial
dwinter
parents:
diff changeset
182 Object cls = it.next();
47075a8171a6 initial
dwinter
parents:
diff changeset
183 String name = "";
47075a8171a6 initial
dwinter
parents:
diff changeset
184 if (DefaultOWLNamedClass.class.isInstance(cls)){
47075a8171a6 initial
dwinter
parents:
diff changeset
185 name=((DefaultOWLNamedClass)cls).getName();
47075a8171a6 initial
dwinter
parents:
diff changeset
186 } else if (DefaultRDFSNamedClass.class.isInstance(cls)){
47075a8171a6 initial
dwinter
parents:
diff changeset
187 name=((DefaultRDFSNamedClass)cls).getName();
47075a8171a6 initial
dwinter
parents:
diff changeset
188 }
47075a8171a6 initial
dwinter
parents:
diff changeset
189 retList.add(name);
47075a8171a6 initial
dwinter
parents:
diff changeset
190
47075a8171a6 initial
dwinter
parents:
diff changeset
191 }
47075a8171a6 initial
dwinter
parents:
diff changeset
192
47075a8171a6 initial
dwinter
parents:
diff changeset
193 return retList;
47075a8171a6 initial
dwinter
parents:
diff changeset
194 }
47075a8171a6 initial
dwinter
parents:
diff changeset
195
47075a8171a6 initial
dwinter
parents:
diff changeset
196
47075a8171a6 initial
dwinter
parents:
diff changeset
197 public static void main(String args[]) throws RepositoryException, TripleStoreHandlerException {
47075a8171a6 initial
dwinter
parents:
diff changeset
198 TripleStoreHandler th = new TripleStoreHandler("jdbc:virtuoso://virtuoso.mpiwg-berlin.mpg.de:1111", "dba", "dba");
47075a8171a6 initial
dwinter
parents:
diff changeset
199 MetaDataHandler mh = new MetaDataHandler();
47075a8171a6 initial
dwinter
parents:
diff changeset
200
47075a8171a6 initial
dwinter
parents:
diff changeset
201 //Set<DefaultRDFProperty> props= mh.getPropsForClass("http://dbpedia.org/ontology/Person");
47075a8171a6 initial
dwinter
parents:
diff changeset
202
47075a8171a6 initial
dwinter
parents:
diff changeset
203 mh.getEquivalentClasses("http://dbpedia.org/ontology/Person");
47075a8171a6 initial
dwinter
parents:
diff changeset
204
47075a8171a6 initial
dwinter
parents:
diff changeset
205 //Map<String, String> ret = th.getValues(props,"<http://dbpedia.org/resource/Abraham_Lincoln>");
47075a8171a6 initial
dwinter
parents:
diff changeset
206
47075a8171a6 initial
dwinter
parents:
diff changeset
207 //Map<String, String> ret = th.getResources("http://xmlns.com/foaf/0.1/name","Abraham Lincoln","en");
47075a8171a6 initial
dwinter
parents:
diff changeset
208 //System.out.println(ret);
47075a8171a6 initial
dwinter
parents:
diff changeset
209 }
47075a8171a6 initial
dwinter
parents:
diff changeset
210
47075a8171a6 initial
dwinter
parents:
diff changeset
211 public OWLIndividual generateEntity(String clsName, Map<String, Object> values) {
47075a8171a6 initial
dwinter
parents:
diff changeset
212 OWLNamedClass owlclass = (OWLNamedClass) owlModel
47075a8171a6 initial
dwinter
parents:
diff changeset
213 .getOWLNamedClass(clsName);
47075a8171a6 initial
dwinter
parents:
diff changeset
214
47075a8171a6 initial
dwinter
parents:
diff changeset
215 OWLIndividual inst = (OWLIndividual) owlclass.createInstance(null);
47075a8171a6 initial
dwinter
parents:
diff changeset
216 for(String key:values.keySet()){
47075a8171a6 initial
dwinter
parents:
diff changeset
217 RDFProperty property =owlModel.getRDFProperty(key);
47075a8171a6 initial
dwinter
parents:
diff changeset
218 inst.setPropertyValue(property, values.get(key));
47075a8171a6 initial
dwinter
parents:
diff changeset
219
47075a8171a6 initial
dwinter
parents:
diff changeset
220
47075a8171a6 initial
dwinter
parents:
diff changeset
221 }
47075a8171a6 initial
dwinter
parents:
diff changeset
222
47075a8171a6 initial
dwinter
parents:
diff changeset
223 return inst;
47075a8171a6 initial
dwinter
parents:
diff changeset
224 }
47075a8171a6 initial
dwinter
parents:
diff changeset
225
47075a8171a6 initial
dwinter
parents:
diff changeset
226 public OWLIndividual generateEntity(String clsName, String instanceName) {
47075a8171a6 initial
dwinter
parents:
diff changeset
227 OWLNamedClass owlclass = (OWLNamedClass) owlModel
47075a8171a6 initial
dwinter
parents:
diff changeset
228 .getOWLNamedClass(clsName);
47075a8171a6 initial
dwinter
parents:
diff changeset
229
47075a8171a6 initial
dwinter
parents:
diff changeset
230 OWLIndividual inst = (OWLIndividual) owlclass.createInstance(instanceName);
47075a8171a6 initial
dwinter
parents:
diff changeset
231
47075a8171a6 initial
dwinter
parents:
diff changeset
232
47075a8171a6 initial
dwinter
parents:
diff changeset
233 return inst;
47075a8171a6 initial
dwinter
parents:
diff changeset
234 }
47075a8171a6 initial
dwinter
parents:
diff changeset
235
47075a8171a6 initial
dwinter
parents:
diff changeset
236 public OWLIndividual generateEntity(String clsName, String instanceName, Map<String, Object> values) {
47075a8171a6 initial
dwinter
parents:
diff changeset
237 OWLNamedClass owlclass = (OWLNamedClass) owlModel
47075a8171a6 initial
dwinter
parents:
diff changeset
238 .getOWLNamedClass(clsName);
47075a8171a6 initial
dwinter
parents:
diff changeset
239
47075a8171a6 initial
dwinter
parents:
diff changeset
240 OWLIndividual inst = (OWLIndividual) owlclass.createInstance(instanceName);
47075a8171a6 initial
dwinter
parents:
diff changeset
241
47075a8171a6 initial
dwinter
parents:
diff changeset
242 for(String key:values.keySet()){
47075a8171a6 initial
dwinter
parents:
diff changeset
243 RDFProperty property =owlModel.getRDFProperty(key);
47075a8171a6 initial
dwinter
parents:
diff changeset
244 inst.setPropertyValue(property, values.get(key));
47075a8171a6 initial
dwinter
parents:
diff changeset
245
47075a8171a6 initial
dwinter
parents:
diff changeset
246
47075a8171a6 initial
dwinter
parents:
diff changeset
247 }
47075a8171a6 initial
dwinter
parents:
diff changeset
248
47075a8171a6 initial
dwinter
parents:
diff changeset
249 return inst;
47075a8171a6 initial
dwinter
parents:
diff changeset
250 }
47075a8171a6 initial
dwinter
parents:
diff changeset
251
47075a8171a6 initial
dwinter
parents:
diff changeset
252 public void printIndividual(OWLIndividual ind){
47075a8171a6 initial
dwinter
parents:
diff changeset
253 Collection<RDFProperty> props = ind.getRDFProperties();
47075a8171a6 initial
dwinter
parents:
diff changeset
254 Iterator<RDFProperty> propsIts = props.iterator();
47075a8171a6 initial
dwinter
parents:
diff changeset
255 while(propsIts.hasNext()){
47075a8171a6 initial
dwinter
parents:
diff changeset
256 RDFProperty prop = propsIts.next();
47075a8171a6 initial
dwinter
parents:
diff changeset
257 System.err.println(prop.getName()+":"+ind.getPropertyValue(prop));
47075a8171a6 initial
dwinter
parents:
diff changeset
258 }
47075a8171a6 initial
dwinter
parents:
diff changeset
259 }
47075a8171a6 initial
dwinter
parents:
diff changeset
260
47075a8171a6 initial
dwinter
parents:
diff changeset
261 public static MetaDataHandler getInstance(){
47075a8171a6 initial
dwinter
parents:
diff changeset
262
47075a8171a6 initial
dwinter
parents:
diff changeset
263 if (instance==null){
47075a8171a6 initial
dwinter
parents:
diff changeset
264 instance = new MetaDataHandler();
47075a8171a6 initial
dwinter
parents:
diff changeset
265 }
47075a8171a6 initial
dwinter
parents:
diff changeset
266 return instance;
47075a8171a6 initial
dwinter
parents:
diff changeset
267 }
47075a8171a6 initial
dwinter
parents:
diff changeset
268
47075a8171a6 initial
dwinter
parents:
diff changeset
269
47075a8171a6 initial
dwinter
parents:
diff changeset
270
47075a8171a6 initial
dwinter
parents:
diff changeset
271
47075a8171a6 initial
dwinter
parents:
diff changeset
272 }