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
>>>>
>

Reply via email to