yaz/commit

simple routines to start with user provenance

authorMichiel Hildebrand
Fri Mar 30 11:51:19 2012 +0200
committerMichiel Hildebrand
Fri Mar 30 11:51:19 2012 +0200
commit40f00d5370c8b75e29cbbf324b3b176f70fe5d52
treeebbc15455b74d6f3e5f2b5c51ff912894ef5553c
parent60ab03778435d40b2991e9d20582c4b85a8754ec
Diff style: patch stat
diff --git a/config-available/yaz.pl b/config-available/yaz.pl
index bf78663..f125f93 100644
--- a/config-available/yaz.pl
+++ b/config-available/yaz.pl
@@ -16,6 +16,9 @@
 :- use_module(api(video_frames)).
 :- use_module(api(reconcile)).
 
+% libs
+:- use_module(library(user_prov)).
+
 % yaz applications
 :- use_module(applications(yaz_home)).
 :- use_module(applications(yaz_admin)).
diff --git a/lib/user_prov.pl b/lib/user_prov.pl
new file mode 100644
index 0000000..3b60192
--- /dev/null
+++ b/lib/user_prov.pl
@@ -0,0 +1,29 @@
+:- module(user_prov,
+	  []).
+
+
+list_user_tags :-
+	user_tags(PlayerTags),
+	format_user_tags(PlayerTags).
+
+user_tags(PlayerTags2) :-
+	findall(Player-tag(Tag,Score),
+		(rdf(TagEntry, pprime:creator, Player),
+		 rdf(TagEntry,rdf:value,literal(Tag)),
+		 rdf(TagEntry,pprime:score,literal(Score))
+		),
+		PlayerTags),
+	keysort(PlayerTags,PlayerTags1),
+	group_pairs_by_key(PlayerTags1,PlayerTags2).
+
+format_user_tags(PlayerTags) :-
+	forall(member(P-Tags,PlayerTags),
+	       (   format('~w,',[P]),
+		   format_tags(Tags))).
+
+format_tags([]).
+format_tags([Tag]) :-
+	format('~w~n~n',Tag).
+format_tags([Tag|Tags]) :-
+	format('~w,',[Tag]),
+	format_tags(Tags).