Le 11/10/11 11:36, Paolo Castagna a écrit :

Jérôme wrote:
Le 11/10/11 11:14, Paolo Castagna a écrit :
Jérôme wrote:
Le 11/10/11 10:08, Andy Seaborne a écrit :
Jérôme,

Sorry if you've said this before in previous emails but what's the
query and what's the data like?  When did you last update LARQ?
Hi Andy,

I did my last LARQ update 2 days ago. The problem is not about datas,
because the result is the same with the books.ttl file: 0 result with a
very simple query like:

   PREFIX pf:<http://jena.hpl.hp.com/ARQ/property#>
   SELECT ?doc
   {
     ?lit pf:textMatch 'Potter' .
     ?doc ?p ?lit
   }
I'm trying to find out if something in the chain of packages has
changed and whether we've introduced a a regression in ARQ or LARQ.

The only ARQ change I can think of relates to named graphs but you're
not using named graphs and the change to correctly handle property
functions would only go from 0 to some results.

You have the same data available via<#books>   and via<#dataset>   --
does the query work one route and not the other or are both now
showing 0 results?
No, simple SPARQL queries works fine. I only have problem on the lucene
indexed datas with LARQ queries.
The problem is that somehow your Lucene index is empty or non existing.

If the /tmp/lucene directory exists and it's empty or it contains an
empty Lucene index when you start Fuseki. LARQ will *not* index your
data.

LARQ will index your data if and only if you point it at a non existing
directory. When you start Fuseki, LARQ should create the /tmp/lucene
directory for you and index your data.

When I need to debug problems involving Lucene indexes I use:
http://www.getopt.org/luke/luke-0.9.9/lukemin-0.9.9.jar
... it's very useful to inspect a Lucene index. I suspect yours is
empty or non-existing.

You can also try to use larq.larqbuilder to build your Lucene index
manually at the beginning, but it would be much better if LARQ does
automatically this for you (as it should be). Try this:

   1. make sure Fuseki or your app is not running
   2. java -cp fuseki-0.2.1-SNAPSHOT-sys.jar larq.larqbuilder \
      --allow-duplicates --larq=/tmp/lucene \
      --desc=/path/to/your/fuseki/config.ttl
      (one line!)
   3. check your Lucene index in the /tmp/lucene directory
   4. start Fuseki as usual
The larqbuilder command-line failed:
java -cp target/fuseki-0.2.1-SNAPSHOT-sys.jar larq.larqbuilder
--allow-duplicates --larq=/tmp/lucene --desc=config.ttl
com.hp.hpl.jena.sparql.ARQException: More than one: var ?root
     at
com.hp.hpl.jena.sparql.util.QueryExecUtils.getOne(QueryExecUtils.java:354)
     at
com.hp.hpl.jena.sparql.util.graph.GraphUtils.findRootByType(GraphUtils.java:191)

     at
com.hp.hpl.jena.sparql.core.assembler.AssemblerUtils.build(AssemblerUtils.java:97)

     at arq.cmdline.ModAssembler.create(ModAssembler.java:67)
     at
arq.cmdline.ModDatasetAssembler.createDataset(ModDatasetAssembler.java:43)
     at arq.cmdline.ModDataset.getDataset(ModDataset.java:34)
     at larq.larqbuilder.exec(larqbuilder.java:84)
     at arq.cmdline.CmdMain.mainMethod(CmdMain.java:97)
     at arq.cmdline.CmdMain.mainRun(CmdMain.java:59)
     at arq.cmdline.CmdMain.mainRun(CmdMain.java:46)
     at larq.larqbuilder.main(larqbuilder.java:50)
