PREFIX owl: <http://www.w3.org/2002/07/owl#>
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>
PREFIX alspacdcs: <http://purl.org/alspac/alspac-data-catalogue-schema/>
PREFIX linkml: <https://w3id.org/linkml/>
PREFIX biolink: <https://w3id.org/biolink/vocab/>
PREFIX schema: <http://schema.org/>
PREFIX PATO: <http://purl.obolibrary.org/obo/PATO_>
PREFIX IAO: <http://purl.obolibrary.org/obo/IAO_>
PREFIX example: <http://example.org/rdf#>
PREFIX dce: <http://purl.org/dc/elements/1.1/>
PREFIX dcat: <http://www.w3.org/ns/dcat#>
PREFIX dcterms: <http://purl.org/dc/terms/>
PREFIX dctypes: <http://purl.org/dc/dcmitype/>
PREFIX foaf: <http://xmlns.com/foaf/0.1/>
PREFIX locn: <http://www.w3.org/ns/locn#>
PREFIX odrl: <http://www.w3.org/ns/odrl/2/>
PREFIX prov: <http://www.w3.org/ns/prov#>
PREFIX skos: <http://www.w3.org/2004/02/skos/core#>
PREFIX spdx: <http://spdx.org/rdf/terms#>
PREFIX time: <http://www.w3.org/2006/time#>
PREFIX vcard: <http://www.w3.org/2006/vcard/ns#>
PREFIX ORCID: <http://identifiers.org/orcid/>
PREFIX doi: <https://doi.org/>
PREFIX identifier: <https://registry.identifiers.org/registry/>
PREFIX nfo: <http://www.semanticdesktop.org/ontologies/2007/03/22/nfo/v1.2/#>
PREFIX sh: <http://www.w3.org/ns/shacl#>
PREFIX vann: <http://purl.org/vocab/vann/>

alspacdcs: a owl:Ontology ;
  rdfs:label "alspac-data-catalogue-schema" ;
  rdfs:comment "This project is for the schema of alspac data catalogues and meta data on data sets" ;
  rdfs:seeAlso <https://alspac.github.io/alspac-data-catalogue-schema> ;
  dcterms:license "MIT" ;
  vann:preferredNamespacePrefix "alspacdcs" ;
  vann:preferredNamespaceUri "http://purl.org/alspac/alspac-data-catalogue-schema/"^^xsd:anyURI ;
  sh:declare [
    sh:prefix "alspacdcs" ;
    sh:namespace "http://purl.org/alspac/alspac-data-catalogue-schema/"^^xsd:anyURI
  ] , [
    sh:prefix "linkml" ;
    sh:namespace "https://w3id.org/linkml/"^^xsd:anyURI
  ] , [
    sh:prefix "biolink" ;
    sh:namespace "https://w3id.org/biolink/vocab/"^^xsd:anyURI
  ] , [
    sh:prefix "schema" ;
    sh:namespace "http://schema.org/"^^xsd:anyURI
  ] , [
    sh:prefix "PATO" ;
    sh:namespace "http://purl.obolibrary.org/obo/PATO_"^^xsd:anyURI
  ] , [
    sh:prefix "IAO" ;
    sh:namespace "http://purl.obolibrary.org/obo/IAO_"^^xsd:anyURI
  ] , [
    sh:prefix "example" ;
    sh:namespace "http://example.org/rdf#"^^xsd:anyURI
  ] , [
    sh:prefix "dce" ;
    sh:namespace "http://purl.org/dc/elements/1.1/"^^xsd:anyURI
  ] , [
    sh:prefix "dcat" ;
    sh:namespace "http://www.w3.org/ns/dcat#"^^xsd:anyURI
  ] , [
    sh:prefix "dcterms" ;
    sh:namespace "http://purl.org/dc/terms/"^^xsd:anyURI
  ] , [
    sh:prefix "dctypes" ;
    sh:namespace "http://purl.org/dc/dcmitype/"^^xsd:anyURI
  ] , [
    sh:prefix "foaf" ;
    sh:namespace "http://xmlns.com/foaf/0.1/"^^xsd:anyURI
  ] , [
    sh:prefix "locn" ;
    sh:namespace "http://www.w3.org/ns/locn#"^^xsd:anyURI
  ] , [
    sh:prefix "odrl" ;
    sh:namespace "http://www.w3.org/ns/odrl/2/"^^xsd:anyURI
  ] , [
    sh:prefix "owl" ;
    sh:namespace "http://www.w3.org/2002/07/owl#"^^xsd:anyURI
  ] , [
    sh:prefix "prov" ;
    sh:namespace "http://www.w3.org/ns/prov#"^^xsd:anyURI
  ] , [
    sh:prefix "rdf" ;
    sh:namespace "http://www.w3.org/1999/02/22-rdf-syntax-ns#"^^xsd:anyURI
  ] , [
    sh:prefix "rdfs" ;
    sh:namespace "http://www.w3.org/2000/01/rdf-schema#"^^xsd:anyURI
  ] , [
    sh:prefix "skos" ;
    sh:namespace "http://www.w3.org/2004/02/skos/core#"^^xsd:anyURI
  ] , [
    sh:prefix "spdx" ;
    sh:namespace "http://spdx.org/rdf/terms#"^^xsd:anyURI
  ] , [
    sh:prefix "time" ;
    sh:namespace "http://www.w3.org/2006/time#"^^xsd:anyURI
  ] , [
    sh:prefix "vcard" ;
    sh:namespace "http://www.w3.org/2006/vcard/ns#"^^xsd:anyURI
  ] , [
    sh:prefix "ORCID" ;
    sh:namespace "http://identifiers.org/orcid/"^^xsd:anyURI
  ] , [
    sh:prefix "doi" ;
    sh:namespace "https://doi.org/"^^xsd:anyURI
  ] , [
    sh:prefix "identifier" ;
    sh:namespace "https://registry.identifiers.org/registry/"^^xsd:anyURI
  ] , [
    sh:prefix "nfo" ;
    sh:namespace "http://www.semanticdesktop.org/ontologies/2007/03/22/nfo/v1.2/#"^^xsd:anyURI
  ] .

