annotate src/de/mpiwg/itgroup/nimanager/owl/MetaDataHandler.java @ 0:1384a0d382fa

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