Wolfram Computation Meets Knowledge

Other Application Areas

Announcements & Events

Eine Schnittstelle zu einheitlichen dezentralen Diensten mit IPFS, Filecoin und der Wolfram Language

Im Rahmen von Wolframs Zielsetzung, eine einheitliche Blockchain-Schnittstelle zu schaffen, arbeitet Wolfram Blockchain Labs (WBL) daran, Entwicklerinnen und Entwicklern direkten Zugriff auf eine Reihe von Blockchains und dezentralisierten Technologien zu ermöglichen. Heute freuen wir uns, eine Zusammenarbeit mit IPFS und Filecoin bekanntzugeben, die zu den Kernbausteinen des Web3 (oder des “dezentralen” Internets) gehören. Zusätzlich zur Integration von IPFS und der Filecoin-Blockchain in der Wolfram Language ermöglicht diese einzigartige Zusammenarbeit Entwicklerinnen und Entwicklern die Speicherung ihrer Arbeiten, die Nutzung von Peer-to-Peer-Netzwerken und anderen Protokollen für ihre bestehenden und neuen dezentralen Anwendungen. All das kann mit Wolfram-Technologien wie unserer Wolfram Language, der Wolfram Cloud und Wolfram Notebooks gemacht werden.
Announcements & Events

Using IPFS, Filecoin and the Wolfram Language to Build a Unified Decentralized Services Interface

As part of Wolfram’s core goal of a unified blockchain interface, Wolfram Blockchain Labs (WBL) works to give developers direct Wolfram Language access to a range of blockchains and decentralized technologies. Today, we’re excited to announce a collaboration with IPFS and Filecoin, some of the core building blocks of Web3 (or the “decentralized” web). In addition to Wolfram Language integration with IPFS and the Filecoin blockchain, this unique collaboration lets developers leverage storage, peer-to-peer networking and other protocols to complement their existing applications or new decentralized applications, all from Wolfram technologies such as our Wolfram Language, the Wolfram Cloud and Wolfram Notebooks.

Announcements & Events

Cómo usar IPFS, Filecoin y Wolfram Language para crear una interfaz unificada de servicios descentralizados

Como parte del objetivo central de Wolfram de crear una interfaz unificada de cadena de bloques, Wolfram Blockchain Labs (WBL) trabaja para brindar a los desarrolladores acceso directo un amplio rango de cadenas de bloques y tecnologías descentralizadas a través de Wolfram Language. Hoy, nos complace anunciar la colaboración con IPFS y Filecoin, componentes esenciales de la Web3 (o la web “descentralizada”). Además de la integración de Wolfram Language con IPFS y la cadena de bloques de Filecoin, esta colaboración única le permitirá a los desarrolladores aprovechar almacenamiento, redes de pares y otros protocolos para complementar sus aplicaciones existentes o sus nuevas aplicaciones descentralizadas, todo en tecnologías Wolfram como nuestro Wolfram Language, Wolfram Cloud y los cuadernos Wolfram.

La combinación de estos componentes permite nuevas posibilidades computacionales para la investigación, educación, comercio, finanzas y más. Junto con nuestros socios de Max Planck Digital Library, hemos desarrollado un magnífico ejemplo para investigadores que podrá ver en esta publicación. Además estamos enfocados en las futuras posibilidades, así que revisemos los detalles.

IPFS, Filecoin y libp2p han tenido un impacto fundamental en el movimiento Web3 para descentralizar el internet mediante tecnologías esenciales.

IPFS, Filecoin & libp2p: tecnologías fundamentales de la Web3

Filecoin complementa a IPFS y es un mercado de almacenamiento en la nube, protocolo y criptomoneda de código abierto. Ofrece almacenamiento de archivos a largo plazo por medio de una potente y dinámica solución de almacenamiento de nube descentralizada. Las partes interesadas en la red de cadena de bloques de Filecoin pueden “alquilar” el espacio de almacenamiento libre a cambio de una comisión de almacenamiento y recompensas de bloque, las cuales prolongarán la capacidad de almacenamiento a largo plazo de la red.

La lista de protocolos útiles continúa: libp2p para crear aplicaciones de redes de pares; Multiformats para proteger a los sistemas con formatos de archivos autodescritos contra la obsolescencia, y el ecosistema IPLD de formatos y estructuras de datos para crear aplicaciones totalmente descentralizadas. Wolfram contará con más actualizaciones a medida que nuestros desarrolladores continúen creando integraciones.

