@prefix dcterms: <http://purl.org/dc/terms/> .
@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix reg: <http://purl.org/linked-data/registry#> .
@prefix vaem: <http://www.linkedmodel.org/schema/vaem#> .
@prefix vann: <http://purl.org/vocab/vann/> .
@prefix vs: <http://www.w3.org/2003/06/sw-vocab-status/ns#> .

dcterms:language a owl:ObjectProperty ;
    rdfs:label "has language" ;
    vann:example """
        :my-dataset
                dcterms:language :my-dataset-en .

        :my-dataset-en a dcterms:LinguisticSystem ;
                dcterms:description "en"^^dcterms:RFC5646 . 
        """ ;
    vaem:rationale """
The language should always be specified by means of appropriate individuals belonging to the class `dcterms:LinguisticSystem`, and its value should be specified according to a standardised language code as specified in RFC 5646 (http://www.ietf.org/rfc/rfc5646.txt). 
In particular, it is possible to specify the values taken from [IETF BCP 47](https://datatracker.ietf.org/doc/html/rfc5646), ISO 639-1 language codes (e.g., `en`, `it`, and `fr`). 
The language code can be associated by means of the property `dcterms:description` typed with the `dcterms:RFC5646` datatype.

It is possible, of course, to use directly the resources specified in http://lexvo.org/id/iso639-3/ for languages (e.g., http://lexvo.org/id/iso639-3/eng for English), instead of defining new ones.
        """@en ;
    rdfs:comment "A language of the resource."@en ;
    rdfs:isDefinedBy dcterms: ;
    rdfs:range dcterms:LinguisticSystem ;
    vs:term_status reg:statusStable .

