1- I Создан класс OpenOntology для импорта онтологий, созданных с использованием платформы Protege. (API Jena использовался для импорта онтологий в Eclipse)
2- I Создан класс JsonReader для импорта Json Файл "ExampleOfDataFromIGLUCO" в Eclipse. Это пример данных для Igluco
3 - создан класс "OpenOntology" и распечатывается онтология, импортированная в формате RDF / XML
. Я хочу отобразить данные из файла json (пример данных ) в онтологию (формат xml / rdf)
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Iterator;
import org.apache.jena.*;
import org.apache.jena.ontology.DatatypeProperty;
import org.apache.jena.ontology.ObjectProperty;
import org.apache.jena.ontology.OntClass;
import org.apache.jena.ontology.OntModel;
import org.apache.jena.ontology.OntProperty;
import org.apache.jena.rdf.model.InfModel;
import org.apache.jena.rdf.model.Model;
import org.apache.jena.rdf.model.ModelFactory;
import org.apache.jena.rdf.model.NodeIterator;
import org.apache.jena.rdf.model.RDFReader;
import org.apache.jena.rdf.model.RDFWriter;
import org.apache.jena.rdf.model.Resource;
import org.apache.jena.rdf.model.StmtIterator;
import org.apache.jena.reasoner.ValidityReport;
import org.apache.jena.riot.RDFFormat;
import org.apache.jena.riot.RDFLanguages;
import org.apache.jena.riot.RDFParser;
import org.apache.jena.riot.system.ErrorHandlerFactory;
import org.apache.jena.riot.system.StreamRDF;
import org.apache.jena.util.FileManager;
import org.apache.jena.util.iterator.ExtendedIterator;
import org.apache.jena.vocabulary.RDF;
import jena.riot;
public class OpenOntology {
public Model loadschema() {
Model schema=null;
schema=ModelFactory.createOntologyModel();
java.io.InputStream inschema= FileManager.get().open("C:/Users/itm/Desktop/Master/Memoire 3/OMDPontology.owl");
schema.read(inschema,null);
schema.write(System.out, "RDF/XML");
// NodeIterator iter = schema.listObjects( );
// while (iter.hasNext( )) {
// System.out.println(" " + iter.next( ).toString( ));
// }
return schema;
}
}```
```package src;
import java.io.FileReader;
import java.util.Iterator;
import org.apache.jena.atlas.json.JsonObject;
import org.json.simple.JSONArray;
import org.json.simple.JSONObject;
import org.json.simple.parser.JSONParser;
public class JsonReader {
public String JsonReaderFile (){
String finalData=null;
try {
JSONParser parser = new JSONParser();
try {
Object obj = parser.parse(new FileReader("C:\\Users\\itm\\Desktop\\Master\\Memoire 3\\ExampleOfDataFromIGLUCOJSON.json"));
JSONObject jsonObject = (JSONObject) obj;
JSONArray data = (JSONArray) jsonObject.get("data");
Iterator<JSONObject> iterator = data.iterator();
while (iterator.hasNext()) {
finalData=iterator.next().toJSONString();
System.out.println(finalData);
}
} catch (Exception e) {
e.printStackTrace();
}
}catch (Exception e) {
e.printStackTrace();
}
return finalData;
}
}```
```package src;
import java.lang.reflect.Field;
import java.lang.reflect.InvocationTargetException;
import java.util.ArrayList;
import java.util.HashMap;
import org.apache.commons.beanutils.PropertyUtils;
import org.apache.jena.atlas.json.JsonObject;
import org.apache.jena.rdf.model.Model;
import org.json.simple.JSONObject;
import org.json.simple.parser.JSONParser;
import org.json.simple.parser.ParseException;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import org.xml.sax.SAXException;
import org.json.simple.JSONArray;
import org.json.simple.JSONObject;
import org.json.simple.parser.JSONParser;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Iterator;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
public class mainExample {
public static void main(String[] args) throws ParseException, IllegalAccessException, InvocationTargetException, NoSuchMethodException, IOException, NoSuchFieldException, SecurityException, SAXException, ParserConfigurationException {
OpenOntology openontology=new OpenOntology();
System.out.println("Adding OMDP ontology");
Model loadSchema=openontology.loadschema();
System.out.println("End OMDP ontology");
System.out.println("---------------------------------------------------------------------------------");
System.out.println("Adding JSON Reader");
JsonReader jsonreader=new JsonReader();
String jsonString=jsonreader.JsonReaderFile();
System.out.println(jsonString);
System.out.println("End JSON Reader");
System.out.println("---------------------------------------------------------------------------------");
String sourceAttribute = "source.type.device";
String targetAttribute = "LabTest.BloodGlucoseTest.has_lab_test.has_value";
System.out.println(targetAttribute);
HashMap<String, String> sourceToTargetMapping = new HashMap<String, String>();
sourceToTargetMapping.put(sourceAttribute, targetAttribute);
JSONParser parser = new JSONParser();
JSONObject jsonObject = (JSONObject)parser.parse(jsonString);
System.out.println(jsonObject.toJSONString());
String[] fieldlNames = sourceAttribute.split("\\.");
System.out.println(fieldlNames[0]+" "+fieldlNames[1] );
Object obj = jsonObject;
for (int i = 0; i < fieldlNames.length; i++) {
if(obj instanceof JSONObject) {
System.out.println("obj 1: "+obj);
System.out.println("fieldlNames[i] "+fieldlNames[i]);
obj = ((JSONObject)obj).get(fieldlNames[i]);
System.out.println(obj);
}
}
PropertyUtils.setNestedProperty(loadSchema, targetAttribute, obj);
// System.out.println("Target set to: " + targetBean.getInnerBeanLevel1().getInnerBeanLevel2().getS());
}
}```