amalgame/commit
IMPROVED: factor out compute_label_stats/2 so we can reuse it on arbitrary lists of concepts
author | Jacco van Ossenbruggen |
---|---|
Mon May 11 19:36:03 2015 +0200 | |
committer | Jacco van Ossenbruggen |
Mon May 11 19:36:03 2015 +0200 | |
commit | db6615002225a919d9a2c9856e9a7a3a679642b6 |
tree | d4e3bd86d9056c43e2a0e7d58bbaa902d247d98d |
parent | f7244306c012df76de6dff782ee36496d88d05e0 |
Diff style: patch stat
diff --git a/lib/amalgame/scheme_stats.pl b/lib/amalgame/scheme_stats.pl index 9e55025..751a0ea 100644 --- a/lib/amalgame/scheme_stats.pl +++ b/lib/amalgame/scheme_stats.pl @@ -1,7 +1,8 @@ :- module(ag_scheme_stats, [ scheme_stats/4, - scheme_stats_deep/4 + scheme_stats_deep/4, + compute_label_stats/2 ]). :- use_module(library(assoc)). @@ -48,16 +49,22 @@ scheme_stats_deep(Strategy, Scheme, ConceptAssoc, Stats) :- with_mutex(Mutex, scheme_stats_deep_(Strategy, Scheme, ConceptAssoc, Stats)). scheme_stats_deep_(_Strategy, Scheme, ConceptAssoc, Stats) :- + DepthStats = scheme_stats_dict{ + '@private': Private, + structure: DStatsPub + }, + compute_depth_stats(Scheme, ConceptAssoc, DStatsPub, Private), + assoc_to_keys(ConceptAssoc, Concepts), + compute_label_stats(Concepts, LabelStats), + Stats = DepthStats.put(LabelStats). + +compute_label_stats(Concepts, Stats) :- Stats = scheme_stats_dict{ - '@private': Private, formats: Formats, - structure: DStatsPub, languages: Languages, properties: LanguagesDict, totalLabelCount: TotalLabelCount }, - assoc_to_keys(ConceptAssoc, Concepts), - % compute all (prop:lang)-label pairs for skos and skosxl labels: concepts_stats(Concepts, Skos, XLP, XLA), length(Skos, SkosNr), @@ -71,9 +78,9 @@ scheme_stats_deep_(_Strategy, Scheme, ConceptAssoc, Stats) :- msort(AllPropLangLabelPairs, SortedLabels), group_pairs_by_key(SortedLabels, Grouped), group_lengths(Grouped, GroupLengths), - dictifyColonList(GroupLengths, LanguagesDict, Languages), + dictifyColonList(GroupLengths, LanguagesDict, Languages). + - compute_depth_stats(Scheme, ConceptAssoc, DStatsPub, Private). duplicates([], []) :- !. duplicates([K-V1, K-V2, K-V3 | T], [K-V1 | DT]) :-