@prefix schema: <http://schema.org/> .
@prefix owl:   <http://www.w3.org/2002/07/owl#> .
@prefix rdf:   <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix dcterms: <http://purl.org/dc/terms/> .
@prefix skos:  <http://www.w3.org/2004/02/skos/core#> .
@prefix rdfs:  <http://www.w3.org/2000/01/rdf-schema#> .
@prefix vann:  <http://purl.org/vocab/vann/> .
@prefix ns1:   <http://purl.org/ontology/bibo/> .
@prefix foaf:  <http://xmlns.com/foaf/0.1/> .
@prefix stax:  <https://w3id.org/stax/ontology#> .
@prefix dc:    <http://purl.org/dc/elements/1.1/> .

stax:groupedStream  a    skos:Concept , stax:AbstractRdfStreamType , owl:NamedIndividual ;
        skos:broader     stax:rdfStream ;
        skos:definition  "A grouped RDF stream is an RDF stream whose elements are either RDF graphs or RDF datasets."@en ;
        skos:inScheme    <https://w3id.org/stax/ontology> ;
        skos:narrower    stax:datasetStream , stax:graphStream ;
        skos:note        "Abstract grouped RDF stream type."@en ;
        skos:prefLabel   "Grouped RDF stream"@en .

stax:namedGraphStream
        a                        stax:ConcreteRdfStreamType , skos:Concept , owl:NamedIndividual ;
        skos:broader             stax:datasetStream ;
        skos:definition          "An RDF named graph stream is an RDF dataset stream in which every element has exactly one named RDF graph pair <n, G>, where G is an RDF graph, and n is the graph name. Apart from graph G, the dataset may contain any number of triples in the default graph."@en ;
        skos:example             <https://w3id.org/np/RAxK3wEoSabXMV2_s24gd27O8rzsUFceYeMKn5s04cnkk> ;
        skos:inScheme            <https://w3id.org/stax/ontology> ;
        skos:narrower            stax:timestampedNamedGraphStream ;
        skos:note                "A stream of datasets which have one named graph."@en ;
        skos:prefLabel           "RDF named graph stream"@en ;
        stax:canBeFlattenedInto  stax:flatQuadStream ;
        stax:hasElementType      stax:dataset .

stax:streamTypeSemanticRelation
        a                   owl:ObjectProperty ;
        rdfs:comment        "This property should not be used directly, but as a super-property for all properties denoting a relationship of meaning between RDF stream types."@en ;
        rdfs:domain         stax:ConcreteRdfStreamType ;
        rdfs:label          "is in stream type semantic relation with"@en ;
        rdfs:range          stax:ConcreteRdfStreamType ;
        rdfs:subPropertyOf  skos:semanticRelation .

dcterms:license  a  owl:AnnotationProperty .

dcterms:source  a  owl:AnnotationProperty .

vann:preferredNamespaceUri
        a       owl:AnnotationProperty .

schema:citation  a  owl:AnnotationProperty .

stax:graphStream  a              stax:ConcreteRdfStreamType , skos:Concept , owl:NamedIndividual ;
        skos:broader             stax:groupedStream ;
        skos:definition          "An RDF graph stream is a grouped RDF stream whose elements are unnamed (default) RDF graphs."@en ;
        skos:example             <https://w3id.org/np/RA9jYlusATe999AN0jb6fn4eR_H4Q23xhnwU4xSwuUxQw> , <https://w3id.org/np/RA2LEhdLOYY_c9YgGIwu9TrzHVFPQcpE2vMnAbPghQY60> ;
        skos:inScheme            <https://w3id.org/stax/ontology> ;
        skos:narrower            stax:subjectGraphStream ;
        skos:note                "A stream of RDF graphs."@en ;
        skos:prefLabel           "RDF graph stream"@en ;
        stax:canBeFlattenedInto  stax:flatTripleStream ;
        stax:canBeTriviallyExtendedInto
                stax:datasetStream ;
        stax:hasElementType      stax:graph .

stax:flatStream  a       skos:Concept , owl:NamedIndividual , stax:AbstractRdfStreamType ;
        skos:broader     stax:rdfStream ;
        skos:definition  "A flat RDF stream is an RDF stream whose elements are statements (either RDF triples or RDF quads)."@en ;
        skos:inScheme    <https://w3id.org/stax/ontology> ;
        skos:narrower    stax:flatTripleStream , stax:flatQuadStream ;
        skos:note        "Abstract flat RDF stream type."@en ;
        skos:prefLabel   "Flat RDF stream"@en .

