PREFIX metadata: <https://riverbench.github.io/schema/metadata#>
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>

metadata:StatementCountStreamElementSplit a rdfs:Class ;
  rdfs:label "Stream elements split by statement count"@en ;
  rdfs:subClassOf metadata:StreamElementSplit .

metadata:LiteralCountStatistics a rdfs:Class ;
  rdfs:label "Literal count statistics"@en ;
  rdfs:comment "Statistics about the number of literals in the dataset."@en ;
  rdfs:subClassOf metadata:Statistics .

metadata:statisticalProperty a rdf:Property ;
  rdfs:label "Statistical property"@en ;
  rdfs:domain metadata:Statistics ;
  rdfs:range <https://w3id.org/linkml/Any> .

metadata:TopicStreamElementSplit a rdfs:Class ;
  rdfs:label "Stream elements split by topic"@en ;
  rdfs:subClassOf metadata:StreamElementSplit .

metadata:Profile a rdfs:Class ;
  rdfs:label "Benchmark profile"@en ;
  rdfs:comment "Benchmark profile grouping several datasets in RiverBench"@en ;
  rdfs:subClassOf <http://www.w3.org/ns/dcat#DatasetSeries> .

metadata:hasRestriction a rdf:Property ;
  rdfs:label "Has restriction"@en ;
  rdfs:comment "Has profile restriction. The restrictions are joined with the AND operator."@en ;
  rdfs:domain metadata:Profile ;
  rdfs:range metadata:ProfileRestriction .

metadata:isSubsetOfProfile a rdf:Property ;
  rdfs:label "Is subset of profile"@en ;
  rdfs:comment "Indicates that this profile's datasets are all in the other profile"@en ;
  rdfs:domain metadata:Profile ;
  rdfs:range metadata:Profile .

metadata:isSupersetOfProfile a rdf:Property ;
  rdfs:label "Is superset of profile"@en ;
  rdfs:comment "Indicates that this profile contains all datasets of the other profile"@en ;
  rdfs:domain metadata:Profile ;
  rdfs:range metadata:Profile .

metadata:SubjectCountStatistics a rdfs:Class ;
  rdfs:label "Subject count statistics"@en ;
  rdfs:comment "Statistics about the number of subjects in the dataset."@en ;
  rdfs:subClassOf metadata:Statistics .

metadata:IriCountStatistics a rdfs:Class ;
  rdfs:label "IRI count statistics"@en ;
  rdfs:comment "Statistics about the number of IRIs in the dataset."@en ;
  rdfs:subClassOf metadata:Statistics .

<http://www.w3.org/ns/dcat#DatasetSeries> a rdfs:Class ;
  rdfs:label "Dataset series"@en .

metadata:GraphCountStatistics a rdfs:Class ;
  rdfs:label "Graph count statistics"@en ;
  rdfs:comment "Statistics about the number of RDF graphs in the dataset, including the default graph."@en ;
  rdfs:subClassOf metadata:Statistics .

metadata:LanguageLiteralCountStatistics a rdfs:Class ;
  rdfs:label "Language string count statistics"@en ;
  rdfs:comment "Statistics about the number of language literals in the dataset."@en ;
  rdfs:subClassOf metadata:Statistics .

metadata:PredicateCountStatistics a rdfs:Class ;
  rdfs:label "Predicate count statistics"@en ;
  rdfs:comment "Statistics about the number of predicates in the dataset."@en ;
  rdfs:subClassOf metadata:Statistics .

metadata:Distribution a rdfs:Class ;
  rdfs:label "RiverBench dataset distribution"@en ;
  rdfs:subClassOf <http://www.w3.org/ns/dcat#Distribution> .

metadata:hasFileName a rdf:Property ;
  rdfs:label "Has file name"@en ;
  rdfs:comment "Canonical file name of this distribution"@en ;
  rdfs:domain metadata:Distribution ;
  rdfs:range xsd:string .

