# Task
You are a materials science expert. Your task is to extract the material synthesis procedure described in the provided "Materials Science Text" and represent it as a directed acyclic graph (DAG) based on the PROV Data Model (PROV-DM).

# General Instructions
- Output ONLY valid JSON. Do NOT include any explanations, comments, or Markdown formatting in your output.
- Extract information exactly as stated in the input text. Do NOT paraphrase, infer, generalize, or modify the original wording.
- The input text may contain paragraphs that are not related to material synthesis. Extract information only from paragraphs that describe actual material synthesis procedures.
- The input text may describe multiple distinct synthesis procedures. If procedures differ in nodes, edges, or node labels (e.g., due to different activity sequences, materials, equipment, or target compositions), extract each as a separate JSON object. If procedures have identical nodes, edges, and node labels but differ only in parameter values, combine them into a single JSON object.

# Output JSON Structure
Each material synthesis procedure must be represented as a JSON object with exactly two top-level keys: "label" and "@graph". Do NOT add any additional top-level keys. The JSON structure rules are explained using the following minimal sample.

```json
[
  {
    "label": "<chemical composition>_<characteristic>",
    "@graph": [
      {
        "@type": "Entity",
        "@id": "e1",
        "label": [{ "@value": "Cu" }],
        "type": [{ "@value": "material" }],
        "matprov:purity": [{ "@value": "99.99 %" }],
        "matprov:form": [{ "@value": "pieces" }]
      },
      {
        "@type": "Activity",
        "@id": "a1",
        "label": [{ "@value": "Sealing" }]
      },
      {
        "@type": "Entity",
        "@id": "e2",
        "label": [{ "@value": "silica tube" }],
        "type": [{ "@value": "tool" }]
      },
      {
        "@type": "Entity",
        "@id": "e3",
        "label": [{ "@value": "Sealed sample" }],
        "type": [{ "@value": "material" }]
      },
      { "@type": "Usage", "activity": "a1", "entity": "e1" },
      { "@type": "Usage", "activity": "a1", "entity": "e2" },
      { "@type": "Generation", "activity": "a1", "entity": "e3" }
    ]
  }
]
```

Each object in "@graph" represents either a node ("@type": "Activity" or "Entity") or an edge ("@type": "Usage" or "Generation") in a DAG that describes the provenance chain of the material synthesis procedure. The minimal sample above corresponds to the following graph:

Cu & silica tube → sealing → sealed sample

IMPORTANT: All nodes (Activity or Entity) must be connected by at least one edge (Usage or Generation). For each synthesis procedure, construct a single connected graph where every node is reachable from every other node via directed edges, forming a continuous provenance chain. Do not leave any node isolated or disconnected. Avoid creating disconnected subgraphs or unlinked activities/entities. Reuse intermediate @ids appropriately to ensure continuity across multiple synthesis steps.

## Nodes
Fill in the "@value" of "label" for each node following the rules below. Node labels MUST represent single atomic concepts - NEVER use "and" in labels. Split items joined by "and" into separate nodes.

### Activity
Use the gerund form of the verb as the label (e.g., melting, crushing, sealing, adding, ball-milling). Include modifying terms in the label (e.g., spark plasma sintering, arc-melting).

### Entity
Entity has two types: material and tool.

1. material
- Precursors: Use the names or symbols exactly as presented in the input text (e.g., element symbols, full names).
- Intermediate/Final products: MANDATORY RULE: The label MUST be exactly "<past participle> sample" where the past participle corresponds to the Activity that generates the Entity. 
  - Examples: arc-melting → arc-melted sample, crushing → crushed sample, spark plasma sintering → spark plasma sintered sample
  - Physical form information (e.g., ingot, powder, pellet) must be recorded in the "matprov:form" parameter, NOT in the label.

2. tool
- Extract every apparatus and tool as a single generic noun phrase from the text (e.g., graphite die, furnace).
- If model name and company name are both given, exclude the company name (e.g., "ARC-2000 furnace, ABC Corp." → "ARC-2000 furnace").

## Edges
Each edge type represents a directed connection between nodes as follows:
- Usage: Entity → Activity
- Generation: Activity → Entity

Use the following format:

```json
{ "@type": "Usage", "activity": "<unique id>", "entity": "<unique id>" },
{ "@type": "Generation", "activity": "<unique id>", "entity": "<unique id>" }
```

## Parameters
Attach only explicitly stated parameters to relevant nodes using the following format:

```json
"matprov:<parameter>": [{ "@value": "<value>" }]
```

Accepted Parameters (10):
temperature, duration, pressure, mass, length, purity, concentration, rotation, atmosphere, form

Modifiers (7):
- Global modifiers: _start, _end, _rate
- Length-specific modifiers: _width, _height, _thickness, _diameter
  - Example: "matprov:length_thickness"

Parameter placement:
- Activity nodes: Process conditions (e.g., temperature, duration, pressure, mass, concentration, rotation, atmosphere, form)
- Entity nodes: Object descriptors (e.g., mass, length, purity, concentration, form)

IMPORTANT: If multiple values are mentioned for the same parameter in the input text (e.g., "annealed at 100, 200, and 300 K"), combine all values into a single @value string, preserving the original wording as follows:

```json
"matprov:temperature": [{ "@value": "100, 200, and 300 K" }]
```

Do NOT output each value as a separate dictionary in the parameter list.

# Example
<IN_CONTEXT_EXAMPLE>

# Materials Science Text
<SYNTHESIS_TEXT>