PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX stax: <https://w3id.org/stax/ontology#>
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>

stax:RdfStreamType a rdfs: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 <http://www.w3.org/2004/02/skos/core#Concept> .

stax:RdfStreamTypeUsage a rdfs: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. This class is suitable for annotating both theoretical uses and practical ones, i.e., real streams or datasets.

Instances 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.

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 .

stax:isUsageOf a rdf:Property ;
  rdfs:label "is usage of"@en ;
  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.

Inverse of stax:hasStreamTypeUsage."""@en ;
  rdfs:domain stax:RdfStreamTypeUsage ;
  rdfs:range <https://w3id.org/linkml/Any> .

stax:hasStreamType a rdf:Property ;
  rdfs:label "has 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:AbstractRdfStreamType a rdfs:Class ;
  rdfs:label "Abstract RDF stream type"@en ;
  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:subClassOf stax:RdfStreamType .

<https://w3id.org/linkml/Any> a rdfs:Class ;
  rdfs:comment "An unconstrained type or object"@en .

<http://www.w3.org/2004/02/skos/core#Concept> a rdfs:Class .

stax:ConcreteRdfStreamType a rdfs: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 to annotate real streams."@en ;
  rdfs:subClassOf stax:RdfStreamType .

stax:canBeTriviallyExtendedInto a rdf:Property ;
  rdfs:label "can be trivially extended into"@en ;
  rdfs:domain stax:ConcreteRdfStreamType ;
  rdfs:range stax:ConcreteRdfStreamType ;
  rdfs:subPropertyOf stax:streamTypeSemanticRelation .

stax:hasElementType a rdf:Property ;
  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 .

stax:streamTypeSemanticRelation a rdf:Property ;
  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 <http://www.w3.org/2004/02/skos/core#semanticRelation> .

stax:canBeFlattenedInto a rdf:Property ;
  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 .

stax:canBeGroupedInto a rdf:Property ;
  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. In this operation, the ordering information within a group is lost."""@en ;
  rdfs:domain stax:ConcreteRdfStreamType ;
  rdfs:range stax:ConcreteRdfStreamType ;
  rdfs:subPropertyOf stax:streamTypeSemanticRelation .

<http://www.w3.org/2004/02/skos/core#semanticRelation> a rdf:Property ;
  rdfs:range <https://w3id.org/linkml/Any> .

stax:hasStreamTypeUsage a rdf:Property ;
  rdfs:label "has stream type usage"@en ;
  rdfs:comment """Inverse of stax:isUsageOf – indicates that the subject is related to a usage of an RDF stream type.

The 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:range stax:RdfStreamTypeUsage .

stax:RdfElementType a rdfs:Class ;
  rdfs:label "RDF element type"@en ;
  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 .

stax:dataset a stax:RdfElementType ;
  rdfs:label "RDF dataset"@en ;
  rdfs:comment "https://www.w3.org/TR/rdf11-concepts/#section-dataset"@en .

stax:graph a stax:RdfElementType ;
  rdfs:label "RDF graph"@en ;
  rdfs:comment "https://www.w3.org/TR/rdf11-concepts/#section-rdf-graph"@en .

stax:quad a stax:RdfElementType ;
  rdfs:label "RDF quad"@en ;
  rdfs:comment "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 .

stax:triple a stax:RdfElementType ;
  rdfs:label "RDF triple"@en ;
  rdfs:comment "https://www.w3.org/TR/rdf11-concepts/#section-triples"@en .
