AMIRA — Africa Multiple Research Data

Read-only access to AMIRA, the Africa Multiple research-data platform on Omeka S.

사용해야 할까요

품질 및 안전성

A
설명 품질
99%
스키마 완전성
83%
이름 품질
99%
오염 위험
100%
권한 일치
90%
프로토콜 준수
100%

발견 사항 (1)

  • LOWTool 'fetch' suggests web access but openWorldHint=falsefetch에서

도구 정의와 프로토콜 준수에 대한 자동 분석을 기반으로 합니다.

컨텍스트 비용

~11,753토큰 (도구 정의)
~3.3 KB일반적인 응답 크기
상당한 주의 영향 (128k 컨텍스트의 9.18%)

이는 서버의 도구가 모델의 컨텍스트에 로드될 때마다 소비되는 대략적인 토큰 수입니다. 수치가 높을수록 다른 작업에 사용할 수 있는 주의가 줄어듭니다.

설치

원클릭 설치

`claude_desktop_config.json` 파일에 다음을 추가하세요:

{
  "mcpServers": {
    "amira-mcp-server": {
      "url": "https://data.africamultiple.uni-bayreuth.de/mcp"
    }
  }
}

원격 엔드포인트

https://data.africamultiple.uni-bayreuth.de/mcpstreamable-http

할 수 있는 일

도구 목록

도구 (35)

🟢 읽기 전용🟡 쓰기🔴 삭제⚪ 알 수 없음
🟢get_collection_overview

Start here: corpus counts, text coverage, breakdowns, dates, snapshot freshness and refresh status.

입력 스키마

{
  "type": "object",
  "properties": {},
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false
}

출력 스키마

