Informatievlaanderen / OSLO-SpecificationGenerator

Generates HTML specification pages based on RDF vocabularies.
1 stars 7 forks source link

jinja2.exceptions.UndefinedError: 'collections.OrderedDict object' has no attribute #31

Closed gezever closed 5 years ago

gezever commented 5 years ago

Bij "Generating vocabulary HTML specification from RDF" vanuit een eenvoudige rdf krijg ik een fout. :~/git/OSLO-SpecificationGenerator$ python specgen/generate_vocabulary.py --rdf waarde-ontology.rdf --output /tmp/waarde.html

Traceback (most recent call last): File "specgen/generate_vocabulary.py", line 127, in process_args() File "/home/gehau/git/OSLO-SpecificationGenerator/my-env/lib/python3.6/site-packages/click/core.py", line 764, in call return self.main(args, kwargs) File "/home/gehau/git/OSLO-SpecificationGenerator/my-env/lib/python3.6/site-packages/click/core.py", line 717, in main rv = self.invoke(ctx) File "/home/gehau/git/OSLO-SpecificationGenerator/my-env/lib/python3.6/site-packages/click/core.py", line 956, in invoke return ctx.invoke(self.callback, ctx.params) File "/home/gehau/git/OSLO-SpecificationGenerator/my-env/lib/python3.6/site-packages/click/core.py", line 555, in invoke return callback(args, kwargs) File "specgen/generate_vocabulary.py", line 55, in process_args xml_output = voc_to_spec(rdf, schema, schema_folder=schema_folder) File "/home/gehau/git/OSLO-SpecificationGenerator/specgen/entry.py", line 214, in voc_to_spec return render_template(fp, schema, schema_folder, contributors=contributors) File "/home/gehau/git/OSLO-SpecificationGenerator/specgen/entry.py", line 193, in render_template kwargs).encode('utf-8') File "/home/gehau/git/OSLO-SpecificationGenerator/my-env/lib/python3.6/site-packages/jinja2/asyncsupport.py", line 76, in render return original_render(self, *args, **kwargs) File "/home/gehau/git/OSLO-SpecificationGenerator/my-env/lib/python3.6/site-packages/jinja2/environment.py", line 1008, in render return self.environment.handle_exception(exc_info, True) File "/home/gehau/git/OSLO-SpecificationGenerator/my-env/lib/python3.6/site-packages/jinja2/environment.py", line 780, in handle_exception reraise(exc_type, exc_value, tb) File "/home/gehau/git/OSLO-SpecificationGenerator/my-env/lib/python3.6/site-packages/jinja2/_compat.py", line 37, in reraise raise value.with_traceback(tb) File "/home/gehau/git/OSLO-SpecificationGenerator/templates/default.j2", line 327, in top-level template code

Eigenschap {{ eigenschap['label'] }}

File "/home/gehau/git/OSLO-SpecificationGenerator/my-env/lib/python3.6/site-packages/jinja2/environment.py", line 411, in getitem return obj[argument] jinja2.exceptions.UndefinedError: 'collections.OrderedDict object' has no attribute 'property_nl:https://data.milieuinfo.be/ns/waarde#tothoek'

https://raw.githubusercontent.com/milieuinfo/ontologies/master/be/milieuinfo/data/ns/waarde/waarde-ontology.rdf

gezever commented 5 years ago

@bertvannuffelen Kan jij dit opnemen?

bertvannuffelen commented 5 years ago

@gezever

Heb je het al met een ander template geprobeerd? Ik zie in de OSLO toolchain dat we de default.j2 niet gebruiken, maar voor de vocabularia ocabularynlv2.j2

Daarnaast een heads-up: we gaan de python implementatie vervangen door de javascript implementatie met als basis een jsonld input.

mvg,

Bert

gezever commented 5 years ago

@bertvannuffelen Waarom moet ik een template gebruiken? De rdf die ik gebruik is standaard rdf geserialiseerd door apache jena (java) en bij het python command moet je geen template meegeven : ./specgen/generate_vocabulary.py --rdf {rdf_path} --output {output_file_path} Python vind ik persoonlijk veel gebruiksvriendelijker en duidelijker dan javascript. Json-ld is voor mij een serialisatieformaat en mi. zou het niet mogen uitmaken of er nt, rdf-xml of json-ld wordt meegegeven. Wordt er gekeken naar deze bug? Vriendelijke groeten, Geert

bertvannuffelen commented 5 years ago

Je gebruikt altijd een template, als je die niet opgeeft gebruik je de default. De parameters zijn --schema