Error when translating mapping file from YAML to RML
dgarijo opened this issue · comments
Daniel Garijo commented
Describe the bug
2023-05-04 19:08:11,348 | INFO: Translating YARRRML mapping to [R2]RML
2023-05-04 19:08:11,348 | ERROR: ERROR: The YARRRML mapping has not been translated
2023-05-04 19:08:11,349 | ERROR: can only concatenate str (not "list") to str
To Reproduce
python3 -m yatter -i yarrrml_mappings_cf_2016_v2.yaml -o test.ttl
Expected behavior
Mappings is translated into RML (it works with Matey)
YARRML file:
prefixes:
ecfo: "https://w3id.org/ecfo#"
qudt: "http://qudt.org/schema/qudt/"
skos: "http://www.w3.org/2004/02/skos/core#"
prov: "http://www.w3.org/ns/prov#"
time: "http://www.w3.org/2006/time#"
ecfo_instance: "https://w3id.org/ecfo/i/UK/BEIS/2016/"
dc: "http://purl.org/dc/elements/1.1/"
sources:
main-source: ['./data/conversion_factors_2016_modified.csv~csv']
mappings:
CF:
sources:
- main-source
s: ecfo_instance:CF_$(id)
po:
- [a, ecfo:EmissionConversionFactor]
- [rdfs:description, $(Column Text)]
- [ecfo:hasScope, https://w3id.org/ecfo#$(Scope)~iri]
- [rdf:value, $(GHG Conversion Factor 2016),xsd:float]
- [ecfo:hasTag, https://w3id.org/ecfo/i/$(Level 1)~iri]
- [ecfo:hasTag, https://w3id.org/ecfo/i/$(Level 2)~iri]
- [ecfo:hasTag, https://w3id.org/ecfo/i/$(Level 3)~iri]
- [ecfo:hasTag, https://w3id.org/ecfo/i/$(Level 4)~iri]
- [ecfo:sourceUnit, https://w3id.org/ecfo/i/$(UOM)~iri]
- [ecfo:targetUnit, https://w3id.org/ecfo/i/$(GHG)~iri]
- [ecfo:hasApplicablePeriod, ecfo_instance:applicablePeriod/$(valid_from)/$(valid_to)~iri]
- [ecfo:hasApplicableLocation, http://www.wikidata.org/entity/Q145~iri]
- [dc:publisher, https://w3id.org/ecfo/i/Organization/BEIS~iri]
- [prov:wasDerivedFrom, https://assets.publishing.service.gov.uk/government/uploads/system/uploads/attachment_data/file/558103/2016_Flat_format_file_v01-01.xlsx, xsd:anyURI]
Agent:
sources:
- main-source
s: "https://w3id.org/ecfo/i/Organization/BEIS"
po:
- [a, prov:Organization]
- [rdfs:label, 'BEIS',xsd:string]
TimeStart:
sources:
- main-source
s: ecfo_instance:applicablePeriod/$(valid_from)/$(valid_to)/start
po:
- [a, time:Instant]
- [time:inXSDDate, $(valid_from),xsd:dateTime]
TimeEnd:
sources:
- main-source
s: ecfo_instance:applicablePeriod/$(valid_from)/$(valid_to)/end
po:
- [a, time:Instant]
- [time:inXSDDate, $(valid_to),xsd:dateTime ]
TemporalEntity:
sources:
- main-source
s: ecfo_instance:applicablePeriod/$(valid_from)/$(valid_to)
po:
- [a, time:TemporalEntity]
- [time:hasBeginning, ecfo_instance:applicablePeriod/$(valid_from)/$(valid_to)/start~iri]
- [time:hasEnd, ecfo_instance:applicablePeriod/$(valid_from)/$(valid_to)/end~iri]
L1:
sources:
- main-source
s: https://w3id.org/ecfo/i/$(Level 1)
po:
- [a , skos:Concept]
- [rdfs:label, $(Level 1)]
L2:
sources:
- main-source
s: https://w3id.org/ecfo/i/$(Level 2)
po:
- [a , skos:Concept]
- [rdfs:label, $(Level 2)]
L3:
sources:
- main-source
s: https://w3id.org/ecfo/i/$(Level 3)
po:
- [a , skos:Concept]
- [rdfs:label, $(Level 3)]
L4:
sources:
- main-source
s: https://w3id.org/ecfo/i/$(Level 4)
po:
- [a , skos:Concept]
- [rdfs:label, $(Level 4)]
sourceUnit:
sources:
- main-source
s: https://w3id.org/ecfo/i/$(UOM)
po:
- [a , qudt:Unit]
- [rdfs:label, $(UOM)]
targetUnit:
sources:
- main-source
s: https://w3id.org/ecfo/i/$(GHG)
po:
- [a , qudt:Unit]
- [rdfs:label, $(GHG)]
David Chaves commented
Hi @dgarijo,
The issue has been solved at dev
branch. I'll generate a new release today for including the last fixes. In any case, here is the output of the translation.
@prefix ecfo: <https://w3id.org/ecfo#>.
@prefix qudt: <http://qudt.org/schema/qudt/>.
@prefix skos: <http://www.w3.org/2004/02/skos/core#>.
@prefix prov: <http://www.w3.org/ns/prov#>.
@prefix time: <http://www.w3.org/2006/time#>.
@prefix ecfo_instance: <https://w3id.org/ecfo/i/UK/BEIS/2016/>.
@prefix dc: <http://purl.org/dc/elements/1.1/>.
@prefix rr: <http://www.w3.org/ns/r2rml#>.
@prefix rml: <http://semweb.mmlab.be/ns/rml#>.
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>.
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>.
@prefix xsd: <http://www.w3.org/2001/XMLSchema#>.
@prefix ql: <http://semweb.mmlab.be/ns/ql#>.
@prefix d2rq: <http://www.wiwiss.fu-berlin.de/suhl/bizer/D2RQ/0.1#>.
@prefix foaf: <http://xmlns.com/foaf/0.1/>.
@prefix schema: <http://schema.org/>.
@prefix formats: <http://www.w3.org/ns/formats/>.
@prefix comp: <http://semweb.mmlab.be/ns/rml-compression#>.
@prefix void: <http://rdfs.org/ns/void#>.
@prefix fnml: <http://semweb.mmlab.be/ns/fnml#>.
@prefix grel: <http://users.ugent.be/~bjdmeest/function/grel.ttl#>.
@base <http://example.com/ns#>.
<CF_0> a rr:TriplesMap;
rml:logicalSource [
a rml:LogicalSource;
rml:source "./data/conversion_factors_2016_modified.csv";
rml:referenceFormulation ql:CSV
];
rr:subjectMap [
a rr:SubjectMap;
rr:template "ecfo_instance:CF_{id}";
];
rr:predicateObjectMap [
rr:predicateMap [
a rr:PredicateMap;
rr:constant rdf:type;
];
rr:objectMap [
a rr:ObjectMap;
rr:constant ecfo:EmissionConversionFactor;
];
];
rr:predicateObjectMap [
rr:predicateMap [
a rr:PredicateMap;
rr:constant rdfs:description;
];
rr:objectMap [
a rr:ObjectMap;
rml:reference "Column Text";
];
];
rr:predicateObjectMap [
rr:predicateMap [
a rr:PredicateMap;
rr:constant ecfo:hasScope;
];
rr:objectMap [
a rr:ObjectMap;
rr:template "https://w3id.org/ecfo#{Scope}";
rr:termType rr:IRI
];
];
rr:predicateObjectMap [
rr:predicateMap [
a rr:PredicateMap;
rr:constant rdf:value;
];
rr:objectMap [
a rr:ObjectMap;
rml:reference "GHG Conversion Factor 2016";
rr:datatype xsd:float
];
];
rr:predicateObjectMap [
rr:predicateMap [
a rr:PredicateMap;
rr:constant ecfo:hasTag;
];
rr:objectMap [
a rr:ObjectMap;
rr:template "https://w3id.org/ecfo/i/{Level 1}";
rr:termType rr:IRI
];
];
rr:predicateObjectMap [
rr:predicateMap [
a rr:PredicateMap;
rr:constant ecfo:hasTag;
];
rr:objectMap [
a rr:ObjectMap;
rr:template "https://w3id.org/ecfo/i/{Level 2}";
rr:termType rr:IRI
];
];
rr:predicateObjectMap [
rr:predicateMap [
a rr:PredicateMap;
rr:constant ecfo:hasTag;
];
rr:objectMap [
a rr:ObjectMap;
rr:template "https://w3id.org/ecfo/i/{Level 3}";
rr:termType rr:IRI
];
];
rr:predicateObjectMap [
rr:predicateMap [
a rr:PredicateMap;
rr:constant ecfo:hasTag;
];
rr:objectMap [
a rr:ObjectMap;
rr:template "https://w3id.org/ecfo/i/{Level 4}";
rr:termType rr:IRI
];
];
rr:predicateObjectMap [
rr:predicateMap [
a rr:PredicateMap;
rr:constant ecfo:sourceUnit;
];
rr:objectMap [
a rr:ObjectMap;
rr:template "https://w3id.org/ecfo/i/{UOM}";
rr:termType rr:IRI
];
];
rr:predicateObjectMap [
rr:predicateMap [
a rr:PredicateMap;
rr:constant ecfo:targetUnit;
];
rr:objectMap [
a rr:ObjectMap;
rr:template "https://w3id.org/ecfo/i/{GHG}";
rr:termType rr:IRI
];
];
rr:predicateObjectMap [
rr:predicateMap [
a rr:PredicateMap;
rr:constant ecfo:hasApplicablePeriod;
];
rr:objectMap [
a rr:ObjectMap;
rr:template "ecfo_instance:applicablePeriod/{valid_from}/{valid_to}";
rr:termType rr:IRI
];
];
rr:predicateObjectMap [
rr:predicateMap [
a rr:PredicateMap;
rr:constant ecfo:hasApplicableLocation;
];
rr:objectMap [
a rr:ObjectMap;
rr:constant <http://www.wikidata.org/entity/Q145>;
rr:termType rr:IRI
];
];
rr:predicateObjectMap [
rr:predicateMap [
a rr:PredicateMap;
rr:constant dc:publisher;
];
rr:objectMap [
a rr:ObjectMap;
rr:constant <https://w3id.org/ecfo/i/Organization/BEIS>;
rr:termType rr:IRI
];
];
rr:predicateObjectMap [
rr:predicateMap [
a rr:PredicateMap;
rr:constant prov:wasDerivedFrom;
];
rr:objectMap [
a rr:ObjectMap;
rr:constant <https://assets.publishing.service.gov.uk/government/uploads/system/uploads/attachment_data/file/558103/2016_Flat_format_file_v01-01.xlsx>;
rr:datatype xsd:anyURI
];
].
<Agent_0> a rr:TriplesMap;
rml:logicalSource [
a rml:LogicalSource;
rml:source "./data/conversion_factors_2016_modified.csv";
rml:referenceFormulation ql:CSV
];
rr:subjectMap [
a rr:SubjectMap;
rr:constant <https://w3id.org/ecfo/i/Organization/BEIS>;
];
rr:predicateObjectMap [
rr:predicateMap [
a rr:PredicateMap;
rr:constant rdf:type;
];
rr:objectMap [
a rr:ObjectMap;
rr:constant prov:Organization;
];
];
rr:predicateObjectMap [
rr:predicateMap [
a rr:PredicateMap;
rr:constant rdfs:label;
];
rr:objectMap [
a rr:ObjectMap;
rr:constant "BEIS";
rr:datatype xsd:string
];
].
<TimeStart_0> a rr:TriplesMap;
rml:logicalSource [
a rml:LogicalSource;
rml:source "./data/conversion_factors_2016_modified.csv";
rml:referenceFormulation ql:CSV
];
rr:subjectMap [
a rr:SubjectMap;
rr:template "ecfo_instance:applicablePeriod/{valid_from}/{valid_to}/start";
];
rr:predicateObjectMap [
rr:predicateMap [
a rr:PredicateMap;
rr:constant rdf:type;
];
rr:objectMap [
a rr:ObjectMap;
rr:constant time:Instant;
];
];
rr:predicateObjectMap [
rr:predicateMap [
a rr:PredicateMap;
rr:constant time:inXSDDate;
];
rr:objectMap [
a rr:ObjectMap;
rml:reference "valid_from";
rr:datatype xsd:dateTime
];
].
<TimeEnd_0> a rr:TriplesMap;
rml:logicalSource [
a rml:LogicalSource;
rml:source "./data/conversion_factors_2016_modified.csv";
rml:referenceFormulation ql:CSV
];
rr:subjectMap [
a rr:SubjectMap;
rr:template "ecfo_instance:applicablePeriod/{valid_from}/{valid_to}/end";
];
rr:predicateObjectMap [
rr:predicateMap [
a rr:PredicateMap;
rr:constant rdf:type;
];
rr:objectMap [
a rr:ObjectMap;
rr:constant time:Instant;
];
];
rr:predicateObjectMap [
rr:predicateMap [
a rr:PredicateMap;
rr:constant time:inXSDDate;
];
rr:objectMap [
a rr:ObjectMap;
rml:reference "valid_to";
rr:datatype xsd:dateTime
];
].
<TemporalEntity_0> a rr:TriplesMap;
rml:logicalSource [
a rml:LogicalSource;
rml:source "./data/conversion_factors_2016_modified.csv";
rml:referenceFormulation ql:CSV
];
rr:subjectMap [
a rr:SubjectMap;
rr:template "ecfo_instance:applicablePeriod/{valid_from}/{valid_to}";
];
rr:predicateObjectMap [
rr:predicateMap [
a rr:PredicateMap;
rr:constant rdf:type;
];
rr:objectMap [
a rr:ObjectMap;
rr:constant time:TemporalEntity;
];
];
rr:predicateObjectMap [
rr:predicateMap [
a rr:PredicateMap;
rr:constant time:hasBeginning;
];
rr:objectMap [
a rr:ObjectMap;
rr:template "ecfo_instance:applicablePeriod/{valid_from}/{valid_to}/start";
rr:termType rr:IRI
];
];
rr:predicateObjectMap [
rr:predicateMap [
a rr:PredicateMap;
rr:constant time:hasEnd;
];
rr:objectMap [
a rr:ObjectMap;
rr:template "ecfo_instance:applicablePeriod/{valid_from}/{valid_to}/end";
rr:termType rr:IRI
];
].
<L1_0> a rr:TriplesMap;
rml:logicalSource [
a rml:LogicalSource;
rml:source "./data/conversion_factors_2016_modified.csv";
rml:referenceFormulation ql:CSV
];
rr:subjectMap [
a rr:SubjectMap;
rr:template "https://w3id.org/ecfo/i/{Level 1}";
];
rr:predicateObjectMap [
rr:predicateMap [
a rr:PredicateMap;
rr:constant rdf:type;
];
rr:objectMap [
a rr:ObjectMap;
rr:constant skos:Concept;
];
];
rr:predicateObjectMap [
rr:predicateMap [
a rr:PredicateMap;
rr:constant rdfs:label;
];
rr:objectMap [
a rr:ObjectMap;
rml:reference "Level 1";
];
].
<L2_0> a rr:TriplesMap;
rml:logicalSource [
a rml:LogicalSource;
rml:source "./data/conversion_factors_2016_modified.csv";
rml:referenceFormulation ql:CSV
];
rr:subjectMap [
a rr:SubjectMap;
rr:template "https://w3id.org/ecfo/i/{Level 2}";
];
rr:predicateObjectMap [
rr:predicateMap [
a rr:PredicateMap;
rr:constant rdf:type;
];
rr:objectMap [
a rr:ObjectMap;
rr:constant skos:Concept;
];
];
rr:predicateObjectMap [
rr:predicateMap [
a rr:PredicateMap;
rr:constant rdfs:label;
];
rr:objectMap [
a rr:ObjectMap;
rml:reference "Level 2";
];
].
<L3_0> a rr:TriplesMap;
rml:logicalSource [
a rml:LogicalSource;
rml:source "./data/conversion_factors_2016_modified.csv";
rml:referenceFormulation ql:CSV
];
rr:subjectMap [
a rr:SubjectMap;
rr:template "https://w3id.org/ecfo/i/{Level 3}";
];
rr:predicateObjectMap [
rr:predicateMap [
a rr:PredicateMap;
rr:constant rdf:type;
];
rr:objectMap [
a rr:ObjectMap;
rr:constant skos:Concept;
];
];
rr:predicateObjectMap [
rr:predicateMap [
a rr:PredicateMap;
rr:constant rdfs:label;
];
rr:objectMap [
a rr:ObjectMap;
rml:reference "Level 3";
];
].
<L4_0> a rr:TriplesMap;
rml:logicalSource [
a rml:LogicalSource;
rml:source "./data/conversion_factors_2016_modified.csv";
rml:referenceFormulation ql:CSV
];
rr:subjectMap [
a rr:SubjectMap;
rr:template "https://w3id.org/ecfo/i/{Level 4}";
];
rr:predicateObjectMap [
rr:predicateMap [
a rr:PredicateMap;
rr:constant rdf:type;
];
rr:objectMap [
a rr:ObjectMap;
rr:constant skos:Concept;
];
];
rr:predicateObjectMap [
rr:predicateMap [
a rr:PredicateMap;
rr:constant rdfs:label;
];
rr:objectMap [
a rr:ObjectMap;
rml:reference "Level 4";
];
].
<sourceUnit_0> a rr:TriplesMap;
rml:logicalSource [
a rml:LogicalSource;
rml:source "./data/conversion_factors_2016_modified.csv";
rml:referenceFormulation ql:CSV
];
rr:subjectMap [
a rr:SubjectMap;
rr:template "https://w3id.org/ecfo/i/{UOM}";
];
rr:predicateObjectMap [
rr:predicateMap [
a rr:PredicateMap;
rr:constant rdf:type;
];
rr:objectMap [
a rr:ObjectMap;
rr:constant qudt:Unit;
];
];
rr:predicateObjectMap [
rr:predicateMap [
a rr:PredicateMap;
rr:constant rdfs:label;
];
rr:objectMap [
a rr:ObjectMap;
rml:reference "UOM";
];
].
<targetUnit_0> a rr:TriplesMap;
rml:logicalSource [
a rml:LogicalSource;
rml:source "./data/conversion_factors_2016_modified.csv";
rml:referenceFormulation ql:CSV
];
rr:subjectMap [
a rr:SubjectMap;
rr:template "https://w3id.org/ecfo/i/{GHG}";
];
rr:predicateObjectMap [
rr:predicateMap [
a rr:PredicateMap;
rr:constant rdf:type;
];
rr:objectMap [
a rr:ObjectMap;
rr:constant qudt:Unit;
];
];
rr:predicateObjectMap [
rr:predicateMap [
a rr:PredicateMap;
rr:constant rdfs:label;
];
rr:objectMap [
a rr:ObjectMap;
rml:reference "GHG";
];
].
David Chaves commented
btw, do you mind if I include this mapping as part of the testing?
Daniel Garijo commented
Please do. If you want more tests, now they also include some language tags: https://github.com/TEC-Toolkit/cfkg/blob/main/BEIS-UK/mappings/yarrml/yarrrml_mappings_cf_2016_v2.yaml
David Chaves commented
thanks!