Closed mvanbrab closed 6 years ago
Dus de foutmelding wordt veroorzaakt omdat de template maar 1 <owl:Ontology />
tag aan kan. Afhankeljk van welke hij eerst ziet krijg je dan dus die fout of niet?
Moeten we dan wel zo een tag genereren wanneer we de contributors parsen?
Als in de oproep generate_vocabulary.py --contributors iets anders zou worden gegenereerd, wat dan correct opgevangen wordt in generate_vocabulary.py --merge, dan zou dat even goed zijn als oplossing. Alleen is de tussentijds .ttl dan anders. Is dat niet moeilijker als oplossing dan gewoon kijken als voor alle owl:Ontology tags de waarde van rdf:about hetzelfde is?
De root cause hier is dat de ontology waar de contributors in zitten niet noodzakelijk gelijk is aan de ontology die we proberen omzetten naar HTML.
Dit kan opgelost worden door de workflow aan te passen waarmee de contributors toegevoegd worden. Als we de contributor triples rechtstreeks toevoegen aan de ontology in plaats van eerste apart om te zetten naar RDF en dan te mergen, kan dit probleem zich niet voor doen.
Ik heb dit al werkend lokaal, maar moet de code nog een beetje opkuisen.
Als in een oproep van generate_vocabulary.py --contributors (etc) de kolom, aangeduid met --csv_contributor_role_column, niet overeenkomt met de naam van de vocabulary, dan resulteert dat de ene keer in een foutmelding + geen nieuwe output, de andere keer in geen foutmelding + wel nieuwe output.
Voorgestelde oplossing: een foutmelding geven op plaats (*) aangeduid in de analyse hieronder.
Analyse:
De output .rdf van generate_vocabulary.py --contributors (etc) bevat een sectie
waarbij xxxx is afgeleid van de aangeduide kolomheader.
Wanneer dan later die .rdf gemerged wordt met de .ttl die uit EA-to-RDF komt, in een oproep van generate_vocabulary.py --merge (etc), bevat het finale .ttl bestand een sectie
en een sectie
waarin xxxx zoals hierboven en yyyy de vocabularium naam zoals in de .ttl uit EA-to-RDF.
Een voorbeeld: (adres.ttl, extensie gewijzigd in .txt voor github): adres.txt. In dit voorbeeld is xxxx=generiek (omdat Generiek werd opgegeven als kolom) en yyyy=adres (het vocabularium waarvoor de output wordt gegenereerd).
(*) Hier een foutmelding geven op de twee verschillende secties zou helpen!
Als dan in de finale stap met een oproep van generate_vocabulary de html wordt gegenereerd, geeft dit (random) al dan niet een foutmelding. De foutmelding is van de vorm: jinja2.exceptions.UndefinedError: 'collections.OrderedDict object' has no attribute 'class_nl:http://www.w3.org/ns/locn#Yyyy' In geval van foutmelding is er geen nieuwe html output, in het andere geval wel.