Thanks, Andy! I used the old library as an import, I can compile everything, however, as I mentioned in the file is nothing added even I am using (the file is not upgraded with a new individual):
RDFDataMgr.write(out, model, Lang.RDFXML); or RDFDataMgr.write(out, model, Lang.TTL); In this case I got an issue: "Problems reading ontology. Exception message: [line: 2, col: 1 ] Broken IRI (newline): rdf:RDF. Yes, my file is RDF/XML", then I do not get any issue, but the file is not modified with the new insertion. Darius 2013/9/4 Andy Seaborne <[email protected]> > On 04/09/13 13:08, Darius Miliauskas wrote: > >> Dear Andy, >> >> thanks for your piece of code and explanations, I can compile the code if >> I >> use "model.write(out, "RDF/XML");" not "RDFDataMgr.write(System.out, >> model, >> Lang.TTL);" but nothing is added in the file (no changes in the file which >> stores the ontology). >> > > Maybe you are using an old version of the code. > > > >> Regarding "RDFDataMgr.write(System.out, model, Lang.TTL);", I got the >> error >> that TTL can not be find. >> > > ... with no deprecations? There is an old legacy class lang as well. > (and Lang should be package "org.apache.jena.riot", not > "org.openjena.riot") > > Check the version of the code - the current release is 2.10.1 and you need > all the jars on the classpath. > > Andy > > >> My code is the following: >> >> package org.apache.mahout.**inserttordfexample; >> >> import java.io.File; >> >> /** >> * this app just try/test the functionality of INSERT using SPARQL >> * >> * @param args data stream >> * @author DARIUS MILIAUSKAS >> */ >> public class App { >> >> public static void main(String[] args) { >> // INFO: File containing information about rooms, cities, prices, >> persons >> java.io.File file = new >> java.io.File(java.net.**URLDecoder.decode(InsertRoom.** >> class.getClassLoader().**getResource("MyModel.owl").**getFile())); >> InsertRoom ir = new InsertRoom(); >> ir.insertRoom(file); >> } >> } >> >> package org.apache.mahout.**inserttordfexample; >> >> import com.hp.hpl.jena.ontology.**OntModel; >> import com.hp.hpl.jena.ontology.**OntModelSpec; >> import com.hp.hpl.jena.rdf.model.**ModelFactory; >> import com.hp.hpl.jena.rdf.model.**Resource; >> import com.hp.hpl.jena.rdf.model.**StmtIterator; >> import com.hp.hpl.jena.update.Update; >> import com.hp.hpl.jena.update.**UpdateAction; >> import com.hp.hpl.jena.update.**UpdateExecutionFactory; >> import com.hp.hpl.jena.update.**UpdateFactory; >> import com.hp.hpl.jena.update.**UpdateProcessor; >> import com.hp.hpl.jena.update.**UpdateRequest; >> import java.io.File; >> import java.io.FileInputStream; >> import java.io.FileNotFoundException; >> import java.io.FileOutputStream; >> import java.io.IOException; >> import java.util.logging.Level; >> import java.util.logging.Logger; >> import org.apache.jena.riot.**RDFDataMgr; >> import org.openjena.riot.Lang; >> >> /** >> * >> * @author DARIUS MILIAUSKAS >> */ >> public class InsertRoom { >> >> public void insertRoom(File owlFile) { >> >> // INFO: Read ontology >> OntModel model = >> ModelFactory.**createOntologyModel(**OntModelSpec.OWL_MEM_MICRO_**RULE_INF, >> null); >> try { >> FileInputStream filein = new FileInputStream(owlFile); >> model.read(filein, "RDF/XML"); >> } catch (IOException e) { >> System.out.print("IOException: " + e.getMessage()); >> } catch (Exception e) { >> System.out.print("Problems reading ontology '" + >> owlFile.getAbsolutePath() + "'. Exception message: " + e.getMessage()); >> } >> >> /* >> * SPARQL query is used to insert a new entry in the ontology >> */ >> String queryString = "PREFIX base: < >> http://www.semanticweb.org/**darius/ontologies/2013/6/**mymodel#<http://www.semanticweb.org/darius/ontologies/2013/6/mymodel#> >> >" >> + "PREFIX rdf: <http://www.w3.org/1999/02/22-** >> rdf-syntax-ns# <http://www.w3.org/1999/02/22-rdf-syntax-ns#> >> >>> " >>> >> + "PREFIX rdfs: >> <http://www.w3.org/2000/01/**rdf-schema#<http://www.w3.org/2000/01/rdf-schema#> >> >" >> + "PREFIX owl: >> <http://www.w3.org/2002/07/**owl#<http://www.w3.org/2002/07/owl#> >> >" >> + "PREFIX foaf: <http://xmlns.com/foaf/0.1/>" >> + "INSERT DATA {< >> http://www.semanticweb.org/**darius/ontologies/2013/6/**mymodel#Kristina<http://www.semanticweb.org/darius/ontologies/2013/6/mymodel#Kristina>> >> a >> base:Person.} "; >> >> UpdateRequest query = UpdateFactory.create(**queryString); >> UpdateAction.execute(query, model); >> //UpdateAction.parseExecute(**queryString, model); >> >> // UpdateProcessor qe = UpdateExecutionFactory.create(**query, >> model); >> //com.hp.hpl.jena.query.**ResultSet results = qe.execSelect(); >> >> try { >> FileOutputStream out = new FileOutputStream(owlFile); >> model.write(out, "RDF/XML"); >> //RDFDataMgr.write(System.out, model, Lang.TTL); >> } catch (FileNotFoundException ex) { >> Logger.getLogger(InsertRoom.**class.getName()).log(Level.** >> SEVERE, >> null, ex); >> } >> //query.close(); // INFO: This needs to be closed after >> retrieving >> the results, because it won't work! >> model.close(); //OntModel is closed as well. >> >> //return owlFile; >> } >> } >> >> >> My sample of ontology: >> >> <?xml version="1.0"?> >> >> >> <!DOCTYPE rdf:RDF [ >> <!ENTITY owl >> "http://www.w3.org/2002/07/**owl#<http://www.w3.org/2002/07/owl#>" >> > >> <!ENTITY xsd >> "http://www.w3.org/2001/**XMLSchema#<http://www.w3.org/2001/XMLSchema#>" >> > >> <!ENTITY rdfs >> "http://www.w3.org/2000/01/**rdf-schema#<http://www.w3.org/2000/01/rdf-schema#>" >> > >> <!ENTITY rdf >> "http://www.w3.org/1999/02/22-**rdf-syntax-ns#<http://www.w3.org/1999/02/22-rdf-syntax-ns#>" >> > >> ]> >> >> >> <rdf:RDF xmlns="http://www.semanticweb.**org/darius/ontologies/2013/8/** >> mymodel# <http://www.semanticweb.org/darius/ontologies/2013/8/mymodel#> >> " >> xml:base="http://www.**semanticweb.org/darius/** >> ontologies/2013/8/mymodel<http://www.semanticweb.org/darius/ontologies/2013/8/mymodel> >> " >> >> xmlns:rdfs="http://www.w3.org/**2000/01/rdf-schema#<http://www.w3.org/2000/01/rdf-schema#> >> " >> >> xmlns:owl="http://www.w3.org/**2002/07/owl#<http://www.w3.org/2002/07/owl#> >> " >> >> xmlns:xsd="http://www.w3.org/**2001/XMLSchema#<http://www.w3.org/2001/XMLSchema#> >> " >> >> xmlns:rdf="http://www.w3.org/**1999/02/22-rdf-syntax-ns#<http://www.w3.org/1999/02/22-rdf-syntax-ns#> >> "> >> <owl:Ontology rdf:about=" >> http://www.semanticweb.org/**darius/ontologies/2013/8/**mymodel<http://www.semanticweb.org/darius/ontologies/2013/8/mymodel> >> "/> >> >> >> >> <!-- >> >> //////////////////////////////**//////////////////////////////** >> /////////////////////////// >> // >> // Classes >> // >> >> //////////////////////////////**//////////////////////////////** >> /////////////////////////// >> --> >> >> >> >> >> <!-- >> http://www.semanticweb.org/**darius/ontologies/2013/8/** >> mymodel#MusicStyle<http://www.semanticweb.org/darius/ontologies/2013/8/mymodel#MusicStyle>--> >> >> <owl:Class rdf:about=" >> http://www.semanticweb.org/**darius/ontologies/2013/8/** >> mymodel#MusicStyle<http://www.semanticweb.org/darius/ontologies/2013/8/mymodel#MusicStyle> >> "/> >> >> >> >> <!-- http://www.semanticweb.org/**darius/ontologies/2013/8/** >> mymodel#Person--<http://www.semanticweb.org/darius/ontologies/2013/8/mymodel#Person--> >> > >> >> <owl:Class rdf:about=" >> http://www.semanticweb.org/**darius/ontologies/2013/8/**mymodel#Person<http://www.semanticweb.org/darius/ontologies/2013/8/mymodel#Person> >> "/> >> >> >> >> <!-- >> >> //////////////////////////////**//////////////////////////////** >> /////////////////////////// >> // >> // Individuals >> // >> >> //////////////////////////////**//////////////////////////////** >> /////////////////////////// >> --> >> >> >> >> >> <!-- http://www.semanticweb.org/**darius/ontologies/2013/8/** >> mymodel#Ana<http://www.semanticweb.org/darius/ontologies/2013/8/mymodel#Ana>--> >> >> <owl:NamedIndividual rdf:about=" >> http://www.semanticweb.org/**darius/ontologies/2013/8/**mymodel#Ana<http://www.semanticweb.org/darius/ontologies/2013/8/mymodel#Ana> >> "> >> <rdf:type rdf:resource=" >> http://www.semanticweb.org/**darius/ontologies/2013/8/**mymodel#Person<http://www.semanticweb.org/darius/ontologies/2013/8/mymodel#Person> >> "/> >> </owl:NamedIndividual> >> >> >> >> <!-- http://www.semanticweb.org/**darius/ontologies/2013/8/** >> mymodel#Electro--<http://www.semanticweb.org/darius/ontologies/2013/8/mymodel#Electro--> >> > >> >> <owl:NamedIndividual rdf:about=" >> http://www.semanticweb.org/**darius/ontologies/2013/8/**mymodel#Electro<http://www.semanticweb.org/darius/ontologies/2013/8/mymodel#Electro> >> "> >> <rdf:type rdf:resource=" >> http://www.semanticweb.org/**darius/ontologies/2013/8/** >> mymodel#MusicStyle<http://www.semanticweb.org/darius/ontologies/2013/8/mymodel#MusicStyle> >> "/> >> </owl:NamedIndividual> >> >> >> >> <!-- http://www.semanticweb.org/**darius/ontologies/2013/8/** >> mymodel#House--<http://www.semanticweb.org/darius/ontologies/2013/8/mymodel#House--> >> > >> >> <owl:NamedIndividual rdf:about=" >> http://www.semanticweb.org/**darius/ontologies/2013/8/**mymodel#House<http://www.semanticweb.org/darius/ontologies/2013/8/mymodel#House> >> "> >> <rdf:type rdf:resource=" >> http://www.semanticweb.org/**darius/ontologies/2013/8/** >> mymodel#MusicStyle<http://www.semanticweb.org/darius/ontologies/2013/8/mymodel#MusicStyle> >> "/> >> </owl:NamedIndividual> >> >> >> >> <!-- >> http://www.semanticweb.org/**darius/ontologies/2013/8/**mymodel#Veronika<http://www.semanticweb.org/darius/ontologies/2013/8/mymodel#Veronika>--> >> >> <owl:NamedIndividual rdf:about=" >> http://www.semanticweb.org/**darius/ontologies/2013/8/**mymodel#Veronika<http://www.semanticweb.org/darius/ontologies/2013/8/mymodel#Veronika> >> "> >> <rdf:type rdf:resource=" >> http://www.semanticweb.org/**darius/ontologies/2013/8/**mymodel#Person<http://www.semanticweb.org/darius/ontologies/2013/8/mymodel#Person> >> "/> >> </owl:NamedIndividual> >> </rdf:RDF> >> >> >> Thanks, >> >> Darius Miliauskas >> >> >> 2013/9/1 Andy Seaborne <[email protected]> >> >> On 31/08/13 17:45, Darius Miliauskas wrote: >>> >>> Dear All, >>>> >>>> thanks, Andy, for a piece of advice! So, I followed your advices, and >>>> rewrite the code in that way. However, at the end met some problems. In >>>> the >>>> case I use "UpdateExecutionFactory", I need GraphStore as a variable >>>> which >>>> I do not have because I have only ontology, not a graph. >>>> >>>> >>> Ontologies are graphs. >>> >>> >>> Anyway, it compiles after some changes, but I can not see any >>> >>>> changes >>>> in the file. My code looks the following way: >>>> >>>> >>> This works for me: I don't have your data. The output shows that it >>> contains the triple added. >>> >>> If this does not work for you as you expect, please provide a complete, >>> minimal example, a description of what does happen for you and the reason >>> why it is not as you expect. >>> >>> Andy >>> >>> >>> public class R2 { >>> public static void main(String...args) { >>> Model model = >>> //ModelFactory.****createDefaultModel() ; >>> >>> ModelFactory.****createOntologyModel(****OntModelSpec.OWL_MEM_MICRO_**** >>> RULE_INF, >>> null); >>> //RDFDataMgr.read(model, "D.ttl") ; >>> String updateString = "PREFIX base: < >>> http://www.semanticweb.org/** >>> darius/ontologies/2013/6/****mymodel#<http://www.** >>> semanticweb.org/darius/**ontologies/2013/6/mymodel#<http://www.semanticweb.org/darius/ontologies/2013/6/mymodel#> >>> > >>> >>>> " >>>> >>> >>> + "PREFIX rdf: <http://www.w3.org/1999/02/22-** >>> **rdf-syntax-ns# <http://www.w3.org/1999/02/22-**rdf-syntax-ns#>< >>> http://www.**w3.org/1999/02/22-rdf-syntax-**ns#<http://www.w3.org/1999/02/22-rdf-syntax-ns#> >>> >> >>> " >>> + "PREFIX rdfs: >>> <http://www.w3.org/2000/01/****rdf-schema#<http://www.w3.org/2000/01/**rdf-schema#> >>> <http://www.w3.org/**2000/01/rdf-schema#<http://www.w3.org/2000/01/rdf-schema#> >>> > >>> >>>> " >>>> >>> + "PREFIX owl: >>> <http://www.w3.org/2002/07/****owl#<http://www.w3.org/2002/07/**owl#> >>> <http://www.w3.org/2002/**07/owl# <http://www.w3.org/2002/07/owl#>> >>> >>>> " >>>> >>> + "INSERT DATA >>> {<http://www.semanticweb.org/****<http://www.semanticweb.org/**> >>> darius/ontologies/2013/6/****mymodel#Kristina<http://www.** >>> semanticweb.org/darius/**ontologies/2013/6/mymodel#**Kristina<http://www.semanticweb.org/darius/ontologies/2013/6/mymodel#Kristina> >>> >> >>> a base:Person.} "; >>> >>> UpdateRequest query = UpdateFactory.create(****updateString); >>> UpdateAction.execute(query, model); >>> >>> // Resource r = model.createResource("http://**** >>> www.semanticweb.org/darius/****ontologies/2013/6/mymodel#****Kristina<http://www.semanticweb.org/darius/**ontologies/2013/6/mymodel#**Kristina> >>> <http://www.**semanticweb.org/darius/**ontologies/2013/6/mymodel#** >>> Kristina<http://www.semanticweb.org/darius/ontologies/2013/6/mymodel#Kristina> >>> >") >>> >>> ; >>> // StmtIterator siter = r.listProperties() ; >>> // for ( ; siter.hasNext() ; ) >>> // System.out.println(siter.next(****)) ; >>> >>> >>> RDFDataMgr.write(System.out, model, Lang.TTL) ; >>> >>> model.close(); //OntModel is closed as well. >>> } >>> } >>> >>> >>> >> >