schema:Thing a owl:Class ;
  rdfs:comment "A generic grouping for any identifiable entity" ;
  rdfs:subClassOf [
    a owl:Restriction ;
    owl:onProperty schema:name ;
    owl:allValuesFrom xsd:string
  ] , [
    a owl:Restriction ;
    owl:onProperty schema:name ;
    owl:maxCardinality "1"^^xsd:nonNegativeInteger
  ] , [
    a owl:Restriction ;
    owl:onProperty schema:description ;
    owl:allValuesFrom xsd:string
  ] , [
    a owl:Restriction ;
    owl:onProperty schema:description ;
    owl:maxCardinality "1"^^xsd:nonNegativeInteger
  ] , [
    a owl:Class ;
    owl:unionOf ( foaf:Person alspacdcs:Paper dcat:Catalog dcat:Dataset dcat:Dataset dcat:Dataset alspacdcs:Script dcat:Dataset dcat:Dataset dcat:Distribution nfo:Folder alspacdcs:KnownIssue alspacdcs:QcKeyValue alspacdcs:UgKeyValue )
  ] .

foaf:Person a owl:Class ;
  rdfs:comment "A person" ;
  rdfs:subClassOf schema:Thing .

alspacdcs:Paper a owl:Class ;
  rdfs:comment "a scientific paper" ;
  skos:closeMatch IAO:0000013 ;
  rdfs:subClassOf schema:Thing .

dcat:Catalog a owl:Class ;
  rdfs:comment "Represents an alspac data catalogue. That is a set of named alspac data sets." ;
  rdfs:subClassOf schema:Thing , [
    a owl:Restriction ;
    owl:onProperty alspacdcs:primary_investigator_orcids ;
    owl:allValuesFrom foaf:Person
  ] , [
    a owl:Restriction ;
    owl:onProperty schema:email ;
    owl:allValuesFrom xsd:string
  ] , [
    a owl:Restriction ;
    owl:onProperty schema:email ;
    owl:maxCardinality "1"^^xsd:nonNegativeInteger
  ] , [
    a owl:Restriction ;
    owl:onProperty alspacdcs:named_alspac_datasets ;
    owl:allValuesFrom dcat:Dataset
  ] , [
    a owl:Restriction ;
    owl:onProperty alspacdcs:see_also ;
    owl:allValuesFrom owl:Thing
  ] .

