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