Repository files navigation

ICONCLASS

Please use the following to cite:

H. van de Waal, Iconclass, an iconographic classification system. Completed and edited by L.D. Couprie, E. Tholen & G. Vellekoop. (Amsterdam, 1972-1985). online edition by E. Posthumus & J.P.J. Brandhorst, 2024. https://iconclass.org/

DOI

A multilingual subject classification system for cultural content For more information see: http://www.iconclass.org/

Made by Hans Brandhorst jpjbrand@xs4all.nl & Etienne Posthumus eposthumus@gmail.com

...with lots of support from a global cast of many, many people since 1972.

Data file

This repository contains the main data files for the ICONCLASS system. It is a collection of simple structured text files, dating back in concept to the late nineties of the previous century.

Structure

The structure is determined by the file notations.txt.

For example, the file looks like:

N 1
C 10
; 11
; 12
; 13
; 14
$
N 10
$

This is a chunk of data (each chunk is separated by a single $ character on its own line) The first part of a line, up to the first space, is the field name. If there are multi-valued fields, in other words, more than one value for a field, it is listed on a different line starting with a ; character,followed by a space and the field value. The above snippet, is roughly equivalent to the following JSON value:

[{N: "1",C: ["10","11","12","13","14"]},{N: "10}
]

Why not use a standard Knowledge Management System?

You might wonder why we can not simply use a standard system to manage vocabularies or classification systems. If IC has a SKOS version, surely we can just use a SKOS editor?

Alas, no. The "base" ICONCLASS system has around 40K nodes arranged in a tree. But then there are several "sub-trees" that are switched on and off at various parts of the base tree. These so-called "keys" in the IC causes an explosion to more than 1 million nodes in the system, which would make it very tricky to maintain in a traditional system.

Keys to 25F

A further complication is the use of WITH-NAMES placeholders in tree, also known as bracketed text. These notations look like 11H(...) where the ... can be filled in with any valid entry that makes sense to the user using that particular node in the tree. In the example, 11H(...) are male saints, so that could be 11H(JOHN) - but this could be in any language or variant. In the printed volumes for IC, several entries were already filled in as a convenience, and over the years some items have been added to the "official" list.

This also causes a problem when we create static dumps of the IC system, for example in RDF as it creates very large files.

About

The core data of the Iconclass Classification System

Resources

Stars

18 stars

Watchers

3 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Repository files navigation

ICONCLASS

Please use the following to cite:

H. van de Waal, Iconclass, an iconographic classification system. Completed and edited by L.D. Couprie, E. Tholen & G. Vellekoop. (Amsterdam, 1972-1985). online edition by E. Posthumus & J.P.J. Brandhorst, 2024. https://iconclass.org/

DOI

A multilingual subject classification system for cultural content For more information see: http://www.iconclass.org/

Made by Hans Brandhorst jpjbrand@xs4all.nl & Etienne Posthumus eposthumus@gmail.com

...with lots of support from a global cast of many, many people since 1972.

Data file

This repository contains the main data files for the ICONCLASS system. It is a collection of simple structured text files, dating back in concept to the late nineties of the previous century.

Structure

The structure is determined by the file notations.txt.

For example, the file looks like:

N 1
C 10
; 11
; 12
; 13
; 14
$
N 10
$

This is a chunk of data (each chunk is separated by a single $ character on its own line) The first part of a line, up to the first space, is the field name. If there are multi-valued fields, in other words, more than one value for a field, it is listed on a different line starting with a ; character,followed by a space and the field value. The above snippet, is roughly equivalent to the following JSON value:

[{N: "1",C: ["10","11","12","13","14"]},{N: "10}
]

Why not use a standard Knowledge Management System?

You might wonder why we can not simply use a standard system to manage vocabularies or classification systems. If IC has a SKOS version, surely we can just use a SKOS editor?

Alas, no. The "base" ICONCLASS system has around 40K nodes arranged in a tree. But then there are several "sub-trees" that are switched on and off at various parts of the base tree. These so-called "keys" in the IC causes an explosion to more than 1 million nodes in the system, which would make it very tricky to maintain in a traditional system.

Keys to 25F

A further complication is the use of WITH-NAMES placeholders in tree, also known as bracketed text. These notations look like 11H(...) where the ... can be filled in with any valid entry that makes sense to the user using that particular node in the tree. In the example, 11H(...) are male saints, so that could be 11H(JOHN) - but this could be in any language or variant. In the printed volumes for IC, several entries were already filled in as a convenience, and over the years some items have been added to the "official" list.

This also causes a problem when we create static dumps of the IC system, for example in RDF as it creates very large files.

About

The core data of the Iconclass Classification System

Resources

Stars

18 stars

Watchers

3 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

ICONCLASS

Please use the following to cite:

H. van de Waal, Iconclass, an iconographic classification system. Completed and edited by L.D. Couprie, E. Tholen & G. Vellekoop. (Amsterdam, 1972-1985). online edition by E. Posthumus & J.P.J. Brandhorst, 2024. https://iconclass.org/

DOI

A multilingual subject classification system for cultural content For more information see: http://www.iconclass.org/

Made by Hans Brandhorst jpjbrand@xs4all.nl & Etienne Posthumus eposthumus@gmail.com

...with lots of support from a global cast of many, many people since 1972.

Data file

This repository contains the main data files for the ICONCLASS system. It is a collection of simple structured text files, dating back in concept to the late nineties of the previous century.

Structure

The structure is determined by the file notations.txt.

For example, the file looks like:

N 1
C 10
; 11
; 12
; 13
; 14
$
N 10
$

This is a chunk of data (each chunk is separated by a single $ character on its own line) The first part of a line, up to the first space, is the field name. If there are multi-valued fields, in other words, more than one value for a field, it is listed on a different line starting with a ; character,followed by a space and the field value. The above snippet, is roughly equivalent to the following JSON value:

[{N: "1",C: ["10","11","12","13","14"]},{N: "10}
]

Why not use a standard Knowledge Management System?

You might wonder why we can not simply use a standard system to manage vocabularies or classification systems. If IC has a SKOS version, surely we can just use a SKOS editor?

Alas, no. The "base" ICONCLASS system has around 40K nodes arranged in a tree. But then there are several "sub-trees" that are switched on and off at various parts of the base tree. These so-called "keys" in the IC causes an explosion to more than 1 million nodes in the system, which would make it very tricky to maintain in a traditional system.

Keys to 25F

A further complication is the use of WITH-NAMES placeholders in tree, also known as bracketed text. These notations look like 11H(...) where the ... can be filled in with any valid entry that makes sense to the user using that particular node in the tree. In the example, 11H(...) are male saints, so that could be 11H(JOHN) - but this could be in any language or variant. In the printed volumes for IC, several entries were already filled in as a convenience, and over the years some items have been added to the "official" list.

This also causes a problem when we create static dumps of the IC system, for example in RDF as it creates very large files.

About

The core data of the Iconclass Classification System

Resources

Stars

18 stars

Watchers

3 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

ICONCLASS

Please use the following to cite:

H. van de Waal, Iconclass, an iconographic classification system. Completed and edited by L.D. Couprie, E. Tholen & G. Vellekoop. (Amsterdam, 1972-1985). online edition by E. Posthumus & J.P.J. Brandhorst, 2024. https://iconclass.org/

DOI

A multilingual subject classification system for cultural content For more information see: http://www.iconclass.org/

Made by Hans Brandhorst jpjbrand@xs4all.nl & Etienne Posthumus eposthumus@gmail.com

...with lots of support from a global cast of many, many people since 1972.

Data file

This repository contains the main data files for the ICONCLASS system. It is a collection of simple structured text files, dating back in concept to the late nineties of the previous century.

Structure

The structure is determined by the file notations.txt.

For example, the file looks like:

N 1
C 10
; 11
; 12
; 13
; 14
$
N 10
$

This is a chunk of data (each chunk is separated by a single $ character on its own line) The first part of a line, up to the first space, is the field name. If there are multi-valued fields, in other words, more than one value for a field, it is listed on a different line starting with a ; character,followed by a space and the field value. The above snippet, is roughly equivalent to the following JSON value:

[{N: "1",C: ["10","11","12","13","14"]},{N: "10}
]

Why not use a standard Knowledge Management System?

You might wonder why we can not simply use a standard system to manage vocabularies or classification systems. If IC has a SKOS version, surely we can just use a SKOS editor?

Alas, no. The "base" ICONCLASS system has around 40K nodes arranged in a tree. But then there are several "sub-trees" that are switched on and off at various parts of the base tree. These so-called "keys" in the IC causes an explosion to more than 1 million nodes in the system, which would make it very tricky to maintain in a traditional system.

Keys to 25F

A further complication is the use of WITH-NAMES placeholders in tree, also known as bracketed text. These notations look like 11H(...) where the ... can be filled in with any valid entry that makes sense to the user using that particular node in the tree. In the example, 11H(...) are male saints, so that could be 11H(JOHN) - but this could be in any language or variant. In the printed volumes for IC, several entries were already filled in as a convenience, and over the years some items have been added to the "official" list.

This also causes a problem when we create static dumps of the IC system, for example in RDF as it creates very large files.

About

The core data of the Iconclass Classification System

Resources

Stars

18 stars

Watchers

3 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Repository files navigation

ICONCLASS

Please use the following to cite:

H. van de Waal, Iconclass, an iconographic classification system. Completed and edited by L.D. Couprie, E. Tholen & G. Vellekoop. (Amsterdam, 1972-1985). online edition by E. Posthumus & J.P.J. Brandhorst, 2024. https://iconclass.org/

DOI

A multilingual subject classification system for cultural content For more information see: http://www.iconclass.org/

Made by Hans Brandhorst jpjbrand@xs4all.nl & Etienne Posthumus eposthumus@gmail.com

...with lots of support from a global cast of many, many people since 1972.

Data file

This repository contains the main data files for the ICONCLASS system. It is a collection of simple structured text files, dating back in concept to the late nineties of the previous century.

Structure

The structure is determined by the file notations.txt.

For example, the file looks like:

N 1
C 10
; 11
; 12
; 13
; 14
$
N 10
$

This is a chunk of data (each chunk is separated by a single $ character on its own line) The first part of a line, up to the first space, is the field name. If there are multi-valued fields, in other words, more than one value for a field, it is listed on a different line starting with a ; character,followed by a space and the field value. The above snippet, is roughly equivalent to the following JSON value:

[{N: "1",C: ["10","11","12","13","14"]},{N: "10}
]

Why not use a standard Knowledge Management System?

You might wonder why we can not simply use a standard system to manage vocabularies or classification systems. If IC has a SKOS version, surely we can just use a SKOS editor?

Alas, no. The "base" ICONCLASS system has around 40K nodes arranged in a tree. But then there are several "sub-trees" that are switched on and off at various parts of the base tree. These so-called "keys" in the IC causes an explosion to more than 1 million nodes in the system, which would make it very tricky to maintain in a traditional system.

Keys to 25F

A further complication is the use of WITH-NAMES placeholders in tree, also known as bracketed text. These notations look like 11H(...) where the ... can be filled in with any valid entry that makes sense to the user using that particular node in the tree. In the example, 11H(...) are male saints, so that could be 11H(JOHN) - but this could be in any language or variant. In the printed volumes for IC, several entries were already filled in as a convenience, and over the years some items have been added to the "official" list.

This also causes a problem when we create static dumps of the IC system, for example in RDF as it creates very large files.

About

The core data of the Iconclass Classification System

Resources

Stars

18 stars

Watchers

3 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

ICONCLASS

Please use the following to cite:

H. van de Waal, Iconclass, an iconographic classification system. Completed and edited by L.D. Couprie, E. Tholen & G. Vellekoop. (Amsterdam, 1972-1985). online edition by E. Posthumus & J.P.J. Brandhorst, 2024. https://iconclass.org/

DOI

A multilingual subject classification system for cultural content For more information see: http://www.iconclass.org/

Made by Hans Brandhorst jpjbrand@xs4all.nl & Etienne Posthumus eposthumus@gmail.com

...with lots of support from a global cast of many, many people since 1972.

Data file

This repository contains the main data files for the ICONCLASS system. It is a collection of simple structured text files, dating back in concept to the late nineties of the previous century.

Structure

The structure is determined by the file notations.txt.

For example, the file looks like:

N 1
C 10
; 11
; 12
; 13
; 14
$
N 10
$

This is a chunk of data (each chunk is separated by a single $ character on its own line) The first part of a line, up to the first space, is the field name. If there are multi-valued fields, in other words, more than one value for a field, it is listed on a different line starting with a ; character,followed by a space and the field value. The above snippet, is roughly equivalent to the following JSON value:

[{N: "1",C: ["10","11","12","13","14"]},{N: "10}
]

Why not use a standard Knowledge Management System?

You might wonder why we can not simply use a standard system to manage vocabularies or classification systems. If IC has a SKOS version, surely we can just use a SKOS editor?

Alas, no. The "base" ICONCLASS system has around 40K nodes arranged in a tree. But then there are several "sub-trees" that are switched on and off at various parts of the base tree. These so-called "keys" in the IC causes an explosion to more than 1 million nodes in the system, which would make it very tricky to maintain in a traditional system.

Keys to 25F

A further complication is the use of WITH-NAMES placeholders in tree, also known as bracketed text. These notations look like 11H(...) where the ... can be filled in with any valid entry that makes sense to the user using that particular node in the tree. In the example, 11H(...) are male saints, so that could be 11H(JOHN) - but this could be in any language or variant. In the printed volumes for IC, several entries were already filled in as a convenience, and over the years some items have been added to the "official" list.

This also causes a problem when we create static dumps of the IC system, for example in RDF as it creates very large files.

About

The core data of the Iconclass Classification System

Resources

Stars

18 stars

Watchers

3 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

ICONCLASS

Please use the following to cite:

H. van de Waal, Iconclass, an iconographic classification system. Completed and edited by L.D. Couprie, E. Tholen & G. Vellekoop. (Amsterdam, 1972-1985). online edition by E. Posthumus & J.P.J. Brandhorst, 2024. https://iconclass.org/

DOI

A multilingual subject classification system for cultural content For more information see: http://www.iconclass.org/

Made by Hans Brandhorst jpjbrand@xs4all.nl & Etienne Posthumus eposthumus@gmail.com

...with lots of support from a global cast of many, many people since 1972.

Data file

This repository contains the main data files for the ICONCLASS system. It is a collection of simple structured text files, dating back in concept to the late nineties of the previous century.

Structure

The structure is determined by the file notations.txt.

For example, the file looks like:

N 1
C 10
; 11
; 12
; 13
; 14
$
N 10
$

This is a chunk of data (each chunk is separated by a single $ character on its own line) The first part of a line, up to the first space, is the field name. If there are multi-valued fields, in other words, more than one value for a field, it is listed on a different line starting with a ; character,followed by a space and the field value. The above snippet, is roughly equivalent to the following JSON value:

[{N: "1",C: ["10","11","12","13","14"]},{N: "10}
]

Why not use a standard Knowledge Management System?

You might wonder why we can not simply use a standard system to manage vocabularies or classification systems. If IC has a SKOS version, surely we can just use a SKOS editor?

Alas, no. The "base" ICONCLASS system has around 40K nodes arranged in a tree. But then there are several "sub-trees" that are switched on and off at various parts of the base tree. These so-called "keys" in the IC causes an explosion to more than 1 million nodes in the system, which would make it very tricky to maintain in a traditional system.

Keys to 25F

A further complication is the use of WITH-NAMES placeholders in tree, also known as bracketed text. These notations look like 11H(...) where the ... can be filled in with any valid entry that makes sense to the user using that particular node in the tree. In the example, 11H(...) are male saints, so that could be 11H(JOHN) - but this could be in any language or variant. In the printed volumes for IC, several entries were already filled in as a convenience, and over the years some items have been added to the "official" list.

This also causes a problem when we create static dumps of the IC system, for example in RDF as it creates very large files.

About

The core data of the Iconclass Classification System

Resources

Stars

18 stars

Watchers

3 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Repository files navigation

ICONCLASS

Please use the following to cite:

H. van de Waal, Iconclass, an iconographic classification system. Completed and edited by L.D. Couprie, E. Tholen & G. Vellekoop. (Amsterdam, 1972-1985). online edition by E. Posthumus & J.P.J. Brandhorst, 2024. https://iconclass.org/

DOI

A multilingual subject classification system for cultural content For more information see: http://www.iconclass.org/

Made by Hans Brandhorst jpjbrand@xs4all.nl & Etienne Posthumus eposthumus@gmail.com

...with lots of support from a global cast of many, many people since 1972.

Data file

This repository contains the main data files for the ICONCLASS system. It is a collection of simple structured text files, dating back in concept to the late nineties of the previous century.

Structure

The structure is determined by the file notations.txt.

For example, the file looks like:

N 1
C 10
; 11
; 12
; 13
; 14
$
N 10
$

This is a chunk of data (each chunk is separated by a single $ character on its own line) The first part of a line, up to the first space, is the field name. If there are multi-valued fields, in other words, more than one value for a field, it is listed on a different line starting with a ; character,followed by a space and the field value. The above snippet, is roughly equivalent to the following JSON value:

[{N: "1",C: ["10","11","12","13","14"]},{N: "10}
]

Why not use a standard Knowledge Management System?

You might wonder why we can not simply use a standard system to manage vocabularies or classification systems. If IC has a SKOS version, surely we can just use a SKOS editor?

Alas, no. The "base" ICONCLASS system has around 40K nodes arranged in a tree. But then there are several "sub-trees" that are switched on and off at various parts of the base tree. These so-called "keys" in the IC causes an explosion to more than 1 million nodes in the system, which would make it very tricky to maintain in a traditional system.

Keys to 25F

A further complication is the use of WITH-NAMES placeholders in tree, also known as bracketed text. These notations look like 11H(...) where the ... can be filled in with any valid entry that makes sense to the user using that particular node in the tree. In the example, 11H(...) are male saints, so that could be 11H(JOHN) - but this could be in any language or variant. In the printed volumes for IC, several entries were already filled in as a convenience, and over the years some items have been added to the "official" list.

This also causes a problem when we create static dumps of the IC system, for example in RDF as it creates very large files.

About

The core data of the Iconclass Classification System

Resources

Stars

18 stars

Watchers

3 watching

Forks

Releases

Packages

Used by

Contributors

Languages