Ok this issue seems to be resolved. I had to change the location of the tdb
in the assembler file. NetBeans only needed the tdb location from the
project folder where as from bash I needed the full file system location.
Thanks again for all your help!


On Thu, Aug 22, 2013 at 12:23 PM, Andy Seaborne <[email protected]> wrote:

> On 22/08/13 17:04, Brad Moran wrote:
>
>> 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)
>>
>
> Why are you opening a specific file in the database directory?
>
> I can not understand where that URI came from except it looks like an
> incorrectly
>
> At a guess, something says:
>
> file:NetBeansProjects/mdr-**older/trunk/tdb/node2id.idn
>
> which is a relative file name, you need to start with a file:///
>
> I have no idea how the node2id.idn got there.
>
> If you open this file directly, you may corrupt the database.
>
>
>     doing:
>>      root:
>> file:///Users/brad/**NetBeansProjects/mdr-older/**trunk/data.ttl#dataset
>> with
>>      
>> type:http://jena.hpl.hp.com/**2008/tdb#DatasetTDB<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<http://localhost/jena_example/#text_dataset>with
>>  type:
>> http://jena.apache.org/text#**TextDatasetassembler<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
>>
>>
> http://jena.apache.org/**documentation/query/text-**
> query.html#text-dataset-**assembler<http://jena.apache.org/documentation/query/text-query.html#text-dataset-assembler>
>
> Dataset ds = DatasetFactory.assemble(
>     "text-config.ttl",
>     
> "http://localhost/jena_**example/#text_dataset<http://localhost/jena_example/#text_dataset>")
> ;
>
> and 
> http://localhost/jena_example/**#text_dataset<http://localhost/jena_example/#text_dataset>is
>  the URi used in the assembler file.  In the example it's
>
> @prefix :        
> <http://localhost/jena_**example/#<http://localhost/jena_example/#>>
> .
> ....
> :text_dataset rdf:type     text:TextDataset ;
>     text:dataset   <#dataset> ;
>     text:index     <#indexLucene> ;
>     .
>
> so 
> "http://localhost/jena_**example/#text_dataset<http://localhost/jena_example/#text_dataset>".
>  This happens to be the same as in your assembler file of 20/Aug.
>
> Please provide a complete, minimal example of what you are doing.
>
>         Andy
>
>
>
>> 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