@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix databus: <https://dataid.dbpedia.org/databus#> .
@prefix dataid: <http://dataid.dbpedia.org/ns/core#> .
@prefix dc: <http://purl.org/dc/elements/1.1/> .
@prefix dcat: <http://www.w3.org/ns/dcat#> .
@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 prov: <http://www.w3.org/ns/prov#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
@prefix ns1: <http://purl.org/vocab/vann/> .

<https://dataid.dbpedia.org/databus#>
    dc:contributor "Jan Forberg", "Milan Dojchinovski", "Sebastian Hellmann" ;
    dc:creator "Milan Dojchinovski" ;
    dc:description """
    The Databus Ontology provides a model for version-centric data management and enables efficient organization and retrieval of datasets. The Databus Ontology supports version tracking, retrieval of different dataset versions, and efficient organization of data artifacts. It allows for seamless collaboration and consumption of data, and facilitates the management and categorization of datasets.
    The Databus Ontology is aligned and meant to be used in combination with the DataID ontology, DCAT, Prov-O and Dublin Core.

    * Databus Model Overview *
    The Group class allows users to organize and categorize data by grouping related artifacts, facilitating collaboration and data consumption across projects. The Artifact class represents a logical dataset and maintains a stable reference across different versions and variants of the dataset. The Version class represents a specific version of an artifact and is associated with one or more distributions (parts). The Part class represents a dataset distribution that contributes to a version by adding information. The Collection class enables users to create data catalogs and organize related datasets.

    * Feedback *
    If you'd like to leave feedback, please open an issue on GitHub (https://github.com/dbpedia/databus/issues)."""@en ;
    dc:publisher "DBpedia Association, The Institute for Applied Informatics (InfAI)"@en ;
    dc:rights "This ontology is licensed under Apache 2.0 (http://www.apache.org/licenses/LICENSE-2.0) and CC-BY (http://creativecommons.org/licenses/by/3.0/)"@en ;
    dcterms:license <http://creativecommons.org/licenses/by/3.0/>, <http://www.apache.org/licenses/LICENSE-2.0> ;
    dcterms:title "Databus Ontology"@en ;
    ns1:changes <https://github.com/dbpedia/DataId-Ontology/commits/master> ;
    ns1:preferredNamespacePrefix "databus" ;
    ns1:preferredNamespaceUri "https://dataid.dbpedia.org/databus#" ;
    a owl:Ontology ;
    rdfs:label "Databus Ontology"@en ;
    owl:versionInfo "See Archivo: https://archivo.dbpedia.org/info?o=https%3A//dataid.dbpedia.org/databus%23"@en ;
    sh:shapesGraph <https://raw.githubusercontent.com/dbpedia/databus/master/model/generated/shacl/artifact.shacl>, <https://raw.githubusercontent.com/dbpedia/databus/master/model/generated/shacl/dataid.shacl>, <https://raw.githubusercontent.com/dbpedia/databus/master/model/generated/shacl/group.shacl>, <https://raw.githubusercontent.com/dbpedia/databus/master/model/generated/shacl/version.shacl> .

databus:Artifact
    a owl:Class ;
    rdfs:comment "A Databus Artifact represents a logical dataset, that holds the versions of the same dataset. Lika a channel, users can subscribe to an artifact to retrieve the latest versions. Each artifact is an abstract identity, meaning it maintains a stable reference across different versions and variants of the dataset. The abstract identity facilitates tracking and retrieval of various versions of the dataset. Databus Artifacts are akin to the role that artifacts play in Maven, but, instead of software libraries, it encompasses datasets."@en ;
    rdfs:isDefinedBy <http://dataid.dbpedia.org/databus#> ;
    rdfs:label "Databus Artifact"@en ;
    rdfs:subClassOf prov:Entity .

databus:Collection
    a owl:Class ;
    rdfs:comment "Collections  are user-created data catalogues. It enables users to organize related datasets together, providing a logical structure for accessing data artifacts within a project or organization.  By using collections, users can efficiently categorize and manage datasets based on their relevance, thematic similarity, or any other criteria. Each collection is a SPARQL query, that retrieves all versions/files of the collections."@en ;
    rdfs:isDefinedBy <https://dataid.dbpedia.org/databus#> ;
    rdfs:label "Collection"@en ;
    rdfs:subClassOf prov:Entity .

databus:Databus
    a owl:Class ;
    rdfs:comment "Defines an instance of a Databus platform."@en ;
    rdfs:isDefinedBy <https://dataid.dbpedia.org/databus#> ;
    rdfs:label "Databus"@en ;
    rdfs:subClassOf prov:Entity .

databus:DatabusTractateV1
    a owl:Class ;
    rdfs:comment "Defines the proof method for the dataset."@en ;
    rdfs:isDefinedBy <https://dataid.dbpedia.org/databus#> ;
    rdfs:label "DatabusTractateV1"@en ;
    rdfs:subClassOf prov:Entity .