dcat:Dataset a owl:Class ;
  rdfs:comment "This class is for describing and recording files that are released as bespoke data releases." , "Represents a named_alspac_data_set. That is a set of data that has been collected or produced to be named, reused and distributed." , "Represents a version of a named_alspac_data_set. That is a specific set of data which internal people to alspac can use." , "Represents a freeze of a version of named_alspac_data_set. That is a specific set of data which can be applied to use by external colabs. It is normally a subset of files in a version of named alspac dataset, but sometimes file types will also change. For example .Rdata changed to .csv." , "Represents a  part of named alspac data set, in a version or freeze or custom dataset. For example in an omics context the data collected for a single chr which would be made availble as a dcat distribution of this type of dataset which would be of a specific file." ;
  rdfs:subClassOf schema:Thing , [
    a owl:Restriction ;
    owl:onProperty alspacdcs:bnumber ;
    owl:allValuesFrom xsd:string
  ] , [
    a owl:Restriction ;
    owl:onProperty alspacdcs:bnumber ;
    owl:maxCardinality "1"^^xsd:nonNegativeInteger
  ] , [
    a owl:Restriction ;
    owl:onProperty alspacdcs:date_of_release ;
    owl:allValuesFrom xsd:string
  ] , [
    a owl:Restriction ;
    owl:onProperty alspacdcs:date_of_release ;
    owl:maxCardinality "1"^^xsd:nonNegativeInteger
  ] , [
    a owl:Restriction ;
    owl:onProperty alspacdcs:keywords ;
    owl:allValuesFrom xsd:string
  ] , [
    a owl:Restriction ;
    owl:onProperty alspacdcs:authors ;
    owl:allValuesFrom xsd:string
  ] , [
    a owl:Restriction ;
    owl:onProperty alspacdcs:derived_from ;
    owl:allValuesFrom dcat:Dataset
  ] , [
    a owl:Restriction ;
    owl:onProperty alspacdcs:has_scripts ;
    owl:allValuesFrom alspacdcs:Script
  ] , [
    a owl:Restriction ;
    owl:onProperty alspacdcs:has_parts ;
    owl:allValuesFrom dcat:Dataset
  ] , [
    a owl:Restriction ;
    owl:onProperty alspacdcs:git_repo ;
    owl:allValuesFrom xsd:string
  ] , [
    a owl:Restriction ;
    owl:onProperty alspacdcs:git_repo ;
    owl:maxCardinality "1"^^xsd:nonNegativeInteger
  ] , [
    a owl:Restriction ;
    owl:onProperty alspacdcs:git_tag ;
    owl:allValuesFrom xsd:string
  ] , [
    a owl:Restriction ;
    owl:onProperty alspacdcs:git_tag ;
    owl:maxCardinality "1"^^xsd:nonNegativeInteger
  ] , [
    a owl:Restriction ;
    owl:onProperty alspacdcs:dataset_size ;
    owl:allValuesFrom xsd:string
  ] , [
    a owl:Restriction ;
    owl:onProperty alspacdcs:dataset_size ;
    owl:maxCardinality "1"^^xsd:nonNegativeInteger
  ] , [
    a owl:Restriction ;
    owl:onProperty alspacdcs:has_containers ;
    owl:allValuesFrom nfo:Folder
  ] , [
    a owl:Restriction ;
    owl:onProperty alspacdcs:all_individuals_to_exclude_md_5_sum ;
    owl:allValuesFrom xsd:string
  ] , [
    a owl:Restriction ;
    owl:onProperty alspacdcs:all_individuals_to_exclude_md_5_sum ;
    owl:maxCardinality "1"^^xsd:nonNegativeInteger
  ] , [
    a owl:Restriction ;
    owl:onProperty dcat:landingPage ;
    owl:allValuesFrom xsd:string
  ] , [
    a owl:Restriction ;
    owl:onProperty dcat:landingPage ;
    owl:maxCardinality "1"^^xsd:nonNegativeInteger
  ] , [
    a owl:Restriction ;
    owl:onProperty alspacdcs:primary_investigator_orcids ;
    owl:allValuesFrom foaf:Person
  ] , [
    a owl:Restriction ;
    owl:onProperty dcat:hasCurrentVersion ;
    owl:allValuesFrom dcat:Dataset
  ] , [
    a owl:Restriction ;
    owl:onProperty dcat:hasCurrentVersion ;
    owl:maxCardinality "1"^^xsd:nonNegativeInteger
  ] , [
    a owl:Restriction ;
    owl:onProperty alspacdcs:versions ;
    owl:allValuesFrom dcat:Dataset
  ] , [
    a owl:Restriction ;
    owl:onProperty schema:email ;
    owl:allValuesFrom xsd:string
  ] , [
    a owl:Restriction ;
    owl:onProperty schema:email ;
    owl:maxCardinality "1"^^xsd:nonNegativeInteger
  ] , [
    a owl:Restriction ;
    owl:onProperty alspacdcs:documentation_authors_orcids ;
    owl:allValuesFrom foaf:Person
  ] , [
    a owl:Restriction ;
    owl:onProperty alspacdcs:main_publication_doi ;
    owl:allValuesFrom alspacdcs:Paper
  ] , [
    a owl:Restriction ;
    owl:onProperty alspacdcs:main_publication_doi ;
    owl:maxCardinality "1"^^xsd:nonNegativeInteger
  ] , [
    a owl:Restriction ;
    owl:onProperty alspacdcs:publications_dois ;
    owl:allValuesFrom alspacdcs:Paper
  ] , [
    a owl:Restriction ;
    owl:onProperty alspacdcs:in_catalog ;
    owl:allValuesFrom dcat:Catalog
  ] , [
    a owl:Restriction ;
    owl:onProperty alspacdcs:in_catalog ;
    owl:maxCardinality "1"^^xsd:nonNegativeInteger
  ] , [
    a owl:Restriction ;
    owl:onProperty alspacdcs:qc_description ;
    owl:allValuesFrom xsd:string
  ] , [
    a owl:Restriction ;
    owl:onProperty alspacdcs:qc_description ;
    owl:maxCardinality "1"^^xsd:nonNegativeInteger
  ] , [
    a owl:Restriction ;
    owl:onProperty alspacdcs:qc_parts ;
    owl:allValuesFrom alspacdcs:QcKeyValue
  ] , [
    a owl:Restriction ;
    owl:onProperty alspacdcs:ug_parts ;
    owl:allValuesFrom alspacdcs:UgKeyValue
  ] , [
    a owl:Restriction ;
    owl:onProperty alspacdcs:version_of ;
    owl:allValuesFrom dcat:Dataset
  ] , [
    a owl:Restriction ;
    owl:onProperty alspacdcs:version_of ;
    owl:maxCardinality "1"^^xsd:nonNegativeInteger
  ] , [
    a owl:Restriction ;
    owl:onProperty alspacdcs:is_current_version ;
    owl:allValuesFrom xsd:string
  ] , [
    a owl:Restriction ;
    owl:onProperty alspacdcs:is_current_version ;
    owl:maxCardinality "1"^^xsd:nonNegativeInteger
  ] , [
    a owl:Restriction ;
    owl:onProperty alspacdcs:has_previous_version ;
    owl:maxCardinality "1"^^xsd:nonNegativeInteger
  ] , [
    a owl:Restriction ;
    owl:onProperty alspacdcs:has_next_version ;
    owl:maxCardinality "1"^^xsd:nonNegativeInteger
  ] , [
    a owl:Restriction ;
    owl:onProperty alspacdcs:known_issues ;
    owl:allValuesFrom alspacdcs:KnownIssue
  ] , [
    a owl:Restriction ;
    owl:onProperty alspacdcs:has_freezes ;
    owl:allValuesFrom dcat:Dataset
  ] , [
    a owl:Restriction ;
    owl:onProperty alspacdcs:linker_file_md_5_sum ;
    owl:allValuesFrom xsd:string
  ] , [
    a owl:Restriction ;
    owl:onProperty alspacdcs:linker_file_md_5_sum ;
    owl:maxCardinality "1"^^xsd:nonNegativeInteger
  ] , [
    a owl:Restriction ;
    owl:onProperty alspacdcs:freeze_size ;
    owl:allValuesFrom xsd:string
  ] , [
    a owl:Restriction ;
    owl:onProperty alspacdcs:freeze_size ;
    owl:maxCardinality "1"^^xsd:nonNegativeInteger
  ] , [
    a owl:Restriction ;
    owl:onProperty alspacdcs:woc_file_md_5_sum ;
    owl:allValuesFrom xsd:string
  ] , [
    a owl:Restriction ;
    owl:onProperty alspacdcs:woc_file_md_5_sum ;
    owl:maxCardinality "1"^^xsd:nonNegativeInteger
  ] , [
    a owl:Restriction ;
    owl:onProperty alspacdcs:is_current_freeze ;
    owl:allValuesFrom xsd:boolean
  ] , [
    a owl:Restriction ;
    owl:onProperty alspacdcs:is_current_freeze ;
    owl:maxCardinality "1"^^xsd:nonNegativeInteger
  ] , [
    a owl:Restriction ;
    owl:onProperty alspacdcs:freeze_number ;
    owl:allValuesFrom xsd:string
  ] , [
    a owl:Restriction ;
    owl:onProperty alspacdcs:freeze_number ;
    owl:maxCardinality "1"^^xsd:nonNegativeInteger
  ] , [
    a owl:Restriction ;
    owl:onProperty alspacdcs:freeze_date ;
    owl:allValuesFrom xsd:date
  ] , [
    a owl:Restriction ;
    owl:onProperty alspacdcs:freeze_date ;
    owl:maxCardinality "1"^^xsd:nonNegativeInteger
  ] , [
    a owl:Restriction ;
    owl:onProperty alspacdcs:previous_freeze ;
    owl:allValuesFrom dcat:Dataset
  ] , [
    a owl:Restriction ;
    owl:onProperty alspacdcs:previous_freeze ;
    owl:maxCardinality "1"^^xsd:nonNegativeInteger
  ] , [
    a owl:Restriction ;
    owl:onProperty alspacdcs:next_freeze ;
    owl:allValuesFrom dcat:Dataset
  ] , [
    a owl:Restriction ;
    owl:onProperty alspacdcs:next_freeze ;
    owl:maxCardinality "1"^^xsd:nonNegativeInteger
  ] , [
    a owl:Restriction ;
    owl:onProperty alspacdcs:freeze_of_alspac_dataset_version ;
    owl:allValuesFrom dcat:Dataset
  ] , [
    a owl:Restriction ;
    owl:onProperty alspacdcs:freeze_of_alspac_dataset_version ;
    owl:maxCardinality "1"^^xsd:nonNegativeInteger
  ] , [
    a owl:Restriction ;
    owl:onProperty alspacdcs:freeze_of_named_alspac_dataset ;
    owl:allValuesFrom dcat:Dataset
  ] , [
    a owl:Restriction ;
    owl:onProperty alspacdcs:freeze_of_named_alspac_dataset ;
    owl:maxCardinality "1"^^xsd:nonNegativeInteger
  ] , [
    a owl:Restriction ;
    owl:onProperty alspacdcs:data_distributions ;
    owl:allValuesFrom dcat:Distribution
  ] .

