brando:Policy
Governance node encoding guard rails, refusals, compliance tags, and retrieval visibility.
rdfs:comment
Governance node encoding guard rails, refusals, compliance tags, and retrieval visibility.
Term definition
- IRI:
brando:Policy - Type:
owl:Class - Superclass:
schema:Intangible - Defined in:
brando:(Brando Schema Vocabulary v1.3)
brando:Policy is the core governance type in Brando. It represents a machine-readable policy object that AI runtimes and Brand OS components can:
- load,
- apply,
- and log against,
for a given brand, context, product, or category.
Typical policies cover:
- brand safety and tone control,
- regulatory constraints,
- refusal behaviour,
- retrieval/visibility rules for AI systems.
Intended usage
Use brando:Policy whenever you need a governed, inspectable rule set that constrains brand behaviour in AI systems.
Common patterns:
- Brand-level “global” policies
- e.g. generic brand safety, tone rules, and prohibited terms.
- Context-level policies
- e.g. support chatbot policies, investor relations policies, region-specific restrictions.
- Product- or category-specific policies
- e.g. rules for high-risk product lines, GTIN-specific constraints.
In a typical flow:
- Your runtime resolves a
brando:Brandandbrando:Context. - It collects all
brando:Policyinstances linked viabrando:hasPolicyand/orbrando:appliesTo*. - It uses policy properties (e.g.
brando:guardRails,brando:mustNotDos,brando:refusalStrategies,brando:enforcementLevel) to:- construct prompts,
- enforce pre/post constraints,
- drive reporting and audit.
Relationships
Inbound
Policies are usually reached from:
brando:hasPolicy- Domain:
brando:Brand,brando:Context - Range:
brando:Policy - Comment (summary): Attaches governance, safety, and compliance policies to a brand or context.
Example:
{
"@id": "https://example.com/brand/northstar",
"@type": "brando:Brand",
"schema:name": "Northstar Bank",
"brando:hasPolicy": [
{ "@id": "https://example.com/brand/northstar/policies/global-brand-safety" },
{ "@id": "https://example.com/brand/northstar/policies/regulated-claims-uk" }
]
}
Policies can also be scoped via product- and GTIN-level links:
brando:appliesToProduct(range:gs1:Product)brando:appliesToGTIN(range:xsd:string)
These are properties whose domain includes brando:Policy, allowing fine-grained scoping.
Key properties (domain includes brando:Policy)
The following properties have brando:Policy in their rdfs:domain. Several are also used on other classes (e.g. brando:Context, brando:AutomationRule); here they are described specifically from the policy perspective.
1. Scope and applicability
| Property IRI | Range | Type | Comment (from vocab, summarised) |
|---|---|---|---|
brando:appliesTo |
xsd:string |
owl:DatatypeProperty |
Optional scoping for which products, categories, personas, or channels this policy applies to. |
brando:appliesToGTIN |
xsd:string |
owl:DatatypeProperty |
GTIN(s) for which this branded category or policy is applicable. |
brando:appliesToProduct |
gs1:Product |
owl:ObjectProperty |
Links a branded category or policy to one or more GS1 Product nodes. |
brando:effectiveDuring |
xsd:string |
owl:DatatypeProperty |
Time window or schedule when this context, campaign, or policy is active, expressed as structured JSON. |
Usage notes (non-normative):
-
brando:appliesTois deliberately free-form (string). You can encode:- simple labels:
"paid social; EMEA", - or structured JSON as a string:
{"personas":["Everyday saver"],"channels":["chatbot"]}.
- simple labels:
-
brando:appliesToGTINis useful for granular, product-level constraints in commerce use cases. brando:effectiveDuringis intended for JSON-as-string, e.g.:
```json { "validFrom": "2025-01-01", "validThrough": "2025-12-31" }
```
2. Guard rails, refusals, and risk
| Property IRI | Range | Type | Comment (from vocab, summarised) |
|---|---|---|---|
brando:guardRails |
xsd:string |
owl:DatatypeProperty |
Non-negotiable boundaries that AI systems must not cross. |
brando:refusalStrategies |
xsd:string |
owl:DatatypeProperty |
Preferred patterns for declining or redirecting unsafe or out-of-scope requests. |
brando:riskScenarios |
xsd:string |
owl:DatatypeProperty |
Known edge cases and misuse patterns requiring caution or escalation. |
brando:complianceTags |
xsd:string |
owl:DatatypeProperty |
Regulatory or legal tags such as “GDPR”, “HIPAA”, or “FCA”. |
brando:riskTag |
xsd:string |
owl:DatatypeProperty |
Lightweight tags describing primary risk domains (e.g. brand-safety) for querying, reporting, and dashboards. |
Usage notes (non-normative):
-
Treat
guardRails,refusalStrategies, andriskScenariosas lists of strings (one per bullet), either:- modelled as a JSON array string, or
- represented as repeated property values in JSON-LD.
-
Use
complianceTagsandriskTagas query-friendly labels to filter and report policies.
Example pattern:
{
"@id": "https://example.com/brand/northstar/policies/regulated-claims-uk",
"@type": "brando:Policy",
"brando:guardRails": [
"Do not imply guaranteed returns.",
"Do not provide personalised investment advice."
],
"brando:refusalStrategies": [
"Politely explain that you cannot provide personalised investment advice.",
"Offer to connect the user with a human advisor."
],
"brando:riskScenarios": [
"User asks if a specific product is 'risk-free'.",
"User requests a guaranteed level of return."
],
"brando:complianceTags": [
"FCA",
"UK-financial-promotions"
],
"brando:riskTag": [
"financial-regulation",
"consumer-protection"
]
}
3. Enforcement, visibility, and retrieval
| Property IRI | Range | Type | Comment (from vocab, summarised) |
|---|---|---|---|
brando:enforcementLevel |
xsd:string |
owl:DatatypeProperty |
Indicates how strongly a policy or automation rule must be applied (suggested values include “mandatory”, “advisory”, “conditional”). |
brando:priority |
xsd:string |
owl:DatatypeProperty |
Governance precedence for this policy when multiple rules could apply. |
brando:visibilityRating |
xsd:string |
owl:DatatypeProperty |
Qualitative indicator of how easily this policy should be discoverable by AI systems. |
brando:retrievableInLLM |
xsd:boolean |
owl:DatatypeProperty |
Boolean flag indicating whether this policy may be indexed or retrieved by language models. |
brando:embeddingQuality |
xsd:string |
owl:DatatypeProperty |
Qualitative or scored assessment of how well this content performs in vector search or RAG. |
Usage notes (non-normative):
-
enforcementLevelis shared withbrando:AutomationRule. Common string values (not enforced by the vocab) include:"mandatory","advisory","conditional".
-
prioritycan be:- ordinal (e.g.
"1-high","2-medium","3-low"), or - descriptive (e.g.
"portfolio-level","brand-level","context-level").
- ordinal (e.g.
-
Use
visibilityRating,retrievableInLLM, andembeddingQualityto tune how and where policies appear in:- RAG results,
- AI-readable policy searches,
- agentic tooling.
Example:
{
"@id": "https://example.com/brand/northstar/policies/global-brand-safety",
"@type": "brando:Policy",
"brando:enforcementLevel": "mandatory",
"brando:priority": "1-high",
"brando:visibilityRating": "high",
"brando:retrievableInLLM": true,
"brando:embeddingQuality": "good"
}
4. Lifecycle and process
| Property IRI | Range | Type | Comment (from vocab, summarised) |
|---|---|---|---|
brando:reviewWorkflow |
xsd:string |
owl:DatatypeProperty |
Description of human and/or automated steps for reviewing content and policy changes. |
brando:updatePolicy |
xsd:string |
owl:DatatypeProperty |
Rules for how often, by whom, and under what process policies are updated. |
Usage notes (non-normative):
- These properties describe the governance process – they don’t implement it.
- Combine them with temporal properties in instance data (
dcterms:created,dcterms:modified) for full lifecycle tracking.
Example:
{
"@id": "https://example.com/brand/northstar/policies/regulated-claims-uk",
"@type": "brando:Policy",
"brando:reviewWorkflow": "Compliance team reviews changes weekly. Any exceptions must be approved by legal.",
"brando:updatePolicy": "Review at least quarterly or when regulations change."
}
5. Files and integrations
These properties are shared across several Brando types but are frequently used on policies:
| Property IRI | Range | Type | Comment (from vocab, summarised) |
|---|---|---|---|
brando:downloadableFile |
schema:MediaObject |
owl:ObjectProperty |
Links a brand, token, context, campaign, policy, or category to the most up-to-date creative or reference files exposed by the Brand OS or DAM. |
brando:supportingFile |
schema:MediaObject |
owl:ObjectProperty |
Links a node to additional files that are helpful for production but are not the primary source-of-truth asset. |
brando:externalSystem |
schema:SoftwareApplication |
owl:ObjectProperty |
Links a brand, context, policy, campaign, or automation rule to a software application that represents an integration target. |
brando:externalSystemId |
xsd:string |
owl:DatatypeProperty |
Identifier for the corresponding object in an external system such as Adobe GenStudio, Meta Ads Manager, Figma, or internal CMSs. |
Usage notes (non-normative):
-
For policy nodes:
downloadableFilemight point to full legal policy PDFs or structured policy docs.supportingFilemight point to training decks, explainer docs, or example cases.
-
externalSystem+externalSystemIdcan be used to:- map a policy to a specific enforcement configuration in another platform,
- or drive sync jobs between the Brand Knowledge Graph and external governance tools.
Example:
{
"@id": "https://example.com/brand/northstar/policies/regulated-claims-uk",
"@type": "brando:Policy",
"brando:downloadableFile": {
"@id": "https://assets.example.com/northstar/policies/regulated-claims-uk.pdf",
"@type": "schema:MediaObject",
"schema:name": "Regulated Claims Policy – UK (PDF)"
},
"brando:externalSystem": {
"@id": "https://example.com/integrations/policy-engine"
},
"brando:externalSystemId": "northstar_regclaims_uk_v2"
}
Example: Brand + Context + Policies
A combined example showing how brando:Policy is used with brando:Brand and brando:Context:
{
"@context": {
"schema": "https://schema.org/",
"brando": "https://brandoschema.com/",
"gs1": "https://ref.gs1.org/voc/"
},
"@graph": [
{
"@id": "https://example.com/brand/northstar",
"@type": "brando:Brand",
"schema:name": "Northstar Bank",
"brando:hasContext": {
"@id": "https://example.com/brand/northstar/context/retail-chatbot"
},
"brando:hasPolicy": {
"@id": "https://example.com/brand/northstar/policies/global-brand-safety"
}
},
{
"@id": "https://example.com/brand/northstar/context/retail-chatbot",
"@type": "brando:Context",
"brando:audienceSegment": "Retail banking customers",
"brando:domainContext": {
"channel": "chatbot",
"surface": "public-website",
"region": "UK"
},
"brando:hasPolicy": {
"@id": "https://example.com/brand/northstar/policies/regulated-claims-uk"
}
},
{
"@id": "https://example.com/brand/northstar/policies/global-brand-safety",
"@type": "brando:Policy",
"brando:enforcementLevel": "mandatory",
"brando:priority": "1-high",
"brando:guardRails": [
"Do not output hate speech, harassment, or discriminatory language.",
"Do not claim features or capabilities the brand does not provide."
],
"brando:riskTag": [
"brand-safety",
"tone-of-voice"
],
"brando:retrievableInLLM": true
},
{
"@id": "https://example.com/brand/northstar/policies/regulated-claims-uk",
"@type": "brando:Policy",
"brando:enforcementLevel": "mandatory",
"brando:appliesTo": "Retail banking products in the UK",
"brando:appliesToGTIN": "12345678901234",
"brando:appliesToProduct": {
"@id": "https://example.com/gs1/product/12345678901234",
"@type": "gs1:Product"
},
"brando:guardRails": [
"Do not promise guaranteed investment returns.",
"Do not position speculative products as suitable for all customers."
],
"brando:refusalStrategies": [
"Explain that you cannot provide personalised investment advice.",
"Encourage the user to speak to a regulated advisor."
],
"brando:complianceTags": [
"FCA",
"UK-financial-promotions"
],
"brando:riskTag": [
"financial-regulation",
"consumer-protection"
],
"brando:reviewWorkflow": "Compliance reviews this policy monthly and after any regulatory change.",
"brando:updatePolicy": "Update within 30 days of new FCA guidance affecting retail financial promotions.",
"brando:retrievableInLLM": true
}
]
}
Runtime pattern (non-normative):
- Resolve the current
brando:Brandandbrando:Context. -
Collect:
- global policies attached to the brand,
- context-specific policies (e.g.
regulated-claims-uk), - product-level policies via
appliesToProduct/appliesToGTIN, if a product is in scope.
-
Merge policy fields (
guardRails,mustNotDos,refusalStrategies, etc.) according to:enforcementLevel,priority,- your own precedence rules.
-
Use this merged configuration to:
- build prompts,
- enforce pre/post checks,
- log which policies were in effect for each interaction.
Related documentation
-
Concepts / overview
-
Related types
-
Properties index