private synchronized WorksheetR2RMLJenaModelParser loadModel(R2RMLMappingIdentifier modelIdentifier) throws JSONException, KarmaException { if(readModelParsers.containsKey(modelIdentifier.getName())) { return readModelParsers.get(modelIdentifier.getName()); } WorksheetR2RMLJenaModelParser parser = new WorksheetR2RMLJenaModelParser(modelIdentifier); this.readModelParsers.put(modelIdentifier.getName(), parser); return parser; }
public void setRdfGenerationRoot(String rdfGenerationRoot, String modelName) { try{ if (rdfGenerationRoot != null && !rdfGenerationRoot.isEmpty()){ KR2RMLMapping kr2rmlMapping = generator.getModelParser(modelName).parse(); String triplesMapId = kr2rmlMapping.translateGraphNodeIdToTriplesMapId(rdfGenerationRoot); if(triplesMapId != null){ this.rdfGenerationRoot = triplesMapId; }else{ throw new RuntimeException("triplesMapId not found for rdfGenerationRoot:" + rdfGenerationRoot); } } } catch (KarmaException | JSONException | IOException e) { LOG.error("Not able to set root", e); throw new RuntimeException("Unable to set rdf generation root: " + e.getMessage()); } } }
private void loadModel() throws IOException { if (model != null) { return; } synchronized(this) { if(model == null) { this.model = loadSourceModelIntoJenaModel(id); } } }
pw.close(); R2RMLMappingIdentifier tempId = new R2RMLMappingIdentifier(tmp.toURI().toURL().toString(), tmp.toURI().toURL(), null); Model model = WorksheetR2RMLJenaModelParser.loadSourceModelIntoJenaModel(tempId); tmp.delete(); R2RMLMappingIdentifier identifier = new R2RMLMappingIdentifier(mapping.getId().getName(), new URL(url), null); WorksheetR2RMLJenaModelParser parser = new WorksheetR2RMLJenaModelParser(model, identifier); mapping = parser.parse(); } catch (Exception e) { e.printStackTrace();
logger.debug("Generating RDF..."); WorksheetR2RMLJenaModelParser parserTest = new WorksheetR2RMLJenaModelParser(id); KR2RMLMapping mapping = parserTest.parse(); for (KR2RMLRDFWriter writer : writers) { removeWorkspace(workspace); parserTest = new WorksheetR2RMLJenaModelParser(id); mapping = parserTest.parse(); workspace = initializeWorkspace(contextParameters); factory = workspace.getFactory();
public KR2RMLMapping parse() throws IOException, KarmaException, JSONException loadModel(); Resource mappingResource = getMappingResourceFromSourceName(); if (mappingResource == null) { throw new KarmaException("Resource not found in model for the source: " + id.getName()); SourceTypes sourceType = getSourceType(mappingResource); kr2rmlMapping.setColumnNameFormatter(KR2RMLColumnNameFormatterFactory.getFormatter(sourceType)); loadWorksheetHistory(mappingResource, kr2rmlMapping); List<Resource> subjectResources = createSubjectMaps(mappingResource, kr2rmlMapping); createPredicateObjectMaps(mappingResource, kr2rmlMapping); calculateColumnNodesCoveredByBlankNodes(kr2rmlMapping, subjectResources); createGraphNodeToTriplesNodeMap(kr2rmlMapping); return mapping = kr2rmlMapping;
objMap = new ObjectMap(getNewObjectMapId(objectMapCounter++), rfMap); objMap = new ObjectMap(getNewObjectMapId(objectMapCounter++), TemplateTermSetBuilder.constructTemplateTermSetFromR2rmlColumnString( colNode.toString(), formatter), rdfLiteralTypeTermSet); objMap = new ObjectMap(getNewObjectMapId(objectMapCounter++), objTemplTermSet, rdfLiteralTypeTermSet); addColumnNameToPredObjectMapLink(objMap, pom, kr2rmlMapping); if(isValidTemplate(terms)) TemplateTermSet rdfLiteralTypeTermSet = new TemplateTermSet(); rdfLiteralTypeTermSet.addTemplateTermToSet(rdfLiteralTypeTerm); ObjectMap objMap = new ObjectMap(getNewObjectMapId(objectMapCounter++), subjTemplTermSet, rdfLiteralTypeTermSet); pom.setObject(objMap); trMap.addPredicateObjectMap(pom); addColumnNameToPredObjectMapLink(objMap, pom, kr2rmlMapping);
private void createPredicateObjectMaps(Resource mappingResource, KR2RMLMapping kr2rmlMapping) throws JSONException { Property hasTrMapUri = model.getProperty(Uris.KM_HAS_TRIPLES_MAP_URI); // Get all the triple maps NodeIterator trMapsResItr = model.listObjectsOfProperty(mappingResource, hasTrMapUri); while (trMapsResItr.hasNext()) { // Add the predicate object maps addPredicateObjectMapsForTripleMap(trMapsResItr.next().asResource(), kr2rmlMapping); } }
private List<Resource> createSubjectMaps(Resource mappingResource, KR2RMLMapping kr2rmlMapping) throws JSONException { List<Resource> subjectMapResources = new ArrayList<>(); Property hasTrMapUri = model.getProperty(Uris.KM_HAS_TRIPLES_MAP_URI); // Get all the triple maps NodeIterator trMapsResItr = model.listObjectsOfProperty(mappingResource, hasTrMapUri); while (trMapsResItr.hasNext()) { Resource trMapRes = trMapsResItr.next().asResource(); SubjectMap subjMap = addSubjectMapForTripleMap(trMapRes, kr2rmlMapping, subjectMapResources); // Add the Triples map TriplesMap trMap = new TriplesMap(trMapRes.getURI(), subjMap); kr2rmlMapping.getTriplesMapIndex().put(trMapRes.getURI(), trMap); kr2rmlMapping.addTriplesMap(trMap); kr2rmlMapping.getAuxInfo().getTriplesMapGraph().addTriplesMap(trMap); } return subjectMapResources; }
private JSONArray extractHistoryFromModel(Workspace workspace, UpdateContainer uc) throws RepositoryException, RDFParseException, IOException, JSONException, KarmaException { if(r2rmlModelFile != null) { Worksheet ws = workspace.getFactory().getWorksheet(worksheetId); R2RMLMappingIdentifier id = new R2RMLMappingIdentifier(ws.getTitle(), r2rmlModelFile); WorksheetR2RMLJenaModelParser parser = new WorksheetR2RMLJenaModelParser(id); KR2RMLMapping mapping = parser.parse(); KR2RMLVersion version = mapping.getVersion(); if(version.compareTo(KR2RMLVersion.current) < 0) { uc.add(new InfoUpdate("Model version is " + version.toString() + ". Current version is " + KR2RMLVersion.current.toString() + ". Please publish it again.")); } return mapping.getWorksheetHistory(); } else { uc.add(new ErrorUpdate("Model could not be found")); return new JSONArray(); } }
logger.debug("Parsing mapping for {}", sourceName); KR2RMLMapping mapping = modelParser.parse(); logger.debug("Parsed mapping for {}", sourceName); applyHistoryToWorksheet(workspace, worksheet, mapping);
try { R2RMLMappingIdentifier modelIdentifier = new R2RMLMappingIdentifier(modelURL.toString(), modelURL, null); Model model = WorksheetR2RMLJenaModelParser.loadSourceModelIntoJenaModel(modelIdentifier); Property rdfTypeProp = model.getProperty(Uris.RDF_TYPE_URI); Property baseURIProp = model.getProperty(Uris.KM_HAS_BASEURI);
StringWriter test = new StringWriter(); R2RMLMappingIdentifier modelId = new R2RMLMappingIdentifier(modelUrl, url, null); Model model = WorksheetR2RMLJenaModelParser.loadSourceModelIntoJenaModel(modelId); Property rdfTypeProp = model.getProperty(Uris.RDF_TYPE_URI);