Health Schema

Open-source semantic extensions to schema.org for rich medical and health content markup. This vocabulary enables precise representation of causal mechanisms, temporal progressions, multi-factorial conditions, and population-specific recommendations that standard schema.org cannot capture.

Why These Extensions?

Schema.org provides excellent coverage for basic medical entities and relationships, but falls short when representing:

Multi-Step Mechanisms

Medical content often explains how something works through multiple biochemical or physiological steps. Schema.org's riskFactor property can link causes to conditions, but cannot capture multi-step mechanistic chains.

Solution: CausalPathway and CausalStep types model step-by-step mechanistic explanations with evidence levels for each transition.

Time-Based Progressions

Conditions evolve through distinct stages with different characteristics, patient experiences, and recommended actions at each phase. Standard schema.org has no way to represent this temporal structure.

Solution: TemporalProgression and TemporalStage types capture stage-based timelines with rich contextual information.

Multi-Factorial Causation

Real-world medical conditions result from multiple interacting factors, not single causes. Schema.org can list multiple risk factors but cannot describe how they interact or their relative importance.

Solution: MultifactorialCondition, ContributingFactor, and FactorInteraction types model complex causation patterns.

Conditional Recommendations

Medical recommendations often depend on multiple criteria (AND/OR logic), risk stratification, and population characteristics. Schema.org's MedicalIndication handles simple conditions but not complex decision trees.

Solution: ConditionalRecommendation and related types (PopulationCriteria, RiskAssessment) enable precise population-specific guidance.

Design Principles

Type Reference

Causal Mechanisms

Temporal Progressions

Multi-Factorial Conditions

Conditional Recommendations

Supporting Types

How to Use This Vocabulary

1. Declare the Context

Include both schema.org and the Health Schema context in your JSON-LD:

JSON-LD
{
  "@context": [
    "https://schema.org",
    "https://healthschema.org/context.jsonld"
  ]
}

Or declare the namespace explicitly (reduces reported errors on the schema.org validator):

JSON-LD
{
  "@context": [
    "https://schema.org",
    {
      "hs": "https://healthschema.org/",
      "CausalPathway": "hs:CausalPathway",
      "TemporalProgression": "hs:TemporalProgression"
    }
  ]
}

2. Use Custom Types Alongside Schema.org

Combine standard schema.org markup with custom extensions using @graph:

JSON-LD
{
  "@context": [
    "https://schema.org",
    "https://healthschema.org/context.jsonld"
  ],
  "@graph": [
    {
      "@type": "MedicalCondition",
      "name": "Telogen effluvium",
      "riskFactor": [
        {
          "@type": "MedicalRiskFactor",
          "name": "Rapid weight loss"
        }
      ]
    },
    {
      "@type": "CausalPathway",
      "name": "Weight loss → Hair loss mechanism",
      "initialCause": { "@type": "Drug", "name": "Mounjaro" },
      "pathwaySteps": [ ... ],
      "finalOutcome": { 
        "@type": "MedicalCondition", 
        "name": "Telogen effluvium" 
      }
    }
  ]
}

3. Validate Your Markup

Important Note on Validation

Standard schema.org validators will not recognise these custom types and may report them as errors. This is expected behavior. These extensions are designed for:

  • Enhanced understanding by large language models
  • Knowledge graph enrichment
  • Semantic relationship modeling

Search engines will process standard schema.org properties normally and ignore custom extensions they don't understand.

4. Best Practices

Examples

See practical implementations in the examples section:

Relationship to Schema.org

This vocabulary is designed to complement, not compete with, schema.org's medical vocabulary:

Need Schema.org Solution Health Schema Extension
Simple risk factor riskFactor property Use schema.org
Multi-step mechanism Not available hs:CausalPathway
Signs and symptoms signOrSymptom property Use schema.org
Single timeline event Date/time properties Use schema.org
Multi-stage progression Not available hs:TemporalProgression
Simple medical indication MedicalIndication type Use schema.org
Complex conditional logic Not available hs:ConditionalRecommendation
Multiple risk factors Multiple riskFactor properties Works, but hs:MultifactorialCondition adds interaction info
What tissue needs Not available hs:PhysiologicalRequirement
Compositional similarity Not available hs:CompositionComparison
Ingredient function categories Not available hs:FunctionalIngredientCategory

Technical Resources

Contact & Feedback

Health Schema is an open-source project developed initially by Creative Touch, a UK aesthetics clinic, and refined through real-world medical content markup.

For questions, suggestions, or to contribute:

Version Information

Current Version: 0.8 (December 2025)

Namespace URI: https://healthschema.org/

License: Creative Commons Attribution 4.0 International (CC BY 4.0)