@comunica/actor-rdf-join-entries-sort-cardinality
Version:
A rdf-join-entries-sort actor that orders by increasing cardinality
29 lines • 1.2 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.ActorRdfJoinEntriesSortCardinality = void 0;
const bus_rdf_join_entries_sort_1 = require("@comunica/bus-rdf-join-entries-sort");
const core_1 = require("@comunica/core");
/**
* An actor that sorts join entries by increasing cardinality.
*/
class ActorRdfJoinEntriesSortCardinality extends bus_rdf_join_entries_sort_1.ActorRdfJoinEntriesSort {
constructor(args) {
super(args);
}
async test(action) {
return (0, core_1.passTest)({
accuracy: action.entries.length === 0 ?
1 :
action.entries
.reduce((sum, entry) => sum + (Number.isFinite(entry.metadata.cardinality.value) ? 1 : 0), 0) /
action.entries.length,
});
}
async run(action) {
const entries = [...action.entries]
.sort((entryLeft, entryRight) => entryLeft.metadata.cardinality.value - entryRight.metadata.cardinality.value);
return { entries };
}
}
exports.ActorRdfJoinEntriesSortCardinality = ActorRdfJoinEntriesSortCardinality;
//# sourceMappingURL=ActorRdfJoinEntriesSortCardinality.js.map