Hello Christopher,
Thanks for your interest in OWLIM and thanks for the detailed question
and sample code. Unfortunately however, I can not reproduce your
problem. I have added a test-case to our test-suite and run it against
OWLIM-Lite and OWLIM-SE versions 4.3 and 5.0 with the following (edited)
output:
OWLIM-Lite 4.3
http://example.org/context1
http://example.org/context2
Showing entities of type Person
(_:node1, http://www.w3.org/1999/02/22-rdf-syntax-ns#type,
http://example.org/ontology#Person, http://example.org/context2)
(_:node1, http://www.w3.org/1999/02/22-rdf-syntax-ns#type,
http://example.org/ontology#Person, http://example.org/context1)
OWLIM-SE 4.3
http://example.org/context1
http://example.org/context2
Showing entities of type Person
_:node1 http://www.w3.org/1999/02/22-rdf-syntax-ns#type
http://example.org/ontology#Person http://example.org/context1
_:node1 http://www.w3.org/1999/02/22-rdf-syntax-ns#type
http://example.org/ontology#Person http://example.org/context2
OWLIM-Lite 5.0
http://example.org/context1
http://example.org/context2
Showing entities of type Person
(_:node1, http://www.w3.org/1999/02/22-rdf-syntax-ns#type,
http://example.org/ontology#Person, http://example.org/context2)
(_:node1, http://www.w3.org/1999/02/22-rdf-syntax-ns#type,
http://example.org/ontology#Person, http://example.org/context1)
OWLIM-SE 5.0
http://example.org/context1
http://example.org/context2
Showing entities of type Person
_:node1 http://www.w3.org/1999/02/22-rdf-syntax-ns#type
http://example.org/ontology#Person http://example.org/context1
_:node1 http://www.w3.org/1999/02/22-rdf-syntax-ns#type
http://example.org/ontology#Person http://example.org/context2
Several things spring to mind:
1. What edition of OWLIM are you using (Lite, SE or Enterprise)?
2. What is the exact version of OWLIM, including the build number?
Something like this: 4.3.????
Best,
barry
Barry Bishop
OWLIM Product Manager
Ontotext AD
Tel: +43 650 2000 237
email: [email protected]
skype: bazbishop
www.ontotext.com
On 12/05/12 14:43, Lott, Christopher M wrote:
I am writing to ask for help with Owlim treatment of Sesame contexts. We are
using Owlim version 4.3 and Sesame version 2.6.5. I noticed that when I add a
statement to two contexts and then ask the repository for the known contexts,
Owlim only shows one of the contexts. The same test works as expected on a
local, in-memory repository. Please see the attached Java test program, which
exhibits different behavior when run on an in-memory repository versus a remote
Owlim repository. This is a pure storage/retrieval question; to the best of my
knowledge I am not using any reasoning at all. Thanks in advance for
suggestions.
-=-=-=-=-=-=-=-=-
import org.openrdf.model.Resource;
import org.openrdf.model.Statement;
import org.openrdf.model.URI;
import org.openrdf.model.ValueFactory;
import org.openrdf.model.vocabulary.RDF;
import org.openrdf.repository.Repository;
import org.openrdf.repository.RepositoryConnection;
import org.openrdf.repository.RepositoryResult;
import org.openrdf.repository.http.HTTPRepository;
import org.openrdf.repository.sail.SailRepository;
import org.openrdf.sail.memory.MemoryStore;
/**
* Adds a single entity with two contexts to test context implementation. Uses
a
* memory repository if the program is invoked with no arguments. If a single
* argument is supplied, treats it as the URI of a remote repository and runs
* the test using that repository.
*
* Depends on artifacts from the OpenRDF project as specified in pom.xml.
*
* @author clott
*/
public class TestOneEntityTwoContexts {
public static void main(String[] args) {
try {
// Get started
Repository repo = null;
if (args.length != 1) {
System.out.println("Creating an in-memory Sail
repository");
repo = new SailRepository(new MemoryStore());
repo.initialize();
} else {
System.out.println("Using remote repository at
" + args[0]);
repo = new HTTPRepository(args[0]);
}
// Open a connection.
RepositoryConnection con = repo.getConnection();
// Create some resources and literals to use in
statements
ValueFactory f = repo.getValueFactory();
String namespace = "http://example.org/ontology#";
URI personClassUri = f.createURI(namespace + "Person");
// Use these two contexts
URI context1 =
f.createURI("http://example.org/context1");
URI context2 =
f.createURI("http://example.org/context2");
URI[] contexts = new URI[] { context1, context2 };
// Add entity
System.out.println("Adding entity of type Person");
Resource entity = f.createBNode();
con.add(entity, RDF.TYPE, personClassUri, contexts);
// Query and show contexts
System.out.println("Repository contexts:");
RepositoryResult<Resource> repoContexts =
con.getContextIDs();
int conCount = 0;
while (repoContexts.hasNext()) {
++conCount;
Resource r = repoContexts.next();
System.out.println(r);
}
// Show results: expect two statements
System.out.println("Showing entities of type Person");
RepositoryResult<Statement> stmts =
con.getStatements(null,
RDF.TYPE, personClassUri, false);
int stmtCount = 0;
while (stmts.hasNext()) {
++stmtCount;
System.out.println(stmts.next());
}
stmts.close();
// Remove the newly added statements from all context
con.remove(entity, RDF.TYPE, personClassUri);
// Shut down
System.out.println("Closing repository connection");
con.close();
// Check result
if (conCount == 2&& stmtCount == 2)
System.out
.println("Pass, found expected
context and statement count of 2 each");
else
System.out.println("Fail, expected 2 contexts but
found "
+ conCount + "; expected 2
statements but found "
+ stmtCount);
} catch (Exception ex) {
ex.printStackTrace();
}
}
}
_______________________________________________
Owlim-discussion mailing list
[email protected]
http://ontomail.semdata.org/cgi-bin/mailman/listinfo/owlim-discussion
_______________________________________________
Owlim-discussion mailing list
[email protected]
http://ontomail.semdata.org/cgi-bin/mailman/listinfo/owlim-discussion