@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix ldes: <https://w3id.org/ldes#> .
@prefix tree: <https://w3id.org/tree#> .
@prefix cc: <http://creativecommons.org/ns#> .
@prefix dct: <http://purl.org/dc/terms/> .
@prefix foaf: <http://xmlns.com/foaf/0.1/> .
@prefix gsp: <http://www.opengis.net/ont/geosparql#> .
@prefix locn: <http://www.w3.org/ns/locn#> .
@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix prov: <http://www.w3.org/ns/prov#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix schema: <http://schema.org/> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix voaf: <http://purl.org/vocommons/voaf#> .
@prefix vs: <http://www.w3.org/2003/06/sw-vocab-status/ns#> .
@prefix wdrs: <http://www.w3.org/2007/05/powder-s#> .
@prefix xhtm: <http://www.w3.org/1999/xhtml> .
@prefix xml: <http://www.w3.org/XML/1998/namespace> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
@prefix hydra: <http://www.w3.org/ns/hydra/core#> .

<https://pietercolpaert.be/#me>
    foaf:mbox "pieter.colpaert@ugent.be" ;
    foaf:name "Pieter Colpaert" .

<https://w3id.org/ldes#>
    cc:license <http://creativecommons.org/licenses/by/4.0/> ;
    dct:creator <https://pietercolpaert.be/#me> ;
    a foaf:Document ;
    foaf:primaryTopic ldes:Vocabulary .

ldes:EventSource
    a rdfs:Class ;
    rdfs:comment "A data service that provides the source other views should synchronize with"@en ;
    rdfs:label "Event Source"@en .

ldes:EventStream
    a rdfs:Class ;
    rdfs:comment "An Event Stream is a tree:Collection containing immutable members."@en ;
    rdfs:label "Event Stream"@en ;
    rdfs:subClassOf tree:Collection .

ldes:RetentionPolicy
    a rdfs:Class ;
    rdfs:comment "Documents what data to keep"@en ;
    rdfs:label "Retention Policy"@en .

ldes:Vocabulary
    a owl:Ontology ;
    rdfs:comment "A hypermedia specification for maintaining a collection with immutable members."@en ;
    rdfs:label "The Linked Data Event Streams specification"@en .

ldes:fullLogDuration
    a rdf:Property ;
    rdfs:comment "The search tree keeps its full log for a certain duration."@en ;
    rdfs:domain ldes:RetentionPolicy ;
    rdfs:label "Full Log Duration"@en ;
    rdfs:range xsd:duration .

ldes:immutable
    a rdf:Property ;
    rdfs:comment "Re-fetching this tree:Node will not result in new members."@en ;
    rdfs:domain tree:Node ;
    rdfs:label "Immutable"@en ;
    rdfs:range xsd:boolean .

ldes:pollingInterval
    a rdf:Property ;
    rdfs:comment "The number of seconds the client should keep between synchronization run calls."@en ;
    rdfs:domain ldes:EventStream ;
    rdfs:label "Polling Interval"@en ;
    rdfs:range xsd:integer .

ldes:retentionPolicy
    a rdf:Property ;
    rdfs:comment "Links to a retention policy."@en ;
    rdfs:label "has retention policy"@en ;
    rdfs:range ldes:RetentionPolicy .

ldes:sequencePath
    a rdf:Property ;
    rdfs:comment "SHACL property path to an xsd literal in each member that defines the order of the event stream in addition to the timestampPath."@en ;
    rdfs:domain ldes:EventStream ;
    rdfs:label "Sequence Path"@en .

ldes:startingFrom
    a rdf:Property ;
    rdfs:comment "The search tree only keeps members starting a certain timestamp."@en ;
    rdfs:domain ldes:RetentionPolicy ;
    rdfs:label "Starting from"@en ;
    rdfs:range xsd:dateTime .

ldes:timestampPath
    a rdf:Property ;
    rdfs:comment "SHACL property path to the xsd:dateTime literal in each member that defines the order of the event stream."@en ;
    rdfs:domain ldes:EventStream ;
    rdfs:label "Timestamp Path"@en .

ldes:transactionFinalizedObject
    a rdf:Property ;
    rdfs:comment "If the RDF object matches the object in the transaction finalized path, the member indicates the transaction has been finalized."@en ;
    rdfs:domain ldes:EventStream ;
    rdfs:label "Transaction Finalized Object"@en .

