Skip to content

Commit

Permalink
Feat: Data Catalogue compliance for EJP-RD VP onboarding metadata lev…
Browse files Browse the repository at this point in the history
…el 1 (#4796)

* Fixes for FDP SHACL files

* Correct casing for DCAT endpointURL

* RDF API bugfix: prevent unintentional text to array

* Compliance updates for Agent and Endpoint

* Fix for EJP-RD resource SHACL file

* Enable EJP-RD compliance for Data Catalogue

* Sync back to shared to fix Beacon tests

---------

Co-authored-by: K. Joeri van der Velde <[email protected]>
  • Loading branch information
joerivandervelde and joerivandervelde authored Mar 5, 2025
1 parent 5c8e735 commit 25e112f
Show file tree
Hide file tree
Showing 9 changed files with 26 additions and 18 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -94,7 +94,7 @@ void test06DataCatalogueLoader() throws Exception {
testShaclCompliance(FAIR_DATA_POINT_SHACL_FILES, outputStream.toString());
// testShaclCompliance(DCAT_AP_SHACL_FILES, outputStream.toString());
testShaclCompliance(HEALTH_RI_SHACL_FILES, outputStream.toString());
// testShaclCompliance(EJP_RD_VP_SHACL_FILES, outputStream.toString());
testShaclCompliance(EJP_RD_VP_SHACL_FILES, outputStream.toString());
}

@Test
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,7 @@
dash:editor dash:URIEditor ;
dash:viewer dash:LabelViewer ;
], [
sh:path dct:keyword ;
sh:path dcat:keyword ; # FIX: 'keyword' is a DCAT term (prefix: dcat), instead of a Dublin Core term (prefix: dct)
sh:name "Keywords" ;
sh:nodeKind sh:Literal ;
sh:minCount 1 ;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -132,6 +132,12 @@ Set<Value> retrieveValues(String baseURL, Row row, Column column) {
return basicRetrievalString(row.getStringArrayPreserveDelimiter(column), Values::literal);
}
},
TEXT(CoreDatatype.XSD.STRING) {
@Override
Set<Value> retrieveValues(String baseURL, Row row, Column column) {
return basicRetrievalString(row.getStringArrayPreserveDelimiter(column), Values::literal);
}
},
INT(CoreDatatype.XSD.INT) {
@Override
Set<Value> retrieveValues(String baseURL, Row row, Column column) {
Expand Down
6 changes: 3 additions & 3 deletions data/_demodata/applications/datacatalogue/Agent.csv
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
name,logo
MOLGENIS,https://molgenis.org/assets/img/logo_green.png
UMCG,https://www.umcg.nl/o/umcg-website-theme/images/desktop-umcg-logo.webp
name,logo,url,mbox
MOLGENIS,https://molgenis.org/assets/img/logo_green.png,https://molgenis.org,[email protected]
UMCG,https://www.umcg.nl/o/umcg-website-theme/images/desktop-umcg-logo.webp,https://www.umcg.nl,[email protected]
6 changes: 3 additions & 3 deletions data/_demodata/applications/datacatalogue/Endpoint.csv
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
id,type,name,version,description,publisher,language,license,conformsTo,rights,accessRights,contact,keyword,theme,endPointDescription,metadataCatalog.name,metadataCatalog.network,organisation,alternativeUrl,conformsToFdpSpec,EJP_RD_personalData,EJP_RD_vpConnection,issued,modified
org.molgeniscloud.beaconv2,https://w3id.org/fdp/fdp-o#MetadataService,MOLGENIS EMX2 Beacon v2,v2,This MOLGENIS EMX2 Beacon v2 is based on the GA4GH Beacon v2.0 specification,MOLGENIS,,https://www.gnu.org/licenses/lgpl-3.0.html#license-text,https://github.com/ga4gh-beacon/beacon-v2/,,,[email protected],,https://www.wikidata.org/wiki/Q7321258,,testNetwork1,testNetwork1,UMCG,https://umcgresearch.org/w/gcc,https://github.com/ga4gh-beacon/beacon-v2/,,,1990-01-01 00:00:00.0,1990-01-01 00:00:00.0
Example_FAIR_Data_Point,"https://w3id.org/fdp/fdp-o#MetadataService, http://www.w3.org/ns/dcat#Resource, http://www.w3.org/ns/dcat#DataService, https://w3id.org/fdp/fdp-o#FAIRDataPoint",Example MOLGENIS EMX2 FAIR Data Point,v1.2,"This example MOLGENIS EMX2 multi-interoperable FAIR Data Point is based on the FAIR Data Point 1.2 specification but includes extension points to support additional DCAT flavours including EJP RD Virtual Platform level 1 metadata, HealthRI core plateau 1 metadata, and so on.",MOLGENIS,https://www.loc.gov/standards/iso639-2/php/langcodes_name.php?iso_639_1=en,https://www.gnu.org/licenses/lgpl-3.0.html#license-text,https://specs.fairdatapoint.org/fdp-specs-v1.2.html,https://www.linktosomerightsstatement.org,https://www.linktosomeaccessrightsstatement.org,[email protected],"example, fdp, molgenis, emx2",https://www.wikidata.org/wiki/Q2352616,https://specs.fairdatapoint.org/fdp-specs-v1.2.html,"LifeCycle,ATHLETE","LifeCycle,ATHLETE",UMCG,https://alturl.org,https://specs.fairdatapoint.org/fdp-specs-v1.2.html,false,https://w3id.org/ejp-rd/vocabulary#VPDiscoverable,1990-01-01 00:00:00.0,1990-01-01 00:00:00.0
id,type,name,version,description,publisher,language,license,conformsTo,rights,accessRights,contact,keyword,theme,endPointDescription,metadataCatalog.name,metadataCatalog.network,organisation,alternativeUrl,conformsToFdpSpec,EJP_RD_personalData,EJP_RD_vpConnection,issued,modified,url
org.molgeniscloud.beaconv2,https://w3id.org/fdp/fdp-o#MetadataService,MOLGENIS EMX2 Beacon v2,v2,This MOLGENIS EMX2 Beacon v2 is based on the GA4GH Beacon v2.0 specification,MOLGENIS,,https://www.gnu.org/licenses/lgpl-3.0.html#license-text,https://github.com/ga4gh-beacon/beacon-v2/,,,MOLGENIS,"Example MOLGENIS EMX2 Beacon v2 endpoint",https://www.wikidata.org/wiki/Q7321258,,testNetwork1,testNetwork1,UMCG,https://umcgresearch.org/w/gcc,https://github.com/ga4gh-beacon/beacon-v2/,false,https://w3id.org/ejp-rd/vocabulary#VPDiscoverable,1990-01-01 00:00:00.0,1990-01-01 00:00:00.0,https://molgenis.org/
Example_FAIR_Data_Point,"https://w3id.org/fdp/fdp-o#MetadataService, http://www.w3.org/ns/dcat#Resource, http://www.w3.org/ns/dcat#DataService, https://w3id.org/fdp/fdp-o#FAIRDataPoint","Example MOLGENIS EMX2 FAIR Data Point",v1.2,"This example MOLGENIS EMX2 multi-interoperable FAIR Data Point is based on the FAIR Data Point 1.2 specification but includes extension points to support additional DCAT flavours including EJP RD Virtual Platform level 1 metadata, HealthRI core plateau 1 metadata, and so on.",MOLGENIS,https://www.loc.gov/standards/iso639-2/php/langcodes_name.php?iso_639_1=en,https://www.gnu.org/licenses/lgpl-3.0.html#license-text,https://specs.fairdatapoint.org/fdp-specs-v1.2.html,https://www.linktosomerightsstatement.org,https://www.linktosomeaccessrightsstatement.org,MOLGENIS,"example, fdp, molgenis, emx2",https://www.wikidata.org/wiki/Q2352616,https://specs.fairdatapoint.org/fdp-specs-v1.2.html,"LifeCycle,ATHLETE","LifeCycle,ATHLETE",UMCG,https://alturl.org,https://specs.fairdatapoint.org/fdp-specs-v1.2.html,false,https://w3id.org/ejp-rd/vocabulary#VPDiscoverable,1990-01-01 00:00:00.0,1990-01-01 00:00:00.0,https://molgenis.org/
6 changes: 3 additions & 3 deletions data/_demodata/shared-examples/Agent.csv
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
name,logo
MOLGENIS,https://molgenis.org/assets/img/logo_green.png
UMCG,https://www.umcg.nl/o/umcg-website-theme/images/desktop-umcg-logo.webp
name,logo,url,mbox
MOLGENIS,https://molgenis.org/assets/img/logo_green.png,https://molgenis.org,[email protected]
UMCG,https://www.umcg.nl/o/umcg-website-theme/images/desktop-umcg-logo.webp,https://www.umcg.nl,[email protected]
6 changes: 3 additions & 3 deletions data/_demodata/shared-examples/Endpoint.csv
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
id,type,name,description,publisher,language,license,conformsTo,rights,accessRights,contact,keyword,theme,url,endPointDescription,metadataIdentifier,metadataCatalog,organisation,alternativeUrl,EJP_RD_personalData,EJP_RD_vpConnection
org.molgeniscloud.beaconv2,https://w3id.org/fdp/fdp-o#MetadataService,MOLGENIS EMX2 Beacon v2,This MOLGENIS EMX2 Beacon v2 is based on the GA4GH Beacon v2.0 specification,MOLGENIS,,https://www.gnu.org/licenses/lgpl-3.0.html#license-text,https://github.com/ga4gh-beacon/beacon-v2/,,,[email protected],,https://www.wikidata.org/wiki/Q7321258,https://molgenis.org/,,,,UMCG,https://umcgresearch.org/w/gcc,,
Example_FAIR_Data_Point,"https://w3id.org/fdp/fdp-o#MetadataService, http://www.w3.org/ns/dcat#Resource, http://www.w3.org/ns/dcat#DataService, https://w3id.org/fdp/fdp-o#FAIRDataPoint",Example MOLGENIS EMX2 FAIR Data Point,"This example MOLGENIS EMX2 multi-interoperable FAIR Data Point is based on the FAIR Data Point 1.2 specification but includes extension points to support additional DCAT flavours including EJP RD Virtual Platform level 1 metadata, HealthRI core plateau 1 metadata, and so on.",MOLGENIS,https://www.loc.gov/standards/iso639-2/php/langcodes_name.php?iso_639_1=en,https://www.gnu.org/licenses/lgpl-3.0.html#license-text,https://specs.fairdatapoint.org/fdp-specs-v1.2.html,https://www.linktosomerightsstatement.org,https://www.linktosomeaccessrightsstatement.org,[email protected],"example, fdp, molgenis, emx2",https://www.wikidata.org/wiki/Q2352616,https://www.MyMOLGENISServer.org/myFDPschema/api/rdf,https://specs.fairdatapoint.org/fdp-specs-v1.2.html,https://www.MyMOLGENISServer.org/myFDPschema/api/rdf,"catalogId01,catalogId02",UMCG,https://alturl.org,false,https://w3id.org/ejp-rd/vocabulary#VPDiscoverable
id,type,name,version,description,publisher,language,license,conformsTo,rights,accessRights,contact,keyword,theme,endPointDescription,metadataCatalog.name,metadataCatalog.network,organisation,alternativeUrl,conformsToFdpSpec,EJP_RD_personalData,EJP_RD_vpConnection,issued,modified,url
org.molgeniscloud.beaconv2,https://w3id.org/fdp/fdp-o#MetadataService,MOLGENIS EMX2 Beacon v2,v2,This MOLGENIS EMX2 Beacon v2 is based on the GA4GH Beacon v2.0 specification,MOLGENIS,,https://www.gnu.org/licenses/lgpl-3.0.html#license-text,https://github.com/ga4gh-beacon/beacon-v2/,,,MOLGENIS,"Example MOLGENIS EMX2 Beacon v2 endpoint",https://www.wikidata.org/wiki/Q7321258,,testNetwork1,testNetwork1,UMCG,https://umcgresearch.org/w/gcc,https://github.com/ga4gh-beacon/beacon-v2/,false,https://w3id.org/ejp-rd/vocabulary#VPDiscoverable,1990-01-01 00:00:00.0,1990-01-01 00:00:00.0,https://molgenis.org/
Example_FAIR_Data_Point,"https://w3id.org/fdp/fdp-o#MetadataService, http://www.w3.org/ns/dcat#Resource, http://www.w3.org/ns/dcat#DataService, https://w3id.org/fdp/fdp-o#FAIRDataPoint","Example MOLGENIS EMX2 FAIR Data Point",v1.2,"This example MOLGENIS EMX2 multi-interoperable FAIR Data Point is based on the FAIR Data Point 1.2 specification but includes extension points to support additional DCAT flavours including EJP RD Virtual Platform level 1 metadata, HealthRI core plateau 1 metadata, and so on.",MOLGENIS,https://www.loc.gov/standards/iso639-2/php/langcodes_name.php?iso_639_1=en,https://www.gnu.org/licenses/lgpl-3.0.html#license-text,https://specs.fairdatapoint.org/fdp-specs-v1.2.html,https://www.linktosomerightsstatement.org,https://www.linktosomeaccessrightsstatement.org,MOLGENIS,"example, fdp, molgenis, emx2",https://www.wikidata.org/wiki/Q2352616,https://specs.fairdatapoint.org/fdp-specs-v1.2.html,"LifeCycle,ATHLETE","LifeCycle,ATHLETE",UMCG,https://alturl.org,https://specs.fairdatapoint.org/fdp-specs-v1.2.html,false,https://w3id.org/ejp-rd/vocabulary#VPDiscoverable,1990-01-01 00:00:00.0,1990-01-01 00:00:00.0,https://molgenis.org/
4 changes: 3 additions & 1 deletion data/_models/shared/Agent.csv
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
tableName,tableExtends,columnName,columnType,key,required,refSchema,refTable,refLink,refBack,validation,semantics,description,profiles
Agent,,,,,,,,,,,"http://xmlns.com/foaf/0.1/Agent","An agent (eg. person, group, software or physical artifact).","DCAT,Beacon v2,DataCatalogueFlat"
Agent,,,,,,,,,,,"http://xmlns.com/foaf/0.1/Agent,http://www.w3.org/2006/vcard/ns#Agent","An agent (eg. person, group, software or physical artifact).","DCAT,Beacon v2,DataCatalogueFlat"
Agent,,name,string,1,TRUE,,,,,,"http://xmlns.com/foaf/0.1/name,http://purl.org/dc/terms/identifier",A name and identifier for this agent.,"DCAT,Beacon v2,DataCatalogueFlat"
Agent,,logo,hyperlink,,,,,,,,"http://xmlns.com/foaf/0.1/logo",A logo representing some thing.,"DCAT,Beacon v2,DataCatalogueFlat"
Agent,,url,hyperlink,,,,,,,,"http://www.w3.org/2006/vcard/ns#url",An URL representing some thing.,"Beacon v2,DataCatalogueFlat"
Agent,,mbox,email,,,,,,,,"http://www.w3.org/2006/vcard/ns#hasEmail,http://xmlns.com/foaf/0.1/mbox","An email address is an identifier to send mail to particular electronic mailbox of a contact person or organization.","Beacon v2,DataCatalogueFlat"
6 changes: 3 additions & 3 deletions data/_models/shared/Endpoint.csv
Original file line number Diff line number Diff line change
Expand Up @@ -4,14 +4,14 @@ Endpoint,,id,string,1,TRUE,,,,,,"http://schema.org/identifier","A unique proper
Endpoint,,type,hyperlink_array,,TRUE,,,,,,http://www.w3.org/1999/02/22-rdf-syntax-ns#type,This row is an instance of one or more of these class(es) other than the Endpoint table.,"FAIRDataPoint,DataCatalogueFlat"
Endpoint,,name,string_array,,TRUE,,,,,,http://purl.org/dc/terms/title,A name given to the resource.,"Beacon v2,FAIRDataPoint,DataCatalogueFlat"
Endpoint,,version,text,,,,,,,,http://purl.org/dc/terms/hasVersion,An account of the resource version.,"DataCatalogueFlat"
Endpoint,,description,text_array,,,,,,,,http://purl.org/dc/terms/description,An account of the resource.,"Beacon v2,FAIRDataPoint,DataCatalogueFlat"
Endpoint,,description,text,,,,,,,,http://purl.org/dc/terms/description,An account of the resource.,"Beacon v2,FAIRDataPoint,DataCatalogueFlat"
Endpoint,,publisher,ref_array,,TRUE,,Agent,,,,http://purl.org/dc/terms/publisher,An entity responsible for making the resource available.,"Beacon v2,FAIRDataPoint,DataCatalogueFlat"
Endpoint,,language,hyperlink_array,,,,,,,,http://purl.org/dc/terms/language,A language of the resource.,"FAIRDataPoint,DataCatalogueFlat"
Endpoint,,license,hyperlink,,TRUE,,,,,,http://purl.org/dc/terms/license,A legal document giving official permission to do something with the resource.,"FAIRDataPoint,DataCatalogueFlat"
Endpoint,,conformsTo,hyperlink,,TRUE,,,,,,http://purl.org/dc/terms/conformsTo,An established standard to which the described resource conforms.,"FAIRDataPoint,DataCatalogueFlat"
Endpoint,,rights,hyperlink_array,,,,,,,,http://purl.org/dc/terms/rights,Information about rights held in and over the resource.,"FAIRDataPoint,DataCatalogueFlat"
Endpoint,,accessRights,hyperlink_array,,,,,,,,http://purl.org/dc/terms/accessRights,Information about who access the resource or an indication of its security status.,"FAIRDataPoint,DataCatalogueFlat"
Endpoint,,contact,string,,,,,,,,http://www.w3.org/ns/dcat#contactPoint,Relevant contact information for the catalogued resource. Use of vCard is recommended.,"Beacon v2,FAIRDataPoint,DataCatalogueFlat"
Endpoint,,contact,ref,,,,Agent,,,,http://www.w3.org/ns/dcat#contactPoint,"Relevant contact information for the cataloged resource. Use of vCard is recommended [VCARD-RDF].","Beacon v2,FAIRDataPoint,DataCatalogueFlat"
Endpoint,,keyword,string_array,,,,,,,,http://www.w3.org/ns/dcat#keyword,A keyword or tag describing a resource.,"FAIRDataPoint,DataCatalogueFlat"
Endpoint,,theme,hyperlink_array,,,,,,,,http://www.w3.org/ns/dcat#theme,A main category of the resource. A resource can have multiple themes.,"FAIRDataPoint,DataCatalogueFlat"
Endpoint,,url,hyperlink,,,,,,,,http://www.w3.org/ns/dcat#endpointURL,"The root location or primary endpoint of the service (a web-resolvable IRI). For Beacon v2 only, in other cases we want to autogenerate this information.","Beacon v2"
Expand All @@ -21,7 +21,7 @@ Endpoint,,metadataCatalog,ref_array,,,,Catalog,,,,https://w3id.org/fdp/fdp-o#met
Endpoint,,organisation,ontology,,,,Organisations,,,,http://purl.obolibrary.org/obo/NCIT_C25412,Name of the organisation. E.g. University Medical Center Groningen,Beacon v2
Endpoint,,alternativeUrl,,,,,,,,,"http://purl.org/dc/terms/alternative, http://schema.org/url",Alternative endpoint URL.,Beacon v2
Endpoint,,conformsToFdpSpec,hyperlink,,TRUE,,,,,,https://w3id.org/fdp/fdp-o#conformsToFdpSpec,The relation should point to an URI that contains the version of the FDP specifications for which this instance of the FDP conforms to,"DataCatalogueFlat"
Endpoint,,EJP_RD_personalData,bool,,,,,,,,https://w3id.org/ejp-rd/vocabulary#personalData,"Set to true if the resource onboarded to the EJP-RD Virtual Platform contains personal data, personal data meaning data related to identified or identifiable persons (as per GDPR definition), otherwise false.","FAIRDataPoint,DataCatalogueFlat"
Endpoint,,EJP_RD_personalData,string,,,,,,,,https://w3id.org/ejp-rd/vocabulary#personalData,"Set to true if the resource onboarded to the EJP-RD Virtual Platform contains personal data, personal data meaning data related to identified or identifiable persons (as per GDPR definition), otherwise false. Must be String as workaround for current FDP reference implementation limitations.","FAIRDataPoint,DataCatalogueFlat"
Endpoint,,EJP_RD_vpConnection,hyperlink,,,,,,,,https://w3id.org/ejp-rd/vocabulary#vpConnection,"This property must be attached to every entity that you wish the EJP-RD Virtual Platform to explore.","FAIRDataPoint,DataCatalogueFlat"
Endpoint,,issued,datetime,,,,,,,,"http://purl.org/dc/terms/issued,https://w3id.org/fdp/fdp-o#metadataIssued",,DataCatalogueFlat,
Endpoint,,modified,datetime,,,,,,,,"http://purl.org/dc/terms/modified,https://w3id.org/fdp/fdp-o#metadataModified",,DataCatalogueFlat,

0 comments on commit 25e112f

Please sign in to comment.