RdfCore.withStandardCodecs constructor

RdfCore.withStandardCodecs({
  1. RdfNamespaceMappings? namespaceMappings,
  2. List<RdfGraphCodec> additionalCodecs = const [],
  3. IriTermFactory iriTermFactory = IriTerm.validated,
})

Creates a new RDF library instance with standard codecs registered

This convenience constructor sets up an RDF library with Turtle, JSON-LD, N-Triples, and N-Quads codecs ready to use. It's the recommended way to create an instance for most applications.

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 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 [],
  IriTermFactory iriTermFactory = IriTerm.validated,
}) {
  final _namespaceMappings =
      namespaceMappings ?? const RdfNamespaceMappings();

  final registry = RdfCodecRegistry([
    // Register standard formats
    TurtleCodec(
        namespaceMappings: _namespaceMappings,
        iriTermFactory: iriTermFactory),
    JsonLdGraphCodec(
        namespaceMappings: _namespaceMappings,
        iriTermFactory: iriTermFactory),
    NTriplesCodec(iriTermFactory: iriTermFactory),

    // Register additional codecs
    ...additionalCodecs
  ]);

  final datasetRegistry = RdfDatasetCodecRegistry([
    // Register standard dataset formats
    NQuadsCodec(iriTermFactory: iriTermFactory)
  ]);
  return RdfCore(registry: registry, datasetRegistry: datasetRegistry);
}