ldes:transactionFinalizedPath
    a rdf:Property ;
    rdfs:comment "Path indicating whether the transaction has been finalized."@en ;
    rdfs:domain ldes:EventStream ;
    rdfs:label "Transaction Finalized Path"@en .

ldes:transactionPath
    a rdf:Property ;
    rdfs:comment "Path indicating how a member indicates whether it is part of a transaction."@en ;
    rdfs:domain ldes:EventStream ;
    rdfs:label "Transaction Path"@en .

ldes:versionAmount
    a rdf:Property ;
    rdfs:comment "The amount of versions to keep."@en ;
    rdfs:domain ldes:RetentionPolicy ;
    rdfs:label "Version amount"@en ;
    rdfs:range xsd:integer .

ldes:versionCreateObject
    a rdf:Property ;
    rdfs:comment "If the RDF object matches the object in the version create path, the member represents a create."@en ;
    rdfs:domain ldes:EventStream ;
    rdfs:label "Version Create Object"@en .

ldes:versionCreatePath
    a rdf:Property ;
    rdfs:comment "Path indicating where you can do an object check on whether the member represents a create. Defaults to rdf:type."@en ;
    rdfs:domain ldes:EventStream ;
    rdfs:label "Version Create Path"@en .

ldes:versionDeleteDuration
    a rdf:Property ;
    rdfs:comment "The search tree only keeps its deletions for a certain duration."@en ;
    rdfs:domain ldes:RetentionPolicy ;
    rdfs:label "Version Delete Duration"@en ;
    rdfs:range xsd:duration .

ldes:versionDeleteObject
    a rdf:Property ;
    rdfs:comment "If the RDF object matches the object in the version delete path, the member represents a delete."@en ;
    rdfs:domain ldes:EventStream ;
    rdfs:label "Version Delete Object"@en .

ldes:versionDeletePath
    a rdf:Property ;
    rdfs:comment "Path indicating where you can do an object check on whether the member represents a delete. Defaults to rdf:type."@en ;
    rdfs:domain ldes:EventStream ;
    rdfs:label "Version Delete Path"@en .

ldes:versionDuration
    a rdf:Property ;
    rdfs:comment "The search tree only keeps its versions, for which an `ldes:versionAmount` MUST have been set, only during a specific window. "@en ;
    rdfs:domain ldes:RetentionPolicy ;
    rdfs:label "Version duration"@en ;
    rdfs:range xsd:duration .

ldes:versionMaterializationOf
    a rdf:Property ;
    rdfs:comment "Links to the original LDES"@en ;
    rdfs:domain tree:Collection ;
    rdfs:label "Version Materialization Of"@en ;
    rdfs:range ldes:EventStream .

ldes:versionMaterializationUntil
    a rdf:Property ;
    rdfs:comment "Timestamp until versions were processed"@en ;
    rdfs:domain tree:Collection ;
    rdfs:label "Version Materialization Until"@en ;
    rdfs:range xsd:dateTime .

ldes:versionOfPath
    a rdf:Property ;
    rdfs:comment "SHACL property path to the non-versioned IRI of the entity."@en ;
    rdfs:domain ldes:EventStream ;
    rdfs:label "versionOf Path"@en .

ldes:versionSequencePath
    a rdf:Property ;
    rdfs:comment "For out of order event streams: a SHACL property path to an xsd literal in each member that defines the order of the event stream in addition to the versionTimestampPath."@en ;
    rdfs:domain ldes:EventStream ;
    rdfs:label "Version Sequence Path"@en .

ldes:versionTimestampPath
    a rdf:Property ;
    rdfs:comment "For out of order event streams: a SHACL property path to the xsd:dateTime literal in each member that defines the order of versioned members."@en ;
    rdfs:domain ldes:EventStream ;
    rdfs:label "Version Timestamp Path"@en .

ldes:versionUpdateObject
    a rdf:Property ;
    rdfs:comment "If the RDF object matches the object in the version update path, the member represents an update."@en ;
    rdfs:domain ldes:EventStream ;
    rdfs:label "Version Update Object"@en .

ldes:versionUpdatePath
    a rdf:Property ;
    rdfs:comment "Path indicating where you can do an object check on whether the member represents an update. Defaults to rdf:type."@en ;
    rdfs:domain ldes:EventStream ;
    rdfs:label "Version Update Path"@en .