metadata:hasStatistics a rdf:Property ;
  rdfs:label "Has statistics"@en ;
  rdfs:comment "Has a dataset statistics object"@en ;
  rdfs:domain metadata:Distribution ;
  rdfs:range metadata:Statistics .

metadata:Statistics a rdfs:Class .

metadata:StreamElementSplit a rdfs:Class ;
  rdfs:label "Stream element split"@en ;
  rdfs:comment "Describes how was the stream split into individual elements."@en .

metadata:ObjectCountStatistics a rdfs:Class ;
  rdfs:label "Object count statistics"@en ;
  rdfs:comment "Statistics about the number of objects in the dataset."@en ;
  rdfs:subClassOf metadata:Statistics .

metadata:ProfileRestriction a rdfs:Class ;
  rdfs:label "Profile restriction"@en ;
  rdfs:comment "Resource with properties that specify conditions for datasets to be included in the profile. The conditions are joined with the OR operator."@en .

metadata:StatementCountStatistics a rdfs:Class ;
  rdfs:label "Statement count statistics"@en ;
  rdfs:comment "Statistics about the number of RDF statements in the dataset."@en ;
  rdfs:subClassOf metadata:Statistics .

metadata:DatatypeLiteralCountStatistics a rdfs:Class ;
  rdfs:label "Datatype literal count statistics"@en ;
  rdfs:comment "Statistics about the number of datatype literals (NOT of type rdf:langString) in the dataset."@en ;
  rdfs:subClassOf metadata:Statistics .

<http://www.w3.org/ns/dcat#Dataset> a rdfs:Class .

metadata:TimeStreamElementSplit a rdfs:Class ;
  rdfs:label "Stream elements split by time"@en ;
  rdfs:subClassOf metadata:StreamElementSplit .

metadata:hasTemporalProperty a rdf:Property ;
  rdfs:label "Has temporal property"@en ;
  rdfs:comment "The IRI of the property that is used in the stream to denote time at which the event occured."@en ;
  rdfs:domain metadata:TimeStreamElementSplit ;
  rdfs:range <https://w3id.org/linkml/Any> .

metadata:RiverBench a rdfs:Class ;
  rdfs:label "RiverBench suite"@en ;
  rdfs:comment "RiverBench – RDF streaming benchmark suite"@en ;
  rdfs:subClassOf <http://www.w3.org/ns/dcat#Catalog> .

metadata:hasProfile a rdf:Property ;
  rdfs:label "Has benchmark profile"@en ;
  rdfs:comment "Indicates benchmark profiles that belong to this benchmark suite."@en ;
  rdfs:domain metadata:RiverBench ;
  rdfs:range metadata:Profile ;
  rdfs:subPropertyOf <http://www.w3.org/ns/dcat#resource> .

<http://www.w3.org/ns/dcat#Distribution> a rdfs:Class .

metadata:Dataset a rdfs:Class ;
  rdfs:label "RiverBench dataset"@en ;
  rdfs:subClassOf <http://www.w3.org/ns/dcat#Dataset> .

metadata:hasStreamElementSplit a rdf:Property ;
  rdfs:label "Has stream element split"@en ;
  rdfs:domain metadata:Dataset ;
  rdfs:range metadata:StreamElementSplit .

metadata:usesOntology a rdf:Property ;
  rdfs:label "Uses ontology"@en ;
  rdfs:comment "Indicates that the dataset uses an ontology. The object must be a resource, but it doesn't neccesarily have to be an OWL ontology."@en ;
  rdfs:domain metadata:Dataset ;
  rdfs:range <https://w3id.org/linkml/Any> .

metadata:BlankNodeCountStatistics a rdfs:Class ;
  rdfs:label "Blank node count statistics"@en ;
  rdfs:comment "Statistics about the number of blank nodes in the dataset."@en ;
  rdfs:subClassOf metadata:Statistics .

metadata:QuotedTripleCountStatistics a rdfs:Class ;
  rdfs:label "Quoted triple count statistics"@en ;
  rdfs:comment "Statistics about the number of quoted triples in the dataset."@en ;
  rdfs:subClassOf metadata:Statistics .