stax:RdfStreamType  a    owl:Class ;
        rdfs:comment     "Base class for RDF stream types. This class should not be used directly – use instead either stax:AbstractRdfStreamType or stax:ConcreteRdfStreamType."@en ;
        rdfs:label       "RDF stream type"@en ;
        rdfs:subClassOf  skos:Concept .

foaf:homepage  a  owl:AnnotationProperty .

stax:hasStreamTypeUsage
        a              owl:ObjectProperty ;
        rdfs:comment   "Inverse of stax:isUsageOf – indicates that the subject is related to a usage of an RDF stream type.\n\nThe subject for this property can be for example a published stream on the Web (e.g., vocals:RDFStream) or a scientific publication that discusses a usage of an RDF stream type."@en ;
        rdfs:label     "has stream type usage"@en ;
        rdfs:range     stax:RdfStreamTypeUsage ;
        owl:inverseOf  stax:isUsageOf .

dcterms:created  a  owl:AnnotationProperty .

stax:timestampedNamedGraphStream
        a                        owl:NamedIndividual , stax:ConcreteRdfStreamType , skos:Concept ;
        skos:broader             stax:namedGraphStream ;
        skos:definition          "A timestamped named graph is an RDF dataset in which: (1) there is exactly one named RDF graph pair <n, G>, where G is an RDF graph, and n is the graph name; (2) the default graph includes a timestamp triple <n, p, t>, where p is a timestamp predicate that relates t, called the timestamp, and the graph G.\n\nA timestamped RDF named graph stream is an RDF named graph stream in which every element is a timestamped named graph. The elements that share the same timestamp predicate p are ordered by the partial order associated with p."@en ;
        skos:example             <https://w3id.org/np/RA6E9BH7J5qMYnuL7Kgys4Vsz25AKIAHtSQ78tcXFIlTc> , <https://w3id.org/np/RAU7pbHsOVgltc5Az1pOuNSV4cjI-DDWqoRJyAVhKvUus> ;
        skos:inScheme            <https://w3id.org/stax/ontology> ;
        skos:note                "A stream of datasets which contain one timestamped, named graph. The definition is based on the draft RSP Data model: https://streamreasoning.org/RSP-QL/Abstract%20Syntax%20and%20Semantics%20Document/"@en ;
        skos:prefLabel           "Timestamped RDF named graph stream"@en ;
        stax:canBeFlattenedInto  stax:flatQuadStream ;
        stax:hasElementType      stax:dataset .

stax:RdfElementType  a       owl:Class ;
        rdfs:comment         "Class for base types of elements in RDF streams. There are four instances of this class (triple, quad, graph, dataset) and they should not be further specialized. The instances of this class do NOT form a taxonomical structure."@en ;
        rdfs:label           "RDF element type"@en ;
        owl:disjointWith     stax:RdfStreamType ;
        owl:equivalentClass  [ a          owl:Class ;
                               owl:oneOf  ( stax:dataset stax:graph stax:quad stax:triple )
                             ] .

foaf:logo  a    owl:AnnotationProperty .

stax:triple  a           stax:RdfElementType , owl:NamedIndividual ;
        skos:definition  <https://www.w3.org/TR/rdf11-concepts/#section-triples> ;
        skos:note        "RDF triple, as defined by the RDF 1.1 Concepts and Abstract Syntax W3C Recommendation."@en ;
        skos:prefLabel   "RDF triple"@en .

dc:description  a  owl:AnnotationProperty .

stax:hasStreamType  a  owl:ObjectProperty ;
        rdfs:comment  "For an RDF stream type usage, this property indicates which stream type is used."@en ;
        rdfs:domain   stax:RdfStreamTypeUsage ;
        rdfs:label    "has stream type"@en ;
        rdfs:range    stax:ConcreteRdfStreamType .

dcterms:publisher  a  owl:AnnotationProperty .

stax:hasElementType  a          owl:ObjectProperty ;
        rdfs:comment            "For an RDF stream type, indicates the base (primitive) type of elements in the stream (e.g., triple, quad, graph, dataset)."@en ;
        rdfs:domain             stax:ConcreteRdfStreamType ;
        rdfs:label              "has element type"@en ;
        rdfs:range              stax:RdfElementType ;
        owl:propertyChainAxiom  ( skos:broaderTransitive stax:hasElementType ) .

