yaz/commit

optmize reconciliation

authorMichiel Hildebrand
Wed Jul 6 17:49:47 2011 +0200
committerMichiel Hildebrand
Wed Jul 6 17:49:47 2011 +0200
commit1bd61aca378d9bf826b1fbc9a149618159443f31
tree11b794058a909493c9c98e8dfdc5f1f831e28cf9
parentad3a9f3c2b70fbb7c21b608dc2273bfeed6f8f9f
Diff style: patch stat
diff --git a/api/reconcile.pl b/api/reconcile.pl
index 00fd73d..a4b3ac1 100644
--- a/api/reconcile.pl
+++ b/api/reconcile.pl
@@ -132,8 +132,9 @@ reconcile_filter(Hits, Max, Type, Properties, Filtered) :-
 label_list(LabelList) :-
 	rdf_equal(rdfs:label, Label),
 	rdf_equal(skos:prefLabel, PrefLabel),
-	%rdf_equal(cornetto:synonym, Syn),
+	rdf_equal(cornetto:synonym, Syn),
 	LabelList = [PrefLabel-0,
+		     Syn-0,
 		     Label-1
 		    ].
 
diff --git a/applications/yaz_fplayer.pl b/applications/yaz_fplayer.pl
index 8bed8f7..ed6387b 100644
--- a/applications/yaz_fplayer.pl
+++ b/applications/yaz_fplayer.pl
@@ -32,7 +32,8 @@
 subject(R) :-
 	rdf(R, skos:inScheme, gtaa:'Onderwerpen').
 subject(R) :-
-	rdfs_individual_of(R, cornetto:'Synset').
+	rdf(R, skos:inScheme, 'http://purl.org/vocabularies/cornetto'),
+	\+ rdf(R, cornetto:domain, wn20i:'domain-geography').
 location(R) :-
 	rdf(R, skos:inScheme, gtaa:'GeografischeNamen').
 person(R) :-
@@ -72,34 +73,40 @@ http_yaz_fplayer(Request) :-
 	video_annotations(Video, Annotations, Options),
 	maplist(annotation_pair, Annotations, TagEntries0),
 	merge_entries(TagEntries0, TagEntries),
-	concept_entries(TagEntries, subject, Subjects, Rest0),
-	concept_entries(Rest0, location, Locations, Rest),
-	concept_entries(Rest, person, Persons, _),
+	concept_entries(TagEntries, subject, Subjects, Rest0, [stem(true)]),
+	concept_entries(Rest0, location, Locations, Rest, []),
+	concept_entries(Rest, person, Persons, _, []),
 	html_page(Video, Subjects, Locations, Persons, Options).
 
 annotation_pair(annotation(Value,_,_,[E0|_],_), Value-E1) :-
 	E0 = i(URI, Time),
 	E1 = entry(URI,Value,Time).
 
-concept_entries(TagEntries, Goal, ConceptEntries, Rest) :-
-	concept_entries_(TagEntries, Goal, ConceptEntries0, Rest),
+concept_entries(TagEntries, Goal, ConceptEntries, Rest, Options) :-
+	option(stem(Stem), Options, false),
+	concept_entries_(TagEntries, Goal, Stem, ConceptEntries0, Rest),
 	merge_entries(ConceptEntries0, ConceptEntries1),
 	maplist(concept_pair, ConceptEntries1, ConceptEntries).
 
-concept_entries_([], _, [], []).
-concept_entries_([Tag-Entries|Ts], Goal, [Concept-Entries|Cs], Rest) :-
-	tag_concept(Tag, Goal, Concept),
+concept_entries_([], _, _, [], []).
+concept_entries_([Tag-Entries|Ts], Goal, Stem, [Concept-Entries|Cs], Rest) :-
+	tag_concept(Tag, Goal, Stem, Concept),
 	!,
-	concept_entries_(Ts, Goal, Cs, Rest).
-concept_entries_([Tag-Entries|Ts], Goal, Cs, [Tag-Entries|Rest]) :-
-	concept_entries_(Ts, Goal, Cs, Rest).
+	concept_entries_(Ts, Goal, Stem, Cs, Rest).
+concept_entries_([Tag-Entries|Ts], Goal, Stem, Cs, [Tag-Entries|Rest]) :-
+	concept_entries_(Ts, Goal, Stem, Cs, Rest).
 
-tag_concept(Tag, Goal, Concept) :-
-	tag_value(Tag, Value),
+tag_concept(Tag, Goal, Stem, Concept) :-
+	tag_value(Tag, Value0),
+	stem(Stem, Value0, Value),
 	reconcile(Value, 3, Hits),
 	member(hit(_,Concept,_,_), Hits),
 	call(Goal, Concept).
 
+stem(_, V, V).
+stem(true, V, Stem) :-
+	snowball(dutch, V, Stem).
+
 concept_pair(Concept-Es, annotation(uri(Concept,Label), 0, 0, Es)) :-
 	rdf_display_label(Concept, Label).