alspacdcs:Script a owl:Class ;
  rdfs:comment "A description and attributes of a script included in a version or freeze" ;
  rdfs:subClassOf schema:Thing , [
    a owl:Restriction ;
    owl:onProperty alspacdcs:authors ;
    owl:allValuesFrom xsd:string
  ] , [
    a owl:Restriction ;
    owl:onProperty alspacdcs:md_5_sum ;
    owl:allValuesFrom xsd:string
  ] , [
    a owl:Restriction ;
    owl:onProperty alspacdcs:md_5_sum ;
    owl:maxCardinality "1"^^xsd:nonNegativeInteger
  ] , [
    a owl:Restriction ;
    owl:onProperty dcat:byteSize ;
    owl:allValuesFrom xsd:string
  ] , [
    a owl:Restriction ;
    owl:onProperty dcat:byteSize ;
    owl:maxCardinality "1"^^xsd:nonNegativeInteger
  ] , [
    a owl:Restriction ;
    owl:onProperty dcat:mediaType ;
    owl:allValuesFrom xsd:string
  ] , [
    a owl:Restriction ;
    owl:onProperty dcat:mediaType ;
    owl:maxCardinality "1"^^xsd:nonNegativeInteger
  ] .

dcat:Distribution a owl:Class ;
  rdfs:comment "A dataset distribution has a location, file type and file size." ;
  rdfs:subClassOf schema:Thing , [
    a owl:Restriction ;
    owl:onProperty alspacdcs:md_5_sum ;
    owl:allValuesFrom xsd:string
  ] , [
    a owl:Restriction ;
    owl:onProperty alspacdcs:md_5_sum ;
    owl:maxCardinality "1"^^xsd:nonNegativeInteger
  ] , [
    a owl:Restriction ;
    owl:onProperty dcat:byteSize ;
    owl:allValuesFrom xsd:string
  ] , [
    a owl:Restriction ;
    owl:onProperty dcat:byteSize ;
    owl:maxCardinality "1"^^xsd:nonNegativeInteger
  ] , [
    a owl:Restriction ;
    owl:onProperty dcat:mediaType ;
    owl:allValuesFrom xsd:string
  ] , [
    a owl:Restriction ;
    owl:onProperty dcat:mediaType ;
    owl:maxCardinality "1"^^xsd:nonNegativeInteger
  ] , [
    a owl:Restriction ;
    owl:onProperty alspacdcs:number_of_participants ;
    owl:allValuesFrom xsd:integer
  ] , [
    a owl:Restriction ;
    owl:onProperty alspacdcs:number_of_participants ;
    owl:maxCardinality "1"^^xsd:nonNegativeInteger
  ] , [
    a owl:Restriction ;
    owl:onProperty alspacdcs:number_of_gene_expression_probe_values ;
    owl:allValuesFrom xsd:integer
  ] , [
    a owl:Restriction ;
    owl:onProperty alspacdcs:number_of_gene_expression_probe_values ;
    owl:maxCardinality "1"^^xsd:nonNegativeInteger
  ] , [
    a owl:Restriction ;
    owl:onProperty alspacdcs:number_of_variants ;
    owl:allValuesFrom xsd:integer
  ] , [
    a owl:Restriction ;
    owl:onProperty alspacdcs:number_of_variants ;
    owl:maxCardinality "1"^^xsd:nonNegativeInteger
  ] , [
    a owl:Restriction ;
    owl:onProperty alspacdcs:number_of_cpgs ;
    owl:allValuesFrom xsd:integer
  ] , [
    a owl:Restriction ;
    owl:onProperty alspacdcs:number_of_cpgs ;
    owl:maxCardinality "1"^^xsd:nonNegativeInteger
  ] , [
    a owl:Restriction ;
    owl:onProperty alspacdcs:number_of_cnv_variants ;
    owl:allValuesFrom xsd:integer
  ] , [
    a owl:Restriction ;
    owl:onProperty alspacdcs:number_of_cnv_variants ;
    owl:maxCardinality "1"^^xsd:nonNegativeInteger
  ] , [
    a owl:Restriction ;
    owl:onProperty alspacdcs:required_files ;
    owl:allValuesFrom dcat:Distribution
  ] , [
    a owl:Restriction ;
    owl:onProperty alspacdcs:belongs_to_container ;
    owl:allValuesFrom nfo:Folder
  ] , [
    a owl:Restriction ;
    owl:onProperty alspacdcs:belongs_to_container ;
    owl:maxCardinality "1"^^xsd:nonNegativeInteger
  ] .

