FlureeLabs

Fluree System Vocabulary Reference

All Fluree system vocabulary lives under a single canonical namespace:

https://ns.flur.ee/db#

Users declare a prefix in their JSON-LD @context to use compact forms:

{ "@context": { "f": "https://ns.flur.ee/db#" } }

Any prefix works (f:, db:, fluree:, etc.) as long as it expands to the canonical IRI. Internally, Fluree always compares on fully expanded IRIs.

The @vector and @fulltext shorthands are exceptions: they are JSON-LD convenience aliases that resolve to f:embeddingVector and f:fullText respectively without requiring a prefix declaration.

Source of truth: All constants are defined in the fluree-vocab crate. This document is the user-facing reference.


Commit metadata predicates

These predicates appear on commit subjects in the txn-meta graph. Each commit produces 7-10 flakes describing the commit.

PredicateFull IRIDatatypeDescription
f:addresshttps://ns.flur.ee/db#addressxsd:stringCommit ContentId (CID string)
f:aliashttps://ns.flur.ee/db#aliasxsd:stringLedger ID (e.g. mydb:main)
f:vhttps://ns.flur.ee/db#vxsd:intCommit format version
f:timehttps://ns.flur.ee/db#timexsd:longCommit timestamp (epoch milliseconds)
f:thttps://ns.flur.ee/db#txsd:intTransaction number (watermark)
f:sizehttps://ns.flur.ee/db#sizexsd:longCumulative data size in bytes
f:flakeshttps://ns.flur.ee/db#flakesxsd:longCumulative flake count
f:previoushttps://ns.flur.ee/db#previous@id (ref)Reference to previous commit (optional)
f:identityhttps://ns.flur.ee/db#identityxsd:stringAuthenticated identity acting on the transaction (system-controlled — verified DID for signed requests, otherwise opts.identity / CommitOpts.identity).
f:authorhttps://ns.flur.ee/db#authorxsd:stringAuthor claim — user-supplied via f:author in the transaction body (optional). Distinct from f:identity.
f:txnhttps://ns.flur.ee/db#txnxsd:stringTransaction ContentId (CID string, optional)
f:messagehttps://ns.flur.ee/db#messagexsd:stringCommit message — user-supplied via f:message in the transaction body (optional).
f:assertshttps://ns.flur.ee/db#assertsxsd:longAssertion count in this commit
f:retractshttps://ns.flur.ee/db#retractsxsd:longRetraction count in this commit

Querying commit metadata

Commit metadata lives in the #txn-meta named graph within each ledger. To query it:

{
  "@context": { "f": "https://ns.flur.ee/db#" },
  "select": ["?t", "?time", "?author"],
  "where": {
    "@graph": "mydb:main#txn-meta",
    "f:t": "?t",
    "f:time": "?time",
    "f:author": "?author"
  }
}

Commit subject identifiers

Commit subjects use the scheme fluree:commit:<content-id> (e.g. fluree:commit:bafybeig...). This is a subject identifier scheme, not part of the db# predicate vocabulary.


Datalog rules

PredicateFull IRIDescription
f:rulehttps://ns.flur.ee/db#ruleDatalog rule definition predicate

Vector datatype

TermIRIDescription
f:embeddingVectorhttps://ns.flur.ee/db#embeddingVectorf32-precision embedding vector datatype
@vector(shorthand)JSON-LD alias that resolves to f:embeddingVector

Example usage in a transaction:

{
  "@context": { "f": "https://ns.flur.ee/db#", "ex": "http://example.org/" },
  "insert": {
    "@id": "ex:doc1",
    "ex:embedding": { "@value": [0.1, 0.2, 0.3], "@type": "f:embeddingVector" }
  }
}

Or with the @vector shorthand:

{
  "insert": {
    "@id": "ex:doc1",
    "ex:embedding": { "@value": [0.1, 0.2, 0.3], "@type": "@vector" }
  }
}

Fulltext datatype

TermIRIDescription
f:fullTexthttps://ns.flur.ee/db#fullTextInline full-text search datatype
@fulltext(shorthand)JSON-LD alias that resolves to f:fullText

Example usage in a transaction:

{
  "@context": { "f": "https://ns.flur.ee/db#", "ex": "http://example.org/" },
  "insert": {
    "@id": "ex:article-1",
    "ex:content": { "@value": "Rust is a systems programming language", "@type": "f:fullText" }
  }
}

Or with the @fulltext shorthand:

{
  "insert": {
    "@id": "ex:article-1",
    "ex:content": { "@value": "Rust is a systems programming language", "@type": "@fulltext" }
  }
}

