LD4P / rdf2marc

A Bibframe RDF to MARC converter for use within the Sinopia ecosystem.
4 stars 1 forks source link

Re-map bf:language as a blank node and repeatable #316

Open NancyL opened 10 months ago

NancyL commented 10 months ago

Type of change This is a change to the existing mapping. bf:language currently goes directly to a lookup. Because we need to be able to qualify what aspect of the resource language applies to, we need to change it to a blank node. In addition, since the field should now be repeatable, we have to specify which language given should populate the 008 language code in MARC on conversion.

Example RDF records [Please provide URIs or RDF of the bf:Instance. If providing RDF, Turtle is preferred.] https://api.development.sinopia.io/resource/28368480-fbf6-4895-ba78-6095c8c600cb

Resource template stanford:test:monograph:work (used for testing) pcc:bf2:monograph:work pcc:bf2:AdminMetadata

Expected MARC What MARC did you expect to receive?

008/35-37 ukr

Actual MARC What MARC did you actually receive (if mapped incorrectly)? none. Work does not convert with blank node language

Expected mapping logic Please describe the logic of the mapping.

bf:language [a bf:Language ; rdfs:label "Ukrainian" ; bf:part "Text" ] . bf:language [a bf:Language ; rdfs:label "English" bf:part "Original" ] .

converts to 008 35/37 ukr Logic: When there is more than one language given, read bf:part. If bf:part says "Text" or "Sung or Spoken Text" use to populate the 008 35/37 (Language) with the MARC language code

justinlittman commented 9 months ago

@NancyL I'm really fuzzy on this stuff but for:

_:b29 a <http://id.loc.gov/ontologies/bibframe/Language>;
    <http://www.w3.org/2000/01/rdf-schema#label> <http://id.loc.gov/vocabulary/languages/ukr>;
    <http://id.loc.gov/ontologies/bibframe/part> "Text"@en.
<http://id.loc.gov/vocabulary/languages/ukr> <http://www.w3.org/2000/01/rdf-schema#label> "Ukrainian".
_:b30 a <http://id.loc.gov/ontologies/bibframe/Language>;
    <http://www.w3.org/2000/01/rdf-schema#label> <http://id.loc.gov/vocabulary/languages/eng>;
    <http://id.loc.gov/ontologies/bibframe/part> "Original"@en.
<http://id.loc.gov/vocabulary/languages/eng> <http://www.w3.org/2000/01/rdf-schema#label> "English".

(from https://api.development.sinopia.io/resource/40702c7a-7ccf-4c3b-ab8b-58aa4ecbd864) is <blank node> <http://www.w3.org/2000/01/rdf-schema#label> <http://id.loc.gov/vocabulary/languages/eng>; correct, in particular <http://www.w3.org/2000/01/rdf-schema#label> as the predicate?

NancyL commented 9 months ago

ah, you are right, this is a problem. Have to think how to make it work properly.