amalgame/commit

better than nothing implementation of virtual top concepts

authorJacco van Ossenbruggen
Thu Aug 28 15:02:18 2014 +0200
committerJacco van Ossenbruggen
Thu Aug 28 15:02:18 2014 +0200
commit6811febd480fc9f857567cc5ca5ae77cfdd4a1fe
tree64eab31b68adfe332923cd0b7f1bbaa199e3fcb8
parentb7b13586f408d71f96dc8c6102a6d69da42aa820
Diff style: patch stat
diff --git a/api/virtual_concepts.pl b/api/virtual_concepts.pl
index 8d1f141..86a3a23 100644
--- a/api/virtual_concepts.pl
+++ b/api/virtual_concepts.pl
@@ -9,6 +9,8 @@
 :- use_module(library(amalgame/voc_stats)).
 :- use_module(library(amalgame/vocabulary)).
 :- use_module(library(amalgame/util)).
+
+:- use_module(library(skos/util)).
 :- use_module(api(skos_concepts)).
 
 
@@ -48,7 +50,24 @@ http_virtual_concepts(Request) :-
 	).
 
 virtual_topconcepts(Scheme, Options) :-
-	virtual_inscheme(Scheme, Options).
+	option(graphs(Graphs), Options),
+	option(limit(Limit), Options),
+	option(offset(Offset), Options),
+	findall(Label-Concept,
+		( vocab_member(Concept, Scheme),
+		  \+ (skos_parent_child(_, Concept)),
+		  rdf_display_label(Concept, Label)
+		), Concepts),
+	sort(Concepts, Sorted),
+	length(Sorted, Total),
+	list_offset(Sorted, Offset, OffsetResults),
+	list_limit(OffsetResults, Limit, LimitResults, _),
+	concept_results(LimitResults, Graphs, JSONResults),
+	reply_json(json([parent=Scheme,
+			 offset=Offset,
+			 limit=Limit,
+			 totalNumberOfResults=Total,
+			 results=JSONResults])).
 
 virtual_inscheme(Scheme, Options) :-
 	option(graphs(Graphs), Options),