Informatievlaanderen / OSLO-toolchain

2 stars 0 forks source link

Ongewenste prefix bij usagenotes vh type NOTE #65

Closed GeertThijs closed 4 years ago

GeertThijs commented 4 years ago

Link naar een voorbeeld waar het probleem zichtbaar is bv https://test.data.vlaanderen.be/doc/applicatieprofiel/mobiliteit-trips-en-aanbod/kandidaatstandaard/2020-04-09#Reiziger.

Omschrijving van het probleem De usagenote wordt voorafgegegaan door "NOTE$ea_notes=" als het een Usagenote vh type NOTE is.

Omschrijving van een mogelijke oplossing aanpassen in toolchain.

bertvannuffelen commented 4 years ago

https://github.com/Informatievlaanderen/OSLO-Generated/blob/test/report/doc/applicatieprofiel/mobiliteit-trips-en-aanbod/kandidaatstandaard/2020-04-09/all-mobiliteit-trips-en-aanbod-ap.jsonld

@GeertThijs ik zie in de report (link hierboven) dat voor Reis.vervoersbewijs het wel voor label-nl en definition-nl tag zonder die bijkomende prefix wordt gedaan, terwijl het gerapporteerde verschijnsel enkel voor de usageNote verschijnt. Ik vermoed dat dit een EA effect is dat we moeten bestuderen.

GeertThijs commented 4 years ago

@Bert: Het is zo dat strings van meer dan 256 karakters in tags worden afgekapt. Een workaround in de toolchain is dat we in dat geval NOTE als string gebruiken, wat voor de toolchain een teken is dat de waarde vd tag gelezen moet worden uit de tagnota. Dat deed de toolchain vroeger perefect, maar sinds kort (?) staat er dus NOTE gevolgd door $ea_notes= gevolgd door de werkelijke inhoud van de tagnota. Voor alle duidelijkheid: voor label is het gebruik van NOTE nooit nodig, soms eens voor definition-nl maar voor usageNote-nl komt het iets meer voor. Als dit toch aan EA zou liggen zou dat betekenen dat we niet met JET3.5 werken (in 4.0 is mogelijk de opslag van sommige velden anders in het EA model). Maar voor zover ik weet kan de toolchain (nog) geen JET 4.0 inlezen.

bertvannuffelen commented 4 years ago

@GeertThijs Kan je in de EAP naar het voorbeeld dat ik verwees in mijn eerste comment kijken? Directe link is https://github.com/Informatievlaanderen/OSLO-Generated/blob/test/report/doc/applicatieprofiel/mobiliteit-trips-en-aanbod/kandidaatstandaard/2020-04-09/all-mobiliteit-trips-en-aanbod-ap.jsonld#L7512

