diff --git a/src/main/java/de/uni_hamburg/corpora/validation/quest/CMDIGenericMetadataChecker.java b/src/main/java/de/uni_hamburg/corpora/validation/quest/CMDIGenericMetadataChecker.java index 3d177e91121058010bac2076ca5a9d868cdef4a5..6310efec8f423e1c7eb608a6dec300df5d5b98a6 100644 --- a/src/main/java/de/uni_hamburg/corpora/validation/quest/CMDIGenericMetadataChecker.java +++ b/src/main/java/de/uni_hamburg/corpora/validation/quest/CMDIGenericMetadataChecker.java @@ -25,6 +25,9 @@ public class CMDIGenericMetadataChecker extends GenericMetadataChecker implement super(properties); if (properties != null && !properties.isEmpty() && properties.containsKey("cmdi-criteria-file")) setCriteriaFile(properties.getProperty("cmdi-criteria-file")); + else { + loadCriteriaResource("cmdi-generic.csv"); + } } diff --git a/src/main/java/de/uni_hamburg/corpora/validation/quest/ChildesGenericMetadataChecker.java b/src/main/java/de/uni_hamburg/corpora/validation/quest/ChildesGenericMetadataChecker.java index eabc7ae668a905fa66694aa3585c74bc72a20c89..bc108ec01b5779ee50caca1409ba9824ee60846f 100644 --- a/src/main/java/de/uni_hamburg/corpora/validation/quest/ChildesGenericMetadataChecker.java +++ b/src/main/java/de/uni_hamburg/corpora/validation/quest/ChildesGenericMetadataChecker.java @@ -16,6 +16,11 @@ public class ChildesGenericMetadataChecker extends GenericMetadataChecker implem public ChildesGenericMetadataChecker(Properties properties) { super(properties); + if (properties != null && !properties.isEmpty() && properties.containsKey("childes-criteria-file")) + setCriteriaFile(properties.getProperty("childes-criteria-file")); + else { + loadCriteriaResource("childes-generic.csv"); + } } diff --git a/src/main/java/de/uni_hamburg/corpora/validation/quest/ComaGenericMetadataChecker.java b/src/main/java/de/uni_hamburg/corpora/validation/quest/ComaGenericMetadataChecker.java index 0ce0d4813487c74d498b92a89aa62e7f6c0c8e46..f378603867c2e6204c7725d629ce2fba61308d3b 100644 --- a/src/main/java/de/uni_hamburg/corpora/validation/quest/ComaGenericMetadataChecker.java +++ b/src/main/java/de/uni_hamburg/corpora/validation/quest/ComaGenericMetadataChecker.java @@ -22,6 +22,11 @@ public class ComaGenericMetadataChecker extends GenericMetadataChecker { */ public ComaGenericMetadataChecker(Properties properties) { super(properties); + if (properties != null && !properties.isEmpty() && properties.containsKey("coma-criteria-file")) + setCriteriaFile(properties.getProperty("coma-criteria-file")); + else { + loadCriteriaResource("coma-generic.csv"); + } } /** * Function providing a description of a checker @@ -100,4 +105,11 @@ public class ComaGenericMetadataChecker extends GenericMetadataChecker { Optional<String> optPath = path.stream().reduce((s1, s2) -> s1 + "/" + s2); return optPath.orElse("") ; } + + @Override + public Map<String, String> getParameters() { + Map<String,String> p = super.getParameters(); + p.put("coma-criteria-file", "The file for Coma generic metadata criteria"); + return p; + } } diff --git a/src/main/java/de/uni_hamburg/corpora/validation/quest/GenericMetadataChecker.java b/src/main/java/de/uni_hamburg/corpora/validation/quest/GenericMetadataChecker.java index 7e3e65874a0f9529d69836baf0d9de6794020bca..e05054f49e75e5b483304c727ab17471e01207d3 100644 --- a/src/main/java/de/uni_hamburg/corpora/validation/quest/GenericMetadataChecker.java +++ b/src/main/java/de/uni_hamburg/corpora/validation/quest/GenericMetadataChecker.java @@ -13,6 +13,8 @@ import javax.xml.transform.TransformerException; import javax.xml.xpath.XPathExpressionException; import java.io.FileReader; import java.io.IOException; +import java.io.InputStream; +import java.io.InputStreamReader; import java.net.MalformedURLException; import java.net.URI; import java.net.URISyntaxException; @@ -376,6 +378,27 @@ abstract class GenericMetadataChecker extends Checker implements CorpusFunction } } + /** + * Loads the criteria as a resource + * @param name the name of the resource + */ + public void loadCriteriaResource(String name) { + try { + InputStream resourceStream = this.getClass().getClassLoader().getResourceAsStream("metadata/"+name); + if (resourceStream != null) { + // Read CSV file + criteria = new CsvToBeanBuilder<GenericMetadataCriterion>(new InputStreamReader(resourceStream)) + .withType(GenericMetadataCriterion.class) + .withSkipLines(1) // skip header + .build() + .parse(); + setUp = true; + } + } catch (Exception e) { + logger.log(Level.SEVERE, "Encountered exception when loading criteria ", e); + } + } + @Override public Map<String, String> getParameters() { Map<String, String> params = super.getParameters(); diff --git a/src/main/java/de/uni_hamburg/corpora/validation/quest/IMDIGenericMetadataChecker.java b/src/main/java/de/uni_hamburg/corpora/validation/quest/IMDIGenericMetadataChecker.java index 2c16918decea77e8e3252067b8db13097f298026..ea6b0a253f576b92726cd1a5325465b8c9bc6705 100644 --- a/src/main/java/de/uni_hamburg/corpora/validation/quest/IMDIGenericMetadataChecker.java +++ b/src/main/java/de/uni_hamburg/corpora/validation/quest/IMDIGenericMetadataChecker.java @@ -24,9 +24,11 @@ public class IMDIGenericMetadataChecker extends GenericMetadataChecker implement */ public IMDIGenericMetadataChecker(Properties properties) { super(properties); - logger.info(properties.toString()); if (properties != null && !properties.isEmpty() && properties.containsKey("imdi-criteria-file")) setCriteriaFile(properties.getProperty("imdi-criteria-file")); + else { + loadCriteriaResource("imdi-generic.csv"); + } } /** diff --git a/src/main/java/de/uni_hamburg/corpora/validation/quest/TEIGenericMetadataChecker.java b/src/main/java/de/uni_hamburg/corpora/validation/quest/TEIGenericMetadataChecker.java index 4d171de9ae7fd771b1d47318d6eb84ba7e5f7c44..0a0388500e927beee1b0efc3ad7c1f13b5372a18 100644 --- a/src/main/java/de/uni_hamburg/corpora/validation/quest/TEIGenericMetadataChecker.java +++ b/src/main/java/de/uni_hamburg/corpora/validation/quest/TEIGenericMetadataChecker.java @@ -21,6 +21,11 @@ public class TEIGenericMetadataChecker extends GenericMetadataChecker implements */ public TEIGenericMetadataChecker(Properties properties) { super(properties); + if (properties != null && !properties.isEmpty() && properties.containsKey("tei-criteria-file")) + setCriteriaFile(properties.getProperty("tei-criteria-file")); + else { + loadCriteriaResource("tei-generic.csv"); + } } /** diff --git a/src/main/java/de/uni_hamburg/corpora/validation/quest/resources/imdi-generic.csv b/src/main/java/de/uni_hamburg/corpora/validation/quest/resources/imdi-generic.csv deleted file mode 100644 index ad13a447eebed92e7732fd8f8a9827bbabb8b82c..0000000000000000000000000000000000000000 --- a/src/main/java/de/uni_hamburg/corpora/validation/quest/resources/imdi-generic.csv +++ /dev/null @@ -1,35 +0,0 @@ -Property,Requirement,Value type,IMDI,Comments -Identifier,1 - unbounded,URI,/imdi:METATRANSCRIPT/@ArchiveHandle,imdi: is making the implicit namespace http://www.mpi.nl/IMDI/Schema/IMDI exmplicit -Session,1 - 1, N/A,//imdi:Session,There is only one session supposed to be in an IMDI metadata file -Title,1 - unbounded,string,//imdi:Session//imdi:Name OR //imdi:Session//imdi:Title,Could be /imdi:METATRANSCRIPT/imdi:Session/imdi:Title or /imdi:METATRANSCRIPT/imdi:Session/imdi:MDGroup/imdi:Project/imdi:Title -Description,1 - unbounded,string,//imdi:Session/imdi:Description, -Version,0 - 1,string,/imdi:METATRANSCRIPT/@Version, -Keywords,0 - 1,string,//imdi:Session/imdi:Keys OR Session//imdi:Content/imdi:Keys, -License,1 - 1,URI OR string,//imdi:Session/imdi:Access/imdi:Description,Access does not seem to be a valid element directly within session; only for ressources -Rightsholder,0 - 1,string,//imdi:Session/imdi:Access/imdi:Owner,Access does not seem to be a valid element directly within session; only for ressources -Access Rights,0 - 1,string,//imdi:Session/imdi:Access/imdi:Availability,Access does not seem to be a valid element directly within session; only for ressources -PublicationYear,1 - 1,date,//imdi:Session/imdi:Date, -Publisher,1 - 1,string,//imdi:Session/imdi:Access/imdi:Publisher,Access does not seem to be a valid element directly within session only for ressources -Creator,1 - unbounded,string,//imdi:Session//imdi:Actors/imdi:Actor/imdi:Role[text()="Author" or text()="Researcher"],Limiting the roles of the actor; more roles could be suitable (see: https://www.mpi.nl/IMDI/Schema/Actor-Role.xml); IMDI schema guarantees that each creator has exactly one full name and so on -CreatorName,0 - unbounded,string,//imdi:Session//imdi:Actors/imdi:Actor[imdi:Role/text()="Researcher" or imdi:Role/text()="Author"]/imdi:Name OR //imdi:Session//imdi:Actors/imdi:Actor[imdi:Role/text()="Researcher" or imdi:Role/text()="Author"]/imdi:FullName,Only for the creator roles as above -FamilyName,1 - 1,string,N/A,Not expressable in IMDI -GivenName,0 - 1,string,N/A,Not expressable in IMDI -CreatorIdentifier,1 - unbounded,URI,N/A,Not expressable in IMDI -Affiliation,0 - unbounded,URI OR string,//imdi:Session//imdi:Actors/imdi:Actor[imdi:Role/text()="Researcher" or imdi:Role/text()="Author"]/imdi:Contact/imdi:Organization,Only for the creator roles as above -CreatorEmail,0 - unbounded,URI OR string,//imdi:Session//imdi:Actors/imdi:Actor[imdi:Role/text()="Researcher" or imdi:Role/text()="Author"]/imdi:Contact/imdi:Email,Only for the creator roles as above -Organisation,N/A,N/A,//imdi:Session//imdi:Actors/imdi:Actor[imdi:Role/text()="Researcher" or imdi:Role/text()="Author"]/imdi:Contact/imdi:Organisation OR //imdi:Session//imdi:Project/imdi:Contact/imdi:Organisation,Only for the creator roles as above or for the project -OrganisationName,1 - unbound,string,//imdi:Session//imdi:Actors/imdi:Actor[imdi:Role/text()="Researcher" or imdi:Role/text()="Author"]/imdi:Contact/imdi:Organisation OR //imdi:Session//imdi:Project/imdi:Contact/imdi:Organisation,Only for the creator roles as above or for the project -OrganisationIdentifier,0 - unbounded,N/A,N/A,Not expressable in IMDI -OrganisationURL,0 - 1,URI,N/A,Not expressable in IMDI -OrganisationEmail,0 - 1,URI OR string,N/A,Not expressable in IMDI -sameAs,0 - unbounded,URI,//imdi:Session/imdi:Resource OR //imdi:Reference/imdi:Link,No tag Resource within Session and Link within Reference; Link only available in ExternalResourceReference -isPartOf,0 - unbounded,URI,//imdi:Session/imdi:Resource OR //imdi:Reference/imdi:Link,No tag Resource within Session and Link within Reference; Link only available in ExternalResourceReference -hasPart,0 - unbounded,URI,//imdi:Session/imdi:Resource OR //imdi:Reference/imdi:Link,No tag Resource within Session and Link within Reference; Link only available in ExternalResourceReference -isBasedOn,0 - unbounded,URI,//imdi:Session/imdi:Resource OR //imdi:Reference/imdi:Link,No tag Resource within Session and Link within Reference; Link only available in ExternalResourceReference -ObjectLanguage,1 - unbounded,string,//imdi:Session//imdi:Content/imdi:Languages/imdi:Language, -LinguisticDataType,0 - unbounded,string,N/A,Not expressable in IMDI -Modality,0 - unbounded,string,//imdi:Session//imdi:Content/imdi:Modalities, -Language,1 - unbounded,N/A,//imdi:Session//imdi:Content/imdi:Languages/imdi:Language, -LanguageName,1 - unbounded,string,//imdi:Session//imdi:Content/imdi:Languages/imdi:Language/imdi:Name, -LanguagePreferredLable,0 - 1,URI OR string,N/A,Not expressable in IMDI -LanguageIdentifier,1 - unbounded,URI,//imdi:Session//imdi:Content/imdi:Languages/imdi:Language/imdi:Id, \ No newline at end of file diff --git a/src/main/java/de/uni_hamburg/corpora/validation/quest/resources/childes-generic.csv b/src/main/java/de/uni_hamburg/corpora/validation/quest/resources/metadata/childes-generic.csv similarity index 100% rename from src/main/java/de/uni_hamburg/corpora/validation/quest/resources/childes-generic.csv rename to src/main/java/de/uni_hamburg/corpora/validation/quest/resources/metadata/childes-generic.csv diff --git a/src/main/java/de/uni_hamburg/corpora/validation/quest/resources/metadata/cmdi-blam.csv b/src/main/java/de/uni_hamburg/corpora/validation/quest/resources/metadata/cmdi-blam.csv new file mode 100644 index 0000000000000000000000000000000000000000..5c22a13f15fce9a8a9cce87530b4c6d938dd7035 --- /dev/null +++ b/src/main/java/de/uni_hamburg/corpora/validation/quest/resources/metadata/cmdi-blam.csv @@ -0,0 +1,34 @@ +Property,Requirement,Value type,BLAM,,,,,,,Reference +Identifier,1 - unbounded,URI,"/cmd:CMD/cmd:Components/*[fn:contains(fn:name(),'BLAM-bundle')]/cmd:BundleGeneralInfo/cmd:BundleID OR /cmd:CMD/cmd:Components/*[contains(name(),'BLAM-collection')]/cmd:CollectionGeneralInfo/cmd:CollectionID",,,,,,,https://github.com/fxru/blam-metadata/blob/master/BLAMBundleRepository.md +Title,1 - unbounded,string,"/cmd:CMD/cmd:Components/*[contains(name(),'BLAM-bundle')]/cmd:BundleGeneralInfo/cmd:BundleDisplayTitle OR /cmd:CMD/cmd:Components/*[contains(name(),'BLAM-collection')]/cmd:CollectionGeneralInfo/cmd:CollectionDisplayTitle",,,,,,, +Description,1 - unbounded,string,"/cmd:CMD/cmd:Components/*[contains(name(),'BLAM-bundle')]/cmd:BundleGeneralInfo/cmd:BundleDescription OR /cmd:CMD/cmd:Components/*[contains(name(),'BLAM-collection')]/cmd:CollectionGeneralInfo/cmd:CollectionDescription",,,,,,, +Version,0 - 1,string,N/A,,,,,,, +Keywords,0 - 1,string,"/cmd:CMD/cmd:Components/*[contains(name(),'BLAM-bundle')]/cmd:BundleGeneralInfo/cmd:BundleKeywords OR /cmd:CMD/cmd:Components/*[contains(name(),'BLAM-collection')]/cmd:CollectionGeneralInfo/cmd:CollectionKeywords",,,,,,, +License,1 - 1,URI OR string,"/cmd:CMD/cmd:Components/*[contains(name(),'BLAM-bundle')]/cmd:BundleAdministrativeInfo/cmd:License OR /cmd:CMD/cmd:Components/*[contains(name(),'BLAM-collection')]/cmd:CollectionAdministrativeInfo/cmd:License",,,,,,, +Rightsholder,0 - 1,string,"/cmd:CMD/cmd:Components/*[contains(name(),'BLAM-bundle')]/cmd:BundleAdministrativeInfo/cmd:Rightsholder OR /cmd:CMD/cmd:Components/*[contains(name(),'BLAM-collection')]/cmd:CollectionAdministrativeInfo/cmd:Rightsholder",,,,,, +Access Rights,0 - 1,string,"/cmd:CMD/cmd:Components/*[contains(name(),'BLAM-bundle')]/cmd:BundleAdministrativeInfo/cmd:Access OR /cmd:CMD/cmd:Components/*[contains(name(),'BLAM-collection')]/cmd:CollectionAdministrativeInfo/cmd:Access",,,,,, +PublicationYear,1 - 1,date,"/cmd:CMD/cmd:Components/*[contains(name(),'BLAM-bundle')]/cmd:BundlePublicationInfo/cmd:BundlePublicationYear OR /cmd:CMD/cmd:Components/*[contains(name(),'BLAM-collection')]/cmd:CollectionPublicationInfo/cmd:CollectionPublicationYear",,,,,,, +Publisher,1 - 1,string,"/cmd:CMD/cmd:Components/*[contains(name(),'BLAM-bundle')]/cmd:BundlePublicationInfo/cmd:BundleDataProvider OR /cmd:CMD/cmd:Components/*[contains(name(),'BLAM-collection')]/cmd:CollectionPublicationInfo/cmd:CollectionDataProvider",,,,,, +Creator,1 - unbounded,N/A,"/cmd:CMD/cmd:Components/*[contains(name(),'BLAM-bundle')]/cmd:BundlePublicationInfo/cmd:BundleCreators/cmd:BundleCreator OR /cmd:CMD/cmd:Components/*[contains(name(),'BLAM-collection')]/cmd:CollectionPublicationInfo/cmd:CollectionCreators/cmd:CollectionCreator",,,,,, +CreatorName,0 - 1,string,"/cmd:CMD/cmd:Components/*[contains(name(),'BLAM-bundle')]/cmd:BundlePublicationInfo/cmd:BundleCreators/cmd:BundleCreator/cmd:CreatorName OR /cmd:CMD/cmd:Components/*[contains(name(),'BLAM-collection')]/cmd:CollectionPublicationInfo/cmd:CollectionCreators/cmd:CollectionCreator/cmd:CreatorName",,,,,, +FamilyName,1 - 1,string,"/cmd:CMD/cmd:Components/*[contains(name(),'BLAM-bundle')]/cmd:BundlePublicationInfo/cmd:BundleCreators/cmd:BundleCreator/cmd:CreatorName/cmd:CreatorFamilyName OR /cmd:CMD/cmd:Components/*[contains(name(),'BLAM-collection')]/cmd:CollectionPublicationInfo/cmd:CollectionCreators/cmd:CollectionCreator/cmd:CreatorName/cmd:CreatorFamilyName",,,,,, +GivenName,0 - 1,string,"/cmd:CMD/cmd:Components/*[contains(name(),'BLAM-bundle')]/cmd:BundlePublicationInfo/cmd:BundleCreators/cmd:BundleCreator/cmd:CreatorName/cmd:CreatorGivenName OR /cmd:CMD/cmd:Components/*[contains(name(),'BLAM-collection')]/cmd:CollectionPublicationInfo/cmd:CollectionCreators/cmd:CollectionCreator/cmd:CreatorName/cmd:CreatorGivenName",,,,,, +CreatorIdentifier,1 - unbounded,URI,"/cmd:CMD/cmd:Components/*[contains(name(),'BLAM-bundle')]/cmd:BundlePublicationInfo/cmd:BundleCreators/cmd:BundleCreator/cmd:CreatorNameIdentifier OR /cmd:CMD/cmd:Components/*[contains(name(),'BLAM-collection')]/cmd:CollectionPublicationInfo/cmd:CollectionCreators/cmd:CollectionCreator/cmd:CreatorNameIdentifier",,,,,, +Affiliation,0 - unbounded,URI OR string,"/cmd:CMD/cmd:Components/*[contains(name(),'BLAM-bundle')]/cmd:BundlePublicationInfo/cmd:BundleCreators/cmd:BundleCreator/cmd:CreatorAffiliation OR /cmd:CMD/cmd:Components/*[contains(name(),'BLAM-collection')]/cmd:CollectionPublicationInfo/cmd:CollectionCreators/cmd:CollectionCreator/cmd:CreatorAffiliation",,,,,, +CreatorEmail,0 - unbounded,URI OR string,N/A,,,,,,, +Organisation,N/A,N/A,N/A,,,,,,, +OrganisationName,1 - 1,string,N/A,,,,,,, +OrganisationIdentifier,0 - unbounded,N/A,N/A,,,,,,, +OrganisationURL,0 - 1,URI,N/A,,,,,,, +OrganisationEmail,0 - 1,URI OR string,N/A,,,,,,, +sameAs,0 - unbounded,URI,N/A,,,,,,, +isPartOf,0 - unbounded,URI,"/cmd:CMD/cmd:Resources/cmd:IsPartOfList/cmd:IsPartOf OR /cmd:CMD/cmd:Components/*[contains(name(),'BLAM-bundle')]/cmd:BundleStructuralInfo/cmd:BundleIsMemberOfCollection OR /cmd:CMD/cmd:Resources/cmd:IsPartOfList/cmd:IsPartOf OR /cmd:CMD/cmd:Components/*[contains(name(),'BLAM-collection')]/cmd:CollectionStructuralInfo/cmd:CollectionIsMemberOfCollection",,,,,, +hasPart,0 - unbounded,URI,N/A,,,,,,, +isBasedOn,0 - unbounded,URI,N/A,,,,,,, +ObjectLanguage,1 - unbounded,N/A,"/cmd:CMD/cmd:Components/*[contains(name(),'BLAM-bundle')]/cmd:BundleGeneralInfo/cmd:BundleObjectLanguages/cmd:BundleObjectLanguage OR /cmd:CMD/cmd:Components/*[contains(name(),'BLAM-collection')]/cmd:CollectionGeneralInfo/cmd:CollectionObjectLanguages/cmd:CollectionObjectLanguage",,,,,, +LinguisticDataType,0 - unbounded,string,N/A,,,,,,, +Modality,0 - unbounded,string,N/A,,,,,,, +Language,N/A,N/A,"/cmd:CMD/cmd:Components/*[contains(name(),'BLAM-bundle')]/cmd:BundleGeneralInfo/cmd:BundleObjectLanguages/cmd:BundleObjectLanguage OR /cmd:CMD/cmd:Components/*[contains(name(),'BLAM-collection')]/cmd:CollectionGeneralInfo/cmd:CollectionObjectLanguages/cmd:CollectionObjectLanguage",,,,,, +LanguageName,1 - 1,string,"/cmd:CMD/cmd:Components/*[contains(name(),'BLAM-bundle')]/cmd:BundleGeneralInfo/cmd:BundleObjectLanguages/cmd:BundleObjectLanguage/cmd:ObjectLanguageName OR /cmd:CMD/cmd:Components/*[contains(name(),'BLAM-collection')]/cmd:CollectionGeneralInfo/cmd:CollectionObjectLanguages/cmd:CollectionObjectLanguage/cmd:ObjectLanguageName",,,,,, +LanguagePreferredLable,0 - 1,URI OR string,"/cmd:CMD/cmd:Components/*[contains(name(),'BLAM-bundle')]/cmd:BundleGeneralInfo/cmd:BundleObjectLanguages/cmd:BundleObjectLanguage/cmd:ObjectLanguageDisplayName OR /cmd:CMD/cmd:Components/*[contains(name(),'BLAM-collection')]/cmd:CollectionGeneralInfo/cmd:CollectionObjectLanguages/cmd:CollectionObjectLanguage/cmd:ObjectLanguageDisplayName",,,,,, +LanguageIdentifier,1 - unbounded,URI,"/cmd:CMD/cmd:Components/*[contains(name(),'BLAM-bundle')]/cmd:BundleGeneralInfo/cmd:BundleObjectLanguages/cmd:BundleObjectLanguage/cmd:ObjectLanguageISO639-3Code OR /cmd:CMD/cmd:Components/*[contains(name(),'BLAM-bundle')]/cmd:BundleGeneralInfo/cmd:BundleObjectLanguages/cmd:BundleObjectLanguage/cmd:ObjectLanguageGlottologCode OR /cmd:CMD/cmd:Components/*[contains(name(),'BLAM-collection')]/cmd:CollectionGeneralInfo/cmd:CollectionObjectLanguages/cmd:CollectionObjectLanguage/cmd:ObjectLanguageISO639-3Code OR /cmd:CMD/cmd:Components/*[contains(name(),'BLAM-collection')]/cmd:CollectionGeneralInfo/cmd:CollectionObjectLanguages/cmd:CollectionObjectLanguage/cmd:ObjectLanguageGlottologCode",,,,,, diff --git a/src/main/java/de/uni_hamburg/corpora/validation/quest/resources/metadata/cmdi-sign.csv b/src/main/java/de/uni_hamburg/corpora/validation/quest/resources/metadata/cmdi-sign.csv new file mode 100644 index 0000000000000000000000000000000000000000..76de1efd0b49f1221414554f6557d49128bd39cf --- /dev/null +++ b/src/main/java/de/uni_hamburg/corpora/validation/quest/resources/metadata/cmdi-sign.csv @@ -0,0 +1,34 @@ +Property,Requirement,Value type,CMDI,,Reference: https://catalog.clarin.eu/ds/ComponentRegistry#/?itemId=clarin.eu%3Acr1%3Ap_1417617523856®istrySpace=public +Identifier,1 - unbounded,URI,//cmd:MdSelfLink,, +Title,1 - unbounded,string,/cmd:CMD/cmd:Components/cmd:lat-SL-session/cmd:Name OR /cmd:CMD/cmd:Components/cmd:lat-SL-session/cmd:Title,, +Description,1 - unbounded,string,/cmd:CMD/cmd:Components/cmd:lat-SL-session/cmd:Project/cmd:descriptions/cmd:Description OR /cmd:CMD/cmd:Components/cmd:lat-SL-session/cmd:InfoLink/cmd:Description,,description seems to be a child of Project and InfoLink does not seem to appear in data +Version,0 - 1,string,N/A,, +Keywords,0 - 1,string,N/A,, +License,1 - 1,URI OR string,/cmd:CMD/cmd:Components/cmd:lat-SL-session/cmd:SL_CreativeCommonsLicense,, +Rightsholder,0 - unbounded,string,/cmd:CMD/cmd:Components/cmd:lat-SL-session/cmd:Resources/cmd:MediaFile/cmd:Access/cmd:Owner OR /cmd:CMD/cmd:Components/cmd:lat-SL-session/cmd:Resources/cmd:WrittenResource/cmd:Access/cmd:Owner OR /cmd:CMD/cmd:Components/cmd:lat-SL-session/cmd:Resources/cmd:Anonyms/cmd:Access/cmd:Owner,,finds one result for each linked file -> changed to unbounded +Access Rights,0 - unbounded,string,/cmd:CMD/cmd:Components/cmd:lat-SL-session/cmd:SL_CreativeCommonsLicense OR /cmd:CMD/cmd:Components/cmd:lat-SL-session/cmd:Resources/cmd:MediaFile/cmd:Access/cmd:Availability OR /cmd:CMD/cmd:Components/cmd:lat-SL-session/cmd:Resources/cmd:WrittenResource/cmd:Access/cmd:Availability OR /cmd:CMD/cmd:Components/cmd:lat-SL-session/cmd:Resources/cmd:Anonyms/cmd:Access/cmd:Availability,,same cardinality as rightsholder +PublicationYear,1 - 1,date,/cmd:CMD/cmd:Components/cmd:lat-SL-session/cmd:Date,, +Publisher,1 - unbounded,string,/cmd:CMD/cmd:Components/cmd:lat-SL-session/cmd:Resources/cmd:MediaFile/cmd:Access/cmd:Publisher OR /cmd:CMD/cmd:Components/cmd:lat-SL-session/cmd:Resources/cmd:WrittenResource/cmd:Access/cmd:Publisher OR /cmd:CMD/cmd:Components/cmd:lat-SL-session/cmd:Resources/cmd:Anonyms/cmd:Access/cmd:Publisher,,same cardinality as rightsholder +Creator,1 - unbounded,string,N/A,, +CreatorName,0 - 1,string,/cmd:CMD/cmd:Components/cmd:lat-SL-session/cmd:Project/cmd:Contact/cmd:Name OR /cmd:CMD/cmd:Header/cmd:MdCreator,, +FamilyName,1 - 1,string,N/A,,was the same as creator name +GivenName,0 - 1,string,N/A,,was the same as creator name +CreatorIdentifier,1 - unbounded,URI,N/A,, +Affiliation,0 - unbounded,URI OR string,/cmd:CMD/cmd:Components/cmd:lat-SL-session/cmd:Project/cmd:Contact/cmd:Organisation,, +CreatorEmail,0 - unbounded,URI OR string,/cmd:CMD/cmd:Components/cmd:lat-SL-session/cmd:Project/cmd:Contact/cmd:Email,, +Organisation,N/A,N/A,N/A,, +OrganisationName,1 - 1,string,/cmd:CMD/cmd:Components/cmd:lat-SL-session/cmd:Project/cmd:Contact/cmd:Organisation,, +OrganisationIdentifier,0 - unbounded,N/A,N/A,, +OrganisationURL,0 - 1,URI,N/A,, +OrganisationEmail,0 - 1,URI OR string,N/A,, +sameAs,0 - unbounded,URI,N/A,, +isPartOf,0 - unbounded,URI,N/A,, +hasPart,0 - unbounded,URI,N/A,, +isBasedOn,0 - unbounded,URI,N/A,, +ObjectLanguage,1 - unbounded,string,/cmd:CMD/cmd:Components/cmd:lat-SL-session/cmd:SL-Content/cmd:Content_Languages,, +LinguisticDataType,0 - unbounded,string,N/A,, +Modality,0 - unbounded,string,/cmd:CDM/cmd:Components/cmd:lat-SL-session/cmd:SL-Content/cmd:Modalities,, +Language,N/A,N/A,/cmd:CMD/cmd:Components/cmd:lat-SL-session/cmd:SL-Content/cmd:Content_Languages/cmd:Content_Language,, +LanguageName,1 - 1,string,/cmd:CMD/cmd:Components/cmd:lat-SL-session/cmd:SL-Content/cmd:Content_Languages/cmd:Content_Language/cmd:Name,, +LanguagePreferredLable,0 - 1,URI OR string,N/A,, +LanguageIdentifier,1 - unbounded,URI,/cmd:CMD/cmd:Components/cmd:lat-SL-session/cmd:SL-Content/cmd:Content_Languages/cmd:Content_Language/cmd:Id,, \ No newline at end of file diff --git a/src/main/java/de/uni_hamburg/corpora/validation/quest/resources/coma-generic.csv b/src/main/java/de/uni_hamburg/corpora/validation/quest/resources/metadata/coma-generic.csv similarity index 100% rename from src/main/java/de/uni_hamburg/corpora/validation/quest/resources/coma-generic.csv rename to src/main/java/de/uni_hamburg/corpora/validation/quest/resources/metadata/coma-generic.csv diff --git a/src/main/java/de/uni_hamburg/corpora/validation/quest/resources/metadata/imdi-generic.csv b/src/main/java/de/uni_hamburg/corpora/validation/quest/resources/metadata/imdi-generic.csv new file mode 100644 index 0000000000000000000000000000000000000000..49da7323cb94d87452181f7d552cab3a7e824bd0 --- /dev/null +++ b/src/main/java/de/uni_hamburg/corpora/validation/quest/resources/metadata/imdi-generic.csv @@ -0,0 +1,35 @@ +Property,Requirement,Value type,IMDI,Comments,, +Identifier,1 - unbounded,URI,/imdi:METATRANSCRIPT/@ArchiveHandle,imdi: is making the implicit namespace http://www.mpi.nl/IMDI/Schema/IMDI exmplicit,, +Session,1 - 1, N/A,//imdi:Session,There is only one session supposed to be in an IMDI metadata file,, +Title,1 - unbounded,string,//imdi:Session/imdi:Name OR //imdi:Session//imdi:Title,Could be /imdi:METATRANSCRIPT/imdi:Session/imdi:Title or /imdi:METATRANSCRIPT/imdi:Session/imdi:MDGroup/imdi:Project/imdi:Title,, +Description,1 - unbounded,string,//imdi:Session/imdi:Description,,, +Version,0 - 1,string,/imdi:METATRANSCRIPT/@Version,,, +Keywords,0 - 1,string,//imdi:Session/imdi:Keys OR Session//imdi:Content/imdi:Keys,,, +License,1 - 1,URI OR string,//imdi:Session/imdi:Access/imdi:Description,Access does not seem to be a valid element directly within session, only for ressources, +Rightsholder,0 - 1,string,//imdi:Session/imdi:Access/imdi:Owner,Access does not seem to be a valid element directly within session, only for ressources, +Access Rights,0 - 1,string,//imdi:Session/imdi:Access/imdi:Availability,Access does not seem to be a valid element directly within session, only for ressources, +PublicationYear,1 - 1,date,//imdi:Session/imdi:Date,,, +Publisher,1 - 1,string,//imdi:Session/imdi:Access/imdi:Publisher,Access does not seem to be a valid element directly within session only for ressources,, +Creator,1 - unbounded,string,"//imdi:Session//imdi:Actors/imdi:Actor[imdi:Role/text()=""Author"" or imdi:Role/text()=""Researcher""]",Limiting the roles of the actor, more roles could be suitable (see: https://www.mpi.nl/IMDI/Schema/Actor-Role.xml), IMDI schema guarantees that each creator has exactly one full name and so on +CreatorName,0 - unbounded,string,"//imdi:Session//imdi:Actors/imdi:Actor[imdi:Role/text()=""Researcher"" or imdi:Role/text()=""Author""]/imdi:Name OR //imdi:Session//imdi:Actors/imdi:Actor[imdi:Role/text()=""Researcher"" or imdi:Role/text()=""Author""]/imdi:FullName",Only for the creator roles as above,, +FamilyName,1 - 1,string,N/A,Not expressable in IMDI,, +GivenName,0 - 1,string,N/A,Not expressable in IMDI,, +CreatorIdentifier,1 - unbounded,URI,N/A,Not expressable in IMDI,, +Affiliation,0 - unbounded,URI OR string,"//imdi:Session//imdi:Actors/imdi:Actor[imdi:Role/text()=""Researcher"" or imdi:Role/text()=""Author""]/imdi:Contact/imdi:Organization",Only for the creator roles as above,, +CreatorEmail,0 - unbounded,URI OR string,"//imdi:Session//imdi:Actors/imdi:Actor[imdi:Role/text()=""Researcher"" or imdi:Role/text()=""Author""]/imdi:Contact/imdi:Email",Only for the creator roles as above,, +Organisation,N/A,N/A,"//imdi:Session//imdi:Actors/imdi:Actor[imdi:Role/text()=""Researcher"" or imdi:Role/text()=""Author""]/imdi:Contact/imdi:Organisation OR //imdi:Session//imdi:Project/imdi:Contact/imdi:Organisation",Only for the creator roles as above or for the project,, +OrganisationName,1 - unbound,string,"//imdi:Session//imdi:Actors/imdi:Actor[imdi:Role/text()=""Researcher"" or imdi:Role/text()=""Author""]/imdi:Contact/imdi:Organisation OR //imdi:Session//imdi:Project/imdi:Contact/imdi:Organisation",Only for the creator roles as above or for the project,, +OrganisationIdentifier,0 - unbounded,N/A,N/A,Not expressable in IMDI,, +OrganisationURL,0 - 1,URI,N/A,Not expressable in IMDI,, +OrganisationEmail,0 - 1,URI OR string,N/A,Not expressable in IMDI,, +sameAs,0 - unbounded,URI,//imdi:Session/imdi:Resource OR //imdi:Reference/imdi:Link,No tag Resource within Session and Link within Reference, Link only available in ExternalResourceReference, +isPartOf,0 - unbounded,URI,//imdi:Session/imdi:Resource OR //imdi:Reference/imdi:Link,No tag Resource within Session and Link within Reference, Link only available in ExternalResourceReference, +hasPart,0 - unbounded,URI,//imdi:Session/imdi:Resource OR //imdi:Reference/imdi:Link,No tag Resource within Session and Link within Reference, Link only available in ExternalResourceReference, +isBasedOn,0 - unbounded,URI,//imdi:Session/imdi:Resource OR //imdi:Reference/imdi:Link,No tag Resource within Session and Link within Reference, Link only available in ExternalResourceReference, +ObjectLanguage,1 - unbounded,string,//imdi:Session//imdi:Content/imdi:Languages/imdi:Language,,, +LinguisticDataType,0 - unbounded,string,N/A,Not expressable in IMDI,, +Modality,0 - unbounded,string,//imdi:Session//imdi:Content/imdi:Modalities,,, +Language,1 - unbounded,N/A,//imdi:Session//imdi:Content/imdi:Languages/imdi:Language,,, +LanguageName,1 - unbounded,string,//imdi:Session//imdi:Content/imdi:Languages/imdi:Language/imdi:Name,,, +LanguagePreferredLable,0 - 1,URI OR string,N/A,Not expressable in IMDI,, +LanguageIdentifier,1 - unbounded,URI,//imdi:Session//imdi:Content/imdi:Languages/imdi:Language/imdi:Id,,, diff --git a/src/main/java/de/uni_hamburg/corpora/validation/quest/resources/tei-generic.csv b/src/main/java/de/uni_hamburg/corpora/validation/quest/resources/metadata/tei-generic.csv similarity index 100% rename from src/main/java/de/uni_hamburg/corpora/validation/quest/resources/tei-generic.csv rename to src/main/java/de/uni_hamburg/corpora/validation/quest/resources/metadata/tei-generic.csv