@prefix dcterms: <http://purl.org/dc/terms/> .
@prefix dltypes: <https://concepts.datalad.org/s/types/v1/> .
@prefix ns1: <http://purl.org/ontology/bibo/> .
@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix pav: <http://purl.org/pav/> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix skos: <http://www.w3.org/2004/02/skos/core#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

xsd:hexBinary a rdfs:Datatype ;
    owl:equivalentClass [ owl:intersectionOf ( xsd:string [ a rdfs:Datatype ;
                        owl:onDatatype xsd:string ;
                        owl:withRestrictions ( [ xsd:pattern "^[a-fA-F0-9]+$" ] ) ] ) ] .

xsd:nonNegativeInteger a rdfs:Datatype ;
    owl:equivalentClass xsd:integer .

<https://concepts.datalad.org/s/types/v1.owl.ttl> a owl:Ontology ;
    rdfs:label "types-schema" ;
    dcterms:license "MIT" ;
    dcterms:title "Collection of common types and a type-designator" ;
    ns1:status <http://publications.europa.eu/resource/authority/concept-status/CURRENT> ;
    pav:version "1.0.0" ;
    skos:definition """This schema provides a collection of common types for use in other
schemas. It can be imported directly into other linkml schemas, or
any of its individual property definitions can be used by their
URI as vocabulary components or definitions (e.g., `dltypes:EmailAddress`
identified by this [URI](EmailAddress)).

With the [`schema_type`](schema_type) slot and its `range` type
[`NodeUriOrCurie`](NodeUriOrCurie), this schema provides an essential
building block for other schemas. This slot can be used as a
[type designator](https://linkml.io/linkml/schemas/type-designators.html),
to enable precise validation of sub-types, with an adequate
representation in an RDF data export.

The schema definition is available as

- [JSON-LD context](../v1.context.jsonld)
- [LinkML YAML](../v1.yaml)
- [LinkML YAML (static/resolved)](../v1.static.yaml)
- [OWL TTL](../v1.owl.ttl)
- [SHACL TTL](../v1.shacl.ttl)

Upcoming changes to this schema may be available in an [(unreleased)
development version](../../types/unreleased).
""" ;
    skos:note "ALL CONTENT HERE IS UNRELEASED AND MAY CHANGE ANY TIME" .

dltypes:EmailAddress a rdfs:Datatype ;
    owl:equivalentClass [ owl:intersectionOf ( xsd:string [ a rdfs:Datatype ;
                        owl:onDatatype xsd:string ;
                        owl:withRestrictions ( [ xsd:pattern "(?:[A-Za-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[A-Za-z0-9!#$%&'*+/=?^_`{|}~-]+)*|\"(?:[\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x21\\x23-\\x5b\\x5d-\\x7f]|\\\\[\\x01-\\x09\\x0b\\x0c\\x0e-\\x7f])*\")@(?:(?:[A-Za-z0-9](?:[A-Za-z0-9-]*[A-Za-z0-9])?\\.)+[A-Za-z0-9](?:[A-Za-z0-9-]*[A-Za-z0-9])?|\\[(?:(?:(2(5[0-5]|[0-4][0-9])|1[0-9][0-9]|[1-9]?[0-9]))\\.){3}(?:(2(5[0-5]|[0-4][0-9])|1[0-9][0-9]|[1-9]?[0-9])|[A-Za-z0-9-]*[A-Za-z0-9]:(?:[\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x21-\\x5a\\x53-\\x7f]|\\\\[\\x01-\\x09\\x0b\\x0c\\x0e-\\x7f])+)\\])" ] ) ] ) ] .

dltypes:schema_type a owl:DatatypeProperty ;
    rdfs:label "schema_type" ;
    rdfs:range rdfs:Resource ;
    skos:definition "State that the subject is an instance of a particular schema class. Typically, no explicit value needs to be assigned to this slot, because it matches the class type of a particular record. However, this slots can be used as a type designator of a schema element for validation and schema structure handling purposes. This is used to indicate specialized schema classes for properties that accept a hierarchy of classes as their range." ;
    skos:exactMatch dcterms:type ;
    skos:inScheme <https://concepts.datalad.org/s/types/v1> .

rdfs:Resource a rdfs:Datatype ;
    owl:equivalentClass xsd:anyURI .