metadata:PlainLiteralCountStatistics a rdfs:Class ;
  rdfs:label "Simple literal count statistics"@en ;
  rdfs:comment "Statistics about the number of simple literals (of type xsd:string) in the dataset."@en ;
  rdfs:subClassOf metadata:Statistics .

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

<http://www.w3.org/ns/dcat#Catalog> a rdfs:Class .

<http://www.w3.org/ns/dcat#resource> a rdf:Property ;
  rdfs:range <https://w3id.org/linkml/Any> .

<http://www.w3.org/ns/dcat#seriesMember> a rdf:Property ;
  rdfs:label "Includes dataset"@en ;
  rdfs:comment "Indicates which datasets are included in the profile"@en ;
  rdfs:range <https://w3id.org/linkml/Any> .

metadata:conformanceProperty a rdf:Property ;
  rdfs:range xsd:boolean .

metadata:conformsToRdf11 a rdf:Property ;
  rdfs:label "Conforms to W3C RDF 1.1 specification"@en ;
  rdfs:comment "Whether the dataset is RDF 1.1-compliant, i.e., does not use any non-standard features, like generalized triples."@en ;
  rdfs:seeAlso <https://www.w3.org/TR/rdf11-concepts/> ;
  rdfs:range xsd:boolean ;
  rdfs:subPropertyOf metadata:conformanceProperty .

metadata:conformsToRdfStarDraft_20211217 a rdf:Property ;
  rdfs:label "Conforms to W3C RDF-star draft specification as of December 17, 2021"@en ;
  rdfs:comment "Whether the dataset is RDF-star compliant, i.e., does not use any non-standard features. Note that all standard RDF 1.1 datasets also qualify, as RDF-star is a superset of RDF 1.1."@en ;
  rdfs:seeAlso <https://www.w3.org/2021/12/rdf-star.html> ;
  rdfs:range xsd:boolean ;
  rdfs:subPropertyOf metadata:conformanceProperty .

metadata:hasDistributionType a rdf:Property ;
  rdfs:label "Has distribution type"@en ;
  rdfs:comment "Indicates the type of RiverBench dataset distribution"@en ;
  rdfs:range metadata:DistributionType .

metadata:hasStreamElementCount a rdf:Property ;
  rdfs:label "Has stream element count"@en ;
  rdfs:comment "Number of elements in the stream"@en ;
  rdfs:range <https://w3id.org/linkml/Any> .

metadata:hasStreamElementType a rdf:Property ;
  rdfs:label "Has stream element type"@en ;
  rdfs:comment "Indicates the type of contents of each stream element"@en ;
  rdfs:range metadata:StreamElementType .

metadata:hasVersion a rdf:Property ;
  rdfs:label "Has version"@en ;
  rdfs:comment "Version tag of an artifact"@en ;
  rdfs:range xsd:string .

metadata:maximum a rdf:Property ;
  rdfs:label "Maximum"@en ;
  rdfs:comment "Maximum value of a distribution"@en ;
  rdfs:range xsd:decimal ;
  rdfs:subPropertyOf metadata:statisticalProperty .

metadata:mean a rdf:Property ;
  rdfs:label "Mean"@en ;
  rdfs:comment "Arithmetic mean of a distribution"@en ;
  rdfs:range xsd:decimal ;
  rdfs:subPropertyOf metadata:statisticalProperty .

metadata:minimum a rdf:Property ;
  rdfs:label "Minimum"@en ;
  rdfs:comment "Minimum value of a distribution"@en ;
  rdfs:range xsd:decimal ;
  rdfs:subPropertyOf metadata:statisticalProperty .

metadata:standardDeviation a rdf:Property ;
  rdfs:label "Standard deviation"@en ;
  rdfs:comment "Standard deviation of a distribution"@en ;
  rdfs:range xsd:decimal ;
  rdfs:subPropertyOf metadata:statisticalProperty .

