skos_browser/commit
IMPROVED: removed unused code, re-use generic skos stuff from skos package
author | Jacco van Ossenbruggen |
---|---|
Sun Aug 17 14:09:37 2014 +0200 | |
committer | Jacco van Ossenbruggen |
Sun Aug 17 14:09:37 2014 +0200 | |
commit | 0cb7ce8f3a9c77795c565bfdbce7b9d2db16c039 |
tree | 81198c4fc7a3ba411504d57abd8ebbf93fe781cf |
parent | 954607ca38de115d28a1a23a01bb0a3c7b64082d |
Diff style: patch stat
diff --git a/api/skos_concepts.pl b/api/skos_concepts.pl index d8a6212..989a609 100644 --- a/api/skos_concepts.pl +++ b/api/skos_concepts.pl @@ -11,6 +11,7 @@ :- use_module(library(semweb/rdf_db)). :- use_module(library(semweb/rdf_label)). +:- use_module(library(skos/util)). :- http_handler(skosapi(conceptschemes), http_conceptschemes, []). :- http_handler(skosapi(concepts), http_concepts, []). @@ -49,10 +50,10 @@ http_conceptschemes(Request) :- concept_scheme(Query, C, Label) :- var(Query), !, - rdf(C, rdf:type, skos:'ConceptScheme'), + skos_is_vocabulary(C), rdf_display_label(C, Label). concept_scheme(Query, C, Label) :- - rdf(C, rdf:type, skos:'ConceptScheme'), + skos_is_vocabulary(C), once(label_prefix(Query, C, Lit)), literal_text(Lit, Label). @@ -108,67 +109,15 @@ concept_of(Type, Parent, Query, Concept, Label) :- literal_text(Lit, Label). concept(inscheme, ConceptScheme, Concept) :- !, - inscheme(ConceptScheme, Concept). + skos_in_scheme(ConceptScheme, Concept). concept(topconcept, ConceptScheme, Concept) :- !, - top_concept(ConceptScheme, Concept). + skos_top_concept(ConceptScheme, Concept). concept(child, Parent, Concept) :- - narrower_concept(Parent, Concept). + skos_parent_child(Parent, Concept). concept(descendant, Parent, Concept) :- - descendant(Parent, Concept). + skos_descendant_of(Parent, Concept). concept(related, Parent, Concept) :- - related_concept(Parent, Concept). - -%% inscheme(+ConceptScheme, -Concept) -% -% True if Concept is contained in a skos:ConceptScheme by -% skos:inScheme. - -inscheme(ConceptScheme, Concept) :- - rdf(Concept, skos:inScheme, ConceptScheme). - -%% top_concept(+ConceptScheme, -Concept) -% -% True if Concept is a skos:hasTopConcept of ConceptScheme, or -% inversely by skos:topConceptOf - -top_concept(ConceptScheme, Concept) :- - rdf(ConceptScheme, skos:hasTopConcept, Concept). -top_concept(ConceptScheme, Concept) :- - rdf(Concept, skos:topConceptOf, ConceptScheme), - \+ rdf(ConceptScheme, skos:hasTopConcept, Concept). - -%% narrower_concept(+Concept, -Narrower) -% -% True if Narrower is related to Concept by skos:narrower or -% inversely by skos:broader. - -narrower_concept(Concept, Narrower) :- - rdf_has(Narrower, skos:broader, Concept). -narrower_concept(Concept, Narrower) :- - rdf_has(Concept, skos:narrower, Narrower), - \+ rdf_has(Narrower, skos:narrower, Concept). - -%% descendant(+Concept, -Descendant) -% -% Descendant is a child of Concept or recursively of its children - -descendant(Concept, Descendant) :- - narrower_concept(Concept, Narrower), - ( Descendant = Narrower - ; descendant(Narrower, Descendant) - ). - -%% related_concept(+Concept, -Related) -% -% True if Related is related to Concept by skos:related. - -related_concept(Concept, Related) :- - rdf_has(Concept, skos:related, Related). -related_concept(Concept, Related) :- - rdf_has(Related, skos:related, Concept), - \+ rdf_has(Concept, skos:related, Related). - - + skos_related_concept(Parent, Concept). /******************************* @@ -209,11 +158,9 @@ concept_result_property(Key, URI, Graphs, Value) :- % Boolean is true when concept has a skos:narrower concept. has_narrower(Concept, @true) :- - rdf_has(_, skos:broader, Concept), - !. -has_narrower(Concept, @true) :- - rdf_has(Concept, skos:narrower, _), + skos_parent_child(Concept, _Child), !. + has_narrower(_, @false). @@ -221,17 +168,6 @@ has_narrower(_, @false). * UTILILIES * *******************************/ -%% terms_sort_by_arg(+ListOfTerms, +N, -SortedTerms) -% -% Sorts ListOfTerms by the nth argument of each term. - -term_sort_by_arg(List, Arg, Sorted) :- - maplist(arg_key(Arg), List, Pairs), - keysort(Pairs, Sorted0), - pairs_values(Sorted0, Sorted). - -arg_key(N, Term, Key-Term) :- - arg(N, Term, Key). %% list_offset(+List, +N, -SmallerList) %