Query and Filter Naming
Introduction
Although queries and query filters are not specified in the RDF core, this set of guidelines should be used, to facilitate standard api naming. It is possible that at some point they will be included in the formal VF namespace.
This document is not meant to imply that all of these named queries and filters should be implemented in any particular application api.
Note: Filters can be applicable to any query that can return more than one of the class. For example all processes, processes in scope of an agent, processes in a plan, could each use the process filters.
Status: Not all of these queries and filters are tested, and there will certainly be other useful queries and filters. If anyone has recommended changes or additions, please start an issue or merge request, or just let us know in the Welcome chat (links on the home page).
Observation layer
Agent (also subclasses Person, Organization)
main queries:
- agent
- agents
- myAgent
- person
- people
- organization
- organizations
filters: classifiedAs (Organizations only), withinLocation (some geographic boundary, city, region, etc.)
inverse queries:
- processes (Process.inScopeOf)
- inventoriedEconomicResources (EconomicResource.primaryAccountable)
- commitmentsAsProvider (Commitment.provider)
- commitmentsAsReceiver (Commitment.receiver)
- commitmentsInScope (Commitment.inScopeOf)
- economicEventsAsProvider (EconomicEvent.provider)
- economicEventsAsReceiver (EconomicEvent.receiver)
- economicEventsInScope (EconomicEvent.inScopeOf)
- intentsAsProvider (Intent.provider)
- intentsAsReceiver (Intent.receiver)
- intentsInScope (Intent.inScopeOf)
- claimsAsProvider (Claim.provider)
- claimsAsReceiver (Claim.receiver)
- claimsInScope (Claim.inScopeOf)
- proposalsInScope (Proposal.inScopeOf)
- scenariosInScope (Scenario.inScopeOf)
- relationshipsAsSubject (Relationship.subject)
- relationshipsAsObject (Relationship.object)
other queries:
- plans (if there is any Process.inScopeOf in the Plan)
- economicEvents (EconomicEvent.provider or .receiver or .inScopeOf)
- commitments (Commitment.provider or .receiver or .inScopeOf)
- intents (Intent.provider or .receiver or .inScopeOf)
- claims (Claim.provider or .receiver or .inScopeOf)
- proposals (Proposal.inScopeOf, or a related Intent.provider or Intent.receiver)
- proposalsTo (Proposals.proposed where ProposedTo.proposedTo is the Agent)
- relationships (Relationship.object or .subject or .inScopeOf)
- roles (AgentRelationshipRoles that are AgentRelationship.relationship where the .subject or .object or .inScopeOf is the Agent)
AgentRelationship
main queries:
- agentRelationship
- agentRelationships
filters: subject, object, role, inScopeOf
Process
main queries:
- process
- processes
filters: searchString, finished, classifiedAs, inScopeOf, startDate, endDate (include any process that overlaps the start date to end date range inclusive; missing start date is from the beginning, missing end date is to the end)
inverse queries:
- observedInputs (EconomicEvent.inputOf)
- observedOutputs (EconomicEvent.outputOf)
- committedInputs (Commitment.inputOf)
- committedOutputs (Commitment.outputOf)
- intendedInputs (Intent.inputOf)
- intendedOutputs (Intent.outputOf)
other queries:
- economicEvents (EconomicEvent.inputOf or .outputOf)
- commitments (Commitment.inputOf or .outputOf)
- intents (Intent.inputOf or .outputOf)
- inputs (EconomicEvent or Commitment or Intent .inputOf)
- outputs (EconomicEvent or Commitment or Intent .outputOf)
- unplannedEconomicEvents (any EconomicEvent.inputOf or .outputOf that don't fulfill a Commitment)
- unplannedInputs (any EconomicEvent.inputOf that doesn't fulfill a Commitment)
- unplannedOutputs (any EconomicEvent.outputOf that doesn't fulfill a Commitment)
- involvedAgents (any .provider or .receivers or .inScopeOf on Commitments or EconomicEvents or Intents, and self.inScopeOf)
- workingAgents (any EconomicEvent.provider on an input EconomicEvent with action equal to work)
- nextProcesses (Processes where .inputOf references the same .resourceInventoriedAs as self.outputOf references)
- previousProcesses (Processes where .outputOf references the same .resourceInventoriedAs as self.inputOf references)
- previous (EconomicEvent.inputOf, same as observedInputs)
- next (EconomicEvent.outputOf, same as observedOutputs)
EconomicEvent
main queries:
- economicEvent
- economicEvents
filters: searchString, action, provider, receiver, resourceClassifiedAs, startDate, endDate (include any EconomicEvent that overlaps the start date to end date range inclusive; missing start date is from the beginning, missing end date is to the end)
inverse queries:
- settles (Settlement.settledBy)
- fulfills (Fulfillment.fulfilledBy)
- satisfies (Satisfaction.satisfiedBy)
- appreciationOf (Appreciation.appreciationWith)
- appreciationWith (Appreciation.appreciationOf)
- triggers (EconomicEvent.triggeredBy)
other queries:
- reciprocalEvents (EconomicEvents.realizationOf the same Agreement with opposite provider, receiver)
- previous (Process, EconomicEvent, EconomicResource, see Track and Trace for logic)
- next (Process, EconomicEvent, EconomicResource, see Track and Trace for logic)
- trace (ordered incoming value flows, see Track and Trace for logic)
- track (ordered outgoing value flows, see Track and Trace for logic)
EconomicResource
main queries:
- economicResource
- economicResources
filters: searchString, accountableAgent, currentLocation, withinLocation (some geographic boundary, city, region, etc.), excludeZeroQuantities (boolean), classifiedAs, state, trackingIdentifier
inverse queries:
- contains (EconomicResource.containedIn)
- intents (Intent.resourceInventoriedAs)
- commitments (Commitment.resourceInventoriedAs)
- economicEventsInOutFrom (All economic events with the economic resource in the EconomicEvent.resourceInventoriedAs, which includes all process related events, the provider resource in transfers/moves, and raise/lower)
- economicEventsTo (All economic events with the economic Resource in the EconomicEvent.toResourceInventoriedAs, which is the receiver resource in transfers and moves)
other queries:
- economicEvents (either EconomicEvent.resourceInventoriedAs or .toResourceInventoriedAs)
- previous (EconomicEvent, see Track and Trace for logic)
- next (EconomicEvent, see Track and Trace for logic)
- trace (ordered incoming value flows, see Track and Trace for logic)
- track (ordered outgoing value flows, see Track and Trace for logic)
Fulfillment
main queries:
- fulfillment
- fulfillments
Appreciation
main queries:
- appreciation
- appreciations
Plan layer
Proposal
main queries:
- proposal
- proposals
- offers (Proposals where a .publishedIn ProposedIntent.reciprocal is false and the ProposedIntent.publishes Intent has a .provider)
- requests (Proposals where a .publishedIn ProposedIntent.reciprocal is false and the ProposedIntent.publishes Intent has a .receiver)
filters: inScopeOf, withinLocation (the proposed intents are withinLocation), active (boolean, the current date is within the hasBeginning and hasEnd, inclusive), isOffer (boolean, the non-reciprocal intents have provider), isRequest (boolean, the non-reciprocal intents have receiver)
inverse queries:
- publishes (ProposedIntent.publishedIn)
- proposedTo (ProposedTo.proposed)
other queries:
- isOffer (boolean, true if a .publishedIn ProposedIntent.reciprocal is false and the ProposedIntent.publishes Intent has a .provider)
- isRequest (boolean, true if a .publishedIn ProposedIntent.reciprocal is false and the ProposedIntent.publishes Intent has a .receiver)
- primaryIntents (.publishes Intents where the self.publishedIn ProposedIntent.reciprocal is false)
- reciprocalIntents (.publishes Intents where the self.publishedIn ProposedIntent.reciprocal is true)
Intent
main queries:
- intent
- intents
filters: searchString, action, provider, receiver, resourceClassifiedAs, resourceConformsTo, finished, startDate, endDate, inScopeOf, withinLocation (some geographic boundary, city, region, etc.)
inverse queries:
- publishedIn (ProposedIntent.publishes)
- satisfiedBy (Satisfaction.satisfies)
- (probably some location based queries, TBD)
ProposedIntent
filters: reciprocal
main queries:
- proposedIntent
- proposedIntents
Agreement
main queries:
- agreement
- agreements
inverse queries:
- commitments (Commitment.clauseOf)
- unplannedEconomicEvents (EconomicEvent.realizationOf)
other queries:
- involvedAgents (any .provider, .receiver, .inScopeOf on commitments or economicEvents)
- economicEvents (EconomicEvent.realizationOf, and any EconomicEvents that fulfill Commitments that are .clauseOf the Agreement)
Commitment
main queries:
- commitment
- commitments
filters: searchString, action, provider, receiver, resourceClassifiedAs, resourceConformsTo, finished, startDate, endDate (include any Commitment that overlaps the start date to end date range inclusive; missing start date is from the beginning, missing end date is to the end), withinLocation (some geographic boundary, city, region, etc.)
inverse queries:
- fulfilledBy: (Fulfillment.fulfills)
- satisfies (Satisfaction.satisfiedBy)
other queries:
- involvedAgents (Commitment.provider, .receiver, .inScopeOf if agent)
- (possibly some location based queries, TBD)
Satisfaction
main queries:
- satisfaction
- satisfactions
Claim
main queries:
- claim
- claims
filters: action, provider, receiver, resourceClassifiedAs, resourceConformsTo, finished, startDate, endDate (include any Claim where due overlaps the start date to end date range inclusive; missing start date is from the beginning, missing end date is to the end)
inverse queries:
- settledBy (Settlement.settles)
Settlement
main queries:
- settlement
- settlements
Plan
main queries:
- plan
- plans
filters: searchString, finished (true means all the processes that are part of the Plan are finished), TBD possibly some date related logic
inverse queries:
- processes (Process.plannedWithin)
- nonProcessCommitments (Commitment.plannedWithin)
- independentDemands (Commitment.independentDemandOf)
other queries:
- inScopeOf (all the .plannedWithin Process.inScopeOf)
- involvedAgents (all the .plannedWithin Process.involvedAgents)
- startDate (earliest .plannedWithin Process.hasBeginning)
- endDate (latest .plannedWithin Process.hasEnd)
- finished (all the .plannedWithin Process.finished are true)
Scenario
main queries:
- scenario
- scenarios
filters: searchString, (TBD date logic)
inverse queries:
- plans (Plan.refinementOf)
- refinements (Scenario.refinementOf))
- processes (Process.nestedIn)
- startDate TBD
- endDate TBD
Knowledge layer
ResourceSpecification
main queries:
- resourceSpecification
- resourceSpecifications
filters: searchString, resourceClassifiedAs
inverse queries:
- conformingResources (EconomicResource.conformsTo)
- economicEvents (EconomicEvent.resourceConformsTo)
- commitments (Commitment.resourceConformsTo)
- intents (Intent.resourceConformsTo)
- claims (Claim.resourceConformsTo)
- recipes TBD
ProcessSpecification
main queries:
- processSpecification
- processSpecifications
inverse queries:
- conformingProcesses (Process.basedOn)
- conformingRecipeProcesses (RecipeProcess.processConformsTo)
- commitmentsRequiringStage (Commitment.stage)
- resourcesCurrentlyAtStage (EconomicResource.stage)
- recipeFlowsRequiringStage (RecipeFlow.stage)
RecipeResource
main queries:
- recipeResource
- recipeResources
TBD
RecipeFlow
main queries:
- recipeFlow
- reciprFlows
TBD
RecipeExchange
main queries:
- recipeExchange
- recipeExchanges
TBD
RecipeProcess
main queries:
- recipeProcess
- recipeProcesses
TBD
ScenarioDefinition
main queries:
- scenarioDefinition
- scenarioDefinitions
inverse queries:
- scenarios (Scenario.definedAs)
Action
main queries:
- action
- actions
AgentRelationshipRole
main queries:
- agentRelationshipRole
- agentRelationshipRoles
inverse queries:
- agentRelationships (AgentRelationship.relationship)
RoleBehavior
main queries:
- roleBehavior
- roleBehaviors
inverse Queries:
- agentRelationshipRoles (agentRelationshipRole.roleBehavior)