I am not sure what I should be using as the second parameter for
DatasetFactory.assemble. Should I use the URI provided in the
documentation, or do I use the location of my own text dataset (my
luceneIndex?). Either way I receive an error.

If I use the URI provided, I get:

com.hp.hpl.jena.assembler.exceptions.AssemblerException: caught: Failed to
open:
/Users/brad/NetBeansProjects/mdr-older/trunk/NetBeansProjects/mdr-older/trunk/tdb/node2id.idn
(mode=rw)
  doing:
    root:
file:///Users/brad/NetBeansProjects/mdr-older/trunk/data.ttl#dataset with
    type:http://jena.hpl.hp.com/2008/tdb#DatasetTDB assembler class: class
com.hp.hpl.jena.tdb.assembler.DatasetAssemblerTDB
    root: http://localhost/jena_example/#text_dataset with type:
http://jena.apache.org/text#TextDatasetassembler class: class
org.apache.jena.query.text.assembler.TextDatasetAssembler


Otherwise if I use the location of lucene index on my file system I get:

com.hp.hpl.jena.assembler.exceptions.NoSpecificTypeException: the root
luceneIndexes has no most specific type that is a subclass of ja:Object


On Thu, Aug 22, 2013 at 2:14 AM, Andy Seaborne <[email protected]> wrote:

> On 21/08/13 21:45, Brad Moran wrote:
>
>> At this point I have a loaded TDB and text index, now I am trying to query
>> using java. First I tried creating a dataset directly from the TDB but
>> received
>>
>> Dataset ds = TDBFactory.createDataset(**DBDirectory); <--How I created
>> Dataset
>>
>> WARN  o.apache.jena.query.text.**TextQueryPF - Failed to find the text
>> index
>> : tried context and as a text-enabled dataset
>> WARN  o.apache.jena.query.text.**TextQueryPF - No text index - no text
>> search
>> performed
>> and returns an empty resultSet
>>
>> I am trying to run this query:
>>
>> QueryExecution qExec = QueryExecutionFactory.create(
>>                          "PREFIX text: <http://jena.apache.org/text#>
>> PREFIX
>> mms: <http://rdf.cdisc.org/mms#> "
>>                          + "SELECT * WHERE{?s text:query
>> (mms:dataElementName 'AEACN')}", ds);
>>
>> ResultSet rs = qExec.execSelect();
>>
>> So I figured the problem could be that I some how need to combine the TDB
>> and text index into the same dataset, I tried:
>>
>> String DBDirectory = "tdb";
>> String indexDir = "luceneIndexes";
>> File file = new File(indexDir);
>> Directory dir = FSDirectory.open(file);
>> TextIndex index = new TextIndexLucene(dir, null);// need to add the
>> EntityDefinition?
>>
>
> Yes.
>
>
>  Dataset ds = TDBFactory.createDataset(**DBDirectory);
>> Dataset dataset = TextDatasetFactory.create(ds, index);
>>
>
> then you will need to use 'dataset' not 'ds' to query.
>
>
>  This query does not run because of a nullPointerException.
>>
>
> stacktrace?
>
>
>  I am not sure if
>> this is the right way to go about this. If this is the right way to
>> combine
>> a TDB and text index, is there an easy way to get the EntityDefinition
>> from
>> the text index?
>>
>
> You can use the assembler file to get the dataset.
> (see the text search documentation)
>
> Else
> EntityDefinition entDef = new EntityDefinition("uri", "text", RDFS.label) ;
> and add the further declarations as in the assembler file.
>
> The assembler means you can keep the configuation in one place
>
>         Andy
>
>

Reply via email to