stax:flatTripleStream
        a                      owl:NamedIndividual , stax:ConcreteRdfStreamType , skos:Concept ;
        skos:broader           stax:flatStream ;
        skos:definition        "A flat RDF triple stream is a flat RDF stream whose elements are triples."@en ;
        skos:example           <https://w3id.org/np/RAelRRiQeq2oSXNR-qqrB5dQ6g7Lait55srza_sfz6Jzs> , <https://w3id.org/np/RAsiMOcZpJwtQVyiIBvn5-K1AvCcXmU8axm9VY4A7AY-k> ;
        skos:inScheme          <https://w3id.org/stax/ontology> ;
        skos:note              "A stream of triple statements."@en ;
        skos:prefLabel         "Flat RDF triple stream"@en ;
        stax:canBeGroupedInto  stax:graphStream ;
        stax:canBeTriviallyExtendedInto
                stax:flatQuadStream ;
        stax:hasElementType    stax:triple .

stax:datasetStream  a            skos:Concept , owl:NamedIndividual , stax:ConcreteRdfStreamType ;
        skos:broader             stax:groupedStream ;
        skos:definition          "An RDF dataset stream is a grouped RDF stream whose elements are RDF datasets."@en ;
        skos:example             <https://w3id.org/np/RAcku4ZQ6KWKFF2uLthK3mqCCNfWbrEeN643SVXwjXseE> , <https://w3id.org/np/RAq7ctp_pHq3u76I54CU9S4WA4L9wQFCnmj3DJyrfrL58> ;
        skos:inScheme            <https://w3id.org/stax/ontology> ;
        skos:narrower            stax:namedGraphStream ;
        skos:note                "A stream of RDF datasets."@en ;
        skos:prefLabel           "RDF dataset stream"@en ;
        stax:canBeFlattenedInto  stax:flatQuadStream ;
        stax:hasElementType      stax:dataset .

stax:subjectGraphStream
        a                        owl:NamedIndividual , skos:Concept , stax:ConcreteRdfStreamType ;
        skos:broader             stax:graphStream ;
        skos:definition          "An RDF subject graph stream is an RDF graph stream in which every element contains an IRI node (called the subject node) that uniquely identifies the graph in the stream. Every other node in the graph can be reached by traversing triples, starting from the subject node."@en ;
        skos:example             <https://w3id.org/np/RAqbZ03A1F0UPJmpa6d_r_uRUp46nmcwN8Yep2Rgiy8b4> , <https://w3id.org/np/RAD3_KmaQcSOOQTOKOsrwahi56Ib8pKMRlKfhylozW-UQ> ;
        skos:inScheme            <https://w3id.org/stax/ontology> ;
        skos:note                "A stream of RDF graphs which have a node that uniquely identifies them in the stream."@en ;
        skos:prefLabel           "RDF subject graph stream"@en ;
        stax:canBeFlattenedInto  stax:flatTripleStream ;
        stax:hasElementType      stax:graph .

ns1:status  a   owl:AnnotationProperty .

stax:canBeFlattenedInto
        a                       owl:ObjectProperty ;
        rdfs:comment            "Indicates that the subject stream type can be flattened into the object.\n\nThe flattening is done by enumerating all components of the stream elements in one, flat stream. For example, a graph stream can be flattened into a flat triple stream."@en ;
        rdfs:domain             stax:ConcreteRdfStreamType ;
        rdfs:label              "can be flattened into"@en ;
        rdfs:range              stax:ConcreteRdfStreamType ;
        rdfs:subPropertyOf      stax:streamTypeSemanticRelation ;
        owl:propertyChainAxiom  ( skos:broaderTransitive stax:canBeFlattenedInto ) .

stax:flatQuadStream  a         stax:ConcreteRdfStreamType , owl:NamedIndividual , skos:Concept ;
        skos:broader           stax:flatStream ;
        skos:definition        "A flat RDF quad stream is a flat RDF stream whose elements are quads."@en ;
        skos:example           <https://w3id.org/np/RAZIs-6LyJuxrn-osVbEdxEoXmGsC1g-8m3n8LYAZ6sUI> ;
        skos:inScheme          <https://w3id.org/stax/ontology> ;
        skos:note              "A stream of quad statements."@en ;
        skos:prefLabel         "Flat RDF quad stream"@en ;
        stax:canBeGroupedInto  stax:datasetStream ;
        stax:hasElementType    stax:quad .

