compactDatasetIris method

IriCompactionResult compactDatasetIris(
  1. List<RdfGraph> allGraphs,
  2. RdfDataset dataset,
  3. String? baseUri
)

Implementation

IriCompactionResult compactDatasetIris(
    List<RdfGraph> allGraphs, RdfDataset dataset, String? baseUri) {
  final iriCompactionInputTriples = <Triple>[];
  for (final graph in allGraphs) {
    iriCompactionInputTriples.addAll(graph.triples);
  }

  // Include graph names in prefix compaction by adding them as synthetic triples
  // This ensures graph name IRIs can also be compacted with appropriate prefixes
  for (final namedGraph in dataset.namedGraphs) {
    // Add a synthetic triple with the graph name as subject
    // This allows the IRI compaction to analyze and generate prefixes for graph names
    iriCompactionInputTriples.add(Triple(
      namedGraph.name,
      Rdf.type, // Use rdf:type as dummy predicate
      namedGraph.name,
    ));
  }

  final iriCompactionInputGraph =
      RdfGraph(triples: iriCompactionInputTriples);

  return _iriCompaction.compactAllIris(
      iriCompactionInputGraph, _options.customPrefixes,
      baseUri: baseUri);
}