nfo:Folder a owl:Class ;
  rdfs:comment "A dir/folder in a freeze, or version" ;
  rdfs:subClassOf schema:Thing , [
    a owl:Restriction ;
    owl:onProperty alspacdcs:belongs_to_container ;
    owl:allValuesFrom nfo:Folder
  ] , [
    a owl:Restriction ;
    owl:onProperty alspacdcs:belongs_to_container ;
    owl:maxCardinality "1"^^xsd:nonNegativeInteger
  ] .

alspacdcs:KnownIssue a owl:Class ;
  rdfs:comment "Known issues for a dataset should have a description, when they are logged and by who" ;
  rdfs:subClassOf schema:Thing , [
    a owl:Restriction ;
    owl:onProperty alspacdcs:issue_description ;
    owl:allValuesFrom xsd:string
  ] , [
    a owl:Restriction ;
    owl:onProperty alspacdcs:issue_description ;
    owl:maxCardinality "1"^^xsd:nonNegativeInteger
  ] , [
    a owl:Restriction ;
    owl:onProperty alspacdcs:logged_by ;
    owl:allValuesFrom xsd:string
  ] , [
    a owl:Restriction ;
    owl:onProperty alspacdcs:logged_by ;
    owl:maxCardinality "1"^^xsd:nonNegativeInteger
  ] , [
    a owl:Restriction ;
    owl:onProperty alspacdcs:logged_date ;
    owl:allValuesFrom xsd:string
  ] , [
    a owl:Restriction ;
    owl:onProperty alspacdcs:logged_date ;
    owl:maxCardinality "1"^^xsd:nonNegativeInteger
  ] .

