Cart
type: Class
has impl: CartTable
refers to: Ref
  type: NamedIndividual
  has neighbor: Order
usage pattern: GetCartItem
usage pattern: addToCart
usage pattern: listCart
usage pattern: removeFromCart
usage pattern: updateCart
subclass of: DataProduct

CelebResource
type: Class
federates: sparql
federates: query.wikidata.org
has impl: NeptuneImpl
refers to: Ref
  type: NamedIndividual
  has neighbor: VideoAnalysis
  has neighbor attribute: VideoCelebURI
subclass of: DataProduct

ContributorResource
type: Class
federates: sparql
federates: query.wikidata.org
has impl: NeptuneImpl
has source: Source
  type: NamedIndividual
  has neighbor: ContributorLakeTable
  has neighbor: MovieLakeTable
  has neighbor: RoleLakeTable
  integration type: ETL
  source data set: IMDB
joins: Ref
  type: NamedIndividual
  has neighbor: ContributorDocument
  has neighbor attribute: ContribID
similar to: Similarity
  type: NamedIndividual
  has neighbor: StoryResource
  sim algorithm: Valentine
  sim reason: mentions
subclass of: DataProduct

MovieResource
type: Class
federates: sparql
federates: query.wikidata.org
has impl: NeptuneImpl
has source: Source
  type: NamedIndividual
  has neighbor: ContributorLakeTable
  has neighbor: MovieLakeTable
  has neighbor: RoleLakeTable
  integration type: ETL
  source data set: IMDB
joins: Ref
  type: NamedIndividual
  has neighbor: MovieDocument
  has neighbor attribute: MovieID
similar to: Similarity
  type: NamedIndividual
  has neighbor: StoryResource
  sim algorithm: Valentine
  sim reason: mentions
subclass of: DataProduct

VideoAnalysisResource
type: Class
federates: sparql
federates: query.wikidata.org
has impl: NeptuneImpl
has source: Source
  type: NamedIndividual
  has neighbor: VideoAnalysis
  integration type: DynamoStreams
  source event type: S3PutObject
joins: Ref
  type: NamedIndividual
  has neighbor: VideoAnalysis
  has neighbor attribute: VideoID
refers to: Ref
  type: NamedIndividual
  has neighbor: VideoAnalysis
  has neighbor attribute: MP4FileName
  has neighbor attribute: VideoCelebURI
subclass of: DataProduct

BestSellerCache
type: Class
config-trigger: DynamoDB Streams
aws resource: RedisCache
aws service: Elasticache
subclass of: DataProductImpl

BookTable
type: Class
config-gsi: category
config-key: id
config-streams: NEW_AND_OLD_IMAGES
aws resource: Table
aws service: DynamoDB
copies: OpenSearchIndex
subclass of: DataProductImpl

CartTable
type: Class
config-key: customerId|bookId
aws resource: Table
aws service: DynamoDB
subclass of: DataProductImpl

OpenSearchIndex
type: Class
config-index: lambda-index
config-trigger: DynamoDB Streams
aws resource: Index
aws service: OpenSearch
subclass of: DataProductImpl

OrderTable
type: Class
config-key: customerId|orderId
config-streams: NEW_AND_OLD_IMAGES
aws resource: Table
aws service: DynamoDB
caches: BestSellerCache
subclass of: DataProductImpl

RecommendationGraph
type: Class
aws resource: LPG
aws service: Neptune
subclass of: DataProductImpl

id
type: DatatypeProperty
domain includes: Book

orderId
type: DatatypeProperty
domain includes: Order

ContribTable
type: Class
aws resource: Catalog table
aws service: Glue
has source: Source
  type: NamedIndividual
  integration type: uploadS3
  source data set: IMDB
located in: LakeStore
subclass of: DataProductImpl

MovieTable
type: Class
aws resource: Catalog table
aws service: Glue
has source: Source
  type: NamedIndividual
  integration type: uploadS3
  source data set: IMDB
located in: LakeStore
subclass of: DataProductImpl

RoleTable
type: Class
aws resource: Catalog table
aws service: Glue
has source: Source
  type: NamedIndividual
  integration type: uploadS3
  source data set: IMDB
located in: LakeStore
subclass of: DataProductImpl

ContribClass
type: DatatypeProperty
domain includes: RoleDocument
sub property of: ContribClassEnum