Values annotated with @fulltext are analyzed (tokenized, stemmed) and indexed into per-predicate fulltext arenas during background index builds. Query with the fulltext() function in bind expressions for BM25 relevance scoring.

See Inline Fulltext Search for details.

Fulltext configuration predicates

These predicates live in the ledger's #config named graph and declare which properties to full-text index (no per-value @fulltext annotation needed). See Configured full-text properties for the end-user guide and Setting groups for the full schema reference.

TermIRIDescription
f:fullTextDefaultshttps://ns.flur.ee/db#fullTextDefaultsSetting group on f:LedgerConfig / f:GraphConfig
f:FullTextDefaultshttps://ns.flur.ee/db#FullTextDefaultsClass (type) of the setting-group node
f:defaultLanguagehttps://ns.flur.ee/db#defaultLanguageBCP-47 tag used for untagged plain strings on configured properties
f:propertyhttps://ns.flur.ee/db#propertyOne entry per full-text-indexed property (cardinality 0..n)
f:FullTextPropertyhttps://ns.flur.ee/db#FullTextPropertyClass of each f:property entry
f:targethttps://ns.flur.ee/db#targetIRI of the property being indexed (on f:FullTextProperty)

Search query vocabulary

These predicates are used in WHERE clause patterns for BM25 and vector search. Users write compact forms like "f:searchText" (with "f" in their @context) or full IRIs.

BM25 search

PredicateFull IRIRequiredDescription
f:graphSourcehttps://ns.flur.ee/db#graphSourceYesGraph source ID (name:branch, e.g. "my-search:main")
f:searchTexthttps://ns.flur.ee/db#searchTextYesSearch query text (string or variable)
f:searchResulthttps://ns.flur.ee/db#searchResultYesResult binding (variable or nested object)
f:searchLimithttps://ns.flur.ee/db#searchLimitNoMaximum results
f:syncBeforeQueryhttps://ns.flur.ee/db#syncBeforeQueryNoWait for index sync before querying (boolean)
f:timeoutMshttps://ns.flur.ee/db#timeoutMsNoQuery timeout in milliseconds

Vector search

PredicateFull IRIRequiredDescription
f:graphSourcehttps://ns.flur.ee/db#graphSourceYesGraph source ID (name:branch)
f:queryVectorhttps://ns.flur.ee/db#queryVectorYesQuery vector (array of numbers or variable)
f:searchResulthttps://ns.flur.ee/db#searchResultYesResult binding
f:distanceMetrichttps://ns.flur.ee/db#distanceMetricNoDistance metric: "cosine", "dot", "euclidean" (default: "cosine")
f:searchLimithttps://ns.flur.ee/db#searchLimitNoMaximum results
f:syncBeforeQueryhttps://ns.flur.ee/db#syncBeforeQueryNoWait for index sync (boolean)
f:timeoutMshttps://ns.flur.ee/db#timeoutMsNoQuery timeout in milliseconds

Nested result objects

Both BM25 and vector search support nested result bindings:

PredicateFull IRIDescription
f:resultIdhttps://ns.flur.ee/db#resultIdDocument/subject ID binding
f:resultScorehttps://ns.flur.ee/db#resultScoreSearch score binding
f:resultLedgerhttps://ns.flur.ee/db#resultLedgerSource ledger ID (multi-ledger disambiguation)

Example BM25 search with nested result:

{
  "@context": { "f": "https://ns.flur.ee/db#" },
  "select": ["?doc", "?score"],
  "where": {
    "f:graphSource": "my-search:main",
    "f:searchText": "software engineer",
    "f:searchLimit": 10,
    "f:searchResult": {
      "f:resultId": "?doc",
      "f:resultScore": "?score"
    }
  }
}

Nameservice record vocabulary

Ledger record fields

These predicates appear on ledger nameservice records (the metadata Fluree stores about each ledger).

PredicateFull IRIDescription
f:ledgerhttps://ns.flur.ee/db#ledgerLedger name/identifier
f:branchhttps://ns.flur.ee/db#branchBranch name (e.g. main)
f:thttps://ns.flur.ee/db#tCurrent transaction watermark
f:ledgerCommithttps://ns.flur.ee/db#ledgerCommitPointer to latest commit ContentId
f:ledgerIndexhttps://ns.flur.ee/db#ledgerIndexPointer to latest index root
f:statushttps://ns.flur.ee/db#statusRecord status (ready, etc.)
f:defaultContextCidhttps://ns.flur.ee/db#defaultContextCidDefault JSON-LD context ContentId

Graph source record fields

