An RDF triple represents one statement in RDF. Each RDF triple contains a subject, predicate, and object.
The subject identifies the resource described by the statement. The predicate identifies the property or relationship. The object identifies the value, resource, or literal associated with the subject through the predicate.
The following simplified BNF shows the conceptual structure of an RDF triple. It does not replace the formal grammar of any RDF serialization.
RDFTriple ::= Subject Predicate Object "." Subject ::= IRI | BlankNode Predicate ::= IRI Object ::= IRI | BlankNode | Literal
The BNF does not constrain predicate naming style. RDF requires the predicate to identify a property or relationship. A predicate IRI represents relationships expressed in natural-language style as hasCounterparty, isCounterpartyOf, wasValidatedBy, reportsFact, dependsOn, or other governed relationship names.
RDF triples form RDF graphs. An RDF graph consists of a set of RDF triples. The graph structure emerges from shared subjects, predicates, and objects across triples.
An RDF triple provides a representation structure. The triple carries semantics when the subject, predicate, object, and associated vocabulary preserve traceability to defined domain meaning.
RDF statement composed of a subject, predicate, and object
W3C RDF 1.1 Concepts and Abstract Syntax; specialized for use in the FX Demo Reference Architecture.
An RDF triple does not by itself establish domain meaning. Governed identifiers, controlled vocabularies, ontologies, schemas, rules, and domain models provide the semantic commitments that give the triple its intended interpretation.
The predicate role is structural. The predicate name is vocabulary-governed.
An RDF triple represents one statement using a subject, predicate, and object.
| Plain-language statement | Subject | Predicate | Object |
|---|---|---|---|
FX trade Trade-123 has counterparty LEI-5493001KJTIIGC8Y1R12 | Trade-123 | hasCounterparty | LEI-5493001KJTIIGC8Y1R12 |
Legal entity LEI-5493001KJTIIGC8Y1R12 is counterparty of FX trade Trade-123 | LEI-5493001KJTIIGC8Y1R12 | isCounterpartyOf | Trade-123 |
FX trade Trade-123 has currency pair EUR/USD | Trade-123 | hasCurrencyPair | EUR/USD |
FX trade Trade-123 has notional amount 1000000 | Trade-123 | hasNotionalAmount | 1000000 |
FX trade Trade-123 has trade date 2026-07-07 | Trade-123 | hasTradeDate | 2026-07-07 |
FX trade Trade-123 has settlement date 2026-07-09 | Trade-123 | hasSettlementDate | 2026-07-09 |
FX trade Trade-123 has lifecycle state Confirmed | Trade-123 | hasLifecycleState | Confirmed |
FX trade Trade-123 was validated by Validator-Structural-01 | Trade-123 | wasValidatedBy | Validator-Structural-01 |
Validation result Validation-456 has result status Accepted | Validation-456 | hasResultStatus | Accepted |
Report Report-789 reports fact Fact-001 | Report-789 | reportsFact | Fact-001 |
Report fact Fact-001 has reporting jurisdiction EU | Fact-001 | hasReportingJurisdiction | EU |
Validation rule Rule-Settlement-Date-01 governs field settlementDate | Rule-Settlement-Date-01 | governs | settlementDate |
The same statements appear in Turtle-like notation as follows:
:Trade-123 :hasCounterparty :LEI-5493001KJTIIGC8Y1R12 . :LEI-5493001KJTIIGC8Y1R12 :isCounterpartyOf :Trade-123 . :Trade-123 :hasCurrencyPair "EUR/USD" . :Trade-123 :hasNotionalAmount "1000000"^^xsd:decimal . :Trade-123 :hasTradeDate "2026-07-07"^^xsd:date . :Trade-123 :hasSettlementDate "2026-07-09"^^xsd:date . :Trade-123 :hasLifecycleState :Confirmed . :Trade-123 :wasValidatedBy :Validator-Structural-01 . :Validation-456 :hasResultStatus :Accepted . :Report-789 :reportsFact :Fact-001 . :Fact-001 :hasReportingJurisdiction :EU . :Rule-Settlement-Date-01 :governs :settlementDate .
Each line is one RDF triple. The subject appears first, the predicate appears second, and the object appears third.
© 2026 Dido Solutions, Inc. and Jackrabbit Consulting, Inc.