@prefix IAO: <http://purl.obolibrary.org/obo/IAO_> .
@prefix dcterms: <http://purl.org/dc/terms/> .
@prefix ex: <http://example.org/> .
@prefix linkml: <https://w3id.org/linkml/> .
@prefix owl: <http://www.w3.org/2002/07/owl#> .
@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#> .

ex:D2 a owl:Class,
        linkml:ClassDefinition ;
    rdfs:label "d2" ;
    rdfs:subClassOf ex:C .

ex:E a owl:Class,
        linkml:ClassDefinition ;
    rdfs:label "e" ;
    rdfs:subClassOf ex:D1 .

<http://example.org/sample/example1> a owl:Ontology ;
    rdfs:label "example1" ;
    IAO:0000700 ex:A ;
    dcterms:license "https://creativecommons.org/publicdomain/zero/1.0/" ;
    linkml:generation_date "2021-10-02 02:02" ;
    linkml:metamodel_version "1.7.0" ;
    linkml:source_file "issue_163.yaml" ;
    linkml:source_file_date "Sat Oct  2 01:57:27 2021" ;
    linkml:source_file_size 718 .

linkml:SubsetDefinition a owl:Class ;
    rdfs:label "subset_definition" ;
    skos:definition "the name and description of a subset" .

ex:D1 a owl:Class,
        linkml:ClassDefinition ;
    rdfs:label "d1" ;
    rdfs:subClassOf [ a owl:Restriction ;
            owl:maxQualifiedCardinality 1 ;
            owl:onClass ex:C ;
            owl:onProperty ex:has_c ],
        ex:C .

ex:has_a a owl:ObjectProperty,
        linkml:SlotDefinition ;
    rdfs:label "has a" ;
    rdfs:range ex:A .

ex:has_b a owl:ObjectProperty,
        linkml:SlotDefinition ;
    rdfs:label "has b" ;
    rdfs:range ex:B .

ex:has_c a owl:ObjectProperty,
        linkml:SlotDefinition ;
    rdfs:label "has c" ;
    rdfs:range ex:C .

ex:id a owl:ObjectProperty,
        linkml:SlotDefinition ;
    rdfs:label "id" ;
    rdfs:range linkml:String .

ex:len a owl:ObjectProperty,
        linkml:SlotDefinition ;
    rdfs:label "len" ;
    rdfs:range linkml:Integer .

ex:name a owl:ObjectProperty,
        linkml:SlotDefinition ;
    rdfs:label "name" ;
    rdfs:range linkml:String .

ex:unit a owl:ObjectProperty,
        linkml:SlotDefinition ;
    rdfs:label "unit" ;
    rdfs:range ex:Unitcode .

linkml:TypeDefinition a owl:Class ;
    rdfs:label "type_definition" ;
    skos:definition "A data type definition." .

linkml:topValue a owl:DatatypeProperty ;
    rdfs:label "value" .

ex:Unitcode a owl:Class,
        linkml:TypeDefinition ;
    rdfs:label "unitcode" ;
    rdfs:subClassOf [ a owl:Restriction ;
            owl:onDataRange xsd:string ;
            owl:onProperty linkml:topValue ;
            owl:qualifiedCardinality 1 ] .

ex:B a owl:Class,
        linkml:ClassDefinition ;
    rdfs:label "b" ;
    rdfs:subClassOf [ a owl:Restriction ;
            owl:maxQualifiedCardinality 1 ;
            owl:onClass ex:A ;
            owl:onProperty ex:has_a ],
        ex:A .

ex:A a owl:Class,
        linkml:ClassDefinition ;
    rdfs:label "a" ;
    rdfs:subClassOf [ a owl:Restriction ;
            owl:onClass linkml:String ;
            owl:onProperty ex:id ;
            owl:qualifiedCardinality 1 ],
        [ a owl:Restriction ;
            owl:maxQualifiedCardinality 1 ;
            owl:onClass linkml:Integer ;
            owl:onProperty ex:len ],
        [ a owl:Restriction ;
            owl:maxQualifiedCardinality 1 ;
            owl:onClass linkml:String ;
            owl:onProperty ex:name ],
        [ a owl:Restriction ;
            owl:maxQualifiedCardinality 1 ;
            owl:onClass ex:Unitcode ;
            owl:onProperty ex:unit ] .

ex:C a owl:Class,
        linkml:ClassDefinition ;
    rdfs:label "c" ;
    rdfs:subClassOf [ a owl:Restriction ;
            owl:maxQualifiedCardinality 1 ;
            owl:onClass ex:B ;
            owl:onProperty ex:has_b ],
        ex:B .

linkml:ClassDefinition a owl:Class ;
    rdfs:label "class_definition" ;
    skos:definition "the definition of a class or interface" .

linkml:SlotDefinition a owl:Class ;
    rdfs:label "slot_definition" ;
    skos:definition "the definition of a property or a slot" .


