@prefix gist: <https://w3id.org/semanticarts/ns/ontology/gist/> .
@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 skos: <http://www.w3.org/2004/02/skos/core#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

gist:OrderedCollection owl:equivalentClass [ a owl:Class ;
            owl:intersectionOf ( gist:Collection [ a owl:Class ;
                        owl:unionOf ( [ a owl:Restriction ;
                                    owl:onProperty [ owl:inverseOf gist:isFirstMemberOf ] ;
                                    owl:someValuesFrom gist:OrderedMember ] [ a owl:Restriction ;
                                    owl:cardinality "0"^^xsd:nonNegativeInteger ;
                                    owl:onProperty [ owl:inverseOf gist:isMemberOf ] ] ) ] [ a owl:Restriction ;
                        owl:allValuesFrom gist:OrderedMember ;
                        owl:onProperty [ owl:inverseOf gist:isMemberOf ] ] ) ] .

gist:isFirstMemberOf rdfs:domain gist:OrderedMember .

gist:providesOrderFor rdfs:domain gist:OrderedMember .

gist:sequence gist:domainIncludes gist:OrderedMember .

gist:OrderedMember a owl:Class ;
    rdfs:label "Ordered Member"^^xsd:string ;
    rdfs:comment "DEFINITION: A member of an ordered collection serving as a proxy for a real world item, which can appear in different orders in different collections. The ordered member appears in exactly one ordered collection."^^xsd:string,
        "EXAMPLE: A person may rank 12th in the Boston Marathon but 29th in the New York City Marathon."^^xsd:string,
        "NOTE: An ordered member points to the real world item via the providesOrderFor property. Ordering information is represented either as a number in a sequence, or by preceding or following another ordered member."^^xsd:string ;
    rdfs:isDefinedBy <https://w3id.org/semanticarts/ontology/gistCore14.1.0> ;
    rdfs:subClassOf gist:Component ;
    owl:equivalentClass [ a owl:Class ;
            owl:intersectionOf ( gist:Component [ a owl:Class ;
                        owl:unionOf ( [ a owl:Restriction ;
                                    owl:onProperty gist:precedesDirectly ;
                                    owl:someValuesFrom gist:OrderedMember ] [ a owl:Restriction ;
                                    owl:onProperty [ owl:inverseOf gist:precedesDirectly ] ;
                                    owl:someValuesFrom gist:OrderedMember ] [ a owl:Restriction ;
                                    owl:onProperty gist:sequence ;
                                    owl:someValuesFrom xsd:integer ] ) ] [ a owl:Restriction ;
                        owl:onProperty gist:providesOrderFor ;
                        owl:someValuesFrom owl:Thing ] [ a owl:Restriction ;
                        owl:allValuesFrom gist:OrderedCollection ;
                        owl:onProperty gist:isMemberOf ] [ a owl:Restriction ;
                        owl:cardinality "1"^^xsd:nonNegativeInteger ;
                        owl:onProperty gist:isMemberOf ] ) ] ;
    skos:definition "A member of an ordered collection serving as a proxy for a real world item, which can appear in different orders in different collections. The ordered member appears in exactly one ordered collection."^^xsd:string ;
    skos:example "A person may rank 12th in the Boston Marathon but 29th in the New York City Marathon."^^xsd:string ;
    skos:prefLabel "Ordered Member"^^xsd:string ;
    skos:scopeNote "An ordered member points to the real world item via the providesOrderFor property. Ordering information is represented either as a number in a sequence, or by preceding or following another ordered member."^^xsd:string .