ContribClassEnum
type: DatatypeProperty

ContribDocImpl
type: Class
aws resource: Document
aws service: DocumentDB
caches: MovieElasticacheRedisCache
copies: ContributorSearchDocument
has source: Source
  type: NamedIndividual
  has neighbor: ContributorLakeTable
  has neighbor: MovieLakeTable
  has neighbor: RoleLakeTable
  integration type: ETL
  source data set: IMDB
subclass of: DataProductImpl

ContributorSearchDocument
type: Class
config-id: ContribID
config-index: Contrib
aws resource: Document in index
aws service: OpenSearch
has source: Source
  type: NamedIndividual
  has neighbor: ContributorLakeTable
  has neighbor: MovieLakeTable
  has neighbor: RoleLakeTable
  integration type: ETL
  source data set: IMDB
subclass of: DataProductImpl

MovieDocImpl
type: Class
config-additional index: SeriesID
aws resource: Document
aws service: DocumentDB
caches: MovieElasticacheRedisCache
copies: MovieSearchDocument
has source: Source
  type: NamedIndividual
  has neighbor: ContributorLakeTable
  has neighbor: MovieLakeTable
  has neighbor: RoleLakeTable
  integration type: ETL
  source data set: IMDB
subclass of: DataProductImpl

MovieSearchDocument
type: Class
config-id: MovieID
config-index: Role
aws resource: Document in Index
aws service: OpenSearch
has source: Source
  type: NamedIndividual
  has neighbor: ContributorLakeTable
  has neighbor: MovieLakeTable
  has neighbor: RoleLakeTable
  integration type: ETL
  source data set: IMDB
subclass of: DataProductImpl

RoleDocImpl
type: Class
aws resource: Document
aws service: DocumentDB
caches: MovieElasticacheRedisCache
copies: RoleSearchDocument
has source: Source
  type: NamedIndividual
  has neighbor: ContributorLakeTable
  has neighbor: MovieLakeTable
  has neighbor: RoleLakeTable
  integration type: ETL
  source data set: IMDB
subclass of: DataProductImpl

RoleSearchDocument
type: Class
config-id: hash of compound key
config-index: Role
aws resource: Document in index
aws service: OpenSearch
has source: Source
  type: NamedIndividual
  has neighbor: ContributorLakeTable
  has neighbor: MovieLakeTable
  has neighbor: RoleLakeTable
  integration type: ETL
  source data set: IMDB
subclass of: DataProductImpl

LAOrangeStoryBucket
type: Class
config-tag: PDFFileName
config-tier: Standard
config-top folder: PDFFileName
aws resource: Bucket contents
aws service: S3
subclass of: DataProductImpl

AnalysisItem
type: Class
config-partition: VideoID
config-sort: Type
aws resource: table item
aws service: DynamoDB
joins: Ref
  type: NamedIndividual
  has neighbor: VideoAnalysisBucket
  has neighbor attribute: S3AnalysisLocation
joins: Ref
  type: NamedIndividual
  has neighbor: IngestItem
  has neighbor attribute: VideoID
subclass of: DataProductImpl

MP4FileName
type: DatatypeProperty

S3AnalysisLocation
type: DatatypeProperty

S3IngestLocation
type: DatatypeProperty

VideoAnalysisBucket
type: Class
config-tag: MP4FileName
config-tag: VideoID
config-tier: Standard
config-top folder: VideoID
aws resource: bucket contents
aws service: S3
subclass of: DataProductImpl

VideoIngestBucket
type: Class
config-tag: MP4FileName
config-tag: VideoID
config-tier: Standard
config-top folder: VideoID
aws resource: bucket contents
aws service: S3
subclass of: DataProductImpl

Book
type: Class
has impl: BookTable
has impl: RecommendationGraph
usage pattern: getBestSellers
usage pattern: getBook
usage pattern: getRecommendation
usage pattern: listBooks
usage pattern: search
subclass of: DataProduct
has key: id

Order
type: Class
has impl: OrderTable
refers to: Ref
  type: NamedIndividual
  has neighbor: Book
usage pattern: checkout
usage pattern: listOrders
subclass of: DataProduct
has key: orderId

StoryResource
type: Class
federates: sparql
federates: query.wikidata.org
has impl: NeptuneImpl
has source: Source
  type: NamedIndividual
  has neighbor: StoryAnalysis
  integration type: S3Event
  source event type: S3PutObject