EA-to-RDF genereert de volgende json structuur:

 {
      "@id": "https://data.vlaanderen.be/ns/mobiliteit/trips-en-aanbod#reis.vervoersbewijs",
      "@type": "http://www.w3.org/2002/07/owl#ObjectProperty",
      "name": {
        "nl": "vervoersbewijs"
      },
      "inpackage": "ACTIVE_PACKAGE",
      "usage": {
        "nl": "NOTE$ea_notes=Dit is het Vervoersbewijs waarmee men de Reis wil uitvoeren of men de Reis heeft uitgevoerd. Bv het gekochte ticket of het abonnement waarover men beschikt."
      },
      "definition": {
        "nl": "Vervoersbewijs voor de Reis."
      },
      "label": {
        "nl": "vervoersbewijs"
      },
      "ap-label-nl": {
        "nl": "vervoersbewijs"
      },
      "ap-definition-nl": {
        "nl": "Vervoersbewijs voor de Reis."
      },
      "extra": {
        "EA-Name": "vervoersbewijs",
        "EA-Guid": "{D796078E-2AEA-4f26-AE4E-49A959C5B410}",
        "derived": "true",
        "EA-Package": "",
        "EA-Type": "connector",
        "EA-Domain": "Reis",
        "EA-Domain-Guid": "{457E1E23-40B0-4ca6-840C-49CD251C9EDD}",
        "EA-Range": "Vervoersbewijs",
        "RangeData": {
          "EA-Name": "Vervoersbewijs",
          "EA-GUID": "{AE6E849B-E2BB-4a9b-8853-060D1FE2308E}",
          "EA-Package": "OSLO-Mobiliteit-Trips-En-Aanbod",
          "uri": "https://data.vlaanderen.be/ns/mobiliteit/trips-en-aanbod#Vervoersbewijs"
        },
        "sourceRole": "null",
        "destRole": "vervoersbewijs",
        "label": {
          "nl": "vervoersbewijs"
        },
        "definition": {
          "nl": "Vervoersbewijs voor de Reis."
        },
        "usage": {
          "nl": "NOTE$ea_notes=Dit is het Vervoersbewijs waarmee men de Reis wil uitvoeren of men de Reis heeft uitgevoerd. Bv het gekochte ticket of het abonnement waarover men beschikt."
        },
        "ap-label-nl": {
          "nl": "vervoersbewijs"
        },
        "ap-definition-nl": {
          "nl": "Vervoersbewijs voor de Reis."
        },
        "ap-usageNote-nl": "",
        "ap-codelist": "",
        "RawTags": [
          {
            "key": "definition-nl",
            "value": "NOTE",
            "note": "Vervoersbewijs voor de Reis."
          },
          {
            "key": "label-nl",
            "value": "NOTE",
            "note": "vervoersbewijs"
          },
          {
            "key": "name",
            "value": "NOTE",
            "note": "Reis.vervoersbewijs"
          },
          {
            "key": "usageNote-nl",
            "value": "NOTE",
            "note": "NOTE$ea_notes=Dit is het Vervoersbewijs waarmee men de Reis wil uitvoeren of men de Reis heeft uitgevoerd. Bv het gekochte ticket of het abonnement waarover men beschikt."
          }
        ],
        "DestRoleTags": [
          {
            "key": "definition-nl",
            "value": "NOTE",
            "note": "Vervoersbewijs voor de Reis."
          },
          {
            "key": "label-nl",
            "value": "NOTE",
            "note": "vervoersbewijs"
          },
          {
            "key": "name",
            "value": "NOTE",
            "note": "Reis.vervoersbewijs"
          },
          {
            "key": "usageNote-nl",
            "value": "NOTE",
            "note": "NOTE$ea_notes=Dit is het Vervoersbewijs waarmee men de Reis wil uitvoeren of men de Reis heeft uitgevoerd. Bv het gekochte ticket of het abonnement waarover men beschikt."
          }
        ],
        "Scope": "FULL_DEFINITON"
      },
      "description": {
        "nl": "Vervoersbewijs voor de Reis."
      },
      "codelist": [],
      "domain": [
        {
          "uri": "https://schema.org/Trip",
          "EA-Name": "Reis"
        }
      ],
      "range": [
        {
          "EA-Name": "Vervoersbewijs",
          "EA-GUID": "{AE6E849B-E2BB-4a9b-8853-060D1FE2308E}",
          "EA-Package": "OSLO-Mobiliteit-Trips-En-Aanbod",
          "uri": "https://data.vlaanderen.be/ns/mobiliteit/trips-en-aanbod#Vervoersbewijs"
        }
      ],
      "generalization": [],
      "minCardinality": "0",
      "maxCardinality": "*"
    },

Je kan zien dat tags definition-nl, label-nl, name allemaal NOTE hebben als waarde en dus dat de waarde in de note zit. Bij deze is niet het bovenstaande probleem. Echter bij tag usageNote-nl is de waarde wel problematisch.

Daarom denk ik dat het een setting ergens in één van de EA van de editors is geweest, die dat veroorzaakt.

Merk op dat hierover tot nu to nog nooit een issue was aangemaakt. Dat maakt deze issue wat vreemd: want voor zover ik weet heb ik de code hiervan is niet aangepast, en het zou tot gevolg hebben dat bestaande specificaties veel gaten zouden moeten vertonen. Want het is toch wel een veel gebruikte feature.

GeertThijs commented 4 years ago

Tagnotities worden voor rolnamen anders opgeslagen. Voor klassen & attributen zijn twee kolommen voorzien: 1 voor de waarde vd tag en 1 voor de notitie erbij. Voor rolnamen zitten beide in eenzelfde veld. (Niet geheel logisch aangezien de kolom voor de waarde in principe beperkt is tot 256 karakters.) Het deel voor het $-teken is de waarde, het deel erna (minus ea_notes=) is de notitie. Meer info hierover in §6.2 vh boek "Inside EA": image

bertvannuffelen commented 4 years ago

Ok, dan is dat opgeklaard. Echt wel niet evident om dat te vinden. Ik zorg ervoor dat die waarde eruit gaat, maar dit is waarschijnlijk een EA specifiek iets dat in mogelijks toekomstige versie kan gewijzigd worden. Dus moeten we er aandacht op blijven houden.