| <div class="d3-quality-management"></div> |
|
|
| <style> |
| .d3-quality-management { |
| font-family: var(--default-font-family); |
| background: transparent; |
| border: none; |
| border-radius: 0; |
| padding: 0; |
| width: 100%; |
| margin: 0 auto; |
| position: relative; |
| } |
| |
| .d3-quality-management .quality-grid { |
| display: grid; |
| grid-template-columns: repeat(3, 1fr); |
| gap: var(--spacing-4); |
| margin-bottom: var(--spacing-4); |
| } |
| |
| .d3-quality-management .quality-card { |
| background: oklch(from var(--primary-color) calc(l + 0.4) c h / 0.35); |
| border: 1px solid oklch(from var(--primary-color) calc(l + 0.15) c h / 0.6); |
| border-radius: 16px; |
| padding: var(--spacing-4) var(--spacing-5); |
| text-align: left; |
| display: flex; |
| flex-direction: column; |
| justify-content: flex-start; |
| align-items: flex-start; |
| min-height: 160px; |
| transition: all 0.3s ease; |
| cursor: pointer; |
| } |
| |
| .d3-quality-management .quality-card:hover { |
| transform: translateY(-2px); |
| box-shadow: 0 8px 24px rgba(0, 0, 0, 0.12); |
| border-color: var(--primary-color); |
| } |
| |
| |
| [data-theme="dark"] .d3-quality-management .quality-card { |
| background: oklch(from var(--primary-color) calc(l + 0.3) c h / 0.25); |
| border-color: oklch(from var(--primary-color) calc(l + 0.1) c h / 0.65); |
| } |
| |
| [data-theme="dark"] .d3-quality-management .quality-card:hover { |
| box-shadow: 0 8px 24px rgba(0, 0, 0, 0.3); |
| } |
| |
| .d3-quality-management .category-title { |
| font-size: 18px; |
| font-weight: 600; |
| color: var(--primary-color); |
| margin-bottom: var(--spacing-3); |
| line-height: 1.2; |
| letter-spacing: -0.01em; |
| position: relative; |
| z-index: 1; |
| } |
| |
| |
| [data-theme="dark"] .d3-quality-management .category-title { |
| color: oklch(from var(--primary-color) calc(l + 0.1) calc(c * 1.2) h); |
| } |
| |
| .d3-quality-management .category-items { |
| list-style: none; |
| padding: 0; |
| margin: 0; |
| font-size: 13px; |
| color: var(--text-color); |
| line-height: 1.6; |
| font-weight: 500; |
| position: relative; |
| z-index: 1; |
| } |
| |
| .d3-quality-management .category-items li { |
| padding-left: 1.6em; |
| position: relative; |
| margin-bottom: var(--spacing-1); |
| } |
| |
| .d3-quality-management .category-items li::before { |
| content: "•"; |
| position: absolute; |
| left: 0.4em; |
| top: 0; |
| color: var(--primary-color); |
| font-weight: 600; |
| } |
| |
| |
| [data-theme="dark"] .d3-quality-management .category-items { |
| color: var(--text-color); |
| } |
| |
| .d3-quality-management .bottom-row { |
| display: grid; |
| grid-template-columns: repeat(2, 1fr); |
| gap: var(--spacing-4); |
| } |
| |
| .d3-quality-management .caption { |
| margin-top: var(--spacing-4); |
| font-size: 13px; |
| color: var(--muted-color); |
| line-height: 1.5; |
| font-style: italic; |
| } |
| |
| @media (max-width: 1024px) { |
| .d3-quality-management .quality-grid { |
| grid-template-columns: repeat(2, 1fr); |
| } |
| |
| .d3-quality-management .bottom-row { |
| grid-template-columns: 1fr; |
| } |
| } |
| |
| @media (max-width: 768px) { |
| .d3-quality-management { |
| padding: var(--spacing-3) 0; |
| } |
| |
| .d3-quality-management .quality-grid { |
| grid-template-columns: 1fr; |
| gap: var(--spacing-3); |
| } |
| |
| .d3-quality-management .bottom-row { |
| grid-template-columns: 1fr; |
| gap: var(--spacing-3); |
| } |
| |
| .d3-quality-management .quality-card { |
| min-height: 140px; |
| padding: var(--spacing-3) var(--spacing-4); |
| } |
| } |
| </style> |
|
|
| <script> |
| (() => { |
| const bootstrap = () => { |
| const scriptEl = document.currentScript; |
| let container = scriptEl ? scriptEl.previousElementSibling : null; |
| if (!(container && container.classList && container.classList.contains('d3-quality-management'))) { |
| const candidates = Array.from(document.querySelectorAll('.d3-quality-management')) |
| .filter((el) => !(el.dataset && el.dataset.mounted === 'true')); |
| container = candidates[candidates.length - 1] || null; |
| } |
| |
| if (!container) return; |
| |
| if (container.dataset) { |
| if (container.dataset.mounted === 'true') return; |
| container.dataset.mounted = 'true'; |
| } |
| |
| |
| const categories = [ |
| { |
| title: 'Annotation Process', |
| items: [ |
| 'Iterative Annotation', |
| 'Careful Data Selection', |
| 'Annotation Scheme', |
| 'Guideline Design', |
| 'Pilot Study', |
| 'Validation Step' |
| ] |
| }, |
| { |
| title: 'Annotators', |
| items: [ |
| 'Workforce Selection', |
| 'Qualification Test', |
| 'Annotator Training', |
| 'Annotator Debriefing', |
| 'Monetary Incentive' |
| ] |
| }, |
| { |
| title: 'Quality Estimation', |
| items: [ |
| 'Error Rate', |
| 'Control Questions', |
| 'Agreement' |
| ] |
| }, |
| { |
| title: 'Quality Improvement', |
| items: [ |
| 'Correction', |
| 'Updated Guidelines', |
| 'Filtering', |
| 'Annotator Feedback', |
| 'Annotator Deboarding' |
| ] |
| }, |
| { |
| title: 'Adjudication', |
| items: [ |
| 'Manual Curation', |
| 'Majority Voting', |
| 'Probabilistic Aggregation' |
| ] |
| } |
| ]; |
| |
| |
| const topRowHtml = categories.slice(0, 3).map(cat => ` |
| <div class="quality-card"> |
| <div class="category-title">${cat.title}</div> |
| <ul class="category-items"> |
| ${cat.items.map(item => `<li>${item}</li>`).join('')} |
| </ul> |
| </div> |
| `).join(''); |
| |
| const bottomRowHtml = categories.slice(3).map(cat => ` |
| <div class="quality-card"> |
| <div class="category-title">${cat.title}</div> |
| <ul class="category-items"> |
| ${cat.items.map(item => `<li>${item}</li>`).join('')} |
| </ul> |
| </div> |
| `).join(''); |
| |
| container.innerHTML = ` |
| <div class="quality-grid"> |
| ${topRowHtml} |
| </div> |
| <div class="bottom-row"> |
| ${bottomRowHtml} |
| </div> |
| <div class="caption"> |
| <strong>Figure 1:</strong> Data annotation best practices recommended by the comprehensive review at aclanthology.org/2024.cl-3.1 - check out their Section 3. |
| </div> |
| `; |
| }; |
| |
| if (document.readyState === 'loading') { |
| document.addEventListener('DOMContentLoaded', bootstrap, { once: true }); |
| } else { |
| bootstrap(); |
| } |
| })(); |
| </script> |
|
|