databus:Group
    a owl:Class ;
    rdfs:comment "The Databus Group concept enables users to efficiently organize and categorize their data by grouping them into sets of related artifacts. These groups help establish a logical structure for organizing data artifacts within a project or organization. By assigning group identifiers, conflicts in naming can be avoided, ensuring seamless collaboration and consumption of data across multiple projects or organizations."@en ;
    rdfs:isDefinedBy <https://dataid.dbpedia.org/databus#> ;
    rdfs:label "Databus Group"@en ;
    rdfs:subClassOf prov:Entity .

databus:Part
    a owl:Class ;
    rdfs:comment "A Part represents a dataset distribution. Each Part corresponds to a specific file and contributes to a dataset (Version) as a whole. All parts together constitute the particular version (even if it is just one Part). "@en ;
    rdfs:isDefinedBy <http://dataid.dbpedia.org/databus#> ;
    rdfs:label "Part"@en ;
    rdfs:subClassOf dataid:Distribution, dcat:Distribution .

databus:Version
    a owl:Class ;
    rdfs:comment """The Version concept represents a specific version of an artifact (a snapshot of the dataset) within the DBpedia Databus platform. It represents a dataset version that is associated with a particular artifact. Each Version is linked to one or more distributions, per default represented by the Part class (see databus:Part definition). 
    The Version-centric model implemented by the Databus ontology allows for tracking and retrieval of different versions and variants of datasets. It ensures that each version of an artifact maintains a stable reference across variations and updates."""@en ;
    rdfs:isDefinedBy <https://dataid.dbpedia.org/databus#> ;
    rdfs:label "Version"@en ;
    rdfs:subClassOf dataid:Dataset, dcat:Dataset .

databus:account
    a owl:ObjectProperty ;
    rdfs:comment "Relates a Version of an Artifact to an account on the Databus platform."@en ;
    rdfs:domain dataid:Dataset ;
    rdfs:isDefinedBy <https://dataid.dbpedia.org/databus#> ;
    rdfs:label "Account"@en ;
    rdfs:range foaf:OnlineAccount .

databus:artifact
    a rdf:ObjectProperty ;
    rdfs:comment "Specifies an artifact associated with a dataset version."@en ;
    rdfs:domain databus:Version ;
    rdfs:isDefinedBy <https://dataid.dbpedia.org/databus#> ;
    rdfs:label "artifact"@en ;
    rdfs:range databus:Artifact .

databus:attribution
    a owl:DatatypeProperty ;
    rdfs:comment "Attribution for a specific Version."@en ;
    rdfs:domain databus:Version ;
    rdfs:isDefinedBy <https://dataid.dbpedia.org/databus#> ;
    rdfs:label "attribution"@en ;
    rdfs:range xsd:string .

databus:collectionContent
    a owl:DatatypeProperty ;
    rdfs:comment "The content of a Databus Collection in JSON format. Note that JSON-LD was considered and declined in the code."@en ;
    rdfs:domain databus:Collection ;
    rdfs:isDefinedBy <https://dataid.dbpedia.org/databus#> ;
    rdfs:label "content"@en .

databus:compression
    a owl:DatatypeProperty ;
    rdfs:comment "Specifies the compression algorithm used for the file, or none, if uncompressed."@en ;
    rdfs:domain dcat:Distribution, databus:Part ;
    rdfs:isDefinedBy <https://dataid.dbpedia.org/databus#> ;
    rdfs:label "compression"@en ;
    rdfs:range xsd:string .

databus:contentVariant
    a owl:DatatypeProperty ;
    rdfs:comment "Specifies the variant of the Part."@en ;
    rdfs:domain databus:Part ;
    rdfs:isDefinedBy <https://dataid.dbpedia.org/databus#> ;
    rdfs:label "Content Variant"@en ;
    rdfs:range xsd:string .

databus:file
    a owl:ObjectProperty ;
    rdfs:comment "The file associated with a Part (i.e. distribution)."@en ;
    rdfs:domain databus:Part ;
    rdfs:isDefinedBy <https://dataid.dbpedia.org/databus#> ;
    rdfs:label "file"@en .

databus:formatExtension
    a owl:DatatypeProperty ;
    rdfs:comment "The file format extension of a data file."@en ;
    rdfs:domain databus:Part ;
    rdfs:isDefinedBy <https://dataid.dbpedia.org/databus#> ;
    rdfs:label "Format Extension"@en ;
    rdfs:range xsd:String .

databus:group
    a owl:ObjectProperty ;
    rdfs:comment "Relates a version with a specific group."@en ;
    rdfs:domain databus:Version ;
    rdfs:isDefinedBy <https://dataid.dbpedia.org/databus#> ;
    rdfs:label "group"@en ;
    rdfs:range databus:Group .

databus:sha256sum
    a owl:DatatypeProperty ;
    rdfs:comment "The SHA256 hash sum of a file content."@en ;
    rdfs:domain databus:Part ;
    rdfs:isDefinedBy <https://dataid.dbpedia.org/databus#> ;
    rdfs:label "SHA256 Sum"@en ;
    rdfs:range xsd:string .

