RdfCore.withStandardCodecs constructor
- RdfNamespaceMappings? namespaceMappings,
- List<
RdfGraphCodec> additionalCodecs = const [], - List<
RdfDatasetCodec> additionalDatasetCodecs = const [], - List<
RdfBinaryGraphCodec> additionalBinaryGraphCodecs = const [], - List<
RdfBinaryDatasetCodec> additionalBinaryDatasetCodecs = const [], - IriTermFactory iriTermFactory = IriTerm.validated,
Creates a new RDF library instance with standard codecs registered
This convenience constructor sets up an RDF library with Turtle, N-Triples, TriG, and N-Quads codecs ready to use. It's the recommended way to create an instance for most applications.
For JSON-LD support, add locorda_rdf_jsonld
and pass its codecs via additionalCodecs and additionalDatasetCodecs.
The namespaceMappings parameter provides optional custom namespace mappings for all codecs.
The additionalCodecs parameter is an optional list of additional graph codecs to register beyond
the standard ones.
The additionalDatasetCodecs parameter is an optional list of additional dataset codecs to register beyond
the standard ones.
The iriTermFactory parameter specifies the factory function for creating IRI terms.
Defaults to IriTerm.validated which performs validation. If you need to minimize
memory footprint, you can pass a flyweight here that caches IRI instances.
Example:
final rdf = RdfCore.withStandardCodecs();
final graph = rdf.decode(turtleData, contentType: 'text/turtle');
Implementation
factory RdfCore.withStandardCodecs({
RdfNamespaceMappings? namespaceMappings,
List<RdfGraphCodec> additionalCodecs = const [],
List<RdfDatasetCodec> additionalDatasetCodecs = const [],
List<RdfBinaryGraphCodec> additionalBinaryGraphCodecs = const [],
List<RdfBinaryDatasetCodec> additionalBinaryDatasetCodecs = const [],
IriTermFactory iriTermFactory = IriTerm.validated,
}) {
final effectiveNamespaceMappings =
namespaceMappings ?? const RdfNamespaceMappings();
final registry = RdfCodecRegistry([
// Register standard formats
TurtleCodec(
namespaceMappings: effectiveNamespaceMappings,
iriTermFactory: iriTermFactory),
NTriplesCodec(iriTermFactory: iriTermFactory),
// Register additional codecs (e.g. JSON-LD from locorda_rdf_jsonld)
...additionalCodecs
]);
final datasetRegistry = RdfDatasetCodecRegistry([
// Register standard dataset formats
// TriG is registered first as the default (human-readable, like Turtle for graphs)
TriGCodec(
namespaceMappings: effectiveNamespaceMappings,
iriTermFactory: iriTermFactory),
NQuadsCodec(iriTermFactory: iriTermFactory),
// Register additional dataset codecs (e.g. JSON-LD from locorda_rdf_jsonld)
...additionalDatasetCodecs
]);
final binaryGraphRegistry =
RdfBinaryGraphCodecRegistry(additionalBinaryGraphCodecs);
final binaryDatasetRegistry =
RdfBinaryDatasetCodecRegistry(additionalBinaryDatasetCodecs);
return RdfCore(
registry: registry,
datasetRegistry: datasetRegistry,
binaryGraphRegistry: binaryGraphRegistry,
binaryDatasetRegistry: binaryDatasetRegistry,
);
}