amalgame/commit

amalgame:term/qualifier pattern support

authorJacco van Ossenbruggen
Wed Mar 12 17:53:31 2014 +0100
committerJacco van Ossenbruggen
Wed Mar 12 17:53:31 2014 +0100
commit1bece90ef00deb506467a21c76af772af6c33b6f
treeac2b5ec04b8d134b6415f52c17c29d41a622f332
parent9ef49aa7da5735ad688e0951e391f93768b16a64
Diff style: patch stat
diff --git a/lib/ag_modules/string_match_util.pl b/lib/ag_modules/string_match_util.pl
index 13bf0be..7565cae 100644
--- a/lib/ag_modules/string_match_util.pl
+++ b/lib/ag_modules/string_match_util.pl
@@ -27,14 +27,22 @@ label_list(LabelProps) :-
 
 %%	skos_match(Format, Concept, Prop, Lit, RealProp) is nondet.
 %
-%	Match literal Lit to Concept a la rdf_has if Format is skos,
-%	match via literal object if Format is  skosxl.
+%	Like rdf_has(Concept, Prop, Lit, RealProp), but skosxl-aware.
+%
+%	Match literal Lit to Concept a la:
+%       * plain rdf_has if Format is skos,
+%	* via literal object if Format is skosxl:
+%	** via amalgame:term if literal objects as amalgame:qualifier
+%	** via skosxl:literalForm if no amalgame:qualifier
 
 skos_match(skos, Concept, MatchProp, Literal, RealProp) :-
 	rdf_has(Concept, MatchProp, Literal, RealProp).
 skos_match(skosxl, Concept, MatchProp, Literal, RealProp) :-
 	rdf_has(Concept, MatchProp, LiteralObject, RealProp),
-	rdf(LiteralObject, skosxl:literalForm, Literal).
+	(   rdf_has(LiteralObject, amalgame:qualifier, _)
+	->  rdf_has(LiteralObject, amalgame:term, Literal)
+	;   rdf(LiteralObject, skosxl:literalForm, Literal)
+	).
 
 %%	matching_types(+S, +T) is semidet.
 %