Thanks. Does committing the ontModel do any good, or does it have to be the dataset?
On Mon, Jun 30, 2014 at 11:35 AM, Andy Seaborne <[email protected]> wrote: > Benson, > > The example has > dataset.begin(ReadWrite.WRITE); > ... > dataset.end(); > > and it generates a warning. For once, warnings matter! > > There is no commit. > > The idiom is: > > dataset.begin(ReadWrite.WRITE); > try { > > dataset.commit() ; > } finally { dataset.end() ; } > > > .end without .commit forces an abort, hence no data in the read transaction. > > Andy > > > On 29/06/14 15:27, Benson Margulies wrote: >> >> OK, the default branch (andy) is now buildable outside our office. >> >> On Sun, Jun 29, 2014 at 10:21 AM, Benson Margulies >> <[email protected]> wrote: >>> >>> I will build you a test case, but for now, those two classes amount to >>> 10 calls to the following, where 'model' is the ontModel. >>> >>> My premise was that this was a stupid mistake. >>> >>> Actually, all this code is stuff I can share on github, come to think >>> it is, and it's quite small. >>> >>> https://github.com/benson-basis/tdb-case ... but it wants a parent POM >>> that you won't have. Gimme a few minutes ... >>> >>> >>> Individual entity = model.createIndividual(encodedUri("E", >>> item.getEntityId()), Res20140626.Entity); >>> Individual document = model.createIndividual(encodedUri("D", >>> item.getDocId()), Res20140626.Document); >>> // anonymous! >>> Individual mention = >>> model.createIndividual(Res20140626.Mention); >>> if (item.getEntityId().startsWith("Q")) { >>> model.createStatement(entity, OWL.sameAs, >>> String.format("http://www.wikidata.org/entity/%s", >>> item.getEntityId())); >>> } >>> >>> model.add(entity, Res20140626.hasEntityMention, mention); >>> model.add(mention, Res20140626.hasMentionEntity, entity); >>> model.add(mention, Res20140626.hasMentionDocument, document); >>> model.add(document, Res20140626.hasDocumentMention, mention); >>> if (typedLiterals) { >>> model.add(entity, Skos.notation, >>> model.createTypedLiteral(item.getEntityId())); >>> model.add(document, Skos.notation, >>> model.createTypedLiteral(item.getDocId())); >>> model.add(mention, Res20140626.hasIndocId, >>> model.createTypedLiteral(item.getIndocId())); >>> model.add(mention, Res20140626.hasMentionStart, >>> model.createTypedLiteral dataset.begin(ReadWrite.WRITE); > > Model model = dataset.getDefaultModel(); > OntModel ontModel = > ModelFactory.createOntologyModel(OntModelSpec.OWL_MEM, model); > ResRdfBuilder resRdfBuilder = new ResRdfBuilder(ontModel, 1); > ResTsvReader reader = new ResTsvReader(); > URL dataUrl = Resources.getResource(ResTsvReaderTest.class, > "data.txt"); > ByteSource dataSource = Resources.asByteSource(dataUrl); > reader.read(dataSource, resRdfBuilder); > smallAssertions(ontModel); > dataset.end();(item.getMentionStart())); > >>> model.add(mention, Res20140626.hasMentionEnd, >>> model.createTypedLiteral(item.getMentionEnd())); >>> model.add(mention, Res20140626.hasMentionText, >>> model.createTypedLiteral(item.getMentionText())); >>> model.add(mention, Res20140626.hasConfidence, >>> model.createTypedLiteral(item.getConfidence())); >>> } else { >>> model.add(entity, Skos.notation, >>> model.createLiteral(item.getEntityId())); >>> model.add(document, Skos.notation, >>> model.createLiteral(item.getDocId())); >>> model.add(mention, Res20140626.hasIndocId, >>> model.createLiteral(item.getIndocId())); >>> model.add(mention, Res20140626.hasMentionStart, >>> model.createLiteral(Integer.toString(item.getMentionStart()))); >>> model.add(mention, Res20140626.hasMentionEnd, >>> model.createLiteral(Integer.toString(item.getMentionEnd()))); >>> model.add(mention, Res20140626.hasMentionText, >>> model.createLiteral(item.getMentionText())); >>> model.add(mention, Res20140626.hasConfidence, >>> model.createLiteral(Double.toString(item.getConfidence()))); >>> } >>> >>> On Sun, Jun 29, 2014 at 6:20 AM, Andy Seaborne <[email protected]> wrote: >>>> >>>> On 27/06/14 14:25, Benson Margulies wrote: >>>>> >>>>> >>>>> here's a little test method. The second call to smallAssertions sees >>>>> no triples at all. There's a todo on the doc for ontologies, and I'll >>>>> cheerfully write some doc if someone will tell me what dumb thing I've >>>>> missed here. >>>>> >>>>> >>>> >>>> Hi Benson, >>>> >>>> There seem to be details that might matter but aren't included. Do you >>>> have >>>> a complete, standalone, test case? >>>> >>>> >>>>> @Test >>>>> public void tdb() throws Exception { >>>>> Dataset dataset = >>>>> TDBFactory.createDataset(tempDataset.getAbsolutePath()); >>>>> dataset.begin(ReadWrite.WRITE); >>>>> Model model = dataset.getDefaultModel(); >>>>> OntModel ontModel = >>>>> ModelFactory.createOntologyModel(OntModelSpec.OWL_MEM, model); >>>>> ResRdfBuilder resRdfBuilder = new ResRdfBuilder(ontModel, 1); >>>>> ResTsvReader reader = new ResTsvReader(); >>>>> URL dataUrl = Resources.getResource(ResTsvReaderTest.class, >>>>> "data.txt"); >>>>> ByteSource dataSource = Resources.asByteSource(dataUrl); >>>>> reader.read(dataSource, resRdfBuilder); >>>> >>>> >>>> >>>> ResRdfBuilder and ResTsvReader.read -- what do they do? >>>> >>>> >>>>> smallAssertions(ontModel); >>>>> dataset.end(); >>>>> >>>>> dataset.begin(ReadWrite.READ); >>>>> model = dataset.getDefaultModel(); >>>>> smallAssertions(model); >>>>> dataset.end(); >>>>> } >>>>> >>>> >>>> Andy >>>> >
