Importing RDF
Wandora reads RDF(S) and N3 files. Import starts with File > Import > Simple RDF(S) Import... or File > Import > Simple N3 Import.... Wandora converts imported RDF triplets to topics, associations and occurrences. Convert schema is very simple and pays no attention to semantics of RDF for example. Lets see the conversion process more detailed.
A topic is created for RDF subject, predicate and object object. A binary association is created for each triplet. Predicate is set association's type while subject and object are set players. RDF does not support association roles and subject's and object's roles are set to predefined topics of Wandora.
public void handleStatement(Statement stmt,TopicMap map,Topic subjectType,Topic predicateType,Topic objectType) throws TopicMapException {
Resource subject = stmt.getSubject(); // get the subject
Property predicate = stmt.getPredicate(); // get the predicate
RDFNode object = stmt.getObject(); // get the object
Topic subjectTopic = getOrCreateTopic(map, subject.toString());
Topic predicateTopic = getOrCreateTopic(map, predicate.toString());
subjectTopic.addType(subjectType);
predicateTopic.addType(predicateType);
if(object.isLiteral()) {
subjectTopic.setData(predicateTopic, getOrCreateTopic(map, occurrenceScopeSI), ((Literal) object).getString());
}
else if(object.isResource()) {
Topic objectTopic = getOrCreateTopic(map, object.toString());
Association association = map.createAssociation(predicateTopic);
association.addPlayer(subjectTopic, subjectType);
association.addPlayer(objectTopic, objectType);
objectTopic.addType(objectType);
}
else if(object.isURIResource()) {
log("URIResource found but not handled!");
}
}