<#version-exists>ash:NodeShape ;sh:targetNodedatabus:Version ;sh:property [sh:path [ sh:inversePathrdf:type ] ;sh:minCount1 ;sh:maxCount1 ;sh:message"Exactly one subject with an rdf:type of databus:Version must occur."@en ; ] ;sh:property [sh:path [ sh:inversePathrdf:type ] ;sh:nodekindsh:IRI ;sh:pattern"/[a-zA-Z0-9\\-_]{4,}/[a-zA-Z0-9\\-_\\.]{1,}/[a-zA-Z0-9\\-_\\.]{1,}/[a-zA-Z0-9\\-_\\.]{1,}$" ;sh:message"IRI for databus:Version must match /USER/GROUP/ARTIFACT/VERSION , |USER|>3"@en ; ] .
dct:titlerdfs:label"Title"@en ;rdfs:comment"A name given to the resource."@en ;rdfs:isDefinedBy<http://purl.org/dc/terms/> ;rdfs:rangerdfs:Literal ;rdfs:subPropertyOf<http://purl.org/dc/elements/1.1/title> .
<#title-version>ash:NodeShape ;sh:targetClassdatabus:Version ;sh:property [sh:pathdct:title ;sh:severitysh:Violation ;sh:message"Required property dct:title MUST occur exactly once without language tag."@en ;sh:qualifiedValueShape [ sh:datatypexsd:string ] ;sh:qualifiedMinCount1 ;sh:qualifiedMaxCount1 ; ] ;sh:property [sh:pathdct:title ;sh:severitysh:Violation ;sh:message"Besides the required occurance of dct:title without language tag, dct:title can be used with language tag, but each language only once."@en ;sh:uniqueLangtrue ; ] .
abstract
TODO autogenerated from the first 200 chars of description.
Example (JSON-LD):
{ "@id": "https://databus.dbpedia.org/janni/onto_dep_projectx/dbpedia-ontology/2021-12-06","abstract": "Registered a version of the DBpedia Ontology into my account",}
Spec (OWL, SHACL, JSON-LD Context)
dct:abstractrdfs:label"Abstract"@en ;rdfs:comment"A summary of the resource."@en ;rdfs:isDefinedBy<http://purl.org/dc/terms/> ;rdfs:subPropertyOf<http://purl.org/dc/elements/1.1/description>, dct:description .
<#abstract-version>ash:NodeShape ;sh:targetClassdatabus:Version ;sh:property [sh:pathdct:abstract ;sh:severitysh:Violation ;sh:message"Required property dct:abstract MUST occur at least once without language tag."@en ;sh:qualifiedValueShape [ sh:datatypexsd:string ] ;sh:qualifiedMinCount1 ;sh:qualifiedMaxCount1 ; ];sh:property [sh:pathdct:abstract ;sh:severitysh:Violation ;sh:message"Besides the required occurance of dct:abstract without language tag, each occurance of dct:abstract must have less than 300 characters and each language must occure only once. "@en ;sh:uniqueLangtrue;sh:maxLength300 ; ] .
description
Markdown allowed. The first 200 chars will be used as an abstract.
Example (JSON-LD):
{ "@id": "https://databus.dbpedia.org/janni/onto_dep_projectx/dbpedia-ontology/2021-12-06","description": "Registered a version of the DBpedia Ontology into my account. Using markdown:\n 1. This is the version used in [project x](http://example.org) as a stable snapshot dependency\n 2. License was checked -> CC-BY\n",}
Spec (OWL, SHACL, JSON-LD Context)
dct:descriptiondct:description"Description may include but is not limited to: an abstract, a table of contents, a graphical representation, or a free-text account of the resource."@en ;rdfs:comment"An account of the resource."@en ;rdfs:isDefinedBy<http://purl.org/dc/terms/> ;rdfs:label"Description"@en ;rdfs:subPropertyOf<http://purl.org/dc/elements/1.1/description> .
<#description-version>ash:NodeShape ;sh:targetClassdatabus:Version ;sh:property [sh:pathdct:description ;sh:severitysh:Violation ;sh:message"Required property dct:description MUST occur exactly once without language tag."@en ;sh:qualifiedValueShape [ sh:datatypexsd:string ] ;sh:qualifiedMinCount1 ;sh:qualifiedMaxCount1 ; ] ;sh:property [sh:pathdct:description ;sh:severitysh:Violation ;sh:message"Besides the required occurance of dct:description without language tag, dct:title can be used with language tag, but each language only once."@en ;sh:uniqueLangtrue ; ] .
publisher
The agent, person or organisation responsible for publishing this Databus version's metadata (not the files itself)
dct:publisherdcam:rangeIncludesdct:Agent ;rdfs:comment"An entity responsible for making the resource available."@en ;rdfs:isDefinedBy<http://purl.org/dc/terms/> ;rdfs:label"Publisher"@en ;rdfs:subPropertyOf<http://purl.org/dc/elements/1.1/publisher> .
<#has-publisher>ash:PropertyShape ;sh:targetClassdatabus:Version ;sh:severitysh:Violation ;sh:message"Required property dct:publisher MUST occur exactly once and have URI/IRI as value"@en ;sh:pathdct:publisher;sh:minCount1 ;sh:maxCount1 ;sh:nodeKindsh:IRI .
Automation of licensing. To describe datasets a license URIs is required. In most cases these URIs provide a human-only HTML description. License URIs from our affiliate project DALICC are machine-actionable and machines can compare licenses and check for compatibility and obligations in an automated manner.
Provenance chains. Once datasets are registered with any Databus, provenance relations can be added to the graph and link to the source data the current version was Derived From. Combined with licenses, this enables to track back input sources and dependencies and transitively accumulate all licensing information.
Attribution. Most dataset metadata originally comes from unstructured, non-machine readable places such as HTML Websites. This attribution information needs to be captured initially on the Databus, whenever data metadata is first lifted into the Databus model.
Note: Entered metadata is signed with the users private key or on behalt of the user by the Databus to avoid tempering with this information (see proof). This is an extra measure to secure against falsification of the legal implications of the metadata.
license
Usage of DALICC License URIs is highly recommended (library).
License is set at the databus:Version node, but is always valid for all distributions, which is also reflected by signing the tractate.
context.jsonld contains "@context":{"@base": null }, to prevent creating local IRIs.
dct:licenserdfs:label"License"@en ;rdfs:comment"A legal document giving official permission to do something with the resource."@en ;dct:description"Recommended practice is to identify the license document with a URI. If this is not possible or feasible, a literal value that identifies the license may be provided."@en ;dcam:rangeIncludesdct:LicenseDocument ;rdfs:isDefinedBy<http://purl.org/dc/terms/> ;rdfs:subPropertyOf<http://purl.org/dc/elements/1.1/rights>, dct:rights .
<#has-license>ash:PropertyShape ;sh:targetClassdatabus:Version ;sh:severitysh:Violation ;sh:message"Required property dct:license MUST occur exactly once and have URI/IRI as value"@en ;sh:pathdct:license;sh:minCount1 ;sh:maxCount1 ;sh:nodeKindsh:IRI .
prov:wasDerivedFromaowl:ObjectProperty ;rdfs:isDefinedBy<http://www.w3.org/ns/prov-o#> ;rdfs:label"wasDerivedFrom" ;prov:definition"A derivation is a transformation of an entity into another, an update of an entity resulting in a new one, or the construction of a new entity based on a pre-existing entity."@en ;rdfs:domainprov:Entity ;rdfs:rangeprov:Entity .
Capturing information about attribution serves these purposes:
enable citations in academic context
fulfill license obligations such as CC-BY. Note that most open licenses only grant you the specified freedoms, if you properly fulfill the obligations such as attribution.
The field attribution is:
optional (can be omitted)
multi-valued (can have more than one entry, e.g. one for attributing the paper, one for attributing the publishing organisation)
multi-type (can have variety of different formats, which are listed below)
group, artifact, version, hasVersion are the main properties used to structure all entries on the Databus for querying and retrieval. The most basic query here is to retrieve the latest version for each artifact in some group or to check, whether there is a new version available for one artifact.
databus:grouprdf:typeowl:ObjectProperty ;rdfs:label"group"@en ;rdfs:comment"Refers to a group or collection of resources."@en ;rdfs:domaindatabus:Version ;rdfs:rangedatabus:Group ;rdfs:isDefinedBy<https://dataid.dbpedia.org/databus#> .
<#has-group>ash:PropertyShape ;sh:targetClassdatabus:Version ;sh:severitysh:Violation ;sh:message"Required property databus:group MUST occur exactly once AND be of type IRI AND must match /USER/GROUP , |USER|>3"@en ;sh:pathdatabus:group ;sh:minCount1 ;sh:maxCount1 ;sh:nodeKindsh:IRI ;sh:pattern"/[a-zA-Z0-9\\-_]{4,}/[a-zA-Z0-9\\-_\\.]{1,}$" .<#is-group-uri-correct>ash:NodeShape;sh:targetClassdatabus:Version ;sh:sparql [sh:message"Dataset URI must contain the group URI of the associated group." ;sh:prefixesdatabus: ;sh:select""" SELECT $this ?group WHERE { $this <https://dataid.dbpedia.org/databus#group> ?group . FILTER(!strstarts(str($this), str(?group))) } """ ; ] .
databus:artifactardf:ObjectProperty ;rdfs:label"artifact"@en ;rdfs:comment"Specifies an artifact associated with a dataset version."@en ;rdfs:domaindatabus:Version ;rdfs:rangedatabus:Artifact ;rdfs:isDefinedBy<https://dataid.dbpedia.org/databus#> .
<#has-artifact>ash:PropertyShape ;sh:targetClassdatabus:Version ;sh:severitysh:Violation ;sh:message"Required property databus:artifact MUST occur exactly once AND be of type IRI AND must match /USER/GROUP/ARTIFACT , |USER|>3"@en ;sh:pathdatabus:artifact ;sh:minCount1 ;sh:maxCount1 ;sh:nodeKindsh:IRI ;sh:pattern"/[a-zA-Z0-9\\-_]{4,}/[a-zA-Z0-9\\-_\\.]{1,}/[a-zA-Z0-9\\-_\\.]{1,}$" .<#is-artifact-uri-correct>ash:NodeShape;sh:targetClassdatabus:Version ;sh:sparql [sh:message"Version URI must contain the artifact URI of the associated artifact." ;sh:prefixesdatabus: ;sh:select""" SELECT $this ?artifact WHERE { $this <https://dataid.dbpedia.org/databus#artifact> ?artifact . FILTER(!strstarts(str($this), str(?artifact))) } """ ; ] .
dct:hasVersiondct:description"Changes in version imply substantive changes in content rather than differences in format. This property is intended to be used with non-literal values. This property is an inverse property of Is Version Of."@en ;rdfs:comment"A related resource that is a version, edition, or adaptation of the described resource."@en ;rdfs:isDefinedBy<http://purl.org/dc/terms/> ;rdfs:label"Has Version"@en ;rdfs:subPropertyOf<http://purl.org/dc/elements/1.1/relation>, dct:relation .
<#has-hasVersion-dataset>ash:PropertyShape ;sh:targetClassdatabus:Version ;sh:severitysh:Violation ;sh:message"Required property dct:hasVersion MUST occur exactly once AND be of type Literal"@en ;sh:pathdct:hasVersion ;sh:minCount1 ;sh:maxCount1 ;sh:nodeKindsh:Literal .
dcat:distributionaowl:ObjectProperty ;rdfs:label"distribution"@en ;rdfs:comment"An available distribution of the dataset."@en ;rdfs:isDefinedBy<http://www.w3.org/TR/vocab-dcat/> ;rdfs:domaindcat:Dataset ;rdfs:rangedcat:Distribution ;rdfs:subPropertyOfdct:relation ;skos:definition"An available distribution of the dataset."@en .
<#has-distribution>ash:PropertyShape ;sh:targetClassdatabus:Version ;sh:severitysh:Violation ;sh:message"Required property dcat:distribution MUST occur at least once AND have URI/IRI as value"@en ;sh:pathdcat:distribution;sh:minCount1 ;sh:nodeKindsh:IRI .
dct:issuedrdfs:label"Date Issued"@en ;rdfs:comment"Date of formal issuance of the resource."@en ;dct:description"Recommended practice is to describe the date, date/time, or period of time as recommended for the property Date, of which this is a subproperty."@en ;dct:issued"2000-07-11"^^<http://www.w3.org/2001/XMLSchema#date> ;rdfs:isDefinedBy<http://purl.org/dc/terms/> ;rdfs:rangerdfs:Literal ;rdfs:subPropertyOf<http://purl.org/dc/elements/1.1/date>, dct:date .
<#has-issued>ash:PropertyShape ;sh:targetClassdatabus:Version ;sh:severitysh:Violation ;sh:message"Required property dct:issued MUST occur exactly once AND have xsd:dateTime as value"@en ;sh:pathdct:issued;sh:minCount1 ;sh:maxCount1 ;sh:datatypexsd:dateTime .
dct:modifiedrdfs:label"Date Modified"@en ;rdfs:comment"Date on which the resource was changed."@en ;dct:description"Recommended practice is to describe the date, date/time, or period of time as recommended for the property Date, of which this is a subproperty."@en ;rdfs:isDefinedBy<http://purl.org/dc/terms/> ;rdfs:rangerdfs:Literal ;rdfs:subPropertyOf<http://purl.org/dc/elements/1.1/date>, dcterms:date .
<#has-modified>ash:PropertyShape ;sh:targetClassdatabus:Version ;sh:severitysh:Violation ;sh:message"Required property dct:modified MUST occur exactly once AND have xsd:dateTime as value"@en ;sh:pathdct:modified;sh:minCount1 ;sh:maxCount1 ;sh:datatypexsd:dateTime .
sec:proofaowl:ObjectProperty; rdfs:label"has cryptographic proof"@en ;rdfs:comment"The proof property is used to associate a proof with a graph of information. The proof property is typically not included in the canonicalized graph that is then digested, and digitally signed."@en ;#rdfs:domain ;#rdfs:range ;rdfs:isDefinedBy<https://w3id.org/security#> .