La mejor manera de ilustrar la facilidad e importancia del ecosistema IPFS y la potencia de la integración con Wolfram Language es con ejemplos del mundo real.

Cargue un archivo a IPFS:

&#10005 ExternalStorageUpload["ExampleData/spikey2.png", ExternalStorageBase -> "IPFS"]

Descargue un archivo de IPFS:

&#10005 file = ExternalStorageDownload[ ExternalStorageObject[ "QmXpif6oKinoP8CwPMCJPqoJNwvEfzbH1cJg6yZkBLJwKu", Association[ "ExternalStorageBase" -> "IPFS", "FileHash" -> "c9ccd63d95043f5d639a76b932dba6c9"]]]

Importe el archivo:

&#10005 Import[file]

Caso práctico de bloxberg Certify & Verify

Cómo preparar los datos y cargar a IPFS

En este ejemplo utilizaremos un archivo PDF del libro blanco de Satoshi Nakamoto “Bitcoin: A Peer-to-Peer Electronic Cash System”, y lo prepararemos para ser enviado al contrato inteligente Certify de bloxberg. Adicionalmente, extendemos la funcionalidad al cargar el archivo a IPFS y crear un archivo de metadatos JSON que también será cargado a IPFS, y contiene el CID del archivo PDF.

Aplique hash al documento de investigación:

&#10005 filePath = FileNameJoin[{NotebookDirectory[], "bitcoin.pdf"}]
&#10005 fileHash = FileHash[filePath, "SHA256", "HexString"]

Obtenga la marca temporal Unix:

&#10005 timestamp = ToString[UnixTime[Now]];

Cargue el archivo de investigación a IPFS:

&#10005 eso = ExternalStorageUpload[filePath, ExternalStorageBase -> "IPFS"]

Cree los metadatos del documento y el autor:

&#10005 metadata = <| "Title" -> "Bitcoin: A Peer-to-Peer Electronic Cash System", "Author" -> "Satoshi Nakamoto", "Affiliation" -> "bitcoin.org", "FileCID" -> eso["CID"] |>;
&#10005 metadata // Dataset
&#10005 metadataFilePath = Export[FileNameJoin[{NotebookDirectory[], "metadata.json"}], metadata, "JSON"]

Cargue los metadatos a IPFS:

&#10005 metadataESO = ExternalStorageUpload[metadataFilePath, ExternalStorageBase -> "IPFS"]
&#10005 metadataCID = metadataESO["CID"]

Cómo enviar datos al contrato inteligente Certify de bloxberg

En esta sección crearemos la transacción con todos los datos requeridos y la enviaremos a la cadena de bloques bloxberg para certificarla mediante el contrato inteligente Certify. Las siguientes claves privadas han sido publicadas para una mejor comprensión por parte de los lectores.

Inicialice algunas variables para la transacción:

&#10005 key = PrivateKey[ Association[ "Type" -> "EllipticCurve", "CurveName" -> "secp256k1", "PublicCurvePoint" -> { 27112075690151519677987005437167591271987576467999908152870704903\ 750742697008, 3534019055898665520072520949331176238451788939602461575265997766\ 3077697880714}, "PrivateMultiplier" -> 8676843423833923876056101813405014181278722\ 7642250635023819795985067687832300, "Compressed" -> False, "PublicByteArray" -> ByteArray[{4, 59, 240, 228, 27, 20, 0, 72, 116, 89, 142, 194, 128, 17, 192, 43, 187, 15, 70, 187, 147, 254, 186, 247, 198, 148, 96, 23, 200, 48, 179, 228, 48, 78, 33, 214, 201, 224, 235, 43, 178, 189, 71, 151, 166, 253, 217, 43, 132, 24, 39, 185, 92, 213, 198, 0, 46, 244, 85, 165, 18, 11, 158, 130, 138}], "PrivateByteArray" -> ByteArray[{191, 213, 49, 131, 159, 167, 125, 243, 62, 158, 234, 92, 248, 2, 42, 136, 221, 127, 168, 24, 172, 124, 117, 37, 61, 155, 34, 38, 150, 88, 106, 236}]]];
&#10005 address = BlockchainKeyEncode[key, "Address", BlockchainBase -> "bloxberg"]
&#10005 txCount = BlockchainAddressData[address, "TransactionCount", BlockchainBase -> "bloxberg"]

