4 Replies Latest reply on Dec 3, 2007 9:21 AM by 609276

    Missing triples in SEM_MATCH query

    609276
      Hi,

      After loading the LUBM50,0 test data into Oracle 11g and running the sample queries I found some very strange behavior:
      Test query 14 for example returns 0 results (should be 393730 result sets - no inferencing is needed).
      Most queries work as expected, however in some cases data is not returned from SEM_MATCH (I was not yet able to figure out what really causes this behavior).

      This is what I did:
      Using Oracle 11gR1 (11.1.0.6.0) on Windows XP
      Load the test data (LUBM 50,0) via sqlldr to staging table and bulk load from there to the table used in the semantic model.

      The following query produces 0 results:
      select x from
           table (sem_match('(?x rdf:type ub:UndergraduateStudent)',
           sem_models('lubm'),
           null,
           sem_aliases(sem_alias('ub','http://www.lehigh.edu/%7Ezhp2/2004/0401/univ-bench.owl#')), null));

      However, the data is actually contained in the table holding the SDO_RDF_TRIPLE_S.
      A query for all triples using SEM_MATCH also returns triples that satisfy this query and should be returned. (Query using '(?o ?p ?s)').
      By querying the table containing the semantic references directly also the correct results are returned.
      More strangely a query using sem_match like the one above querying for an object of "ub:GraduateStudent" instead of "ub:UndergraduateStudent" also returns (the correct) results.

      Moreover, the bulk load contains 6,890,946 triples which is the number of triples contained in the staging table and after bulk loading from there exactly this number is also contained in the table for the semantic model.
      However, the query using SEM_MATCH (unrestricted query of '(?o ?p ?s)') which should also return this number of triples only returns 6,657,233 triples (I have not yet checked which triples are missing, but there are more than 200,000 triples gone)

      Is there any hint on what I might be doing wrong or how to solve this problem?

      Thanks,
      Wolfgang