joins: Ref
  type: NamedIndividual
  has neighbor: StoryAnalysis
  has neighbor attribute: StoryTitle
subclass of: DataProduct

IMDBID
type: DatatypeProperty

StoryTitle
type: DatatypeProperty
domain includes: StoryAnalysis

IngestItem
type: Class
config-partition: VideoID
aws resource: table item
aws service: DynamoDB
joins: Ref
  type: NamedIndividual
  has neighbor: VideoIngestBucket
  has neighbor attribute: S3IngestLocation
subclass of: DataProductImpl

VideoCelebURI
type: DatatypeProperty

VideoID
type: DatatypeProperty

LakeStore
type: Class
config-folders: StagingIMDB (one folder per lake table)
config-object type: Parquet
config-tier: standard
aws resource: Bucket contents
aws service: S3
has source: Source
  type: NamedIndividual
  integration type: uploadS3
  source data set: IMDB
subclass of: DataProductImpl

ContributorDocument
type: Class
has impl: ContribDocImpl
has source: Source
  type: NamedIndividual
  has neighbor: ContributorLakeTable
  has neighbor: MovieLakeTable
  has neighbor: RoleLakeTable
  integration type: ETL
  source data set: IMDB
usage pattern: Filmography
usage pattern: Find by ID
usage pattern: List by criteria
subclass of: DataProduct
has key: ContribID

MovieDocument
type: Class
has impl: MovieDocImpl
has source: Source
  type: NamedIndividual
  has neighbor: ContributorLakeTable
  has neighbor: MovieLakeTable
  has neighbor: RoleLakeTable
  integration type: ETL
  source data set: IMDB
usage pattern: Cast
usage pattern: Epi of series
usage pattern: Find by ID
usage pattern: List by criteria
subclass of: DataProduct
has key: MovieID

MovieElasticacheRedisCache
type: Class
config-ttl: 60m
config-cache strategy: lazy
config-document: str JSON
config-key: PK
aws resource: Redis cache
aws service: Elasticache
has source: Source
  type: NamedIndividual
  has neighbor: ContributorLakeTable
  has neighbor: MovieLakeTable
  has neighbor: RoleLakeTable
  integration type: ETL
  source data set: IMDB
subclass of: DataProductImpl

RoleDocument
type: Class
has impl: RoleDocImpl
has source: Source
  type: NamedIndividual
  has neighbor: ContributorLakeTable
  has neighbor: MovieLakeTable
  has neighbor: RoleLakeTable
  integration type: ETL
  source data set: IMDB
joins: Ref
  type: NamedIndividual
  has neighbor: ContributorDocument
  has neighbor attribute: ContribID
joins: Ref
  type: NamedIndividual
  has neighbor: MovieDocument
  has neighbor attribute: MovieID
subclass of: DataProduct
has key: MovieID
has key: ContribID
has key: ContribClass

StoryAnalysis
type: Class
has impl: LAOrangeStoryBucket
has source: Source
  type: NamedIndividual
  integration type: uploadS3
  source data set: On-prem PDF story lib
subclass of: DataProduct
has key: StoryTitle

ContribID
type: DatatypeProperty
domain includes: ContributorDocument
domain includes: RoleDocument
sub property of: IMDBID

MovieID
type: DatatypeProperty
domain includes: MovieDocument
domain includes: RoleDocument
sub property of: IMDBID

VideoAnalysis
type: Class
has impl: AnalysisItem
has impl: IngestItem
has source: Source
  type: NamedIndividual
  integration type: uploadS3
  source data set: on prem MP4 lib
subclass of: DataProduct

NeptuneImpl
type: Class
aws resource: RDF graph database
aws service: Neptune
federates: sparql
federates: query.wikidata.org
subclass of: DataProductImpl

ContributorLakeTable
type: Class
has impl: ContribTable
has source: Source
  type: NamedIndividual
  integration type: uploadS3
  source data set: IMDB
subclass of: DataProduct

MovieLakeTable
type: Class
has impl: MovieTable
has source: Source
  type: NamedIndividual
  integration type: uploadS3
  source data set: IMDB
subclass of: DataProduct

RoleLakeTable
type: Class
has impl: RoleTable
has source: Source
  type: NamedIndividual
  integration type: uploadS3
  source data set: IMDB
subclass of: DataProduct