alspacdcs:QcKeyValue a owl:Class ;
  rdfs:comment "A qc part with a key and a value." ;
  rdfs:subClassOf schema:Thing , [
    a owl:Restriction ;
    owl:onProperty alspacdcs:qc_key ;
    owl:allValuesFrom xsd:string
  ] , [
    a owl:Restriction ;
    owl:onProperty alspacdcs:qc_key ;
    owl:maxCardinality "1"^^xsd:nonNegativeInteger
  ] , [
    a owl:Restriction ;
    owl:onProperty alspacdcs:qc_value ;
    owl:allValuesFrom xsd:string
  ] , [
    a owl:Restriction ;
    owl:onProperty alspacdcs:qc_value ;
    owl:maxCardinality "1"^^xsd:nonNegativeInteger
  ] .

alspacdcs:UgKeyValue a owl:Class ;
  rdfs:comment "A user guide entry." ;
  rdfs:subClassOf schema:Thing , [
    a owl:Restriction ;
    owl:onProperty alspacdcs:ug_key ;
    owl:allValuesFrom xsd:string
  ] , [
    a owl:Restriction ;
    owl:onProperty alspacdcs:ug_key ;
    owl:maxCardinality "1"^^xsd:nonNegativeInteger
  ] , [
    a owl:Restriction ;
    owl:onProperty alspacdcs:ug_value ;
    owl:allValuesFrom xsd:string
  ] , [
    a owl:Restriction ;
    owl:onProperty alspacdcs:ug_value ;
    owl:maxCardinality "1"^^xsd:nonNegativeInteger
  ] .

schema:name a owl:DatatypeProperty ;
  rdfs:comment "A human-readable name for a thing" ;
  rdfs:range xsd:string ;
  a owl:FunctionalProperty .

alspacdcs:see_also a owl:ObjectProperty ;
  rdfs:comment "Links to useful info" .

schema:description a owl:DatatypeProperty ;
  rdfs:comment "A human-readable description for a thing" ;
  rdfs:range xsd:string ;
  a owl:FunctionalProperty .

schema:email a owl:DatatypeProperty ;
  rdfs:comment "The main email address to contact" ;
  skos:exactMatch foaf:email ;
  rdfs:range xsd:string ;
  a owl:FunctionalProperty .

alspacdcs:primary_investigator_orcids a owl:ObjectProperty ;
  rdfs:comment "The orcid ids of the pis" ;
  rdfs:range foaf:Person .

alspacdcs:documentation_authors_orcids a owl:ObjectProperty ;
  rdfs:comment "a list of the orcid ids of the documentation authors" ;
  rdfs:range foaf:Person .

alspacdcs:named_alspac_datasets a owl:ObjectProperty ;
  rdfs:comment "A list of named alspac data sets curies ids" ;
  rdfs:range dcat:Dataset .

alspacdcs:derived_from a owl:ObjectProperty ;
  rdfs:comment "List of NamedAlspacDatasets that were used at least in part to derive this Named or custom dataset." ;
  rdfs:range dcat:Dataset .

alspacdcs:required_files a owl:ObjectProperty ;
  rdfs:comment "If a file should be used with another file list them. For example the three plink files (bim, bed, fam) work together." ;
  rdfs:range dcat:Distribution .

alspacdcs:versions a owl:ObjectProperty ;
  rdfs:comment "A list of versions of a named dataset" ;
  rdfs:range dcat:Dataset .

alspacdcs:keywords a owl:DatatypeProperty ;
  rdfs:comment "A list of keywords." ;
  rdfs:range xsd:string .

alspacdcs:in_catalog a owl:ObjectProperty ;
  rdfs:comment "What catalog is this dataset a part of" ;
  rdfs:range dcat:Catalog ;
  a owl:FunctionalProperty .

alspacdcs:version_of a owl:ObjectProperty ;
  rdfs:comment "What named Alspac dataset is this a version of" ;
  rdfs:range dcat:Dataset ;
  a owl:FunctionalProperty .

dcat:hasCurrentVersion a owl:ObjectProperty ;
  rdfs:comment "The current version of this named alspac dataset" ;
  rdfs:range dcat:Dataset ;
  a owl:FunctionalProperty .

alspacdcs:has_previous_version a owl:ObjectProperty ;
  rdfs:comment "The previous version of this named alspac dataset" ;
  a owl:FunctionalProperty .

alspacdcs:has_next_version a owl:ObjectProperty ;
  rdfs:comment "The next version of this named alspac dataset" ;
  a owl:FunctionalProperty .

alspacdcs:is_current_version a owl:DatatypeProperty ;
  rdfs:comment "Is this the current version of a named alspac dataset" ;
  rdfs:range xsd:string ;
  a owl:FunctionalProperty .

