History | Log In     View a printable version of the current page. Get help!  
Issue Details [XML]

Key: SES-678
Type: Bug Bug
Status: Resolved Resolved
Resolution: Fixed
Priority: Major Major
Assignee: Arjohn Kampman
Reporter: Ken Wenzel
Votes: 0
Watchers: 0
Operations

If you were logged in you would be able to see more operations.
Sesame

Attribute includeInferred does not work as expected if federation is used

Created: 21/Aug/09 03:27 PM   Updated: 26/Aug/09 10:05 AM
Component/s: None
Affects Version/s: None
Fix Version/s: 3.0

File Attachments: 1. Java Source File RDFSchemaFederationRepositoryConnectionTest.java (4 kb)
2. Java Source File RDFSchemaFederationRepositoryConnectionTest.java (3 kb)
3. Java Source File RDFSchemaFederationRepositoryConnectionTest.java (0.9 kb)
4. Text File sesame-sail-federation.patch (3 kb)



 Description   
If Sesame's federation is used then the hasMatch/match methods always return inferred results regardless the value of includeInferred.

 All   Comments   Change History      Sort Order:
Comment by Ken Wenzel [21/Aug/09 03:30 PM]
Added unit test which reproduces the behaviour.

This test should be added to: sesame-store-compliance/src/test/java/org.openrdf.sail.federation

Comment by Ken Wenzel [21/Aug/09 04:09 PM]
Attached a new test which adds the ForwardChainingRDFSInferencer that was missing before.

I found that the invalid behaviour is only triggered when using queries to access the repository content.

Comment by Ken Wenzel [24/Aug/09 11:18 AM]
I found the cause for this problem.

OwnedTupleExpr didn't consider if inferred statements should be included or not.

I had to extend the constructor of FederationStrategy and the method OwnedTupleExpr.evaluate(...) to incorporate the includeInferred parameter.

These changes are included in sesame-sail-federation.patch

The latest version of RDFSchemaFederationRepositoryConnectionTest now extends RDFSchemaRepositoryConnectionTest and contained tests are passed after applying the patch.

I had to override the method testInferencerTransactionIsolation() since it uses blank nodes across different connections which violates the specification. I think the original method RDFSchemaRepositoryConnectionTest.testInferencerTransactionIsolation() should also be changed to use uris instead of blank nodes.

Comment by Arjohn Kampman [26/Aug/09 09:58 AM]
Patch has been applied to the trunk.

Comment by Arjohn Kampman [26/Aug/09 10:05 AM]
RDFSchemaRepositoryConnectionTest.testInferencerTransactionIsolation() has been modified to use URIs instead of BNodes.