# Semantic Differential

Source: https://www.potatoannotator.com/docs/annotation-types/semantic-differential

The semantic differential annotation schema presents annotators with bipolar adjective scales for measuring attitudes, perceptions, or connotative meanings. Each scale has opposing adjectives at either end (e.g., "Good" vs. "Bad") and annotators select a point along the spectrum to indicate where the item falls.

## Overview

Developed by Charles Osgood in the 1950s, semantic differential scales are a well-established method in psychology and social science for measuring the connotative meaning of concepts. In annotation tasks, they are useful for capturing nuanced, multi-dimensional perceptions that cannot be expressed with a single rating scale.

## Quick Start

```yaml
annotation_schemes:
  - annotation_type: semantic_differential
    name: text_perception
    description: Rate how you perceive this text on each scale.
    pairs:
      - ["Formal", "Informal"]
      - ["Positive", "Negative"]
      - ["Simple", "Complex"]
    scale_points: 7
```

## Configuration Options

| Field | Type | Default | Description |
|-------|------|---------|-------------|
| `annotation_type` | string | Required | Must be `"semantic_differential"` |
| `name` | string | Required | Unique identifier for this schema |
| `description` | string | Required | Instructions displayed to annotators |
| `pairs` | array | Required | List of `[left_adjective, right_adjective]` pairs |
| `scale_points` | integer | `7` | Number of points on each bipolar scale (typically 5 or 7) |
| `show_center_label` | boolean | `true` | Display a "Neutral" label at the center of the scale |
| `label_requirement.required` | boolean | `false` | Whether all scales must be rated before moving on |

## Examples

### Text Style Assessment

```yaml
annotation_schemes:
  - annotation_type: semantic_differential
    name: writing_style
    description: Rate the writing style of this text on each dimension.
    pairs:
      - ["Formal", "Informal"]
      - ["Objective", "Subjective"]
      - ["Concise", "Verbose"]
      - ["Clear", "Ambiguous"]
    scale_points: 7
    show_center_label: true
```

### Speaker Perception

```yaml
annotation_schemes:
  - annotation_type: semantic_differential
    name: speaker_impression
    description: Rate your impression of the speaker on each dimension.
    pairs:
      - ["Competent", "Incompetent"]
      - ["Warm", "Cold"]
      - ["Trustworthy", "Untrustworthy"]
      - ["Dominant", "Submissive"]
    scale_points: 7
    label_requirement:
      required: true
```

### Product Evaluation

```yaml
annotation_schemes:
  - annotation_type: semantic_differential
    name: product_perception
    description: How do you perceive this product?
    pairs:
      - ["Innovative", "Traditional"]
      - ["Affordable", "Expensive"]
      - ["Reliable", "Unreliable"]
      - ["Simple", "Complex"]
    scale_points: 5
    show_center_label: true
```

### Emotion Dimensions (EPA)

The classic Evaluation-Potency-Activity framework:

```yaml
annotation_schemes:
  - annotation_type: semantic_differential
    name: epa_rating
    description: Rate this concept on each dimension.
    pairs:
      - ["Good", "Bad"]
      - ["Powerful", "Weak"]
      - ["Active", "Passive"]
    scale_points: 7
    show_center_label: true
    label_requirement:
      required: true
```

## Output Format

```json
{
  "text_perception": {
    "labels": {
      "Formal-Informal": 5,
      "Positive-Negative": 2,
      "Simple-Complex": 4
    }
  }
}
```

Values range from 1 (left adjective) to `scale_points` (right adjective), with the midpoint representing neutral.

## Best Practices

1. **Use 7-point scales by default** - the standard in semantic differential research and provides sufficient granularity
2. **Balance polarity across pairs** - mix which side has the "positive" adjective to prevent response sets
3. **Limit pairs to 5-8 per item** - too many scales causes fatigue and reduces data quality
4. **Use established adjective pairs** - leverage validated pairs from existing research when available
5. **Keep the center label** - the neutral midpoint is an important reference for annotators
6. **Randomize pair order** - if possible, vary the presentation order to reduce anchoring effects

## Further Reading

- [Likert Scales](/docs/annotation-types/likert-scales) - Ordinal rating scales for agreement/frequency
- [Slider](/docs/annotation-types/slider) - Continuous value annotation
- [Pairwise Comparison](/docs/annotation-types/pairwise-comparison) - Comparing two items directly

For implementation details, see the [source documentation](https://github.com/davidjurgens/potato/blob/main/docs/annotation_schemes.md).