Prepare la transacción:

&#10005 tx = BlockchainTransaction[<|"TransactionCount" -> txCount, "Address" -> "E5a9654C7e190701016EBf18206020bf16D8Beab", "FunctionCall" -> <| "Function" -> Typed["createData", {"string", "bool", "string", "string"} -> {"bytes32"}], "Inputs" -> {fileHash, True, metadataCID, timestamp}|>, "GasPrice" -> Quantity[1, "Brox"], "BlockchainBase" -> "bloxberg"|>]

Firme la transacción:

&#10005 txSigned = BlockchainTransactionSign[tx, key]

Envíe la transacción:

&#10005 txSubmitted = BlockchainTransactionSubmit[txSigned]
&#10005 txid = txSubmitted["TransactionID"]

Revise la transacción:

&#10005 Dataset[BlockchainTransactionData[txid, BlockchainBase -> "bloxberg"], HiddenItems -> {"EventList" -> True}, ItemSize -> {50}]

Cómo verificar los datos certificados en la cadena de bloques bloxberg

En esta sección llamaremos al contrato inteligente Verify de bloxberg para obtener los datos, y obtendremos el archivo PDF original de IPFS utilizando los metadatos JSON.

Obtenga los datos de verificación:

&#10005 eventsList = BlockchainTransactionData[txid, "EventList", BlockchainBase -> "Bloxberg"];
&#10005 verifyData = BlockchainContractValue[ eventsList[[1]]["Address"], <| "Function" -> Typed["retrieveResearchData", {"bytes32"} -> {"string", "string", "bytes32", "string", "bool"}], "Inputs" -> eventsList[[1]]["Data"]|>, BlockchainBase -> "Bloxberg"];
&#10005 Dataset[Association["StringCheckSum" -> verifyData[[1]], "IPFS" -> verifyData[[2]], "ResearchID" -> verifyData[[3]], "Timestamp" -> FromUnixTime[ToExpression[verifyData[[4]]]], "DataExists" -> verifyData[[5]]]]

Obtenga el CID de los metadatos de IPFS:

&#10005 ipfsCID = verifyData[[2]]

Descargue los metadatos de IPFS:

&#10005 verifyMetadataFile = ExternalStorageDownload[ipfsCID, ExternalStorageBase -> "IPFS"]

Importe los metadatos:

&#10005 verifyMetadata = Import[verifyMetadataFile, "RawJSON"];
&#10005 Dataset[verifyMetadata]

Descargue el documento de investigación:

&#10005 ExternalStorageDownload[verifyMetadata["FileCID"]]

Manténgase conectado: cómo causar un impacto en la Web3


Consideramos que la siguiente etapa del desarrollo del internet es un movimiento hacia la descentralización de páginas web y servicios. La integración de Wolfram Language con IPFS y Filecoin ampliará el rango de aplicaciones, servicios y análisis que las personas puedan crear, sin importar su experiencia de programación. Nuestro plan es ampliar nuestra colaboración con IPFS para incluir una integración de la cadena de bloques Filecoin, utilizando Filecoin para almacenamiento, manipulación simbólica de datos de IPFS y Filecoin, ejemplos analíticos, características educativas y más.

Esperamos contar con ejemplos de distintos campos y usuarios en el futuro:

Análisis de datos: tomar datos de Filecoin e IPFS y realizar análisis en los documentos, todo mediante Wolfram Language NFT: utilizar cuadernos Wolfram, Wolfram Language y conexiones con cadenas de bloques para crear, descargar y utilizas los NFT Círculos académicos: almacenar datos para uso abierto y comprensible, y un intercambio sofisticado de investigaciones Comercio: trabajar con el Asesoramiento Técnico Wolfram para explorar prototipos avanzados y exploraciones Desarrolladores: crear aplicaciones avanzadas por medio de capacidades computacionales

¡Nos encontramos en la cúspide de resaltar la utilidad de IPFS y las cadenas de bloques mediante un magnífico ejemplo acerca de los NFT que será divertido, emocionante y GRATUITO!

