You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@jena.apache.org by Andy Seaborne <an...@epimorphics.com> on 2011/03/29 20:29:22 UTC

Re: LARQ indexes and assemblers


On 28/03/11 09:03, Paolo Castagna wrote:
> Andy Seaborne wrote:
>> Pondering on what the LARQ assembler might look like ...
>>
>> 1/ Is the index associated with a graph or a dataset? or are both
>> possible? (I think my pref is dataset)
>>
>> 2/ Here's a assembler for a dataset of a default graph and named graph.
>>
>> <#ds1> rdf:type ja:RDFDataset ;
>> ja:defaultGraph <#model1> ;
>> rdfs:label "Dataset 1" ;
>> ja:namedGraph
>> [ ja:graphName <http://example.org/name1> ;
>> ja:graph <#model1> ] ;
>> ja:namedGraph
>> [ ja:graphName <http://example.org/name2> ;
>> ja:graph <#model2>
>> ] ;
>> .
>>
>> <#model1> rdf:type ja:MemoryModel ;
>> rdfs:label "Model(plain)" ;
>> ja:content [ ja:externalContent <file:FILE-1.ttl> ] ;
>> ja:content [ ja:externalContent <file:FILE-2.ttl> ] ;
>> .
>>
>>
>> LARQ adds:
>>
>> <#ds1> rdf:type ja:RDFDataset ;
>> larq:textIndex "Location of Lucene data" ;
>> ...
>>
>>
>> to add it to a dataset.
>
> Hi,
> I've never extended the configuration using the Jena assembler mechanism.
>
> So, I had a look at it, however I am not sure I understand how get a
> reference
> to the RDFDataset the larq:textIndex has been used with.
>
> LARQ already had an AssemblerLARQ class, which I diligently stolen:
> https://jena.svn.sourceforge.net/svnroot/jena/LARQ/trunk/src/main/java/org/apache/jena/larq/assembler/AssemblerLARQ.java
>
> AssemblerLARQ builds a IndexLARQ, however I would like to *attach* it to
> the
> RDF Dataset so that it listens for statements added or removed and it keeps
> the Lucene index in sync.
>
> How do I get a reference to the RDF Dataset?

I think the dataset assembler code has to help.  i.e. the dataset says:

<#ds1> rdf:type ja:RDFDataset ;
    larq:index <#larq1> ;
    .

<#larq1> rdf:type :LARQindex ;
    ...
    .

Unless --

Chris - if a call to assemble the same resource is made does the 
assembler code return exactly the same (==) object?

	Andy

Re: LARQ indexes and assemblers

Posted by Paolo Castagna <ca...@googlemail.com>.
Chris Dollin wrote:
> On Tuesday, March 29, 2011 07:29:22 pm Andy Seaborne wrote:
> 
>> Chris - if a call to assemble the same resource is made does the 
>> assembler code return exactly the same (==) object?
> 
> Short answer: no.
> 
> Longer answer: It depends.
> 
> The code that actually does the assembling could cache if it wanted
> to. In general it probably shouldn't. And it should be straightforward
> to write an assembler wrapper which wrapped a (general) assembler and
> cached some (not necessarily all) of the assemblies done.
> 
> Chris 

Hi Chris,
thanks for your answer.

This means that LARQ assembler would need to be added to the current RDF Dataset
assemblers. For example, for TDB, see DatasetAssemblerTDB:
https://jena.svn.sourceforge.net/svnroot/jena/TDB/trunk/src/main/java/com/hp/hpl/jena/tdb/assembler/DatasetAssemblerTDB.java

We should check if the root resource has a larq:textIndex property and if LARQ
jar is in the classpath, if so: create the necessary LARQ specific objects and
attach them to the DatasetGraphTDB.

I'll try that.

Thanks,
Paolo




Re: LARQ indexes and assemblers

Posted by Chris Dollin <ch...@epimorphics.com>.
On Tuesday, March 29, 2011 07:29:22 pm Andy Seaborne wrote:

> Chris - if a call to assemble the same resource is made does the 
> assembler code return exactly the same (==) object?

Short answer: no.

Longer answer: It depends.

The code that actually does the assembling could cache if it wanted
to. In general it probably shouldn't. And it should be straightforward
to write an assembler wrapper which wrapped a (general) assembler and
cached some (not necessarily all) of the assemblies done.

Chris 

-- 
"I know it was late, but Mountjoy never bothers,                /Archer's Goon/
 so long as it's the full two thousand words."

Epimorphics Ltd, http://www.epimorphics.com
Registered address: Court Lodge, 105 High Street, Portishead, Bristol BS20 6PT
Epimorphics Ltd. is a limited company registered in England (number 7016688)