PredicateFull IRIDescription
f:namehttps://ns.flur.ee/db#nameGraph source base name
f:branchhttps://ns.flur.ee/db#branchBranch
f:statushttps://ns.flur.ee/db#statusStatus
f:graphSourceConfighttps://ns.flur.ee/db#graphSourceConfigConfiguration JSON
f:graphSourceDependencieshttps://ns.flur.ee/db#graphSourceDependenciesDependent ledger IDs
f:graphSourceIndexhttps://ns.flur.ee/db#graphSourceIndexIndex ContentId reference
f:graphSourceIndexThttps://ns.flur.ee/db#graphSourceIndexTIndex watermark (commit t)
f:graphSourceIndexAddresshttps://ns.flur.ee/db#graphSourceIndexAddressIndex ContentId (string form)

Record type taxonomy

Nameservice records use @type to classify what kind of graph source a record represents.

Required kind types (exactly one per record):

TypeFull IRIDescription
f:LedgerSourcehttps://ns.flur.ee/db#LedgerSourceLedger-backed knowledge graph
f:IndexSourcehttps://ns.flur.ee/db#IndexSourceIndex-backed graph source (BM25/HNSW/GEO)
f:MappedSourcehttps://ns.flur.ee/db#MappedSourceMapped database (Iceberg, R2RML)

Optional subtype @type values (further classify the record):

TypeFull IRIDescription
f:Bm25Indexhttps://ns.flur.ee/db#Bm25IndexBM25 full-text search index
f:HnswIndexhttps://ns.flur.ee/db#HnswIndexHNSW vector similarity search index
f:GeoIndexhttps://ns.flur.ee/db#GeoIndexGeospatial index
f:IcebergMappinghttps://ns.flur.ee/db#IcebergMappingIceberg-mapped database
f:R2rmlMappinghttps://ns.flur.ee/db#R2rmlMappingR2RML relational mapping

Policy vocabulary

These predicates are used to define access control policies.

PredicateFull IRIDescription
f:policyClasshttps://ns.flur.ee/db#policyClassMarks a class as policy-governed
f:allowhttps://ns.flur.ee/db#allowAllow/deny flag on a policy rule
f:actionhttps://ns.flur.ee/db#actionAction this rule governs (view or modify)
f:viewhttps://ns.flur.ee/db#viewView action IRI
f:modifyhttps://ns.flur.ee/db#modifyModify action IRI
f:onPropertyhttps://ns.flur.ee/db#onPropertyProperty-level policy targeting
f:onSubjecthttps://ns.flur.ee/db#onSubjectSubject-level policy targeting
f:onClasshttps://ns.flur.ee/db#onClassClass-level policy targeting
f:queryhttps://ns.flur.ee/db#queryPolicy query (determines applicability)
f:requiredhttps://ns.flur.ee/db#requiredWhether the policy is required (boolean)
f:exMessagehttps://ns.flur.ee/db#exMessageError message when policy denies access

See Policy model and inputs for usage details.


Config graph vocabulary

These predicates define ledger-level configuration stored in the config graph. See Ledger configuration for full documentation.

Core types

TypeFull IRIDescription
f:LedgerConfighttps://ns.flur.ee/db#LedgerConfigLedger-wide configuration resource
f:GraphConfighttps://ns.flur.ee/db#GraphConfigPer-graph configuration override
f:GraphRefhttps://ns.flur.ee/db#GraphRefReference to a graph source

Setting group predicates

PredicateFull IRIDescription
f:policyDefaultshttps://ns.flur.ee/db#policyDefaultsPolicy enforcement defaults
f:shaclDefaultshttps://ns.flur.ee/db#shaclDefaultsSHACL validation defaults
f:reasoningDefaultshttps://ns.flur.ee/db#reasoningDefaultsOWL/RDFS reasoning defaults
f:datalogDefaultshttps://ns.flur.ee/db#datalogDefaultsDatalog rule defaults
f:transactDefaultshttps://ns.flur.ee/db#transactDefaultsTransaction constraint defaults

Policy fields

PredicateFull IRIDescription
f:defaultAllowhttps://ns.flur.ee/db#defaultAllowDefault allow/deny when no policy matches (boolean)
f:policySourcehttps://ns.flur.ee/db#policySourceGraph containing policy rules (GraphRef)
f:policyClasshttps://ns.flur.ee/db#policyClassDefault policy classes to apply

SHACL fields

PredicateFull IRIDescription
f:shaclEnabledhttps://ns.flur.ee/db#shaclEnabledEnable/disable SHACL validation (boolean)
f:shapesSourcehttps://ns.flur.ee/db#shapesSourceGraph containing SHACL shapes (GraphRef)
f:validationModehttps://ns.flur.ee/db#validationModef:ValidationReject or f:ValidationWarn

