@prefix dc: <http://purl.org/dc/elements/1.1/> .
@prefix dcterms: <http://purl.org/dc/terms/> .
@prefix foaf: <http://xmlns.com/foaf/0.1/> .
@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 schema: <http://schema.org/> .
@prefix skos: <http://www.w3.org/2004/02/skos/core#> .
@prefix stax: <https://w3id.org/stax/ontology#> .
@prefix vann: <http://purl.org/vocab/vann/> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

dc:description a owl:AnnotationProperty .

dc:title a owl:AnnotationProperty .

dcterms:created a owl:AnnotationProperty .

dcterms:license a owl:AnnotationProperty .

vann:preferredNamespacePrefix a owl:AnnotationProperty .

vann:preferredNamespaceUri a owl:AnnotationProperty .

schema:citation a owl:AnnotationProperty .

foaf:homepage a owl:AnnotationProperty .

stax:hasStreamTypeUsage a owl:ObjectProperty ;
    rdfs:label "has stream type usage"@en ;
    rdfs:comment "Inverse of stax:usedIn – indicates that the subject includes a usage of an RDF stream type."@en ;
    rdfs:range stax:RdfStreamTypeUsage ;
    owl:inverseOf stax:usedIn .

stax:canBeFlattenedInto a owl:ObjectProperty ;
    rdfs:label "can be flattened into"@en ;
    rdfs:comment "Indicates that the subject stream type can be flattened into the object. The 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:range stax:ConcreteRdfStreamType ;
    rdfs:subPropertyOf stax:streamTypeSemanticRelation ;
    owl:propertyChainAxiom ( skos:broaderTransitive stax:canBeFlattenedInto ) .

stax:canBeGroupedInto a owl:ObjectProperty ;
    rdfs:label "can be grouped into"@en ;
    rdfs:comment "Indicates that the subject stream type can be grouped into the object. The 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."@en ;
    rdfs:domain stax:ConcreteRdfStreamType ;
    rdfs:range stax:ConcreteRdfStreamType ;
    rdfs:subPropertyOf stax:streamTypeSemanticRelation ;
    owl:propertyChainAxiom ( skos:broaderTransitive stax:canBeGroupedInto ) .

stax:quad a owl:NamedIndividual,
        stax:RdfElementType ;
    skos:definition "An RDF quad is an RDF triple with a fourth component indicating the RDF graph the triple belongs to. If the triple is in a named graph, then the fourth component is the graph name (blank node or IRI). If the triple is in the default graph, then the fourth component is empty."@en ;
    skos:note "RDF quad, defined here in STaX. The definition is based on the RDF 1.1 Concepts and Abstract Syntax W3C Recommendation."@en ;
    skos:prefLabel "RDF quad"@en .

stax:rdfSubjectGraphStream a owl:NamedIndividual,
        skos:Concept,
        stax:ConcreteRdfStreamType ;
    skos:broader stax:rdfGraphStream ;
    skos:definition "An RDF subject graph stream is an RDF graph stream in which every element contains exactly one unique triple subject."@en ;
    skos:inScheme <https://w3id.org/stax/ontology> ;
    skos:note "A stream of RDF graphs which have one subject each."@en ;
    skos:prefLabel "RDF subject graph stream"@en ;
    stax:canBeFlattenedInto stax:flatRdfTripleStream ;
    stax:hasElementType stax:graph .

