accurator/commit
Added code for adding resources to conceptschemes, enabling autocompletion on those resource.
author | Chris Dijkshoorn |
---|---|
Mon Mar 30 14:07:09 2015 +0100 | |
committer | Chris Dijkshoorn |
Mon Mar 30 14:07:09 2015 +0100 | |
commit | b611d8c77cb715f302825804b8b536b719c236e2 |
tree | f1bfb9c3e0042574e98e018f4a325287a8a1fa91 |
parent | 4e0befd7a62528156501e3208e7f07d1a53d1408 |
Diff style: patch stat
diff --git a/api/accurator.pl b/api/accurator.pl index 0e7ef09..f0206f1 100644 --- a/api/accurator.pl +++ b/api/accurator.pl @@ -11,6 +11,7 @@ :- use_module(library(accurator/recommendation/strategy_expertise)). :- use_module(library(accurator/ui_elements)). :- use_module(library(accurator/subset_selection)). +:- use_module(library(accurator/concept_scheme_selection)). :- use_module(api(cluster_search)). :- use_module(library(semweb/rdf_db)). :- use_module(library(http/http_dispatch)). diff --git a/lib/accurator/concept_scheme_selection.pl b/lib/accurator/concept_scheme_selection.pl new file mode 100644 index 0000000..8f1e43a --- /dev/null +++ b/lib/accurator/concept_scheme_selection.pl @@ -0,0 +1,40 @@ +:- module(concept_scheme_selection, [iconclass_code_concept_scheme/3]). + +/** <module> Concept scheme selection for auto completion +*/ +:- use_module(library(semweb/rdf_db)). +:- use_module(library(semweb/rdf_turtle_write)). + +%% iconclass_code_concept_scheme(+Code, +ConceptScheme, +FileName) +% +% Adds a subset of the iconclass codes to a concept scheme, so it can +% be loaded by autocomplete +% iconclass_code_concept_scheme('http://iconclass.org/7','http://accurator.nl/bible#BiblicalThemeConceptScheme','concept_scheme_bible_theme.ttl'). +iconclass_code_concept_scheme(ICCode, ConceptScheme, FileName) :- + %find all works with class or sublcass of specified code + find_codes(ICCode, Codes), + save_concept_scheme(Codes, ConceptScheme, FileName). + +%% find_codes(+ICCode, -Codes) +% +% Retrieve all codes below ICCode +find_codes(ICCode, Codes) :- + findall(Code, + rdf_reachable(Code, skos:broader, ICCode), + Codes), + length(Codes, NumberCodes), + debug(concept_scheme, 'Number of codes of ~p or lower: ~p', + [ICCode, NumberCodes]). + +%% save_concept_scheme(Uris, ConceptScheme, FileName) +% +% Assert triples linking uris to conceptschemes and save these triples +% in a specified file. +save_concept_scheme(Uris, ConceptScheme, FileName) :- + maplist(assert_concept_scheme(ConceptScheme), Uris), + rdf_save_turtle(FileName, [graph(ConceptScheme)]). + +assert_concept_scheme(ConceptScheme, Resource) :- + rdf_assert(Resource, skos:inScheme, ConceptScheme, ConceptScheme), + debug(concept_scheme, 'Asserted ~p to ~p', + [Resource, ConceptScheme]).