Thanks Andy. But I find the TDB model is deprecated. https://jena.apache.org/documentation/javadoc/tdb/com/hp/hpl/jena/tdb/TDBFactory.html
Am I looking into the right one ? Thanks Ganesh On Tue, May 6, 2014 at 10:59 PM, Andy Seaborne <a...@apache.org> wrote: > On 06/05/14 11:49, Ganesh kumar wrote: > >> Hi Rob, >> >> Thanks, I will use this. >> >> Andy, >> >> Can you please point me to some links to know more about TDL model ? >> > > TDB (my typo). > > > >> Thanks >> Ganesh >> >> >> On Tue, May 6, 2014 at 10:13 PM, Andy Seaborne <a...@apache.org> wrote: >> >> One way woudl be to directly add the data into TDB rather than into an >>> in-memory model, then copy that model into TDB. That reduces the >>> numbers of copies by one. So start the transaction at the top and >>> where you have getRdfModel(), use the TDL model. >>> >>> getNamedmodel does not load the data into memory. >>> >>> .add(...); causes the transaction mechanism to use memory. >>> >>> >>> >>> On 6 May 2014 09:55, Rob Vesse <rve...@dotnetrdf.org> wrote: >>> >>>> Use the asDatasetGraph() method to get a lower level view of the dataset >>>> >>> - >>> >>>> >>>> https://jena.apache.org/documentation/javadoc/arq/com/ >>> hp/hpl/jena/sparql/co >>> >>>> re/DatasetGraph.html >>>> >>>> You can then use one of the add() methods to insert the data. >>>> >>>> If the data is to be appended to the existing graph then you need to use >>>> the add(Quad) or the add(Node, Node, Node, Node) method. If the data is >>>> to replace the existing named graph you can use the addGraph(Node, >>>> Graph) >>>> method instead. >>>> >>>> Rob >>>> >>>> On 06/05/2014 03:10, "Ganesh kumar" <ganeshkumar1...@gmail.com> wrote: >>>> >>>> Hi All, >>>>> >>>>> I am trying to insert triples into Jena TDB (triples are added into >>>>> >>>> simple >>> >>>> models and then inserted). >>>>> The models are built at runtime for a particular group of triples, and >>>>> then >>>>> it needs to be persisted into Jena TDB. >>>>> >>>>> >>>>> Pseudocode: >>>>> >>>>> Resource node = getRdfModel().createResource(nodeStr); >>>>> >>>>> for (Entry<String, Object> entry : attributes.entrySet()) { >>>>> String attributeName = entry.getKey(); >>>>> >>>>> attributeName = processAttributes(attributeName); >>>>> propertyStr = buildURI(attributeName, source, elementType.property, >>>>> nodeStr); >>>>> String val = processValue(entry); >>>>> >>>>> node.addProperty(getRdfModel().createProperty(propertyStr), >>>>> getRdfModel().createLiteral(val)); >>>>> } >>>>> dataset.begin(ReadWrite.WRITE); >>>>> try { >>>>> >>>>> // TODO: This insert is not really effecient. The getnamed model loads >>>>> >>>> the >>> >>>> data from the TDB into memory which is making the insert slow. Is there >>>>> a >>>>> effecient way of inserting the data to TDB like a cursor with less >>>>> memory >>>>> usage ? >>>>> dataset.getNamedModel(source). >>>>> add(getRdfModel()); >>>>> dataset.commit(); >>>>> //After commit the getRDFModel() will be reseted. >>>>> >>>>> } finally { >>>>> dataset.end(); >>>>> } >>>>> >>>>> Problem: >>>>> >>>>> When I call the getNamedmodel function, it loads the data from TDB >>>>> which >>>>> is >>>>> quite large. Is there a way to insert the data without loading the data >>>>> into main memory ? >>>>> >>>>> or any other effecient way of inserting data using Jena api? >>>>> This is a data migration study project, so more data will keep flowing >>>>> >>>> in. >>> >>>> >>>>> >>>>> Thanks in advance for your help & guidance. >>>>> >>>>> Thanks >>>>> Ganesh >>>>> >>>> >>>> >>>> >>>> >>>> >>> >> >> >> -- >> >> > --