stax:timestampedRdfNamedGraphStream a owl:NamedIndividual,
        skos:Concept,
        stax:ConcreteRdfStreamType ;
    skos:broader stax:rdfNamedGraphStream ;
    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 node; (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.

A 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: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:flatRdfQuadStream ;
    stax:hasElementType stax:dataset .

stax:triple a owl:NamedIndividual,
        stax:RdfElementType ;
    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 .

stax:usedIn a owl:ObjectProperty ;
    rdfs:label "used in"@en ;
    rdfs:comment """For an RDF stream type usage, this property indicates where the stream was used. The value of this property can be for example the DOI URL of an academic work.

Inverse of stax:hasStreamTypeUsage."""@en ;
    rdfs:domain stax:RdfStreamTypeUsage .

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

stax:graph a owl:NamedIndividual,
        stax:RdfElementType ;
    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 .

stax:hasElementType a owl:ObjectProperty ;
    rdfs:label "has element type"@en ;
    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:range stax:RdfElementType ;
    owl:propertyChainAxiom ( skos:broaderTransitive stax:hasElementType ) .

stax:rdfNamedGraphStream a owl:NamedIndividual,
        skos:Concept,
        stax:ConcreteRdfStreamType ;
    skos:broader stax:rdfDatasetStream ;
    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 node. Apart from graph G, the dataset may contain any number of triples in the default graph."@en ;
    skos:inScheme <https://w3id.org/stax/ontology> ;
    skos:narrower stax:timestampedRdfNamedGraphStream ;
    skos:note "A stream of datasets which have one named graph."@en ;
    skos:prefLabel "RDF named graph stream"@en ;
    stax:canBeFlattenedInto stax:flatRdfQuadStream ;
    stax:hasElementType stax:dataset .

stax:streamTypeSemanticRelation a owl:ObjectProperty ;
    rdfs:label "is in stream type semantic relation with"@en ;
    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:range stax:ConcreteRdfStreamType ;
    rdfs:subPropertyOf skos:semanticRelation .

stax:AbstractRdfStreamType a owl:Class ;
    rdfs:label "Abstract RDF stream type"@en ;
    rdfs:comment "Class for the abstract RDF stream types in the taxonomy. Instances of this class have abstract definitions, i.e., they cannot be used in practice."@en ;
    rdfs:subClassOf stax:RdfStreamType ;
    owl:disjointWith stax:ConcreteRdfStreamType .

stax:RdfStreamType a owl:Class ;
    rdfs:label "RDF stream type"@en ;
    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:subClassOf skos:Concept .

stax:RdfStreamTypeUsage a owl:Class ;
    rdfs:label "RDF stream type usage"@en ;
    rdfs:comment """Class for instances of using an RDF stream type, in a program, an academic paper, or elsewhere. Instances of this class must have the stax:usesStreamType property pointing to a concrete stream type. The stax:usedIn property is also recommended to indicate where the stream is used. The use of other properties (e.g., rdfs:label, rdfs:comment) is encouraged to give more context about the usage.

Note 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:subClassOf [ a owl:Restriction ;
            owl:onProperty stax:usesStreamType ;
            owl:someValuesFrom stax:ConcreteRdfStreamType ] .

stax:dataset a owl:NamedIndividual,
        stax:RdfElementType ;
    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 .

stax:flatRdfStream a owl:NamedIndividual,
        skos:Concept,
        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:flatRdfQuadStream,
        stax:flatRdfTripleStream ;
    skos:note "Abstract flat RDF stream type."@en ;
    skos:prefLabel "Flat RDF stream"@en .

stax:flatRdfTripleStream a owl:NamedIndividual,
        skos:Concept,
        stax:ConcreteRdfStreamType ;
    skos:broader stax:flatRdfStream ;
    skos:definition "A flat RDF triple stream is an RDF stream whose elements are triple statements."@en ;
    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:rdfGraphStream ;
    stax:hasElementType stax:triple .

stax:groupedRdfStream a owl:NamedIndividual,
        skos:Concept,
        stax:AbstractRdfStreamType ;
    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:rdfDatasetStream,
        stax:rdfGraphStream ;
    skos:note "Abstract grouped RDF stream type."@en ;
    skos:prefLabel "Grouped RDF stream"@en .

stax:rdfDatasetStream a owl:NamedIndividual,
        skos:Concept,
        stax:ConcreteRdfStreamType ;
    skos:broader stax:groupedRdfStream ;
    skos:definition "An RDF dataset stream is a grouped RDF stream whose elements are RDF datasets."@en ;
    skos:inScheme <https://w3id.org/stax/ontology> ;
    skos:narrower stax:rdfNamedGraphStream ;
    skos:note "A stream of RDF datasets."@en ;
    skos:prefLabel "RDF dataset stream"@en ;
    stax:canBeFlattenedInto stax:flatRdfQuadStream ;
    stax:hasElementType stax:dataset .

stax:rdfGraphStream a owl:NamedIndividual,
        skos:Concept,
        stax:ConcreteRdfStreamType ;
    skos:broader stax:groupedRdfStream ;
    skos:definition "An RDF graph stream is a grouped RDF stream whose elements are unnamed (default) RDF graphs."@en ;
    skos:inScheme <https://w3id.org/stax/ontology> ;
    skos:narrower stax:rdfSubjectGraphStream ;
    skos:note "A stream of RDF graphs."@en ;
    skos:prefLabel "RDF graph stream"@en ;
    stax:canBeFlattenedInto stax:flatRdfTripleStream ;
    stax:hasElementType stax:graph .

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

stax:flatRdfQuadStream a owl:NamedIndividual,
        skos:Concept,
        stax:ConcreteRdfStreamType ;
    skos:broader stax:flatRdfStream ;
    skos:definition "A flat RDF quad stream is an RDF stream whose elements are quad statements."@en ;
    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:rdfDatasetStream ;
    stax:hasElementType stax:quad .

stax:RdfElementType a owl:Class ;
    rdfs:label "RDF element type"@en ;
    rdfs:comment "Class for base types of elements in RDF streams. Instances of this class should correspond to RDF \"primitives\" (e.g., triple, quad, graph, dataset) and should not be further specialized. The instances of this class do NOT form a taxonomical structure."@en ;
    owl:disjointWith stax:RdfStreamType .

<https://w3id.org/stax/ontology> a owl:NamedIndividual,
        owl:Ontology,
        skos:ConceptScheme ;
    dc:description "RDF-STaX enables describing the types of RDF streams and defines relations between them."@en ;
    dc:title "RDF Stream Taxonomy (RDF-STaX)"@en ;
    dcterms:created "2023-10-22T00:00:00"^^xsd:dateTime ;
    dcterms:creator [ foaf:homepage <https://github.com/Ostrzyciel>,
                <https://orcid.org/0000-0002-2543-9461> ;
            foaf:name "Piotr Sowiński" ;
            foaf:nick "Ostrzyciel" ] ;
    dcterms:issued "2023-10-23T10:58:56"^^xsd:dateTime ;
    dcterms:license <https://spdx.org/licenses/CC-BY-4.0> ;
    vann:preferredNamespacePrefix "stax" ;
    vann:preferredNamespaceUri stax: ;
    schema:citation "Please cite this work according to the instructions here: https://w3id.org/stax/licensing"@en ;
    owl:imports <http://www.w3.org/2004/02/skos/core> ;
    owl:versionIRI <https://w3id.org/stax/ontology/0.1.0> ;
    owl:versionInfo "0.1.0" ;
    skos:altLabel "RDF-STaX"@en ;
    skos:hasTopConcept stax:rdfStream ;
    skos:prefLabel "RDF Stream Taxonomy"@en ;
    foaf:homepage <https://w3id.org/stax> .

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