stax:AbstractRdfStreamType
        a                 owl:Class ;
        rdfs:comment      "Class for abstract RDF stream types in the taxonomy. Instances of this class have abstract definitions, i.e., they cannot be used to annotate real streams. They are only intended to be used for reasoning about stream types."@en ;
        rdfs:label        "Abstract RDF stream type"@en ;
        rdfs:subClassOf   stax:RdfStreamType ;
        owl:disjointWith  stax:ConcreteRdfStreamType .

stax:isUsageOf  a     owl:ObjectProperty ;
        rdfs:comment  "For an RDF stream type usage, this property indicates where the stream was used or from where the usage was derived. The value of this property can be anything that makes sense for the desired use case. The value can be for example: the DOI URL of an academic work, URL of a piece of software, IRI of a published stream, IRI of an RDF dataset.\n\nInverse of stax:hasStreamTypeUsage."@en ;
        rdfs:domain   stax:RdfStreamTypeUsage ;
        rdfs:label    "is usage of"@en .

stax:canBeGroupedInto
        a                       owl:ObjectProperty ;
        rdfs:comment            "Indicates that the subject stream type can be grouped into the object.\n\nThe grouping is done by splitting the flat stream of statements into groups, which then can be used to construct elements of the grouped stream. For example, a flat triple stream can be grouped into a graph stream. In this operation, the ordering information within a group is lost."@en ;
        rdfs:domain             stax:ConcreteRdfStreamType ;
        rdfs:label              "can be grouped into"@en ;
        rdfs:range              stax:ConcreteRdfStreamType ;
        rdfs:subPropertyOf      stax:streamTypeSemanticRelation ;
        owl:propertyChainAxiom  ( skos:broaderTransitive stax:canBeGroupedInto ) .

dcterms:modified  a  owl:AnnotationProperty .

stax:RdfStreamTypeUsage
        a                owl:Class ;
        rdfs:comment     "Class for instances of using an RDF stream type, in a program, an academic paper, or elsewhere. This class is suitable for annotating both theoretical uses and practical ones, i.e., real streams or datasets.\n\nInstances of this class should have the stax:hasStreamType property pointing to a concrete stream type. The stax:usedIn property is recommended to indicate where the stream is used – alternatively you can use its inverse (stax:hasStreamTypeUsage). The use of other properties (e.g., rdfs:label, rdfs:comment) is encouraged to give more context about the usage.\n\nNote that \"stream type usage\" is a subjective assertion and instances of this class may be annotated with additional provenance properties to explain who made the assertion. There can be multiple views on what type of stream is in use, depending on the involved actor, processing step, etc."@en ;
        rdfs:label       "RDF stream type usage"@en ;
        rdfs:subClassOf  [ a                  owl:Restriction ;
                           owl:allValuesFrom  stax:ConcreteRdfStreamType ;
                           owl:onProperty     stax:hasStreamType
                         ] ;
        skos:example     <https://w3id.org/stax/dev/use-it/> .

vann:preferredNamespacePrefix
        a       owl:AnnotationProperty .

dcterms:issued  a  owl:AnnotationProperty .

stax:dataset  a            stax:RdfElementType , owl:NamedIndividual ;
        skos:definition    <https://www.w3.org/TR/rdf11-concepts/#section-dataset> ;
        skos:note          "RDF dataset, as defined by the RDF 1.1 Concepts and Abstract Syntax W3C Recommendation."@en ;
        skos:prefLabel     "RDF dataset"@en ;
        skos:relatedMatch  <http://www.w3.org/ns/sparql-service-description#Dataset> .

stax:graph  a              stax:RdfElementType , owl:NamedIndividual ;
        skos:definition    <https://www.w3.org/TR/rdf11-concepts/#section-rdf-graph> ;
        skos:note          "RDF graph, as defined by the RDF 1.1 Concepts and Abstract Syntax W3C Recommendation."@en ;
        skos:prefLabel     "RDF graph"@en ;
        skos:relatedMatch  <http://www.w3.org/ns/sparql-service-description#Graph> .

stax:ConcreteRdfStreamType
        a                owl:Class ;
        rdfs:comment     "Class for the concrete RDF stream types in the taxonomy. Instances of this class have concrete definitions, and they can be used to annotate real streams."@en ;
        rdfs:label       "Concrete RDF stream type"@en ;
        rdfs:subClassOf  stax:RdfStreamType ;
        rdfs:subClassOf  [ a                  owl:Restriction ;
                           owl:allValuesFrom  stax:RdfElementType ;
                           owl:onProperty     stax:hasElementType
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      stax:hasElementType ;
                           owl:someValuesFrom  stax:RdfElementType
                         ] .

