PageSourceSearch

https://opencdmp.github.io/assets/js/2fe64b02.007ad1df.js

js opencdmp.github.io collected 2026-10-03 09:44:51 UTC 13,808 bytes, 1 lines download raw bytes

1"use strict";(globalThis.webpackChunkdocs=globalThis.webpackChunkdocs||[]).push([[8806],{44827(e,s,t){t.r(s),t.d(s,{assets:()=>l,contentTitle:()=>r,default:()=>o,frontMatter:()=>c,metadata:()=>i,toc:()=>a});const i=JSON.parse('{"id":"optional-services/deposit-services/ckan-semantics","title":"CKAN Deposit \u2014 Semantics Reference","description":"Reference of every semantic consumed by the CKAN deposit plugin and the CKAN API field it populates","source":"@site/docs/optional-services/deposit-services/ckan-semantics.md","sourceDirName":"optional-services/deposit-services","slug":"/optional-services/deposit-services/ckan-semantics","permalink":"/optional-services/deposit-services/ckan-semantics","draft":false,"unlisted":false,"tags":[],"version":"current","sidebarPosition":3,"frontMatter":{"sidebar_position":3,"sidebar_label":"CKAN","description":"Reference of every semantic consumed by the CKAN deposit plugin and the CKAN API field it populates"},"sidebar":"documentationSidebar","previous":{"title":"DSpace","permalink":"/optional-services/deposit-services/dspace-semantics"},"next":{"title":"Dataverse","permalink":"/optional-services/deposit-services/dataverse-semantics"}}');var n=t(74848),d=t(28453);const c={sidebar_position:3,sidebar_label:"CKAN",description:"Reference of every semantic consumed by the CKAN deposit plugin and the CKAN API field it populates"},r="CKAN Deposit \u2014 Semantics Reference",l={},a=[{value:"How the plugin resolves fields",id:"how-the-plugin-resolves-fields",level:2},{value:"Values that are always set (not semantic-driven)",id:"values-that-are-always-set-not-semantic-driven",level:2},{value:"Dataset fields",id:"dataset-fields",level:2},{value:"Tags",id:"tags",level:2},{value:"Extras",id:"extras",level:2},{value:"Relationships",id:"relationships",level:2},{value:"This dataset as subject",id:"this-dataset-as-subject",level:3},{value:"This dataset as object",id:"this-dataset-as-object",level:3},{value:"Related",id:"related",level:2}];function h(e){const s={a:"a",code:"code",h1:"h1",h2:"h2",h3:"h3",header:"header",li:"li",p:"p",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,d.R)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(s.header,{children:(0,n.jsx)(s.h1,{id:"ckan-deposit--semantics-reference",children:"CKAN Deposit \u2014 Semantics Reference"})}),"\n",(0,n.jsxs)(s.p,{children:["The ",(0,n.jsx)(s.a,{href:"https://hub.docker.com/r/opencdmp/repository-deposit-ckan",children:"CKAN deposit plugin"})," submits plans as CKAN datasets and can also create CKAN dataset relationships. During deposit it reads values from the plan blueprint and descriptions, locating each field by its ",(0,n.jsx)(s.a,{href:"/administering/content-management/templates/semantics",children:"semantic"})," tag."]}),"\n",(0,n.jsx)(s.p,{children:"This page lists every CKAN field the plugin can populate and the semantic you must assign to a blueprint or description-template field to populate it."}),"\n",(0,n.jsx)(s.h2,{id:"how-the-plugin-resolves-fields",children:"How the plugin resolves fields"}),"\n",(0,n.jsxs)(s.p,{children:["Each semantic below is applied to both ",(0,n.jsx)(s.strong,{children:"plan blueprint"})," fields and ",(0,n.jsx)(s.strong,{children:"description template"})," fields. Single-valued semantics use the first matching value found (blueprint takes priority). Multi-valued semantics (tags, extras, relationships) aggregate from all matching fields and de-duplicate."]}),"\n",(0,n.jsx)(s.h2,{id:"values-that-are-always-set-not-semantic-driven",children:"Values that are always set (not semantic-driven)"}),"\n",(0,n.jsxs)(s.table,{children:[(0,n.jsx)(s.thead,{children:(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.th,{children:"CKAN field"}),(0,n.jsx)(s.th,{children:"Source"})]})}),(0,n.jsxs)(s.tbody,{children:[(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.td,{children:(0,n.jsx)(s.code,{children:"title"})}),(0,n.jsx)(s.td,{children:"Plan label."})]}),(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.td,{children:(0,n.jsx)(s.code,{children:"private"})}),(0,n.jsxs)(s.td,{children:[(0,n.jsx)(s.code,{children:"true"})," for restricted plans, ",(0,n.jsx)(s.code,{children:"false"})," for public plans."]})]}),(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.td,{children:(0,n.jsx)(s.code,{children:"notes"})}),(0,n.jsx)(s.td,{children:"Plan description."})]}),(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.td,{children:(0,n.jsx)(s.code,{children:"version"})}),(0,n.jsx)(s.td,{children:"Plan version."})]}),(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.td,{children:(0,n.jsx)(s.code,{children:"author"})}),(0,n.jsx)(s.td,{children:"Plan creator's name."})]}),(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.td,{children:(0,n.jsx)(s.code,{children:"author_email"})}),(0,n.jsx)(s.td,{children:"Plan creator's email."})]}),(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.td,{children:(0,n.jsx)(s.code,{children:"maintainer"})}),(0,n.jsxs)(s.td,{children:["Assembled from the plan's contacts. A single contact becomes ",(0,n.jsx)(s.code,{children:'"First Last"'}),"; multiple contacts are joined as ",(0,n.jsx)(s.code,{children:'"First Last (email)"'})," entries."]})]}),(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.td,{children:(0,n.jsx)(s.code,{children:"maintainer_email"})}),(0,n.jsx)(s.td,{children:"Set when the plan has exactly one contact."})]})]})]}),"\n",(0,n.jsx)(s.h2,{id:"dataset-fields",children:"Dataset fields"}),"\n",(0,n.jsxs)(s.table,{children:[(0,n.jsx)(s.thead,{children:(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.th,{children:"CKAN field"}),(0,n.jsx)(s.th,{children:"Semantic"}),(0,n.jsx)(s.th,{children:"Notes"})]})}),(0,n.jsxs)(s.tbody,{children:[(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.td,{children:(0,n.jsx)(s.code,{children:"type"})}),(0,n.jsx)(s.td,{children:(0,n.jsx)(s.code,{children:"ckan.dataset.type"})}),(0,n.jsx)(s.td,{children:"Single-valued."})]}),(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.td,{children:(0,n.jsx)(s.code,{children:"url"})}),(0,n.jsx)(s.td,{children:(0,n.jsx)(s.code,{children:"ckan.dataset.source"})}),(0,n.jsx)(s.td,{children:"Single-valued. For public plans without a value, falls back to the URL of the plan's public page in OpenCDMP."})]}),(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.td,{children:(0,n.jsx)(s.code,{children:"owner_org"})}),(0,n.jsx)(s.td,{children:(0,n.jsx)(s.code,{children:"ckan.dataset.organization"})}),(0,n.jsx)(s.td,{children:"Single-valued. Value must match an existing CKAN organisation. Falls back to plan organisation references, then to the configured default organisation."})]}),(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.td,{children:(0,n.jsx)(s.code,{children:"license_id"})}),(0,n.jsx)(s.td,{children:(0,n.jsx)(s.code,{children:"ckan.dataset.license"})}),(0,n.jsx)(s.td,{children:"Single-valued. Value must match an existing CKAN licence id. Falls back to plan licence references."})]})]})]}),"\n",(0,n.jsx)(s.h2,{id:"tags",children:"Tags"}),"\n",(0,n.jsxs)(s.table,{children:[(0,n.jsx)(s.thead,{children:(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.th,{children:"CKAN field"}),(0,n.jsx)(s.th,{children:"Semantic"}),(0,n.jsx)(s.th,{children:"Notes"})]})}),(0,n.jsx)(s.tbody,{children:(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.td,{children:(0,n.jsx)(s.code,{children:"tags[].name"})}),(0,n.jsx)(s.td,{children:(0,n.jsx)(s.code,{children:"ckan.dataset.tags"})}),(0,n.jsx)(s.td,{children:"Aggregated from blueprint fields, description template fields, and each description's own tag list. Values must contain only letters, numbers, space
1s, dots, underscores, or hyphens; others are silently skipped. Duplicates are dropped."})]})})]}),"\n",(0,n.jsx)(s.h2,{id:"extras",children:"Extras"}),"\n",(0,n.jsxs)(s.table,{children:[(0,n.jsx)(s.thead,{children:(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.th,{children:"CKAN field"}),(0,n.jsx)(s.th,{children:"Semantic"}),(0,n.jsx)(s.th,{children:"Notes"})]})}),(0,n.jsx)(s.tbody,{children:(0,n.jsxs)(s.tr,{children:[(0,n.jsxs)(s.td,{children:[(0,n.jsx)(s.code,{children:"extras[].key"})," / ",(0,n.jsx)(s.code,{children:"extras[].value"})]}),(0,n.jsx)(s.td,{children:(0,n.jsx)(s.code,{children:"ckan.dataset.extras"})}),(0,n.jsx)(s.td,{children:"Aggregated from blueprint and description template fields. Each matching field produces one extra entry."})]})})]}),"\n",(0,n.jsx)(s.h2,{id:"relationships",children:"Relationships"}),"\n",(0,n.jsxs)(s.p,{children:["The relationship semantics control ",(0,n.jsx)(s.a,{href:"https://docs.ckan.org/en/2.11/maintaining/datastore.html",children:"CKAN dataset relationships"}),". The field value is used as the id of the related dataset."]}),"\n",(0,n.jsx)(s.h3,{id:"this-dataset-as-subject",children:"This dataset as subject"}),"\n",(0,n.jsxs)(s.table,{children:[(0,n.jsx)(s.thead,{children:(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.th,{children:"Relationship type"}),(0,n.jsx)(s.th,{children:"Semantic"})]})}),(0,n.jsxs)(s.tbody,{children:[(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.td,{children:(0,n.jsx)(s.code,{children:"depends_on"})}),(0,n.jsx)(s.td,{children:(0,n.jsx)(s.code,{children:"ckan.dataset.relationships_as_object.depends_on"})})]}),(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.td,{children:(0,n.jsx)(s.code,{children:"dependency_of"})}),(0,n.jsx)(s.td,{children:(0,n.jsx)(s.code,{children:"ckan.dataset.relationships_as_object.dependency_of"})})]}),(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.td,{children:(0,n.jsx)(s.code,{children:"derives_from"})}),(0,n.jsx)(s.td,{children:(0,n.jsx)(s.code,{children:"ckan.dataset.relationships_as_object.derives_from"})})]}),(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.td,{children:(0,n.jsx)(s.code,{children:"has_derivation"})}),(0,n.jsx)(s.td,{children:(0,n.jsx)(s.code,{children:"ckan.dataset.relationships_as_object.has_derivation"})})]}),(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.td,{children:(0,n.jsx)(s.code,{children:"links_to"})}),(0,n.jsx)(s.td,{children:(0,n.jsx)(s.code,{children:"ckan.dataset.relationships_as_object.links_to"})})]}),(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.td,{children:(0,n.jsx)(s.code,{children:"linked_from"})}),(0,n.jsx)(s.td,{children:(0,n.jsx)(s.code,{children:"ckan.dataset.relationships_as_object.linked_from"})})]}),(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.td,{children:(0,n.jsx)(s.code,{children:"child_of"})}),(0,n.jsx)(s.td,{children:(0,n.jsx)(s.code,{children:"ckan.dataset.relationships_as_object.child_of"})})]}),(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.td,{children:(0,n.jsx)(s.code,{children:"parent_of"})}),(0,n.jsx)(s.td,{children:(0,n.jsx)(s.code,{children:"ckan.dataset.relationships_as_object.parent_of"})})]})]})]}),"\n",(0,n.jsx)(s.h3,{id:"this-dataset-as-object",children:"This dataset as object"}),"\n",(0,n.jsxs)(s.table,{children:[(0,n.jsx)(s.thead,{children:(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.th,{children:"Relationship type"}),(0,n.jsx)(s.th,{children:"Semantic"})]})}),(0,n.jsxs)(s.tbody,{children:[(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.td,{children:(0,n.jsx)(s.code,{children:"depends_on"})}),(0,n.jsx)(s.td,{children:(0,n.jsx)(s.code,{children:"ckan.dataset.relationships_as_subject.depends_on"})})]}),(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.td,{children:(0,n.jsx)(s.code,{children:"dependency_of"})}),(0,n.jsx)(s.td,{children:(0,n.jsx)(s.code,{children:"ckan.dataset.relationships_as_subject.dependency_of"})})]}),(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.td,{children:(0,n.jsx)(s.code,{children:"derives_from"})}),(0,n.jsx)(s.td,{children:(0,n.jsx)(s.code,{children:"ckan.dataset.relationships_as_subject.derives_from"})})]}),(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.td,{children:(0,n.jsx)(s.code,{children:"has_derivation"})}),(0,n.jsx)(s.td,{children:(0,n.jsx)(s.code,{children:"ckan.dataset.relationships_as_subject.has_derivation"})})]}),(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.td,{children:(0,n.jsx)(s.code,{children:"links_to"})}),(0,n.jsx)(s.td,{children:(0,n.jsx)(s.code,{children:"ckan.dataset.relationships_as_subject.links_to"})})]}),(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.td,{children:(0,n.jsx)(s.code,{children:"linked_from"})}),(0,n.jsx)(s.td,{children:(0,n.jsx)(s.code,{children:"ckan.dataset.relationships_as_subject.linked_from"})})]}),(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.td,{children:(0,n.jsx)(s.code,{children:"child_of"})}),(0,n.jsx)(s.td,{children:(0,n.jsx)(s.code,{children:"ckan.dataset.relationships_as_subject.child_of"})})]}),(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.td,{children:(0,n.jsx)(s.code,{children:"parent_of"})}),(0,n.jsx)(s.td,{children:(0,n.jsx)(s.code,{children:"ckan.dataset.relationships_as_subject.parent_of"})})]})]})]}),"\n",(0,n.jsx)(s.p,{children:"All relationship semantics are assignable to both plan blueprint and description template fields; values from all matching fields are collected and de-duplicated."}),"\n",(0,n.jsx)(s.h2,{id:"related",children:"Related"}),"\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsx)(s.li,{children:(0,n.jsx)(s.a,{href:"/administering/content-management/templates/semantics",children:"Semantics \u2014 admin guide"})}),"\n",(0,n.jsx)(s.li,{children:(0,n.jsx)(s.a,{href:"/optional-services/deposit-services/",children:"Deposit Services"})}),"\n",(0,n.jsx)(s.li,{children:(0,n.jsx)(s.a,{href:"/deployment/configuration/backend/deposit",children:"Deposit Service Configuration"})}),"\n",(0,n.jsx)(s.li,{children:(0,n.jsx)(s.a,{href:"https://docs.ckan.org/en/latest/api/index.html",children:"CKAN Action API"})}),"\n"]})]})}function o(e={}){const{wrapper:s}={...(0,d.R)(),...e.components};return s?(0,n.jsx)(s,{...e,children:(0,n.jsx)(h,{...e})}):h(e)}},28453(e,s,t){t.d(s,{R:()=>c,x:()=>r});var i=t(96540);const n={},d=i.createContext(n);function c(e){const s=i.useContext(d);return i.useMemo(function(){return"function"==typeof e?e(s):{...s,...e}},[s,e])}function r(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:c(e.components),i.createElement(d.Provider,{value:s},e.children)}}}]);

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.