Conéctese con Wolfram Blockchain Labs para descubrir más sobre cómo integrar su cadena de bloques en Wolfram Language. Conéctese con el Asesoramiento Técnico Wolfram para iniciar un proyecto de cadena de bloques.
Announcements & Events

Introducing Wolfram Application Server

Wolfram Application Server is a new platform developed by Wolfram Research enabling customers to deploy Wolfram Language–powered APIs and webpages into a scalable, highly available enterprise cluster.

Wolfram Application Server lets you:

manage data exchange in your deployments with a robust external services framework. create applications using the Wolfram Natural Language Understanding (NLU) System, the key semantic interpretation technology behind Wolfram|Alpha and Wolfram Language. generate content based on time and location, assign custom endpoints and integrate curated content from the Wolfram Knowledgebase.

We have designed Wolfram Application Server for customers who for regulatory, security or business reasons may not wish to deploy onto the Wolfram Cloud but prefer to host their Wolfram Language applications on clusters they control.

Announcements & Events

Third-Generation Blockchain Functionality with Tezos and the Wolfram Language

As CEO of Wolfram Blockchain Labs (WBL), I think one of the most exciting parts of my job is collaborating with other leaders in the blockchain space to expand tools for developers and business use cases. For several years now, we’ve been adding a steady stream of blockchain functionality into the Wolfram Language to enable development of knowledge-based distributed applications and computational contracts. You may have noticed the growing number of popular blockchains (ARK, Bitcoin, bloxberg, Cardano, Ethereum, MultiChain...) partnering with us and integrating into our platform. It’s already led to some cool explorations, and we have a lot more in the pipeline.

Today, WBL is happy to announce its latest such collaboration, a partnership with TQ Tezos. That includes Tezos blockchain integration in the Wolfram Language, which is great news for smart contract developers and enthusiasts. But that’s just the beginning. Our long-term plans include a lot of big ideas that we think everyone will be excited about!

Academics

3D-Printed Jewelry Made with the Wolfram Language Showcases the Beauty of Mathematics

I enjoy turning mathematical concepts into wearable pieces of art. That’s the idea behind my business, Hanusa Design. I make unique products that feature striking designs inspired by the beauty and precision of mathematics. These pieces are created using the range of functionality in the Wolfram Language. Just in time for Valentine’s Day, we recently launched Spikey earrings in the Wolfram Store, which are available in rose gold–plated brass and red nylon. In this blog, I’ll give a look under the hood and discuss how an idea becomes a product through the Wolfram Language.

Current Events & History

Classifying Cough Sounds to Predict COVID-19 Diagnosis

Sound classification can be a hard task, especially when sound samples have small variations that can be imperceptible to the human ear. The use of machines, and recently machine learning models, has been shown to be an effective approach to solving the problem of classifying sounds. These applications can help improve diagnoses and have been a topic of research in areas such as cardiology and pulmonology. Recent innovations such as a convolutional neural network identifying COVID-19 coughs and the MIT AI model detecting asymptomatic COVID-19 infections using cough recordings show some promising results for identifying COVID-19 patients just by the sound of their coughs. Looking at these references, this task may look quite challenging and like something that can be done only by top-notch researchers. In this post, we will discuss how you can get very promising results using the machine learning and audio functionalities in the Wolfram Language.

Computation & Analysis

機械学習機能を利用した心不全による死亡のリスク予測

心臓病学のような医療分野でも,Wolfram言語は新たな知見獲得や臨床現場における予測に役立っています.最近,金沢大学先進予防医学研究科の中嶋憲一教授がリードする,Wolfram言語の機械学習機能を用いた心不全による死亡リスク予測の研究に参加し,論文が出版されましたのでその概略を紹介します.そこでは,末期心不全(HFD)と重度の不整脈/突然死(ArE)によって引き起こされる心臓死の確率を区別できる分類器を構築することを目指しました.

Academics

Consolidate Wolfram Logins for Education with Single Sign‑On

I’ll begin this blog post by admitting that I personally have forgotten many passwords in my lifetime. If you’re like me (which I’m sure you are in this regard), you use many online tools and websites that require a login and password. We also know it’s wise practice to use a variety of passwords and to change them frequently. We hope a new feature of Mathematica Online has made this a little less daunting for you in your educational settings.