Skip to content

Commit

Permalink
improved the CSV to JSON-LD
Browse files Browse the repository at this point in the history
  • Loading branch information
ali1k committed Oct 18, 2018
1 parent bdc988e commit 2eabd2d
Show file tree
Hide file tree
Showing 2 changed files with 19 additions and 12 deletions.
24 changes: 15 additions & 9 deletions plugins/import/CSVMapper.js
Original file line number Diff line number Diff line change
Expand Up @@ -93,10 +93,10 @@ class CSVMapper {
});
for(let prop in output){
if(prop === 'idColumn'){
output[prop] = output[prop].replace(v, '');
output[prop] = output[prop];
}else if(prop === 'skippedColumns'){
output.skippedColumns = output.skippedColumns.map((item)=> {
return item.replace(v, '');
return item;
})
} else {
output[prop] = output[prop];
Expand All @@ -106,10 +106,14 @@ class CSVMapper {
let tmp2 = output['csvFile'].split('\/');
output['csvFile'] = tmp2[tmp2.length - 1];
output['customMappings'] = {};
const vFixed = 'http://ld-r.org/v/';
parsed2.results.bindings.forEach(function(el) {
settingProp = el.source.value.replace(v, '').replace('_mapTo', '').trim();
output['customMappings'][settingProp] = el.target.value;
//output['customMappings'][settingProp] = el.target.value.replace(v, '').trim();
settingProp = el.source.value.replace(vFixed, '').replace('_mapTo', '').trim();
if(settingProp === el.target.value.replace(vFixed, '')){
output['customMappings'][settingProp] = el.target.value.replace(vFixed, '');
}else{
output['customMappings'][settingProp] = el.target.value;
}
});
return output;
}
Expand Down Expand Up @@ -155,8 +159,10 @@ class CSVMapper {
`;
let options_select = [];
let customMappings = columns.map((item, itemc)=> {
options_select.push(`v:${camelCase(item)}`);
return `v:${camelCase(item)}_mapTo v:${camelCase(item)} ;`;
if(item.trim()){
options_select.push(`"""${camelCase(item)}"""`);
return `v:${camelCase(item)}_mapTo v:${camelCase(item)} ;`;
}
});
let options_select_St = options_select.join(', ');
const query = `
Expand All @@ -166,8 +172,8 @@ class CSVMapper {
rdfs:label "mapping configurations for ${filePath}" ;
ldr:delimiter """${delimiter}""";
ldr:entityType v:Entity ;
ldr:idColumn v:${camelCase(columns[0])};
ldr:skippedColumns v:${camelCase(columns[0])};
ldr:idColumn """${camelCase(columns[0])}""";
ldr:skippedColumns """${camelCase(columns[0])}""";
ldr:customMappings r:${cmRND};
ldr:resourcePrefix <${resourcePrefix}>;
ldr:vocabPrefix <${vocabPrefix}>;
Expand Down
7 changes: 4 additions & 3 deletions services/import.js
Original file line number Diff line number Diff line change
Expand Up @@ -112,7 +112,6 @@ export default {
} else if (resource === 'import.jsonld') {
//generate and upload the JSON-LD file from CSV config
getJSONLDConfig(params.resourceURI, {}, (res)=>{
//console.log(res);
//console.log(res);
//start creating JOSN-LD
let csvPath = path.join(__dirname, '..', uploadFolder[0] + '/' + res.csvFile);
Expand Down Expand Up @@ -205,12 +204,14 @@ export default {
let tmpObj = {};
tmpObj['@type'] = contextOptions['entityType'];
for(let prop in data){
//console.log(prop.toLowerCase(), contextOptions['idColumn'].toLowerCase());
if(!prop.trim()){
continue;
}
if(prop.toLowerCase() === contextOptions['idColumn'].toLowerCase()){
tmpObj['@id'] = 'r:' + encodeURIComponent(camelCase(data[prop]));
}
if(contextOptions['skippedColumns'].indexOf(camelCase(prop)) === -1){
if(contextOptions['customMappings'] && contextOptions['customMappings'][camelCase(prop)]){
if(contextOptions['customMappings'] && contextOptions['customMappings'][camelCase(prop)] && contextOptions['customMappings'][camelCase(prop)] !== camelCase(prop)){
tmpObj[contextOptions['customMappings'][camelCase(prop)]] = isNaN(data[prop]) ? data[prop] : Number(data[prop]) ;
}else{
tmpObj['v:'+camelCase(prop)] = isNaN(data[prop]) ? data[prop] : Number(data[prop]) ;
Expand Down

0 comments on commit 2eabd2d

Please sign in to comment.