KR2RMLColumnNameFormatter columnNameFormatter = mapping.getColumnNameFormatter();
RepFactory factory = workspace.getFactory();
// Add the subject map statements
SubjectMap sjMap = trMap.getSubject();
BNode sjBlankNode = f.createBNode();
con.add(trMapUri, repoURIs.get(Uris.RR_SUBJECTMAP_URI), sjBlankNode);
con.add(mappingRes, repoURIs.get(Uris.KM_HAS_SUBJECT_MAP_URI), sjBlankNode);
con.add(sjBlankNode, repoURIs.get(Uris.KM_IS_PART_OF_MAPPING_URI), mappingRes);
// Add the subject map type statement
con.add(sjBlankNode, RDF.TYPE, repoURIs.get(Uris.RR_SUBJECTMAP_CLASS_URI));
// Add the node id for the subject
Value nodeIdVal = f.createLiteral(sjMap.getId());
con.add(sjBlankNode, repoURIs.get(Uris.KM_NODE_ID_URI), nodeIdVal);
// Add the type for subject maps
List<TemplateTermSet> rdfsTypes = sjMap.getRdfsType();
for (TemplateTermSet typeTermSet:rdfsTypes) {
if (typeTermSet.isSingleUriString()) {
URI sjTypeUri = f.createURI(typeTermSet.getR2rmlTemplateString(factory, columnNameFormatter));
con.add(sjBlankNode, repoURIs.get(Uris.RR_CLASS_URI), sjTypeUri);
} else {
if (typeTermSet.isSingleColumnTerm()) {
BNode typeBlankNode = f.createBNode();
String colRepr = typeTermSet.getR2rmlTemplateString(factory, columnNameFormatter);
con.add(typeBlankNode, repoURIs.get(Uris.RR_TEMPLATE_URI), f.createLiteral(colRepr));
con.add(sjBlankNode, repoURIs.get(Uris.RR_CLASS_URI), typeBlankNode);
}
}