Public
Edited
Nov 21, 2023
Insert cell
Insert cell
manifest = d3.json("https://www.loc.gov/item/2021670010/manifest.json")
Insert cell
manifestMap = manifest.metadata[2].value
Insert cell
data = d3.csv("https://docs.google.com/spreadsheets/d/e/2PACX-1vS0a_VEphpTFGHjW4BF3_uihhL372X34cNfPd733zNkr4hbD29wOhVZyi42ta9biXoP94WoS_gW1Xwo/pub?output=csv")
Insert cell
manifiestosArray = d3.map(data, d => d.manifiesto)
Insert cell
manifiestoJson1 = d3.json(manifiestosArray[0])

Insert cell
miniatura = manifiestoJson1.thumbnail["@id"]
Insert cell
Insert cell
imagen = manifiestoJson1.sequences[0].canvases[0].images[0].resource["@id"]
Insert cell
Insert cell
autor = manifiestoJson1
Insert cell
{

const manifiesto = []
for(let m of manifiestosArray) {

const parse = await d3.json(m)

manifiesto.push(parse)
}

return manifiesto
}
Insert cell
{
const manifiestos = manifiestosArray.map(m => {
const parse = await d3.json(m);
return parse;
});
}
Insert cell
validadorIIIF = {
function validarManifiestoIIIF(manifiesto) {
if (!manifiesto["@context"] || manifiesto["@context"] !== "http://iiif.io/api/presentation/2/context.json") {
return false;
}
if (!manifiesto.id) {
return false;
}
if (!manifiesto.type || manifiesto.type !== "Manifest") {
return false;
}
return true;
}


let manifiestoEjemplo = d3.json("https://www.loc.gov/item/2021670010/manifest.json")

return validarManifiestoIIIF(manifiestoEjemplo)
}
Insert cell
manifest1 = d3.json("https://www.loc.gov/item/2021670010/manifest.json")
Insert cell
validar = {
function validarManifiestoIIIF(manifiesto) {

const requiredKeys = ["@context", "@id", "@type"];
for (const key of requiredKeys) {
if (!manifiesto.hasOwnProperty(key)) {
return false;
}
}


const contextRegex = /^https?:\/\/.+$/;
const idRegex = /^https?:\/\/.+$/;
const typeRegex = /^[a-zA-Z]+:[a-zA-Z]+$/;

if (!contextRegex.test(manifiesto["@context"]) || !idRegex.test(manifiesto["@id"]) || !typeRegex.test(manifiesto["@type"])) {
return false;
}


return true;
}


// Ejemplo de uso
const manifiestoEjemplo = await d3.json("https://www.loc.gov/item/2021670010/manifest.json")

return validarManifiestoIIIF(manifiestoEjemplo)

}
Insert cell

Purpose-built for displays of data

Observable is your go-to platform for exploring data and creating expressive data visualizations. Use reactive JavaScript notebooks for prototyping and a collaborative canvas for visual data exploration and dashboard creation.
Learn more