Ok, this is because larq.larqbuilder command does not support multiple datasets
(as they have been introduced only recently in Fuseki's config format).

Could you try to remove this from your config.ttl:

<#books>       rdf:type ja:RDFDataset ;
       rdfs:label "Books" ;
       ja:defaultGraph
         [ rdfs:label "discours_de_la_methode.rdf" ;
           a ja:MemoryModel ;
           ja:content [ja:externalContent<file:Data/file.rdf>    ] ;
         ] ;
       .

And, make sure you have only one dataset (i.e.<#dataset>  rdf:type 
tdb:DatasetTDB)?

Try again:

   1. make sure Fuseki or your app is not running
   2. rm -rf /tmp/lucene
   3. java -cp fuseki-0.2.1-SNAPSHOT-sys.jar larq.larqbuilder \
       --allow-duplicates --larq=/tmp/lucene \
       --desc=/path/to/your/fuseki/config.ttl
       (one line!)
   4. check your Lucene index in the /tmp/lucene directory
   5. start Fuseki as usual

I think it's really better: my /tmp/lucene contains files. One new problem...(sorry...), I'm not able to test it because before running all my application, i've tried a mvn install of LARQ (to compile and install my own changes) - i get a dependency error: Failed to execute goal on project jena-larq: Could not resolve dependencies for project org.apache.jena:jena-larq:jar:0.2.2-incubating-SNAPSHOT: Could not find artifact org.apache.jena:jena-tdb:jar:0.8.11-SNAPSHOT in apache.snapshots (http://repository.apache.org/snapshots)

What are goupId and artefactId for TDB? Have they changed...?


larq.larqbuilder source code is here:
https://svn.apache.org/repos/asf/incubator/jena/Jena2/LARQ/trunk/src/main/java/larq/larqbuilder.java

Once again, ideas on how to improve it (and patches) are welcome!

Paolo


The /tmp/lucene dir is created, with the empty write.lock file.

Does this work for you?

Paolo

Jérôme
      Andy



On 10/10/11 17:01, Paolo Castagna wrote:
Hi Jérôme,
first of all, thanks for helping out testing the LARQ
0.2.2-incubating-SNAPSHOT
and for your patience. ;-)

This hopefully will help to spot problems early one and reduce
problems once ARQ
and LARQ are released within Apache.

Jérôme wrote:
Hi,

i've recently made an svn up on my LARQ directory.

Now, my LARQ queries return 0 solution (they returned before).

I'm using:
- fuseki 0.2.1-SNAPSHOT
-arq 2.8.9-SNAPSHOT
-larq 0.2.2-incubating-SNAPSHOT
According to the LARQ's pom.xml file [1], LARQ
0.2.2-incubating-SNAPSHOT now
depends on the new ARQ SNAPSHOTs.
Precisely, it depends on
org.apache.jena:jena-arq:2.8.9-incubating-SNAPSHOT
Please note the new groupId and artifactId for ARQ.

New ARQ SNAPSHOTs are available here [2].

    [1]
https://svn.apache.org/repos/asf/incubator/jena/Jena2/LARQ/trunk/pom.xml

    [2]
https://repository.apache.org/content/repositories/snapshots/org/apache/jena/jena-arq/2.8.9-incubating-SNAPSHOT/



-lucene 3.1.0

My config.ttl file has not changed:

[...]
<#books>       rdf:type ja:RDFDataset ;
       rdfs:label "Books" ;
       ja:defaultGraph
         [ rdfs:label "discours_de_la_methode.rdf" ;
           a ja:MemoryModel ;
           ja:content [ja:externalContent<file:Data/file.rdf>    ] ;
         ] ;
       .

<#dataset>    rdf:type      tdb:DatasetTDB ;
       tdb:location "/tmp/tdb" ;
       ja:textIndex "/tmp/lucene" ;
       # Query timeout on this dataset (milliseconds)
       ja:context [ ja:cxtName "arq:queryTimeout" ;  ja:cxtValue
"1000" ] ;
##      tdb:unionDefaultGraph true ;


Before running the fuseki server, i build my triple store with the
command-line:
java -cp target/fuseki-0.2.1-SNAPSHOT-sys.jar tdb.tdbloader
--loc=/tmp/tdb Data/file.rdf
Can you please try:

    - stop Fuseki
    - delete /tmp/lucence
    - restart Fuseki

LARQ will now behave like this:

    - if the directory exists with a Lucene index, it will leave it
untouched
    - if the directory does not exists it will create it and index your
data

What do you have in your /tmp/lucene directory?

So, i've no error - juste 0 result...

Any ideas?

Thank you.

Let us know how it goes,
Paolo

Reply via email to