{"id":89,"date":"2022-04-23T23:59:41","date_gmt":"2022-04-23T18:59:41","guid":{"rendered":"https:\/\/quxfarm.com\/?p=89"},"modified":"2022-04-23T23:59:46","modified_gmt":"2022-04-23T18:59:46","slug":"marc-880-%e2%89%a06-and-multilingual-smarcql","status":"publish","type":"post","link":"https:\/\/quxfarm.com\/?p=89","title":{"rendered":"MARC 880 \u22606 and &#8220;Multilingual&#8221; SMARCQL"},"content":{"rendered":"\n<figure class=\"wp-block-image size-large\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"683\" src=\"https:\/\/i0.wp.com\/quxfarm.com\/wp-content\/uploads\/2022\/04\/kvactm0qeea.jpg?resize=1024%2C683&#038;ssl=1\" alt=\"sliced meat on white ceramic plate\" class=\"wp-image-90\" srcset=\"https:\/\/i0.wp.com\/quxfarm.com\/wp-content\/uploads\/2022\/04\/kvactm0qeea.jpg?resize=1024%2C683&amp;ssl=1 1024w, https:\/\/i0.wp.com\/quxfarm.com\/wp-content\/uploads\/2022\/04\/kvactm0qeea.jpg?resize=300%2C200&amp;ssl=1 300w, https:\/\/i0.wp.com\/quxfarm.com\/wp-content\/uploads\/2022\/04\/kvactm0qeea.jpg?resize=768%2C512&amp;ssl=1 768w, https:\/\/i0.wp.com\/quxfarm.com\/wp-content\/uploads\/2022\/04\/kvactm0qeea.jpg?resize=1536%2C1024&amp;ssl=1 1536w, https:\/\/i0.wp.com\/quxfarm.com\/wp-content\/uploads\/2022\/04\/kvactm0qeea.jpg?w=1600&amp;ssl=1 1600w\" sizes=\"auto, (max-width: 1000px) 100vw, 1000px\" \/><figcaption>Photo by <a href=\"https:\/\/unsplash.com\/@rudy_issa?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText\">Rudy Issa<\/a> on <a href=\"https:\/\/unsplash.com\/s\/photos\/french-tomato?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText\">Unsplash<\/a><\/figcaption><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">I&#8217;m almost <a href=\"https:\/\/quxfarm.com\/?p=39\">two months into retirement<\/a> and decided to give my video game controller a break. Just to mix it up a bit, I decided to add a new MARC+SPARQL=SMARCQL feature.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">One of the nice things about RDF is support for multiple languages and scripts. For example, here is a simple Wikidata query that lists Henry Petroski&#8217;s name in various scripts: <\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"><a href=\"https:\/\/w.wiki\/565Q\">https:\/\/w.wiki\/565Q<\/a><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">MARC also has the ability to capture information in multiple scripts, but the mechanism isn&#8217;t as straightforward. Instead, fields cataloged with alternate scripts are paired using an 880 field via a structured \u22606 &#8220;Linkage&#8221; subfield. Here, then, are examples of Henry Petroski&#8217;s name as they might be recorded in MARC records:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">100 <mark style=\"background-color:#eef406\" class=\"has-inline-color has-primary-color\">\u22606 880-01<\/mark> \u2260a Petroski, Henry.<br>880 <mark style=\"background-color:#eef406\" class=\"has-inline-color has-primary-color\">\u22606 100-01\/$1<\/mark> \u2260a \u4f69\u7279\u7f57\u65af\u57fa.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">or possibly<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">880 <mark style=\"background-color:#eef406\" class=\"has-inline-color has-primary-color\">\u22606 100-01\/(2\/r<\/mark> \u2260a \u05e4\u05d8\u05e8\u05d5\u05e1\u05e7\u05d9, \u05d4\u05e0\u05e8\u05d9.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The \u22606 structure contains up to 4 components described in detail <a href=\"https:\/\/www.loc.gov\/marc\/bibliographic\/ecbdcntf.html\">here<\/a>:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u22606 [linking tag]-[occurrence number]\/[script identification code]\/[field orientation code]<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Earlier SMARCQL releases left the \u22606 parsing and lookup as an exercise for users. The <a href=\"https:\/\/github.com\/realworldobject\/smarcql\/releases\/tag\/v0.1.4-alpha\">latest release<\/a>, however, parses the \u22606 components as RDF triples and adds skos:exactMatch triples to connect the corresponding fields. Including these in the triplestore allows for some new analysis possibilities. For example, here is a query that lists variant scripts for the latin name &#8220;Petroski, Henry.&#8221; as they exist in the MARC test set:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>PREFIX code: &lt;https:\/\/w3id.org\/smarcql\/code\/&gt;\nPREFIX skos: &lt;http:\/\/www.w3.org\/2004\/02\/skos\/core#&gt;\n\nSELECT DISTINCT ?latinName ?altName ?script\nWHERE {\n  VALUES ?latinName {\"Petroski, Henry.\"}\n         \n  ?field code:sa ?latinName ;\n    skos:exactMatch &#91;\n      code:s6_scriptIdentificationCode &#91;rdfs:label ?script] ;\n      code:sa ?altName\n    ]\n}<\/code><\/pre>\n\n\n\n<figure class=\"wp-block-table\"><table><thead><tr><th>latinName<\/th><th>altName<\/th><th>script<\/th><\/tr><\/thead><tbody><tr><td>Petroski, Henry.<\/td><td>\u4f69\u7279\u7f57\u65af\u57fa.<\/td><td>Chinese, Japanese, Korean<\/td><\/tr><tr><td>Petroski, Henry.<\/td><td>\u05e4\u05d8\u05e8\u05d5\u05e1\u05e7\u05d9, \u05d4\u05e0\u05e8\u05d9.<\/td><td>Hebrew<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Keep in mind that the ability to query terms across multiple scripts using SMARCQL doesn&#8217;t imply there is one and only one Henry Petroski being referred to. For that, the query would have to take \u22600 or \u22601 <em>identifiers<\/em> into account or else adapt the query to include contextual information for downstream reconciliation using a tool like OpenRefine.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>I&#8217;m almost two months into retirement and decided to give my video game controller a break. Just to mix it up a bit, I decided to add a new MARC+SPARQL=SMARCQL feature. One of the nice things about RDF is support for multiple languages and scripts. For example, here is a simple Wikidata query that lists [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"nf_dc_page":"","_crdt_document":"","om_disable_all_campaigns":false,"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[9,10,8],"tags":[],"class_list":["post-89","post","type-post","status-publish","format-standard","hentry","category-marc","category-smarcql","category-sparql"],"aioseo_notices":[],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/quxfarm.com\/index.php?rest_route=\/wp\/v2\/posts\/89","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/quxfarm.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/quxfarm.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/quxfarm.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/quxfarm.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=89"}],"version-history":[{"count":1,"href":"https:\/\/quxfarm.com\/index.php?rest_route=\/wp\/v2\/posts\/89\/revisions"}],"predecessor-version":[{"id":91,"href":"https:\/\/quxfarm.com\/index.php?rest_route=\/wp\/v2\/posts\/89\/revisions\/91"}],"wp:attachment":[{"href":"https:\/\/quxfarm.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=89"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/quxfarm.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=89"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/quxfarm.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=89"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}