On 05/08/14 03:15, Deyan Chen wrote:
在 2014年08月04日 19:09, Andy Seaborne 写道:
On 04/08/14 04:21, Deyan Chen wrote:
Hi Andy,

Thank you for your reply.

The Jena version is 2.11.2. The load process was not interrupted.
And I don't perform any update operation on the TDB store by Fuseki
SPARQL endpoint.
Number of triples is about 204,800,000.
Can I control or set the index way of TDB? How to do that If I can?

The indexing is fixed within the code (everything is indexed).

What did

 PREFIX basekb: <http://rdf.basekb.com/>
SELECT * {
  ?s basekb:ns.mid ?o .
  FILTER regex(str(?o), "medic")
}

The output is:

......

| <http://rdf.basekb.com/ns/m.0h8q646> |
"/medicine/drug_formulation/brand_names" |
| <http://rdf.basekb.com/ns/m.0220pym> | "/medicine/medical_trial" |
| <http://rdf.basekb.com/ns/m.0dbyyxn> |
"/medicine/medical_trial_phase/medical_trials" |
| <http://rdf.basekb.com/ns/m.04822f4> |
"/base/bioventurist/bv_medical_condition" |
| <http://rdf.basekb.com/ns/m.070bxqt> | "/medicine/diagnostic_sign/tests"

......

But I can't  find some resources, for example,
"/medicine/medical_trial_type/medical_trials".


and (you'll possibly want to count for this one)

PREFIX basekb: <http://rdf.basekb.com/>
SELECT * {
  ?s basekb:ns.mid ?object .
}

show?

This time I can find:

| <http://rdf.basekb.com/ns/m.0dbzfg8> |
"/medicine/medical_trial_type/medical_trials" |


The other good thing to check is to dump the database (stop Fuseki,
use tdbdump) then see if the triples necessary to match the pattern
are present.

Only some resources can't be filtered regex operator. But I can get
related triples by their mids, for example, 'm.0dbzfg8'.
 From the output, I think they should match the pattern in the regex
operator.
When I put these resources into another TDB, I can get them by regex
operator.
So I still don't know why.

I'm not seeing anything that would explain what you are seeing. tdbdump only uses the SPO index, whereas

{
    ?s basekb:ns.mid "/medicine/medical_trial_type/medical_trials" .
   ?s ?p ?o .
}

uses the OSP index then the SPO index.

{
   ?s basekb:ns.mid ?object .
}
uses the POS index.

The fact a string can be retrieved at all suggests the node table is OK (and th node table has been the one to show problems first in prvious reports).

As

{
    ?s basekb:ns.mid ?object
}

found something, you could try the variations:

<http://rdf.basekb.com/ns/m.0dbzfg8> | "/medicine/medical_trial_type/medical_trials"

SELECT *
{ <http://rdf.basekb.com/ns/m.0dbzfg8> ?p ?o }

SELECT *
{ ?s ?p "/medicine/medical_trial_type" }

Did you dump the DB?  Was it the same #triples as the loaded data?

        Andy



    Andy


Regards,

Deyan Chen

Reply via email to