{
  "type": "object",
  "properties": {
    "collection_name": {
      "type": "string"
    },
    "site_url": {
      "type": "string"
    },
    "counts": {
      "type": "object",
      "propertyNames": {
        "type": "string"
      },
      "additionalProperties": {
        "type": "number"
      }
    },
    "universities": {
      "type": "object",
      "propertyNames": {
        "type": "string"
      },
      "additionalProperties": {
        "type": "string"
      }
    },
    "items_by_university": {
      "type": "object",
      "propertyNames": {
        "type": "string"
      },
      "additionalProperties": {
        "type": "number"
      }
    },
    "items_by_research_section": {
      "type": "object",
      "propertyNames": {
        "type": "string"
      },
      "additionalProperties": {
        "type": "number"
      }
    },
    "items_by_resource_type": {
      "type": "object",
      "propertyNames": {
        "type": "string"
      },
      "additionalProperties": {
        "type": "number"
      }
    },
    "items_by_language": {
      "type": "object",
      "propertyNames": {
        "type": "string"
      },
      "additionalProperties": {
        "type": "number"
      }
    },
    "research_sections": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "content_date_range": {
      "anyOf": [
        {
          "type": "object",
          "properties": {
            "earliest": {
              "type": "number"
            },
            "latest": {
              "type": [
                "number",
                "null"
              ]
            }
          },
          "required": [
            "earliest",
            "latest"
          ],
          "additionalProperties": false
        },
        {
          "type": "null"
        }
      ]
    },
    "metadata_exposure": {
      "type": "string"
    },
    "data_snapshot": {
      "type": "object",
      "properties": {
        "source": {
          "type": "string"
        },
        "fetched_at": {
          "type": "string"
        },
        "max_modified": {
          "type": [
            "string",
            "null"
          ]
        },
        "api_base": {
          "type": "string"
        },
        "note": {
          "type": "string"
        }
      },
      "required": [
        "source",
        "fetched_at",
        "max_modified",
        "api_base",
        "note"
      ],
      "additionalProperties": false
    },
    "refresh": {
      "type": "object",
      "properties": {
        "enabled": {
          "type": "boolean"
        },
        "in_flight": {
          "type": "boolean"
        },
        "last_attempt": {
          "type": [
            "string",
            "null"
          ]
        },
        "last_success": {
          "type": [
            "string",
            "null"
          ]
        },
        "error_class": {
          "type": [
            "string",
            "null"
          ]
        }
      },
      "required": [
        "enabled",
        "in_flight",
        "last_attempt",
        "last_success",
        "error_class"
      ],
      "additionalProperties": false
    }
  },
  "required": [
    "collection_name",
    "site_url",
    "counts",
    "items_by_resource_type",
    "content_date_range",
    "data_snapshot",
    "refresh"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false
}
🟢search_research_items(keyword, subject, location, location_id, country, ...)

Search digitised research items. Filters are AND-combined; empty results suggest a filter to relax or a stored place name. export links all matches as a file.

입력 스키마

{
  "type": "object",
  "properties": {
    "keyword": {
      "description": "Every word must occur in the title, description, abstract, contents or identifiers; quote a phrase to match it exactly",
      "type": "string",
      "maxLength": 1000
    },
    "subject": {
      "description": "Subject heading, partial (e.g. 'Architecture'). Subjects absorb the former free-form tags — there is no tag filter",
      "type": "string",
      "maxLength": 1000
    },
    "location": {
      "description": "A place at ANY level of the city→country hierarchy: 'Nigeria' finds Lagos items, 'Lagos' finds only Lagos",
      "type": "string",
      "maxLength": 1000
    },
    "location_id": {
      "description": "Exact location authority ID, including descendants; avoids homonym matches",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "country": {
      "description": "Country only, exact name or common alias ('Côte d'Ivoire' = 'Ivory Coast'). Use `location` for cities",
      "type": "string",
      "maxLength": 1000
    },
    "contributor": {
      "description": "A person/organisation credited on the item; either name order works",
      "type": "string",
      "maxLength": 1000
    },
    "project_id": {
      "description": "Project Omeka id",
      "anyOf": [
        {
          "type": "string",
          "maxLength": 1000
        },
        {
          "type": "number"
        }
      ]
    },
    "research_section": {
      "description": "e.g. 'Arts & Aesthetics', 'Mobilities'",
      "type": "string",
      "maxLength": 1000
    },
    "university": {
      "description": "ubt | unilag | ujkz | ufba | external — code or full name",
      "type": "string",
      "maxLength": 1000
    },
    "resource_type": {
      "description": "e.g. 'Image', 'Text', 'Audio', 'Moving image'",
      "type": "string",
      "maxLength": 1000
    },
    "genre": {
      "description": "Format/genre descriptor, partial (e.g. 'interview', 'letter', 'photograph')",
      "type": "string",
      "maxLength": 1000
    },
    "collection": {
      "description": "Item-set title (partial) or id from list_collections",
      "type": "string",
      "maxLength": 1000
    },
    "language": {
      "description": "Name or ISO code — 'French', 'fr', 'fra' and legacy 'fre' all match",
      "type": "string",
      "maxLength": 1000
    },
    "year_from": {
      "description": "Keep items whose content dates overlap from this year",
      "type": "integer",
      "minimum": 0,
      "maximum": 2200
    },
    "year_to": {
      "description": "Keep items whose content dates overlap up to this year",
      "type": "integer",
      "minimum": 0,
      "maximum": 2200
    },
    "has_media": {
      "description": "true: only items with digitised files",
      "type": "boolean"
    },
    "added_since": {
      "description": "Added to AMIRA on or after this ISO date",
      "type": "string",
      "maxLength": 40
    },
    "modified_since": {
      "description": "Changed on or after this ISO date",
      "type": "string",
      "maxLength": 40
    },
    "export": {
      "description": "Return a file link instead of rows",
      "type": "string",
      "enum": [
        "csv",
        "jsonl"
      ]
    },
    "limit": {
      "description": "Default 20, max 100",
      "type": "integer",
      "minimum": 1,
      "maximum": 9007199254740991
    },
    "offset": {
      "type": "integer",
      "minimum": 0,
      "maximum": 100000
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false
}
🟢get_research_item(id, citation_format)

Research-item metadata, linked entities, rights, media files, IIIF manifest and a generated citation (BibTeX/RIS/CSL-JSON). Long fields cap at 25,000 characters.

입력 스키마

{
  "type": "object",
  "properties": {
    "id": {
      "anyOf": [
        {
          "type": "string",
          "maxLength": 1000
        },
        {
          "type": "number"
        }
      ],
      "description": "Omeka id (the number ending its amira_url, e.g. 7392) or a typed id such as research_item:7392"
    },
    "citation_format": {
      "description": "Export format for the generated citation: bibtex (default) → `bibtex`, ris → `ris`, csl-json → `csl_json`",
      "type": "string",
      "enum": [
        "bibtex",
        "ris",
        "csl-json"
      ]
    }
  },
  "required": [
    "id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false
}
🟢search_projects(keyword, university, research_section, principal_investigator, member, ...)

Search project names, descriptions and membership. Returns cited summaries and item counts; use get_project for detail.

입력 스키마

{
  "type": "object",
  "properties": {
    "keyword": {
      "description": "Matches the project name, an acronym or the description",
      "type": "string",
      "maxLength": 1000
    },
    "university": {
      "description": "ubt | unilag | ujkz | ufba | external — code or name. A data facet, not a full AMRC list",
      "type": "string",
      "maxLength": 1000
    },
    "research_section": {
      "description": "Name or id, e.g. 'Knowledges'",
      "type": "string",
      "maxLength": 1000
    },
    "principal_investigator": {
      "description": "A PI name; either order works ('Oliver Baumann' finds 'Baumann, Oliver')",
      "type": "string",
      "maxLength": 1000
    },
    "member": {
      "description": "A project member's name; either order works",
      "type": "string",
      "maxLength": 1000
    },
    "institution": {
      "description": "Funding/affiliated institution name, partial",
      "type": "string",
      "maxLength": 1000
    },
    "limit": {
      "description": "Default 25, max 100",
      "type": "integer",
      "minimum": 1,
      "maximum": 9007199254740991
    },
    "offset": {
      "type": "integer",
      "minimum": 0,
      "maximum": 100000
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false
}
🟢get_project(id)

Project description, team, sections, funders, item counts by type, top subjects and ten sample research items, with citation links.

입력 스키마

{
  "type": "object",
  "properties": {
    "id": {
      "anyOf": [
        {
          "type": "string",
          "maxLength": 256
        },
        {
          "type": "number"
        }
      ],
      "description": "Project Omeka id (e.g. 37700) or typed id project:37700"
    }
  },
  "required": [
    "id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false
}
🟢list_research_sections

Cluster research sections, funding phases, project/item counts and citation links. Includes the external-collection grouping.

입력 스키마

{
  "type": "object",
  "properties": {},
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false
}
🟢get_research_section(name, id)

One research section's description, team and projects, each with its research-item count.

입력 스키마

{
  "type": "object",
  "properties": {
    "name": {
      "description": "Section name, e.g. 'Arts & Aesthetics'",
      "type": "string",
      "maxLength": 1000
    },
    "id": {
      "description": "Section Omeka id or typed id section:218",
      "anyOf": [
        {
          "type": "string",
          "maxLength": 64
        },
        {
          "type": "number"
        }
      ]
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false
}
🟢search_persons(keyword, affiliation, limit, offset)

Find canonical person authority records. Names accept either order and ignore accents. Use resolve_entity to disambiguate homonyms.

입력 스키마

{
  "type": "object",
  "properties": {
    "keyword": {
      "description": "Matches the name, a name variant or an affiliation",
      "type": "string",
      "maxLength": 1000
    },
    "affiliation": {
      "description": "Matches the person's affiliations only",
      "type": "string",
      "maxLength": 1000
    },
    "limit": {
      "description": "Default 25, max 100",
      "type": "integer",
      "minimum": 1,
      "maximum": 9007199254740991
    },
    "offset": {
      "type": "integer",
      "minimum": 0,
      "maximum": 100000
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false
}
🟢get_person(name, id)

Person affiliations, authority identifiers, PI/member projects, credited items, publications and top collaborators. Lists cap at 50 with totals. Use id to disambiguate.

입력 스키마

{
  "type": "object",
  "properties": {
    "name": {
      "description": "Full name in either order, with or without accents: 'Beier, Ulli' and 'Ulli Beier' both resolve",
      "type": "string",
      "maxLength": 1000
    },
    "id": {
      "description": "Exact person Omeka id or typed id (person:123); required to disambiguate homonyms",
      "anyOf": [
        {
          "type": "integer",
          "exclusiveMinimum": 0,
          "maximum": 9007199254740991
        },
        {
          "type": "string",
          "maxLength": 64
        }
      ]
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false
}
🟢list_institutions(keyword, limit, offset)

Browse institution authorities by name or acronym (e.g. 'UJKZ'), with project counts and citation links.

입력 스키마

{
  "type": "object",
  "properties": {
    "keyword": {
      "description": "Name or acronym, partial",
      "type": "string",
      "maxLength": 1000
    },
    "limit": {
      "description": "Default 50, max 200",
      "type": "integer",
      "minimum": 1,
      "maximum": 9007199254740991
    },
    "offset": {
      "type": "integer",
      "minimum": 0,
      "maximum": 100000
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false
}
🟢get_institution(name, id)

Institution or group profile: identifiers, members, funded projects and credited items, with citation links.

입력 스키마

{
  "type": "object",
  "properties": {
    "name": {
      "description": "Institution or group name, or an acronym",
      "type": "string",
      "maxLength": 1000
    },
    "id": {
      "description": "Omeka id or typed id organisation:1224",
      "anyOf": [
        {
          "type": "string",
          "maxLength": 64
        },
        {
          "type": "number"
        }
      ]
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false
}
🟢list_cluster_partners(category)

Cluster partner institutions grouped by catalogue category, with citation links.

입력 스키마

{
  "type": "object",
  "properties": {
    "category": {
      "description": "Optional: amrc | privileged | cooperation | global, or a category label",
      "type": "string",
      "maxLength": 1000
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false
}
🟢list_groups(keyword, limit, offset)

Browse research groups and associations by name, with citation links.

입력 스키마

{
  "type": "object",
  "properties": {
    "keyword": {
      "description": "Name or acronym, partial",
      "type": "string",
      "maxLength": 1000
    },
    "limit": {
      "description": "Default 50, max 200",
      "type": "integer",
      "minimum": 1,
      "maximum": 9007199254740991
    },
    "offset": {
      "type": "integer",
      "minimum": 0,
      "maximum": 100000
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false
}
🟢list_subjects(keyword, vocabulary, limit, offset)

Subject headings (LCSH or free tags) ranked by distinct research-item count. Feed a heading into search_research_items.subject.

입력 스키마

{
  "type": "object",
  "properties": {
    "keyword": {
      "description": "Substring filter on the subject heading",
      "type": "string",
      "maxLength": 1000
    },
    "vocabulary": {
      "description": "Only Library of Congress headings or only free tags",
      "type": "string",
      "enum": [
        "lcsh",
        "tag"
      ]
    },
    "limit": {
      "description": "Default 50, max 300",
      "type": "integer",
      "minimum": 1,
      "maximum": 9007199254740991
    },
    "offset": {
      "type": "integer",
      "minimum": 0,
      "maximum": 100000
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false
}
🟢list_locations(filters, country, keyword, near, bbox, ...)

Research places with coordinates and ancestor rollups. One item can count under both city and country. Feed a name into search_research_items.location.

입력 스키마

{
  "type": "object",
  "properties": {
    "filters": {
      "description": "Research-item filters applied before place counts",
      "type": "object",
      "properties": {
        "keyword": {
          "type": "string",
          "maxLength": 1000
        },
        "subject": {
          "type": "string",
          "maxLength": 1000
        },
        "location": {
          "type": "string",
          "maxLength": 1000
        },
        "country": {
          "type": "string",
          "maxLength": 1000
        },
        "contributor": {
          "type": "string",
          "maxLength": 1000
        },
        "location_id": {
          "type": "integer",
          "exclusiveMinimum": 0,
          "maximum": 9007199254740991
        },
        "project_id": {
          "anyOf": [
            {
              "type": "string",
              "maxLength": 256
            },
            {
              "type": "integer",
              "exclusiveMinimum": 0,
              "maximum": 9007199254740991
            }
          ]
        },
        "research_section": {
          "type": "string",
          "maxLength": 1000
        },
        "university": {
          "type": "string",
          "maxLength": 1000
        },
        "resource_type": {
          "type": "string",
          "maxLength": 1000
        },
        "genre": {
          "type": "string",
          "maxLength": 1000
        },
        "collection": {
          "type": "string",
          "maxLength": 1000
        },
        "language": {
          "type": "string",
          "maxLength": 1000
        },
        "year_from": {
          "type": "integer",
          "minimum": 0,
          "maximum": 2200
        },
        "year_to": {
          "type": "integer",
          "minimum": 0,
          "maximum": 2200
        },
        "has_media": {
          "type": "boolean"
        },
        "added_since": {
          "type": "string",
          "maxLength": 40
        },
        "modified_since": {
          "type": "string",
          "maxLength": 40
        }
      },
      "additionalProperties": false
    },
    "country": {
      "description": "One country, exact name or alias, plus its cities",
      "type": "string",
      "maxLength": 1000
    },
    "keyword": {
      "description": "Substring filter on the place name",
      "type": "string",
      "maxLength": 1000
    },
    "near": {
      "description": "Places within km of a point",
      "type": "object",
      "properties": {
        "latitude": {
          "type": "number"
        },
        "longitude": {
          "type": "number"
        },
        "km": {
          "type": "number",
          "exclusiveMinimum": 0
        }
      },
      "required": [
        "latitude",
        "longitude",
        "km"
      ],
      "additionalProperties": false
    },
    "bbox": {
      "description": "[west, south, east, north]",
      "minItems": 4,
      "maxItems": 4,
      "type": "array",
      "items": {
        "type": "number"
      }
    },
    "limit": {
      "description": "Default 50, max 300",
      "type": "integer",
      "minimum": 1,
      "maximum": 9007199254740991
    },
    "offset": {
      "type": "integer",
      "minimum": 0,
      "maximum": 100000
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false
}
🟢list_collections(keyword, limit, offset)

Omeka item sets ranked by research-item count, with catalogue links. Feed an ID into search_research_items.collection.

입력 스키마

{
  "type": "object",
  "properties": {
    "keyword": {
      "description": "Substring filter on the collection title",
      "type": "string",
      "maxLength": 1000
    },
    "limit": {
      "description": "Default 50, max 200",
      "type": "integer",
      "minimum": 1,
      "maximum": 9007199254740991
    },
    "offset": {
      "type": "integer",
      "minimum": 0,
      "maximum": 100000
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false
}
🟢list_categories(category, keyword, limit, offset)

Ranked formats, languages or resource types used by research items. Feed values into the corresponding search filters.

입력 스키마

{
  "type": "object",
  "properties": {
    "category": {
      "type": "string",
      "enum": [
        "formats",
        "genres",
        "languages",
        "resource_types"
      ],
      "description": "'genres' is an alias of 'formats'. The former 'tags' facet is merged into subjects — use list_subjects"
    },
    "keyword": {
      "description": "Substring filter on the value",
      "type": "string",
      "maxLength": 1000
    },
    "limit": {
      "description": "Default 100, max 500",
      "type": "integer",
      "minimum": 1,
      "maximum": 9007199254740991
    },
    "offset": {
      "type": "integer",
      "minimum": 0,
      "maximum": 100000
    }
  },
  "required": [
    "category"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false
}
🟢list_years(filters, bucket, from, to, sort, ...)

Research-item year/decade histogram with dated and undated counts. A date range counts in each spanned bucket. Supports shared item filters and pagination.

입력 스키마

{
  "type": "object",
  "properties": {
    "filters": {
      "description": "Research-item filters applied before bucketing",
      "type": "object",
      "properties": {
        "keyword": {
          "type": "string",
          "maxLength": 1000
        },
        "subject": {
          "type": "string",
          "maxLength": 1000
        },
        "location": {
          "type": "string",
          "maxLength": 1000
        },
        "country": {
          "type": "string",
          "maxLength": 1000
        },
        "contributor": {
          "type": "string",
          "maxLength": 1000
        },
        "location_id": {
          "type": "integer",
          "exclusiveMinimum": 0,
          "maximum": 9007199254740991
        },
        "project_id": {
          "anyOf": [
            {
              "type": "string",
              "maxLength": 256
            },
            {
              "type": "integer",
              "exclusiveMinimum": 0,
              "maximum": 9007199254740991
            }
          ]
        },
        "research_section": {
          "type": "string",
          "maxLength": 1000
        },
        "university": {
          "type": "string",
          "maxLength": 1000
        },
        "resource_type": {
          "type": "string",
          "maxLength": 1000
        },
        "genre": {
          "type": "string",
          "maxLength": 1000
        },
        "collection": {
          "type": "string",
          "maxLength": 1000
        },
        "language": {
          "type": "string",
          "maxLength": 1000
        },
        "year_from": {
          "type": "integer",
          "minimum": 0,
          "maximum": 2200
        },
        "year_to": {
          "type": "integer",
          "minimum": 0,
          "maximum": 2200
        },
        "has_media": {
          "type": "boolean"
        },
        "added_since": {
          "type": "string",
          "maxLength": 40
        },
        "modified_since": {
          "type": "string",
          "maxLength": 40
        }
      },
      "additionalProperties": false
    },
    "bucket": {
      "description": "Default 'year'",
      "type": "string",
      "enum": [
        "year",
        "decade"
      ]
    },
    "from": {
      "description": "Earliest year to report (inclusive)",
      "type": "integer",
      "minimum": 0,
      "maximum": 2200
    },
    "to": {
      "description": "Latest year to report (inclusive)",
      "type": "integer",
      "minimum": 0,
      "maximum": 2200
    },
    "sort": {
      "description": "Default 'chronological' (oldest first); 'count' ranks by item count",
      "type": "string",
      "enum": [
        "chronological",
        "count"
      ]
    },
    "limit": {
      "description": "Default 200, max 500",
      "type": "integer",
      "minimum": 1,
      "maximum": 9007199254740991
    },
    "offset": {
      "type": "integer",
      "minimum": 0,
      "maximum": 100000
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false
}

출력 스키마

{
  "type": "object",
  "properties": {
    "count": {
      "type": "number"
    },
    "total_matches": {
      "type": "number"
    },
    "offset": {
      "type": "number"
    },
    "has_more": {
      "type": "boolean"
    },
    "next_offset": {
      "type": "number"
    },
    "bucket": {
      "type": "string"
    },
    "sort": {
      "type": "string"
    },
    "distinct_buckets": {
      "type": "number"
    },
    "dated_items": {
      "type": "number"
    },
    "undated_items": {
      "type": "number"
    },
    "year_range": {
      "type": "object",
      "properties": {
        "min": {
          "type": "number"
        },
        "max": {
          "type": "number"
        }
      },
      "required": [
        "min",
        "max"
      ],
      "additionalProperties": false
    },
    "results": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "item_count": {
            "type": "number"
          },
          "year": {
            "type": "number"
          },
          "decade": {
            "type": "string"
          },
          "from": {
            "type": "number"
          },
          "to": {
            "type": "number"
          }
        },
        "required": [
          "item_count"
        ],
        "additionalProperties": false
      }
    }
  },
  "required": [
    "count",
    "total_matches",
    "offset",
    "has_more",
    "bucket",
    "sort",
    "distinct_buckets",
    "dated_items",
    "undated_items",
    "results"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": {}
}
🟢search_publications(keyword, author, type, venue, subject, ...)

AND-filtered bibliography, newest first. Keyword includes PDF text and returns match snippets. citation_format returns citations per page; export links every match as one file. Cite amira_url.

입력 스키마

{
  "type": "object",
  "properties": {
    "keyword": {
      "description": "Title, abstracts, venue, subjects or full text; every word must match, quote a phrase",
      "type": "string",
      "maxLength": 1000
    },
    "author": {
      "description": "Author/editor name, either name order",
      "type": "string",
      "maxLength": 1000
    },
    "type": {
      "description": "Exact type; discover values with list_publication_facets",
      "type": "string",
      "maxLength": 1000
    },
    "venue": {
      "description": "Journal/book title, partial",
      "type": "string",
      "maxLength": 1000
    },
    "subject": {
      "description": "Subject heading, partial",
      "type": "string",
      "maxLength": 1000
    },
    "language": {
      "description": "Language name or ISO code",
      "type": "string",
      "maxLength": 1000
    },
    "has_fulltext": {
      "description": "Filter by extracted full-text availability",
      "type": "boolean"
    },
    "year_from": {
      "type": "integer",
      "minimum": 0,
      "maximum": 2200
    },
    "year_to": {
      "type": "integer",
      "minimum": 0,
      "maximum": 2200
    },
    "added_since": {
      "description": "Added to AMIRA on or after this ISO date",
      "type": "string",
      "maxLength": 40
    },
    "citation_format": {
      "description": "Omit for summaries; pages carry bibtex, ris or csl_json",
      "type": "string",
      "enum": [
        "bibtex",
        "ris",
        "csl-json"
      ]
    },
    "export": {
      "description": "Return a file link instead of rows",
      "type": "string",
      "enum": [
        "csv",
        "jsonl",
        "bibtex",
        "ris",
        "csl-json"
      ]
    },
    "limit": {
      "description": "Default 25; max 100 summaries or 25 exports, also byte-bounded",
      "type": "integer",
      "minimum": 1,
      "maximum": 9007199254740991
    },
    "offset": {
      "type": "integer",
      "minimum": 0,
      "maximum": 100000
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false
}
🟢get_publication(id, citation_format, include_fulltext, fulltext_offset, fulltext_max_chars)

Publication metadata and citation export (BibTeX default). Full text is opt-in and paginated. Cite amira_url; DOI/repository links are additional sources.

입력 스키마

{
  "type": "object",
  "properties": {
    "id": {
      "anyOf": [
        {
          "type": "string",
          "maxLength": 1000
        },
        {
          "type": "number"
        }
      ],
      "description": "Publication Omeka id or typed id publication:29919"
    },
    "citation_format": {
      "description": "Default bibtex; selects bibtex, ris or csl_json field",
      "type": "string",
      "enum": [
        "bibtex",
        "ris",
        "csl-json"
      ]
    },
    "include_fulltext": {
      "description": "Default false — set true to include the extracted full text",
      "type": "boolean"
    },
    "fulltext_offset": {
      "description": "Start offset into the full text (chars), with include_fulltext",
      "type": "integer",
      "minimum": 0,
      "maximum": 9007199254740991
    },
    "fulltext_max_chars": {
      "description": "Max full-text characters to return (default/max 25000)",
      "type": "integer",
      "minimum": 1,
      "maximum": 9007199254740991
    }
  },
  "required": [
    "id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false
}
🟢list_publication_facets(facet, keyword, author, type, venue, ...)

Ranked facets for the entire filtered bibliography before pagination. Uses the same selection rules as search_publications.

입력 스키마

{
  "type": "object",
  "properties": {
    "facet": {
      "type": "string",
      "enum": [
        "type",
        "year",
        "language",
        "subject",
        "author",
        "venue"
      ]
    },
    "keyword": {
      "description": "Title, abstracts, venue, subjects or full text; every word must match, quote a phrase",
      "type": "string",
      "maxLength": 1000
    },
    "author": {
      "description": "Author/editor name, either name order",
      "type": "string",
      "maxLength": 1000
    },
    "type": {
      "description": "Exact type; discover values with list_publication_facets",
      "type": "string",
      "maxLength": 1000
    },
    "venue": {
      "description": "Journal/book title, partial",
      "type": "string",
      "maxLength": 1000
    },
    "subject": {
      "description": "Subject heading, partial",
      "type": "string",
      "maxLength": 1000
    },
    "language": {
      "description": "Language name or ISO code",
      "type": "string",
      "maxLength": 1000
    },
    "has_fulltext": {
      "description": "Filter by extracted full-text availability",
      "type": "boolean"
    },
    "year_from": {
      "type": "integer",
      "minimum": 0,
      "maximum": 2200
    },
    "year_to": {
      "type": "integer",
      "minimum": 0,
      "maximum": 2200
    },
    "added_since": {
      "description": "Added to AMIRA on or after this ISO date",
      "type": "string",
      "maxLength": 40
    },
    "limit": {
      "description": "Default 25, max 100",
      "type": "integer",
      "minimum": 1,
      "maximum": 9007199254740991
    },
    "offset": {
      "type": "integer",
      "minimum": 0,
      "maximum": 100000
    }
  },
  "required": [
    "facet"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false
}

출력 스키마

{
  "type": "object",
  "properties": {
    "facet": {
      "type": "string"
    },
    "total_publications": {
      "type": "number"
    },
    "missing_values": {
      "type": "number"
    },
    "count": {
      "type": "number"
    },
    "total_matches": {
      "type": "number"
    },
    "offset": {
      "type": "number"
    },
    "has_more": {
      "type": "boolean"
    },
    "next_offset": {
      "type": "number"
    },
    "filters": {
      "type": "object",
      "propertyNames": {
        "type": "string"
      },
      "additionalProperties": {}
    },
    "requested_limit": {
      "type": "number"
    },
    "effective_limit": {
      "type": "number"
    },
    "response_limited": {
      "type": "boolean"
    },
    "results": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "value": {
            "type": "string"
          },
          "publication_count": {
            "type": "number"
          },
          "amira_url": {
            "type": "string"
          }
        },
        "required": [
          "value",
          "publication_count"
        ],
        "additionalProperties": false
      }
    }
  },
  "required": [
    "facet",
    "total_publications",
    "missing_values",
    "count",
    "total_matches",
    "offset",
    "has_more",
    "results"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false
}
🟢list_journals(keyword, limit, offset)

Publication venues ranked by linked bibliography records, with ISSN and catalogue links.

입력 스키마

{
  "type": "object",
  "properties": {
    "keyword": {
      "description": "Substring filter on the journal title",
      "type": "string",
      "maxLength": 1000
    },
    "limit": {
      "description": "Default 50, max 200",
      "type": "integer",
      "minimum": 1,
      "maximum": 9007199254740991
    },
    "offset": {
      "type": "integer",
      "minimum": 0,
      "maximum": 100000
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false
}
🟢find_related(entity_type, value, limit)

Subjects, people, places and projects connected through shared records. Per-corpus counts deduplicate each record; subject/person seeds also include publications. Returns ambiguity and cited samples.

입력 스키마

{
  "type": "object",
  "properties": {
    "entity_type": {
      "type": "string",
      "enum": [
        "subject",
        "location",
        "person",
        "project"
      ],
      "description": "What the value denotes. Tags are merged into subjects — there is no tag pivot"
    },
    "value": {
      "type": "string",
      "maxLength": 1000,
      "description": "The entity to pivot on. subject: substring of a heading ('Islam'). location: any level of the city→country hierarchy ('Nigeria' includes Lagos items). person: a name in either order, accent-insensitive ('Beier, Ulli'). project: an Omeka id ('37700'), a legacy key, or a substring of the project label"
    },
    "limit": {
      "description": "Per-list cap, default 20, max 50",
      "type": "integer",
      "minimum": 1,
      "maximum": 9007199254740991
    }
  },
  "required": [
    "entity_type",
    "value"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false
}
🟢search_podcasts(keyword, series, person, language, year_from, ...)

Search podcast metadata and transcripts. Text-only hits include snippets; full transcripts require get_podcast with opt-in.

입력 스키마

{
  "type": "object",
  "properties": {
    "keyword": {
      "description": "Every word must occur in the title, abstract or transcript; quote a phrase to match it exactly",
      "type": "string",
      "maxLength": 1000
    },
    "series": {
      "description": "Series title, partial (e.g. 'Cluster Conversations')",
      "type": "string",
      "maxLength": 1000
    },
    "person": {
      "description": "A speaker/host name; either name order works",
      "type": "string",
      "maxLength": 1000
    },
    "language": {
      "description": "Name or ISO code — 'French', 'fr', 'fra' all match",
      "type": "string",
      "maxLength": 1000
    },
    "year_from": {
      "description": "Earliest year",
      "type": "integer",
      "minimum": 0,
      "maximum": 2200
    },
    "year_to": {
      "description": "Latest year",
      "type": "integer",
      "minimum": 0,
      "maximum": 2200
    },
    "limit": {
      "description": "Default 20, max 100",
      "type": "integer",
      "minimum": 1,
      "maximum": 9007199254740991
    },
    "offset": {
      "type": "integer",
      "minimum": 0,
      "maximum": 100000
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false
}
🟢get_podcast(id, include_transcript, transcript_offset, transcript_max_chars)

Podcast detail, duration, audio file and citation link; says which model generated the transcript. Transcript is opt-in, bounded and pageable.

입력 스키마

{
  "type": "object",
  "properties": {
    "id": {
      "anyOf": [
        {
          "type": "string",
          "maxLength": 1000
        },
        {
          "type": "number"
        }
      ],
      "description": "Podcast id from search_podcasts, e.g. 39121, or podcast:39121"
    },
    "include_transcript": {
      "description": "Default false — set true to include the transcript text",
      "type": "boolean"
    },
    "transcript_offset": {
      "description": "Start offset into the transcript (chars), with include_transcript",
      "type": "integer",
      "minimum": 0,
      "maximum": 9007199254740991
    },
    "transcript_max_chars": {
      "description": "Max transcript characters to return (default/max 25000)",
      "type": "integer",
      "minimum": 1,
      "maximum": 9007199254740991
    }
  },
  "required": [
    "id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false
}
🟢search_videos(keyword, playlist, speaker, language, year_from, ...)

Search video metadata and transcripts. Text-only hits include snippets; full transcripts require get_video with opt-in.

입력 스키마

{
  "type": "object",
  "properties": {
    "keyword": {
      "description": "Every word must occur in the title, abstract or transcript; quote a phrase to match it exactly",
      "type": "string",
      "maxLength": 1000
    },
    "playlist": {
      "description": "Playlist title, partial",
      "type": "string",
      "maxLength": 1000
    },
    "speaker": {
      "description": "A speaker name; either name order works",
      "type": "string",
      "maxLength": 1000
    },
    "language": {
      "description": "Name or ISO code — 'French', 'fr', 'fra' all match",
      "type": "string",
      "maxLength": 1000
    },
    "year_from": {
      "description": "Earliest year",
      "type": "integer",
      "minimum": 0,
      "maximum": 2200
    },
    "year_to": {
      "description": "Latest year",
      "type": "integer",
      "minimum": 0,
      "maximum": 2200
    },
    "limit": {
      "description": "Default 20, max 100",
      "type": "integer",
      "minimum": 1,
      "maximum": 9007199254740991
    },
    "offset": {
      "type": "integer",
      "minimum": 0,
      "maximum": 100000
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false
}
🟢get_video(id, include_transcript, transcript_offset, transcript_max_chars)

Video detail, thumbnail and citation link; says how the transcript was produced when recorded. Transcript is opt-in, bounded and pageable.

입력 스키마

{
  "type": "object",
  "properties": {
    "id": {
      "anyOf": [
        {
          "type": "string",
          "maxLength": 1000
        },
        {
          "type": "number"
        }
      ],
      "description": "Video id from search_videos, e.g. 39218, or video:39218"
    },
    "include_transcript": {
      "description": "Default false — set true to include the transcript text",
      "type": "boolean"
    },
    "transcript_offset": {
      "description": "Start offset into the transcript (chars), with include_transcript",
      "type": "integer",
      "minimum": 0,
      "maximum": 9007199254740991
    },
    "transcript_max_chars": {
      "description": "Max transcript characters to return (default/max 25000)",
      "type": "integer",
      "minimum": 1,
      "maximum": 9007199254740991
    }
  },
  "required": [
    "id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false
}
🟢resolve_entity(query, type, limit, offset)

Resolve a label or typed ID to cited candidates. Returns ambiguity instead of merging names. Use a returned id with get_entity_graph or get_* tools.

입력 스키마

{
  "type": "object",
  "properties": {
    "query": {
      "type": "string",
      "minLength": 1,
      "maxLength": 1000
    },
    "type": {
      "type": "string",
      "enum": [
        "person",
        "project",
        "section",
        "organisation",
        "location",
        "subject",
        "format",
        "language",
        "collection",
        "research_item",
        "publication",
        "journal",
        "podcast",
        "video",
        "playlist"
      ]
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 9007199254740991
    },
    "offset": {
      "type": "integer",
      "minimum": 0,
      "maximum": 100000
    }
  },
  "required": [
    "query"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false
}

출력 스키마

{
  "type": "object",
  "properties": {
    "count": {
      "type": "number"
    },
    "total_matches": {
      "type": "number"
    },
    "offset": {
      "type": "number"
    },
    "has_more": {
      "type": "boolean"
    },
    "next_offset": {
      "type": "number"
    },
    "requested_limit": {
      "type": "number"
    },
    "effective_limit": {
      "type": "number"
    },
    "response_limited": {
      "type": "boolean"
    },
    "results": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "type": {
            "type": "string",
            "enum": [
              "person",
              "project",
              "section",
              "organisation",
              "location",
              "subject",
              "format",
              "language",
              "collection",
              "research_item",
              "publication",
              "journal",
              "podcast",
              "video",
              "playlist"
            ]
          },
          "label": {
            "type": "string"
          },
          "omeka_id": {
            "type": [
              "number",
              "null"
            ]
          },
          "amira_url": {
            "type": [
              "string",
              "null"
            ]
          },
          "resolved": {
            "type": "boolean"
          }
        },
        "required": [
          "id",
          "type",
          "label",
          "omeka_id",
          "amira_url",
          "resolved"
        ],
        "additionalProperties": false
      }
    },
    "ambiguous": {
      "type": "boolean"
    },
    "snapshot_id": {
      "type": "string"
    }
  },
  "required": [
    "count",
    "total_matches",
    "offset",
    "has_more",
    "results",
    "ambiguous",
    "snapshot_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false
}
🟢get_entity_graph(seed, max_nodes, max_edges, edge_id, snapshot_id, ...)

One-hop graph from a typed ID: explicit catalogue links and derived co-occurrence with distinct-record counts and cited evidence. Pass edge_id to page its evidence; pin snapshot_id across pages.

입력 스키마

{
  "type": "object",
  "properties": {
    "seed": {
      "type": "string",
      "minLength": 1,
      "maxLength": 256
    },
    "max_nodes": {
      "description": "Default 40, max 100",
      "type": "integer",
      "minimum": 2,
      "maximum": 9007199254740991
    },
    "max_edges": {
      "description": "Default 50, max 200",
      "type": "integer",
      "minimum": 1,
      "maximum": 9007199254740991
    },
    "edge_id": {
      "type": "string",
      "maxLength": 64
    },
    "snapshot_id": {
      "type": "string",
      "maxLength": 64
    },
    "offset": {
      "type": "integer",
      "minimum": 0,
      "maximum": 100000
    },
    "limit": {
      "description": "Evidence page size, default 20, max 50",
      "type": "integer",
      "minimum": 1,
      "maximum": 9007199254740991
    }
  },
  "required": [
    "seed"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false
}

출력 스키마

{
  "type": "object",
  "properties": {
    "snapshot_id": {
      "type": "string"
    },
    "seed": {
      "type": "string"
    },
    "nodes": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "type": {
            "type": "string",
            "enum": [
              "person",
              "project",
              "section",
              "organisation",
              "location",
              "subject",
              "format",
              "language",
              "collection",
              "research_item",
              "publication",
              "journal",
              "podcast",
              "video",
              "playlist"
            ]
          },
          "label": {
            "type": "string"
          },
          "omeka_id": {
            "type": [
              "number",
              "null"
            ]
          },
          "amira_url": {
            "type": [
              "string",
              "null"
            ]
          },
          "resolved": {
            "type": "boolean"
          }
        },
        "required": [
          "id",
          "type",
          "label",
          "omeka_id",
          "amira_url",
          "resolved"
        ],
        "additionalProperties": false
      }
    },
    "edges": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "source": {
            "type": "string"
          },
          "target": {
            "type": "string"
          },
          "kind": {
            "type": "string",
            "enum": [
              "explicit",
              "cooccurrence"
            ]
          },
          "relation": {
            "type": "string"
          },
          "count": {
            "type": "number"
          },
          "research_item_count": {
            "type": "number"
          },
          "publication_count": {
            "type": "number"
          },
          "video_count": {
            "type": "number"
          },
          "podcast_count": {
            "type": "number"
          },
          "evidence": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "string"
                },
                "corpus": {
                  "type": "string"
                },
                "title": {
                  "type": "string"
                },
                "amira_url": {
                  "type": "string"
                }
              },
              "required": [
                "id",
                "corpus",
                "title",
                "amira_url"
              ],
              "additionalProperties": false
            }
          },
          "evidence_total": {
            "type": "number"
          }
        },
        "required": [
          "id",
          "source",
          "target",
          "kind",
          "relation",
          "count",
          "research_item_count",
          "publication_count",
          "video_count",
          "podcast_count",
          "evidence",
          "evidence_total"
        ],
        "additionalProperties": false
      }
    },
    "total_edges": {
      "type": "number"
    },
    "truncated": {
      "type": "boolean"
    },
    "bounds": {
      "type": "object",
      "properties": {
        "max_nodes": {
          "type": "number"
        },
        "max_edges": {
          "type": "number"
        },
        "hops": {
          "type": "number"
        }
      },
      "required": [
        "max_nodes",
        "max_edges",
        "hops"
      ],
      "additionalProperties": false
    },
    "results": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "corpus": {
            "type": "string"
          },
          "title": {
            "type": "string"
          },
          "amira_url": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "corpus",
          "title",
          "amira_url"
        ],
        "additionalProperties": false
      }
    },
    "count": {
      "type": "number"
    },
    "total_matches": {
      "type": "number"
    },
    "offset": {
      "type": "number"
    },
    "has_more": {
      "type": "boolean"
    },
    "next_offset": {
      "type": "number"
    },
    "requested_limit": {
      "type": "number"
    },
    "effective_limit": {
      "type": "number"
    },
    "response_limited": {
      "type": "boolean"
    }
  },
  "required": [
    "snapshot_id",
    "seed"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false
}
🟢get_text_passages(ids, keyword, radius, offset, limit)

Find literal accent-insensitive keyword passages in selected publication/video/podcast IDs. Original UTF-16 offsets, bounded context, and citations. Requires full text exposure; no semantic ranking.

입력 스키마

{
  "type": "object",
  "properties": {
    "ids": {
      "minItems": 1,
      "maxItems": 10,
      "type": "array",
      "items": {
        "type": "string",
        "maxLength": 64
      },
      "description": "publication:, video: or podcast: ids"
    },
    "keyword": {
      "type": "string",
      "minLength": 1,
      "maxLength": 1000
    },
    "radius": {
      "type": "integer",
      "minimum": 20,
      "maximum": 500
    },
    "offset": {
      "type": "integer",
      "minimum": 0,
      "maximum": 100000
    },
    "limit": {
      "description": "Default 10, max 20",
      "type": "integer",
      "minimum": 1,
      "maximum": 9007199254740991
    }
  },
  "required": [
    "ids",
    "keyword"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false
}

출력 스키마

{
  "type": "object",
  "properties": {
    "count": {
      "type": "number"
    },
    "total_matches": {
      "type": "number"
    },
    "offset": {
      "type": "number"
    },
    "has_more": {
      "type": "boolean"
    },
    "next_offset": {
      "type": "number"
    },
    "requested_limit": {
      "type": "number"
    },
    "effective_limit": {
      "type": "number"
    },
    "response_limited": {
      "type": "boolean"
    },
    "results": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "title": {
            "type": "string"
          },
          "amira_url": {
            "type": "string"
          },
          "start": {
            "type": "number"
          },
          "end": {
            "type": "number"
          },
          "match_start": {
            "type": "number"
          },
          "match_end": {
            "type": "number"
          },
          "text": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "title",
          "amira_url",
          "start",
          "end",
          "match_start",
          "match_end",
          "text"
        ],
        "additionalProperties": false
      }
    },
    "snapshot_id": {
      "type": "string"
    },
    "scanned_matches_capped": {
      "type": "boolean"
    },
    "unavailable_ids": {
      "type": "array",
      "items": {
        "type": "string"
      }
    }
  },
  "required": [
    "count",
    "total_matches",
    "offset",
    "has_more",
    "results",
    "snapshot_id",
    "scanned_matches_capped",
    "unavailable_ids"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false
}
🟢compare_collections(cohorts, filters)

Compare 2–4 projects or item sets with identical research-item filters. Reports denominators, missingness, dates and top types/languages; collections can overlap.

입력 스키마

{
  "type": "object",
  "properties": {
    "cohorts": {
      "minItems": 2,
      "maxItems": 4,
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "enum": [
              "project",
              "collection"
            ]
          },
          "id": {
            "type": "string",
            "minLength": 1,
            "maxLength": 256
          }
        },
        "required": [
          "type",
          "id"
        ],
        "additionalProperties": false
      }
    },
    "filters": {
      "type": "object",
      "properties": {
        "keyword": {
          "type": "string",
          "maxLength": 1000
        },
        "subject": {
          "type": "string",
          "maxLength": 1000
        },
        "location": {
          "type": "string",
          "maxLength": 1000
        },
        "country": {
          "type": "string",
          "maxLength": 1000
        },
        "contributor": {
          "type": "string",
          "maxLength": 1000
        },
        "location_id": {
          "type": "integer",
          "exclusiveMinimum": 0,
          "maximum": 9007199254740991
        },
        "project_id": {
          "anyOf": [
            {
              "type": "string",
              "maxLength": 256
            },
            {
              "type": "integer",
              "exclusiveMinimum": 0,
              "maximum": 9007199254740991
            }
          ]
        },
        "research_section": {
          "type": "string",
          "maxLength": 1000
        },
        "university": {
          "type": "string",
          "maxLength": 1000
        },
        "resource_type": {
          "type": "string",
          "maxLength": 1000
        },
        "genre": {
          "type": "string",
          "maxLength": 1000
        },
        "collection": {
          "type": "string",
          "maxLength": 1000
        },
        "language": {
          "type": "string",
          "maxLength": 1000
        },
        "year_from": {
          "type": "integer",
          "minimum": 0,
          "maximum": 2200
        },
        "year_to": {
          "type": "integer",
          "minimum": 0,
          "maximum": 2200
        },
        "has_media": {
          "type": "boolean"
        },
        "added_since": {
          "type": "string",
          "maxLength": 40
        },
        "modified_since": {
          "type": "string",
          "maxLength": 40
        }
      },
      "additionalProperties": false
    }
  },
  "required": [
    "cohorts"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false
}

출력 스키마

{
  "type": "object",
  "properties": {
    "snapshot_id": {
      "type": "string"
    },
    "overlap_note": {
      "type": "string"
    },
    "cohorts": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string"
          },
          "id": {
            "type": "number"
          },
          "name": {
            "type": "string"
          },
          "amira_url": {
            "type": "string"
          },
          "total_items": {
            "type": "number"
          },
          "matched_items": {
            "type": "number"
          },
          "missing": {
            "type": "object",
            "propertyNames": {
              "type": "string"
            },
            "additionalProperties": {
              "type": "number"
            }
          },
          "resource_types": {
            "type": "object",
            "propertyNames": {
              "type": "string"
            },
            "additionalProperties": {
              "type": "number"
            }
          },
          "languages": {
            "type": "object",
            "propertyNames": {
              "type": "string"
            },
            "additionalProperties": {
              "type": "number"
            }
          },
          "date_range": {
            "anyOf": [
              {
                "type": "object",
                "properties": {
                  "earliest": {
                    "type": "number"
                  },
                  "latest": {
                    "type": "number"
                  }
                },
                "required": [
                  "earliest",
                  "latest"
                ],
                "additionalProperties": false
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "required": [
          "type",
          "id",
          "name",
          "amira_url",
          "total_items",
          "matched_items",
          "missing",
          "resource_types",
          "languages",
          "date_range"
        ],
        "additionalProperties": false
      }
    }
  },
  "required": [
    "snapshot_id",
    "overlap_note",
    "cohorts"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false
}
🟢get_data_quality

Snapshot coverage and missing metadata, unresolved loaded-authority links, and sanitized refresh status. Missing catalogue metadata is not evidence of real-world absence.

입력 스키마

{
  "type": "object",
  "properties": {},
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false
}

출력 스키마

{
  "type": "object",
  "properties": {
    "snapshot_id": {
      "type": "string"
    },
    "fetched_at": {
      "type": "string"
    },
    "schema_version": {
      "type": "number"
    },
    "counts": {
      "type": "object",
      "propertyNames": {
        "type": "string"
      },
      "additionalProperties": {
        "type": "number"
      }
    },
    "missing": {
      "type": "object",
      "propertyNames": {
        "type": "string"
      },
      "additionalProperties": {
        "type": "number"
      }
    },
    "unresolved_entities": {
      "type": "number"
    },
    "literal_entities": {
      "type": "number"
    },
    "refresh": {
      "type": "object",
      "properties": {
        "enabled": {
          "type": "boolean"
        },
        "in_flight": {
          "type": "boolean"
        },
        "last_attempt": {
          "type": [
            "string",
            "null"
          ]
        },
        "last_success": {
          "type": [
            "string",
            "null"
          ]
        },
        "error_class": {
          "type": [
            "string",
            "null"
          ]
        }
      },
      "required": [
        "enabled",
        "in_flight",
        "last_attempt",
        "last_success",
        "error_class"
      ],
      "additionalProperties": false
    }
  },
  "required": [
    "snapshot_id",
    "fetched_at",
    "schema_version",
    "counts",
    "missing",
    "unresolved_entities",
    "literal_entities",
    "refresh"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false
}
🟢get_snapshot_changes(from_id, to_id, corpus, offset, limit)

Page added/updated/deleted records between retained snapshots from this Omeka instance. Lists available snapshot IDs when fewer than two exist. For recent additions without history, use added_since on the search tools.

입력 스키마

{
  "type": "object",
  "properties": {
    "from_id": {
      "type": "string",
      "maxLength": 64
    },
    "to_id": {
      "type": "string",
      "maxLength": 64
    },
    "corpus": {
      "type": "string",
      "enum": [
        "persons",
        "organisations",
        "locations",
        "projects",
        "research_sections",
        "research_items",
        "publications",
        "journals",
        "podcasts",
        "videos",
        "playlists",
        "languages",
        "item_sets",
        "subjects"
      ]
    },
    "offset": {
      "type": "integer",
      "minimum": 0,
      "maximum": 100000
    },
    "limit": {
      "description": "Default 30, max 100",
      "type": "integer",
      "minimum": 1,
      "maximum": 9007199254740991
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false
}

출력 스키마

{
  "type": "object",
  "properties": {
    "status": {
      "type": "string",
      "enum": [
        "ready",
        "history_unavailable"
      ]
    },
    "snapshots": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "fetched_at": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "fetched_at"
        ],
        "additionalProperties": false
      }
    },
    "from_id": {
      "type": "string"
    },
    "to_id": {
      "type": "string"
    },
    "results": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "corpus": {
            "type": "string"
          },
          "id": {
            "type": "number"
          },
          "change": {
            "type": "string",
            "enum": [
              "added",
              "updated",
              "deleted"
            ]
          },
          "title": {
            "type": "string"
          },
          "amira_url": {
            "type": "string"
          }
        },
        "required": [
          "corpus",
          "id",
          "change",
          "title",
          "amira_url"
        ],
        "additionalProperties": false
      }
    },
    "count": {
      "type": "number"
    },
    "total_matches": {
      "type": "number"
    },
    "offset": {
      "type": "number"
    },
    "has_more": {
      "type": "boolean"
    },
    "next_offset": {
      "type": "number"
    },
    "requested_limit": {
      "type": "number"
    },
    "effective_limit": {
      "type": "number"
    },
    "response_limited": {
      "type": "boolean"
    }
  },
  "required": [
    "status",
    "snapshots"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false
}
🟢search(query, limit, types)

Ranked search across items, publications, videos, podcasts, projects and sections. Returns typed IDs, titles and citation URLs. Fetch selected records for evidence.

입력 스키마

{
  "type": "object",
  "properties": {
    "query": {
      "type": "string",
      "maxLength": 1000,
      "description": "A few keywords, names, places or themes — e.g. 'Yoruba architecture'. Terms are matched individually, so concise queries beat full sentences"
    },
    "limit": {
      "description": "Default 10, max 50",
      "type": "integer",
      "minimum": 1,
      "maximum": 9007199254740991
    },
    "types": {
      "description": "Restrict to these record kinds",
      "type": "array",
      "items": {
        "type": "string",
        "enum": [
          "item",
          "publication",
          "video",
          "podcast",
          "project",
          "section"
        ]
      }
    }
  },
  "required": [
    "query"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false
}

출력 스키마

{
  "type": "object",
  "properties": {
    "results": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Typed record id, e.g. 'item:7392'"
          },
          "title": {
            "type": "string"
          },
          "url": {
            "type": "string",
            "description": "The AMIRA/Omeka public record page"
          }
        },
        "required": [
          "id",
          "title",
          "url"
        ],
        "additionalProperties": false
      }
    },
    "requested_limit": {
      "type": "number"
    },
    "effective_limit": {
      "type": "number"
    }
  },
  "required": [
    "results"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false
}
🟢fetch(id, include_transcript, transcript_offset, transcript_max_chars, include_fulltext, ...)

Read a typed search result as a cited document. Full text/transcripts are opt-in and pageable; metadata and text respect exposure policy. Unknown ID returns an error.

입력 스키마

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "maxLength": 1000,
      "description": "A typed record id from search (item:7392, pub:30001, video:…, podcast:…, project:…, section:…) or resolve_entity"
    },
    "include_transcript": {
      "description": "Default false — set true to append the video/podcast transcript",
      "type": "boolean"
    },
    "transcript_offset": {
      "description": "Start offset into the transcript (chars), with include_transcript",
      "type": "integer",
      "minimum": 0,
      "maximum": 9007199254740991
    },
    "transcript_max_chars": {
      "description": "Max transcript characters to return (default/max 25000)",
      "type": "integer",
      "minimum": 1,
      "maximum": 9007199254740991
    },
    "include_fulltext": {
      "description": "Default false — set true to append a publication's extracted full text",
      "type": "boolean"
    },
    "fulltext_offset": {
      "description": "Start offset into the full text (chars), with include_fulltext",
      "type": "integer",
      "minimum": 0,
      "maximum": 9007199254740991
    },
    "fulltext_max_chars": {
      "description": "Max full-text characters to return (default/max 25000)",
      "type": "integer",
      "minimum": 1,
      "maximum": 9007199254740991
    },
    "max_chars": {
      "description": "Cap on the whole returned text body, default/max 25000",
      "type": "integer",
      "minimum": -9007199254740991,
      "maximum": 9007199254740991
    }
  },
  "required": [
    "id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false
}

출력 스키마

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string"
    },
    "title": {
      "type": "string"
    },
    "text": {
      "type": "string"
    },
    "url": {
      "type": "string"
    },
    "metadata": {
      "type": "object",
      "propertyNames": {
        "type": "string"
      },
      "additionalProperties": {}
    },
    "error": {
      "description": "Present instead of the record when the id is unknown",
      "type": "object",
      "properties": {
        "code": {
          "type": "string"
        },
        "message": {
          "type": "string"
        },
        "suggested_tool": {
          "type": "string"
        }
      },
      "required": [
        "code",
        "message"
      ],
      "additionalProperties": false
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false
}

커뮤니티

이 서버 평가하기

증거

최근 관측

검증됨버전이 기록되지 않음도구 35개