amalgame/commit
FIXED: restore overall edoal alignment triples whe saving as EDOAL
author | Jacco van Ossenbruggen |
---|---|
Mon Apr 6 14:38:28 2020 +0200 | |
committer | Jacco van Ossenbruggen |
Mon Apr 6 14:38:28 2020 +0200 | |
commit | c3bbc34bc8dc8665745c6197d74db3c732348065 |
tree | 405a6c3963cb34890c13a6a6e66c60e15895f011 |
parent | 17f944e76733b652e7bff7412acad0aac84b07b4 |
Diff style: patch stat
diff --git a/lib/amalgame/ag_publish.pl b/lib/amalgame/ag_publish.pl index 0c0ff5c..4f88186 100644 --- a/lib/amalgame/ag_publish.pl +++ b/lib/amalgame/ag_publish.pl @@ -162,7 +162,7 @@ prepare_mapping(Id, Strategy, Options) :- ( Mapping = [_|_] -> default_mapping_relation(Id, Default, Options), augment_relations(Strategy, Mapping, Augmented, [default_relation(Default)]), - materialize_mapping_graph(Augmented, [graph(Id) | Options]) + materialize_mapping_graph(Strategy, Augmented, [graph(Id) | Options]) ; true % empty mapping, do nothing ) ; true % already materialized in a previous run, do nothing diff --git a/lib/amalgame/ag_stats.pl b/lib/amalgame/ag_stats.pl index 19b4b9c..12d9d0e 100644 --- a/lib/amalgame/ag_stats.pl +++ b/lib/amalgame/ag_stats.pl @@ -14,7 +14,6 @@ :- use_module(library(stat_lists)). -:- use_module(library(amalgame/ag_strategy)). :- use_module(library(amalgame/expand_graph)). :- use_module(library(amalgame/scheme_stats)). :- use_module(library(amalgame/caching)). @@ -202,53 +201,6 @@ has_mapping_input(URL, Strategy, Input) :- rdf_has(Process, amalgame:input, Input), rdfs_individual_of(Input, amalgame:'Mapping'). - -%% mapping_vocab_sources(+MappingURI, +Strategy, -Source, -Target) -% -% Source and Target are the recursive source and target -% vocabularies of Mapping. - -mapping_vocab_sources(Manual, Strategy, SV, TV) :- - ( rdf_has(Manual, amalgame:evaluationOf, Strategy) - ; rdfs_individual_of(Manual, amalgame:'LoadedMapping') - ), - !, - has_correspondence_chk(align(SC,TC,_), Manual), - have_vocab_sources(SC, TC, SV, TV). - -mapping_vocab_sources(URL, Strategy, S, T) :- - rdf_has(URL, amalgame:wasGeneratedBy, Process, RealProp), - rdf(URL, RealProp, Process, Strategy), - !, - ( rdf(Process, amalgame:source, S0, Strategy), - rdf(Process, amalgame:target, T0, Strategy) - -> vocab_source(S0, Strategy, S), - vocab_source(T0, Strategy, T) - ; rdf(Process, amalgame:input, Input, Strategy) - -> mapping_vocab_sources(Input, Strategy, S, T) - ). - -have_vocab_sources(SourceConcept, TargetConcept, SVoc, TVoc) :- - strategy_vocabulary(Strategy, SVoc), - vocab_member(SourceConcept, scheme(SVoc)), - strategy_vocabulary(Strategy, TVoc), - vocab_member(TargetConcept, scheme(TVoc)), - !. - -have_vocab_sources(_S,_T, undef, undef) :- - !. - - -vocab_source(V, Strategy, S) :- - rdf_has(V, amalgame:wasGeneratedBy, Process, RealProp1), - rdf(V, RealProp1, Process, Strategy), - rdf_has(Process, amalgame:input, Input, RealProp2), - rdf(Process, RealProp2, Input, Strategy), - !, - vocab_source(Input, Strategy, S). -vocab_source(V, _S, V). - - compute_reference_counts(Id, Strategy, RefStats) :- reference_mappings(Strategy, References), expand_node(Strategy, Id, Mappings), diff --git a/lib/amalgame/expand_graph.pl b/lib/amalgame/expand_graph.pl index 449ce51..de322c7 100644 --- a/lib/amalgame/expand_graph.pl +++ b/lib/amalgame/expand_graph.pl @@ -262,7 +262,7 @@ materialize_results_if_needed(Strategy, Process, Results) :- needs_materialization(Id, Process, Strategy) ), ( select_result_mapping(Id, Results, P, Mapping), - materialize(Id, Mapping) + materialize(Strategy, Id, Mapping) ) ). @@ -271,13 +271,13 @@ needs_materialization(_Id, Process, _Strategy) :- rdf(ProcessType, amalgame:materialize, amalgame:always), !. -materialize(Id, Mapping) :- +materialize(Strategy, Id, Mapping) :- ( rdf_has(Id, amalgame:recordEvidence, amalgame:enabled) -> Enabled = enabled ; Enabled = disabled ), % voc_clear_stats(all), - materialize_mapping_graph(Mapping, [graph(Id), evidence_graphs(Enabled)]). + materialize_mapping_graph(Strategy, Mapping, [graph(Id), evidence_graphs(Enabled)]). run_strategy :- run_strategy(_). diff --git a/lib/amalgame/mapping_graph.pl b/lib/amalgame/mapping_graph.pl index 0b0e64a..9b5c38f 100644 --- a/lib/amalgame/mapping_graph.pl +++ b/lib/amalgame/mapping_graph.pl @@ -6,11 +6,11 @@ map_nickname/3, % +Strategy, +MappingGraph, ?Nickname map_localname/3, % +Strategy, +MappingGraph, ?Localname nickname_clear_cache/0, - + mapping_vocab_sources/4, % +MappingURI, +Strategy, -Source, -Target augment_relations/4, mapping_relation/2, - materialize_mapping_graph/2, % +List, +Optios + materialize_mapping_graph/3, % Strategy, +List, +Optios supported_map_relations/1, % ?URIList status_option/1 ] @@ -35,6 +35,8 @@ an rdf amed graph. :- use_module(library(amalgame/edoal)). :- use_module(library(amalgame/rdf_util)). :- use_module(library(amalgame/ag_reference)). +:- use_module(library(amalgame/ag_strategy)). +:- use_module(library(amalgame/vocabulary)). :- dynamic nickname_cache/3. @@ -235,15 +237,18 @@ prolog:message(map(found, What, From, Number)) --> %% materialize_alignment_graph(+Mappings, +Options) % -% Assert Mappings as triples in the store. +% Assert Mappings as (EDOAL) triples in the store. -materialize_mapping_graph(Input, Options) :- +materialize_mapping_graph(Strategy, Input, Options) :- option(graph(Graph), Options, test), + mapping_vocab_sources(Graph, Strategy, SourceVocab, TargetVocab), ( rdf_graph(Graph) -> rdf_unload_graph(Graph) ; true ), + + assert_alignment(Graph, [method(Strategy), ontology1(SourceVocab), ontology2(TargetVocab)|Options]), ( memberchk(align(_,_,_), Input) -> mat_alignment_graph(Input, Options) ; true @@ -346,3 +351,49 @@ augment_relation(Mappings, Reference, NewResults, Options) :- NewRef = RTail ), augment_relation(NewMappings ,NewRef, Results, Options). + + +%% mapping_vocab_sources(+MappingURI, +Strategy, -Source, -Target) +% +% Source and Target are the recursive source and target +% vocabularies of Mapping. + +mapping_vocab_sources(Manual, Strategy, SV, TV) :- + ( rdf_has(Manual, amalgame:evaluationOf, Strategy) + ; rdfs_individual_of(Manual, amalgame:'LoadedMapping') + ), + !, + has_correspondence_chk(align(SC,TC,_), Manual), + have_vocab_sources(SC, TC, SV, TV). + +mapping_vocab_sources(URL, Strategy, S, T) :- + rdf_has(URL, amalgame:wasGeneratedBy, Process, RealProp), + rdf(URL, RealProp, Process, Strategy), + !, + ( rdf(Process, amalgame:source, S0, Strategy), + rdf(Process, amalgame:target, T0, Strategy) + -> vocab_source(S0, Strategy, S), + vocab_source(T0, Strategy, T) + ; rdf(Process, amalgame:input, Input, Strategy) + -> mapping_vocab_sources(Input, Strategy, S, T) + ). + +have_vocab_sources(SourceConcept, TargetConcept, SVoc, TVoc) :- + strategy_vocabulary(Strategy, SVoc), + vocab_member(SourceConcept, scheme(SVoc)), + strategy_vocabulary(Strategy, TVoc), + vocab_member(TargetConcept, scheme(TVoc)), + !. + +have_vocab_sources(_S,_T, undef, undef) :- + !. + + +vocab_source(V, Strategy, S) :- + rdf_has(V, amalgame:wasGeneratedBy, Process, RealProp1), + rdf(V, RealProp1, Process, Strategy), + rdf_has(Process, amalgame:input, Input, RealProp2), + rdf(Process, RealProp2, Input, Strategy), + !, + vocab_source(Input, Strategy, S). +vocab_source(V, _S, V).