metadata:sum a rdf:Property ;
  rdfs:label "Sum"@en ;
  rdfs:comment "Sum of all values in the distribution. In statistics about counts, this corresponds to the total number of given elements in the dataset."@en ;
  rdfs:range xsd:decimal ;
  rdfs:subPropertyOf metadata:statisticalProperty .

metadata:uniqueCount a rdf:Property ;
  rdfs:label "Unique count"@en ;
  rdfs:comment "Only used for count statistics. Indicates how many unique elements are in the entire dataset."@en ;
  rdfs:range xsd:integer ;
  rdfs:subPropertyOf metadata:statisticalProperty .

metadata:usesGeneralizedRdfDatasets a rdf:Property ;
  rdfs:label "Uses generalized RDF datasets"@en ;
  rdfs:comment "Whether the dataset uses the non-standard generalized datasets feature. A \"dataset\" here is used in the same meaning as in the RDF 1.1 specification."@en ;
  rdfs:seeAlso <https://www.w3.org/TR/rdf11-concepts/#section-generalized-rdf> ;
  rdfs:range xsd:boolean ;
  rdfs:subPropertyOf metadata:conformanceProperty .

metadata:usesGeneralizedTriples a rdf:Property ;
  rdfs:label "Uses generalized triples"@en ;
  rdfs:comment "Whether the dataset uses the non-standard generalized triples feature"@en ;
  rdfs:seeAlso <https://www.w3.org/TR/rdf11-concepts/#section-generalized-rdf> ;
  rdfs:range xsd:boolean ;
  rdfs:subPropertyOf metadata:conformanceProperty .

metadata:usesRdfStar a rdf:Property ;
  rdfs:label "Uses RDF-star"@en ;
  rdfs:comment "Whether the dataset uses RDF-star features."@en ;
  rdfs:seeAlso <https://www.w3.org/2021/12/rdf-star.html> ;
  rdfs:range xsd:boolean ;
  rdfs:subPropertyOf metadata:conformanceProperty .

metadata:DistributionType a rdfs:Class ;
  rdfs:label "RiverBench distribution type"@en .

metadata:graphStreamDistribution a metadata:DistributionType ;
  rdfs:label "Graph stream distribution"@en ;
  rdfs:comment "The dataset is distributed as a stream of named RDF graphs."@en .

metadata:tripleStreamDistribution a metadata:DistributionType ;
  rdfs:label "Triple stream distribution"@en ;
  rdfs:comment "The dataset is distributed as a stream of RDF triples."@en .

metadata:partialDistribution a metadata:DistributionType ;
  rdfs:label "Partial distribution"@en ;
  rdfs:comment "A partial distribution, including only a subset of the data in the dataset. The rb:hasStreamElementCount property indicates the length of this distribution."@en .

metadata:flatDistribution a metadata:DistributionType ;
  rdfs:label "Flat distribution"@en ;
  rdfs:comment "The dataset is distributed as a single flat file."@en .

metadata:fullDistribution a metadata:DistributionType ;
  rdfs:label "Full distribution"@en ;
  rdfs:comment "A full distribution, including all data in the dataset."@en .

metadata:quadStreamDistribution a metadata:DistributionType ;
  rdfs:label "Quad stream distribution"@en ;
  rdfs:comment "The dataset is distributed as a stream of RDF quads."@en .

metadata:StreamElementType a rdfs:Class ;
  rdfs:label "Stream element type"@en ;
  rdfs:comment "Indicates the type of the contents of stream elements"@en .

metadata:quads a metadata:StreamElementType ;
  rdfs:label "Quads"@en ;
  rdfs:comment "Quad streams consist of elements, where each element is an RDF dataset."@en .

metadata:graphs a metadata:StreamElementType ;
  rdfs:label "Graphs"@en ;
  rdfs:comment "Graph streams are a special case of quad streams, where each element contains exactly one named RDF graph."@en .

metadata:triples a metadata:StreamElementType ;
  rdfs:label "Triples"@en ;
  rdfs:comment "Triple streams consist of elements, where each element is an RDF graph."@en .