stax:rdfStream  a          skos:Concept , stax:AbstractRdfStreamType , owl:NamedIndividual ;
        skos:definition    "An RDF stream is an ordered, potentially infinite sequence of RDF stream elements."@en ;
        skos:narrower      stax:groupedStream , stax:flatStream ;
        skos:note          "Base abstract RDF stream type."@en ;
        skos:prefLabel     "RDF stream"@en ;
        skos:topConceptOf  <https://w3id.org/stax/ontology> .

<https://w3id.org/stax/ontology>
        a                              owl:NamedIndividual , skos:ConceptScheme , owl:Ontology ;
        dc:description                 "RDF-STaX is an OWL 2 DL ontology that enables describing the types of RDF streams and defines relations between them."@en ;
        dc:title                       "RDF Stream Taxonomy (RDF-STaX)"@en ;
        dcterms:contributor            [ foaf:homepage  <https://orcid.org/0000-0003-0869-3836> ;
                                         foaf:name      "Paweł Szmeja"
                                       ] ;
        dcterms:created                "2023-10-22T00:00:00"^^<http://www.w3.org/2001/XMLSchema#dateTime> ;
        dcterms:creator                [ foaf:homepage  <https://orcid.org/0000-0002-2543-9461> ;
                                         foaf:name      "Piotr Sowiński" ;
                                         foaf:nick      "Ostrzyciel"
                                       ] ;
        dcterms:issued                 "2023-10-23T00:00:00"^^<http://www.w3.org/2001/XMLSchema#dateTime> ;
        dcterms:license                <https://spdx.org/licenses/CC-BY-4.0> ;
        dcterms:modified               "2023-12-28T14:39:50"^^<http://www.w3.org/2001/XMLSchema#dateTime> ;
        dcterms:publisher              <https://orcid.org/0000-0002-2543-9461> ;
        dcterms:source                 <https://github.com/RDF-STaX/rdf-stax.github.io/tree/main> ;
        ns1:status                     <http://purl.org/ontology/bibo/status/published> ;
        vann:preferredNamespacePrefix  "stax" ;
        vann:preferredNamespaceUri     stax: ;
        schema:citation                "Please cite this ontology according to the instructions here: https://w3id.org/stax/dev/licensing/"@en ;
        owl:imports                    <http://www.w3.org/TR/skos-reference/skos-owl1-dl.rdf> ;
        owl:versionIRI                 <https://w3id.org/stax/dev/ontology> ;
        owl:versionInfo                "dev" ;
        skos:altLabel                  "RDF-STaX"@en ;
        skos:hasTopConcept             stax:rdfStream ;
        skos:prefLabel                 "RDF Stream Taxonomy"@en ;
        foaf:homepage                  <https://w3id.org/stax/dev> ;
        foaf:logo                      <https://w3id.org/stax/dev/assets/logo_color.svg> .

dc:title  a     owl:AnnotationProperty .

stax:canBeTriviallyExtendedInto
        a                       owl:ObjectProperty ;
        rdfs:comment            "Indicates that the subject stream type that uses triples or graphs can be trivially extended into the object type that uses quads or datasets.\n\nThe extension is done by (in case of flat RDF streams) adding a fourth component, corresponding to the default graph. In case of grouped RDF streams, the contents of the graph are placed explicitly in the default graph."@en ;
        rdfs:domain             stax:ConcreteRdfStreamType ;
        rdfs:label              "can be trivially extended into"@en ;
        rdfs:range              stax:ConcreteRdfStreamType ;
        rdfs:subPropertyOf      stax:streamTypeSemanticRelation ;
        owl:propertyChainAxiom  ( skos:broaderTransitive stax:canBeTriviallyExtendedInto ) .

stax:quad  a             stax:RdfElementType , owl:NamedIndividual ;
        skos:definition  <https://www.w3.org/TR/2023/WD-rdf12-concepts-20231013/#section-dataset-quad> ;
        skos:note        "RDF quad, as defined by the RDF 1.2 Concepts and Abstract Syntax W3C Working Draft 13 October 2023."@en ;
        skos:prefLabel   "RDF quad"@en .
