models.py 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. """Atlas internal data models."""
  2. from dataclasses import dataclass, field
  3. from typing import Any, Dict, List, Optional
  4. @dataclass
  5. class AtlasIdentifier:
  6. value: str
  7. source: str
  8. identifier_type: str
  9. @dataclass
  10. class AtlasAlias:
  11. label: str
  12. language: str = "und"
  13. source: str = "query"
  14. @dataclass
  15. class AtlasProvenance:
  16. source: str
  17. retrieval_method: str
  18. confidence: float = 0.0
  19. retrieved_at: Optional[str] = None
  20. @dataclass
  21. class AtlasEntity:
  22. atlas_id: str
  23. canonical_label: str
  24. canonical_description: str | None = None
  25. entity_type: str = "unknown"
  26. aliases: List[AtlasAlias] = field(default_factory=list)
  27. identifiers: List[AtlasIdentifier] = field(default_factory=list)
  28. provenance: List[AtlasProvenance] = field(default_factory=list)
  29. raw_payload: Dict[str, Any] = field(default_factory=dict)
  30. needs_curation: bool = False
  31. @dataclass
  32. class AtlasEnrichmentDataset:
  33. seed_entity: AtlasEntity
  34. related_entities: List[AtlasEntity] = field(default_factory=list)
  35. query_context: Dict[str, Any] = field(default_factory=dict)
  36. depth: int = 1