Skip to content
Mikey edited this page Nov 1, 2017 · 18 revisions

Agent

  • profile
  • credentials
  • relationships
  • relationshipTypes

AgentProfile

  • name
  • description
  • avatar (image)
  • banner (image)
  • ?contact info (json)
    • emails (home, work, etc)
    • phone number (home, work, etc)

specific to Person profile: contact information specific to Group profile: banner

references: https://schema.org/Person, https://schema.org/Organization

AgentCredential

AgentRelationship

  • relationshipType
  • source
  • target

AgentRelationshipType

  • name
  • description

Resource

  • location (or maybe instead we model "changes of location" once a resource is created)
  • name
  • description
  • image
  • resourceType
  • quantity

ResourceType

  • name
  • description
  • image

later:

  • items (json array)
    • resourceType
    • quantity

example: a carton of 12 eggs

Quantity

reference: http://www.qudt.org/

  • value
  • unit (each, kg, ...)

Offering

  • resourceType
  • priceSpecifications

Product

  • resourceType (via resourceTypeId)
  • priceSpecs (via foreign productId)

PriceSpec

  • productId
  • minimum
  • price
  • currency

Order

  • supplierAgentId
  • consumerAgentId
  • adminAgentId

OrderIntent

unique per order, agent, product, priceSpec

An individual's desired order

  • orderId
  • agentId
  • productId
  • priceSpecId
  • desiredQuantity
  • minimumQuantity
  • maximumQuantity

OrderPlan

unique per order, agent, product, priceSpec

Like an invoice - the order that's going to be executed and sent to the supplier

  • orderId
  • agentId
  • productId
  • priceSpecId
  • quantity

Task

TaskRecipe

  • name
  • description
  • ownerAgentId
  • childTaskRecipes

TaskPlan

  • taskRecipeId
  • parentTaskPlanId
  • assignee (person or group or related agents (e.g. admins) being assigned)
  • ? contextAgentId (group the task is within)
  • ? due date (or range)

TaskWork

  • taskRecipeId
  • taskPlanId (optional)
  • parentTaskWorkId
  • workerAgentId
  • ? done date (or range)