Informasjonsforvaltning / dcat-ap-no

Apache License 2.0
9 stars 3 forks source link

[SHACL] Validerer også instanser av foaf:Agent som ikkje er i "bruk" #375

Closed stigbd closed 3 years ago

stigbd commented 3 years ago

Følgande target-spesifisering medfører at alle instanser av foaf:Agent blir validert, også dei som ikkje er brukt som object i dct:publisher: https://github.com/Informasjonsforvaltning/dcat-ap-no/blob/d8633b6ec2aef0de7195f831979cbb00dd85695c/shacl/DCAT-AP-NO-shacl_shapes_2.00.ttl#L83

Strengt tatt burde vi kun validere instanser av foaf:Agent som faktisk er brukt i dct:publisher. Ved å legge til sh:targetObjectsOf kan vi oppnå dette.

...
sh:and (
    [ sh:targetClass foaf:Agent ]
    [ sh:targetObjectsOf dct:publisher] ) .

Ref https://www.w3.org/TR/shacl/#targetObjectsOf Truleg gjelder dette fleire klasser.

jimjyang commented 3 years ago

Jeg er ikke enig, fordi:

  1. Siden DCAT-AP-NO stiller krav til at bl.a. foaf:name er obligatorisk for enhver instans av foaf:Agent, så bør det valideres mot kravene uansett om instansen er objekt eller subjekt.
  2. Verken DCAT-AP eller BRegDCAT-AP bruker sh:targetObjectsOf, dvs. begge validerer både subjekter og objekter. Dette mtp. bl.a. eksport av data fra FDK til EU.
stigbd commented 3 years ago

Det er dumt, for i så fall vil alle som bruker feks dct:publisher <https://organization-catalogue.fellesdatakatalog.digdir.no/organizations/961181399> få feil i validering. Dette fordi ressursen https://organization-catalogue.fellesdatakatalog.digdir.no/organizations/961181399 peiker på triplet:

<https://organization-catalogue.fellesdatakatalog.digdir.no/organizations/961181399>
        a                      rov:RegisteredOrganization ;
        dct:identifier         "961181399" ;
        org:subOrganizationOf  <https://organization-catalogue.fellesdatakatalog.digdir.no/organizations/972417866> ;
        rov:legalName          "ARKIVVERKET" ;
        rov:orgType            [ a               skos:Concept ;
                                 skos:prefLabel  "ORGL"
                               ] ;
        rov:registration       [ a                  adms:Identifier ;
                                 dct:issued         "1995-08-09" ;
                                 skos:notation      "961181399" ;
                                 adms:schemaAgency  "Brønnøysundregistrene"
                               ] ;
        foaf:name              "ARKIVVERKET"@nb ;
        br:municipality        <https://data.geonorge.no/administrativeEnheter/kommune/id/173018> ;
        br:nace                "91.013" ;
        br:norwegianRegistry   <https://data.brreg.no/enhetsregisteret/api/enheter/961181399> ;
        br:orgPath             "/STAT/972417866/961181399" ;
        br:sectorCode          "6100" .

der https://organization-catalogue.fellesdatakatalog.digdir.no/organizations/972417866 blir validert (sidan subOrganizationOf peiker på ei sub-klasse av foaf:Agent. Sidan https://organization-catalogue.fellesdatakatalog.digdir.no/organizations/972417866 manglar foaf:name, får vi valideringsfeil.

Dermed vil vi for alle dcat-ap-no ting validere feil.

At DCAT-AP eller BRegDCAT-AP bruker ditt eller datt er ikkje noko argument, for dei greier heller ikkje å validere katalogar som er gyldige.

jimjyang commented 3 years ago

Ok.

Per i dag brukes foaf:Agent i DCAT-AP-NO som objekt i tripler med dct:publisher eller dct:creator. Det bør endres til: sh:sh:targetObjectsOf dct:publisher, dct:creator (som erstatter sh:targetClass foaf:Agent).