alspacdcs:has_parts a owl:ObjectProperty ;
  rdfs:comment "A list of parts of a named alspac dataset version or freeze or custom dataset" ;
  rdfs:range dcat:Dataset .

alspacdcs:has_containers a owl:ObjectProperty ;
  rdfs:comment "A list of dirs in this  named alspac dataset version or freeze or custom dataset" ;
  rdfs:range nfo:Folder .

alspacdcs:has_freezes a owl:ObjectProperty ;
  rdfs:comment "A list of freezes for this version of the data" ;
  rdfs:range dcat:Dataset .

alspacdcs:has_scripts a owl:ObjectProperty ;
  rdfs:comment "A list of scripts that are included in a dataset version or freeze" ;
  rdfs:range alspacdcs:Script .

alspacdcs:bnumber a owl:DatatypeProperty ;
  rdfs:comment "An ALSPAC project code" ;
  rdfs:range xsd:string ;
  a owl:FunctionalProperty .

alspacdcs:date_of_release a owl:DatatypeProperty ;
  rdfs:comment "The date this dataset was released to a colab." ;
  rdfs:range xsd:string ;
  a owl:FunctionalProperty .

alspacdcs:freeze_number a owl:DatatypeProperty ;
  rdfs:comment "What number freeze is this?" ;
  rdfs:range xsd:string ;
  a owl:FunctionalProperty .

alspacdcs:freeze_date a owl:DatatypeProperty ;
  rdfs:comment "When was this freeze made?" ;
  rdfs:range xsd:date ;
  a owl:FunctionalProperty .

alspacdcs:is_current_freeze a owl:DatatypeProperty ;
  rdfs:comment "Is this current freeze?" ;
  rdfs:range xsd:boolean ;
  a owl:FunctionalProperty .

alspacdcs:previous_freeze a owl:ObjectProperty ;
  rdfs:comment "What was the previous freeze?" ;
  rdfs:range dcat:Dataset ;
  a owl:FunctionalProperty .

alspacdcs:next_freeze a owl:ObjectProperty ;
  rdfs:comment "What is the next freeze ?" ;
  rdfs:range dcat:Dataset ;
  a owl:FunctionalProperty .

alspacdcs:freeze_of_alspac_dataset_version a owl:ObjectProperty ;
  rdfs:comment "What version was this freeze built from?" ;
  rdfs:range dcat:Dataset ;
  a owl:FunctionalProperty .

alspacdcs:freeze_of_named_alspac_dataset a owl:ObjectProperty ;
  rdfs:comment "What named alspac dataset is this freeze built from?" ;
  rdfs:range dcat:Dataset ;
  a owl:FunctionalProperty .

alspacdcs:linker_file_md_5_sum a owl:DatatypeProperty ;
  rdfs:comment "What is the md5sum of the dataset linker file used to make this freeze" ;
  skos:closeMatch spdx:checksum , nfo:FileHash ;
  rdfs:range xsd:string ;
  a owl:FunctionalProperty .

alspacdcs:md_5_sum a owl:DatatypeProperty ;
  rdfs:comment "What is the md5sum of the file in this distribution?" ;
  skos:closeMatch spdx:checksum , nfo:FileHash ;
  rdfs:range xsd:string ;
  a owl:FunctionalProperty .

dcat:byteSize a owl:DatatypeProperty ;
  rdfs:comment "The size of the file in k, m,g or t." ;
  rdfs:range xsd:string ;
  a owl:FunctionalProperty .

dcat:mediaType a owl:DatatypeProperty ;
  rdfs:comment "what is the file type?" ;
  rdfs:range xsd:string ;
  a owl:FunctionalProperty .

alspacdcs:number_of_participants a owl:DatatypeProperty ;
  rdfs:comment "The number of alspac participants in this dataset" ;
  rdfs:range xsd:integer ;
  a owl:FunctionalProperty .

alspacdcs:number_of_variants a owl:DatatypeProperty ;
  rdfs:comment "The number of genetic variants (i.e snps, indels etc)" ;
  rdfs:range xsd:integer ;
  a owl:FunctionalProperty .

alspacdcs:number_of_cpgs a owl:DatatypeProperty ;
  rdfs:comment "The number of CPG sites." ;
  rdfs:range xsd:integer ;
  a owl:FunctionalProperty .

alspacdcs:number_of_cnv_variants a owl:DatatypeProperty ;
  rdfs:comment "The number of cnv vaiants" ;
  rdfs:range xsd:integer ;
  a owl:FunctionalProperty .

alspacdcs:belongs_to_container a owl:ObjectProperty ;
  rdfs:comment "What container does this belong to." ;
  rdfs:range nfo:Folder ;
  a owl:FunctionalProperty .

alspacdcs:number_of_gene_expression_probe_values a owl:DatatypeProperty ;
  rdfs:comment "This slot is used for gene expression data distributions" ;
  rdfs:range xsd:integer ;
  a owl:FunctionalProperty .

alspacdcs:main_publication_doi a owl:ObjectProperty ;
  rdfs:comment "A doi ref to the main publication describing this dataset." ;
  rdfs:range alspacdcs:Paper ;
  a owl:FunctionalProperty .

