External & Database Operations
Relational Database Connectivity
Relational databases and SQL have become the de facto standard for interacting with large, structured datasets. However, as of today there are many competing SQL dialects with confusingly different syntaxes. Version 12 introduces a completely symbolic way of interacting with relational databases using entities, which eliminate the need of knowing the details of the SQL dialect you are using. For the first time in the Wolfram Language, tools are provided for interacting with terabyte-scale data integrating out-of-core and in-memory techniques.
RDF and SPARQL
Version 12 introduces experimental support for importing and exporting RDF (Resource Description Framework) data as well as executing SPARQL queries — both on in-memory data as well as on remote SPARQL endpoints (RDF graph databases). RDF is the standardized, graph-based data model of the semantic web and SPARQL its query and update language. RDF uses IRIs (Internationalized Resource Identifiers) to identify resources, properties and values to allow for unambiguous representation and integration of data from different sources. In addition to support for "query strings", Version 12 provides a symbolic representation of SPARQL that facilitates writing programs that generate or operate on SPARQL.
External System Integration
Creating complete solutions in today's interconnected world often involves using multiple languages, environments and machines. The Wolfram Language has long had rich capabilities for communicating with external languages and processes. Version 12 extends this functionality to facilitate interoperability between multiple external software systems. Python and NodeJS can be called directly from within the Wolfram Language, with a new cell type allowing external code to be embedded directly in a notebook. Direct control of web browsers provides an advanced level of website-testing automation, including clicking buttons, typing in input fields and reading textual content from webpage elements. Finally, support for running processes on remote machines via the secure shell protocol (SSH) provides a convenient way to control and manage large clusters of machines.
Mail & Messaging
In an increasingly interconnected world, email remains an integral part of everyday communications. Version 12 provides high-level and efficient tools for connecting to, importing and analyzing ever-growing mailboxes. On the reverse side, sending out customized content generated by the Wolfram Language has been made easier and more flexible than ever.
Networking and System Operations
Even when working in a high-level language, it is sometimes necessary to interact with low-level system operations. Version 12 makes controlling the system a breeze with dedicated functions to query system properties such as available memory, running processes and network interfaces. Interprocess communication and network debugging are improved with extended socket and packet capture functionality. Even the handling of bytes and characters has been updated, with full Unicode support. Taken together, interacting with the operating system and other programs is smoother than ever.