Reasoning fields

PredicateFull IRIDescription
f:reasoningModeshttps://ns.flur.ee/db#reasoningModesReasoning modes: f:RDFS, f:OWL2QL, f:OWL2RL, f:Datalog
f:schemaSourcehttps://ns.flur.ee/db#schemaSourceGraph containing schema triples (GraphRef)

Datalog fields

PredicateFull IRIDescription
f:datalogEnabledhttps://ns.flur.ee/db#datalogEnabledEnable/disable datalog rules (boolean)
f:rulesSourcehttps://ns.flur.ee/db#rulesSourceGraph containing f:rule definitions (GraphRef)
f:allowQueryTimeRuleshttps://ns.flur.ee/db#allowQueryTimeRulesAllow ad-hoc query-time rules (boolean)

Transact / uniqueness fields

PredicateFull IRIDescription
f:uniqueEnabledhttps://ns.flur.ee/db#uniqueEnabledEnable unique constraint enforcement (boolean)
f:constraintsSourcehttps://ns.flur.ee/db#constraintsSourceGraph(s) containing constraint annotations (GraphRef)
f:enforceUniquehttps://ns.flur.ee/db#enforceUniqueAnnotation on property IRIs: enforce value uniqueness (boolean)

Override control

TermFull IRIDescription
f:overrideControlhttps://ns.flur.ee/db#overrideControlOverride gating on a setting group
f:OverrideNonehttps://ns.flur.ee/db#OverrideNoneNo overrides permitted
f:OverrideAllhttps://ns.flur.ee/db#OverrideAllAny request can override (default)
f:IdentityRestrictedhttps://ns.flur.ee/db#IdentityRestrictedOnly verified identities can override
f:controlModehttps://ns.flur.ee/db#controlModeControl mode (for identity-restricted objects)
f:allowedIdentitieshttps://ns.flur.ee/db#allowedIdentitiesList of DIDs authorized to override

Graph targeting

PredicateFull IRIDescription
f:graphOverrideshttps://ns.flur.ee/db#graphOverridesList of f:GraphConfig per-graph overrides
f:targetGraphhttps://ns.flur.ee/db#targetGraphTarget graph IRI for a f:GraphConfig
f:graphSelectorhttps://ns.flur.ee/db#graphSelectorGraph selector within a f:GraphRef
f:defaultGraphhttps://ns.flur.ee/db#defaultGraphSentinel IRI for the default graph
f:txnMetaGraphhttps://ns.flur.ee/db#txnMetaGraphSentinel IRI for the txn-meta graph

See Ledger configuration for usage details.


RDF-Star annotation predicates

Fluree supports RDF-Star annotations for transaction metadata. These predicates can appear in annotation triples:

PredicateFull IRIDescription
f:thttps://ns.flur.ee/db#tTransaction number on an annotated triple
f:ophttps://ns.flur.ee/db#opOperation type (assert/retract)

Namespace codes (internal)

Fluree encodes namespace IRIs as integer codes for compact storage. These are internal implementation details but useful for contributors working on the core.

CodeNamespaceIRI
0(empty)""
1JSON-LD@
2XSDhttp://www.w3.org/2001/XMLSchema#
3RDFhttp://www.w3.org/1999/02/22-rdf-syntax-ns#
4RDFShttp://www.w3.org/2000/01/rdf-schema#
5SHACLhttp://www.w3.org/ns/shacl#
6OWLhttp://www.w3.org/2002/07/owl#
7Fluree DBhttps://ns.flur.ee/db#
8DID Keydid:key:
9Fluree Commitfluree:commit:
10Blank Node_:
11OGC GeoSPARQLhttp://www.opengis.net/ont/geosparql#
100+User-defined(allocated at first use)

Standard W3C namespaces

Fluree also recognizes these standard W3C namespaces:

PrefixIRICommon predicates
rdf:http://www.w3.org/1999/02/22-rdf-syntax-ns#rdf:type, rdf:first, rdf:rest
rdfs:http://www.w3.org/2000/01/rdf-schema#rdfs:label, rdfs:subClassOf, rdfs:range
xsd:http://www.w3.org/2001/XMLSchema#xsd:string, xsd:int, xsd:dateTime
owl:http://www.w3.org/2002/07/owl#owl:sameAs, owl:inverseOf
sh:http://www.w3.org/ns/shacl#sh:path, sh:datatype, sh:minCount

See IRIs, namespaces, and JSON-LD @context for details on prefix declarations and IRI resolution.