dcat:landingPage a owl:DatatypeProperty ;
  rdfs:comment "A Web page that can be navigated to in a Web browser to gain access to the catalog, a dataset, its distributions and/or additional information." ;
  rdfs:range xsd:string ;
  a owl:FunctionalProperty .

alspacdcs:woc_file_md_5_sum a owl:DatatypeProperty ;
  rdfs:comment "The md5sum of the woc file used to make this freeze" ;
  rdfs:range xsd:string ;
  a owl:FunctionalProperty .

alspacdcs:all_individuals_to_exclude_md_5_sum a owl:DatatypeProperty ;
  rdfs:comment "The md5sum of the all_individuals_to_exclude to make this freeze" ;
  rdfs:range xsd:string ;
  a owl:FunctionalProperty .

alspacdcs:git_tag a owl:DatatypeProperty ;
  rdfs:comment "The git tag of the repo that made this freeze." ;
  rdfs:range xsd:string ;
  a owl:FunctionalProperty .

alspacdcs:git_repo a owl:DatatypeProperty ;
  rdfs:comment "The git repo for this object" ;
  rdfs:range xsd:string ;
  a owl:FunctionalProperty .

alspacdcs:qc_description a owl:DatatypeProperty ;
  rdfs:comment "Some free text to describe any quality control that has been performed." ;
  rdfs:range xsd:string ;
  a owl:FunctionalProperty .

alspacdcs:qc_parts a owl:ObjectProperty ;
  rdfs:comment "A list of key value pairs for for information about quality control of this dataset. A key might be something that has been done or a description of a paramater. i.e 'snp_hwe_filter' and the value might be '5e-07'." ;
  rdfs:range alspacdcs:QcKeyValue .

alspacdcs:qc_key a owl:DatatypeProperty ;
  rdfs:comment "A key might be something that has been done or a description of a paramater. i.e 'snp_hwe_filter'" ;
  rdfs:range xsd:string ;
  a owl:FunctionalProperty .

alspacdcs:qc_value a owl:DatatypeProperty ;
  rdfs:comment "A value for a key" ;
  rdfs:range xsd:string ;
  a owl:FunctionalProperty .

alspacdcs:ug_key a owl:DatatypeProperty ;
  rdfs:comment "A key is something you might want to do for example run a gwas" ;
  rdfs:range xsd:string ;
  a owl:FunctionalProperty .

alspacdcs:ug_value a owl:DatatypeProperty ;
  rdfs:comment "A description or link to how to do something" ;
  rdfs:range xsd:string ;
  a owl:FunctionalProperty .

alspacdcs:ug_parts a owl:ObjectProperty ;
  rdfs:comment "A list of key value pairs, where a key is something you might want to do and value is a description and/or link to how you might want to do it." ;
  rdfs:range alspacdcs:UgKeyValue .

alspacdcs:publications_dois a owl:ObjectProperty ;
  rdfs:comment "A list of publications dois that use or refer to this data set" ;
  rdfs:range alspacdcs:Paper .

alspacdcs:data_distributions a owl:ObjectProperty ;
  rdfs:comment "A list of data distributions for this abstract dataset" ;
  rdfs:range dcat:Distribution .

alspacdcs:authors a owl:DatatypeProperty ;
  rdfs:comment "A list of orcids for the authors of the item" ;
  rdfs:range xsd:string .

alspacdcs:known_issues a owl:ObjectProperty ;
  rdfs:comment "A list of known issues inline" ;
  rdfs:range alspacdcs:KnownIssue .

alspacdcs:logged_by a owl:DatatypeProperty ;
  rdfs:comment "The person who logged this issue." ;
  rdfs:range xsd:string ;
  a owl:FunctionalProperty .

alspacdcs:logged_date a owl:DatatypeProperty ;
  rdfs:comment "The date that this issue was logged." ;
  rdfs:range xsd:string ;
  a owl:FunctionalProperty .

alspacdcs:issue_description a owl:DatatypeProperty ;
  rdfs:comment "What the issue is." ;
  rdfs:range xsd:string ;
  a owl:FunctionalProperty .

alspacdcs:freeze_size a owl:DatatypeProperty ;
  rdfs:comment "The approximate size of all the data in the freeze." ;
  rdfs:range xsd:string ;
  a owl:FunctionalProperty .

alspacdcs:dataset_size a owl:DatatypeProperty ;
  rdfs:comment "The appoximate size in a version of a named Alspacdata set of custom data release" ;
  rdfs:range xsd:string ;
  a owl:FunctionalProperty .

dcterms:license a owl:AnnotationProperty .

vann:preferredNamespacePrefix a owl:AnnotationProperty .

vann:preferredNamespaceUri a owl:AnnotationProperty .

skos:closeMatch a owl:AnnotationProperty .

skos:exactMatch a owl:AnnotationProperty .

sh:declare a owl:AnnotationProperty .

sh:prefix a owl:AnnotationProperty .

sh:namespace a owl:AnnotationProperty .

xsd:date a rdfs:Datatype .
