Compare commits

...

2 commits

Author SHA1 Message Date
e81120d353 Add pipeline steps (graph-01, graph-02) to Rakefile. 2026-02-28 08:18:04 +01:00
aa6f46bfc2 Fix IRI generation by sanitizing column names with spaces.
Regenerate graph-01.ttl and graph-02.ttl with the corrected output.
2026-02-28 06:20:18 +01:00
4 changed files with 326775 additions and 367997 deletions

View file

@ -61,6 +61,18 @@ file 'data/works.ttl' => 'src/map_work.rb' do
run 'src/map_work.rb' run 'src/map_work.rb'
end end
# ── Pipeline steps ───────────────────────────────────────────────────────────
file 'data/graph-01.ttl' => 'map/step-01.rb' do
run 'map/step-01.rb'
end
UPDATE_QUERIES = FileList['updates/*.rq']
file 'data/graph-02.ttl' => ['data/graph-01.ttl', 'map/step-02.rb'] + UPDATE_QUERIES do
run 'map/step-02.rb'
end
# ── Aggregate tasks ────────────────────────────────────────────────────────── # ── Aggregate tasks ──────────────────────────────────────────────────────────
GENERATED = %w[ GENERATED = %w[
@ -79,12 +91,17 @@ GENERATED = %w[
data/works.ttl data/works.ttl
].freeze ].freeze
task default: GENERATED GRAPHS = %w[
data/graph-01.ttl
data/graph-02.ttl
].freeze
task default: GENERATED + GRAPHS
task :clean do task :clean do
review_files = %w[ review_files = %w[
data/countries_wikidata_review.ttl data/countries_wikidata_review.ttl
data/religions_wikidata_review.ttl data/religions_wikidata_review.ttl
] ]
rm_f GENERATED + review_files rm_f GENERATED + GRAPHS + review_files
end end

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -79,10 +79,19 @@ fn class_iri(table: &str) -> SimpleTerm<'static> {
) )
} }
fn sanitize_name(name: &str) -> String {
let s: String = name
.chars()
.map(|c| if c.is_ascii_alphanumeric() || c == '-' { c } else { '_' })
.collect();
let s = s.replace("__", "_");
s.trim_matches('_').to_string()
}
fn column_iri(table: &str, column: &str) -> SimpleTerm<'static> { fn column_iri(table: &str, column: &str) -> SimpleTerm<'static> {
SimpleTerm::Iri( SimpleTerm::Iri(
sophia::api::term::IriRef::new_unchecked( sophia::api::term::IriRef::new_unchecked(
format!("{}{}#{}", BASE_IRI, table, column).into(), format!("{}{}#{}", BASE_IRI, table, sanitize_name(column)).into(),
), ),
) )
} }
@ -90,7 +99,7 @@ fn column_iri(table: &str, column: &str) -> SimpleTerm<'static> {
fn ref_iri(table: &str, fk_col: &str) -> SimpleTerm<'static> { fn ref_iri(table: &str, fk_col: &str) -> SimpleTerm<'static> {
SimpleTerm::Iri( SimpleTerm::Iri(
sophia::api::term::IriRef::new_unchecked( sophia::api::term::IriRef::new_unchecked(
format!("{}{}#ref-{}", BASE_IRI, table, fk_col).into(), format!("{}{}#ref-{}", BASE_IRI, table, sanitize_name(fk_col)).into(),
), ),
) )
} }