Session Catalog for Oracle OpenWorld & CodeOne 2018 in JSON files

Lucas Jellema
0 0
Read Time:2 Minute, 57 Second

The Oracle OpenWorld and CodeOne 2018 conferences took place in the last week of October 2018. Together, over 1500 sessions took place. The session catalog with details for all sessions is accessible at – at least at the time of writing. The session information includes title and abstract, track, session type, names of speakers, download link for the slides and more.



The data in the session catalog represents an interesting data set that could easily be used for data visualization, machine learning, business analytics and demos of web & mobile & chat application. Therefore, it could be convenient to have easy access to the data set in the session catalog.

By inspecting the HTTP calls made from the Session Catalog Web Application, it is easy to learn how the session data can be retrieved from the REST API that exposes it.


With a fairly simple Node application, HTTP requests can be made to retrieve all session data per session type and per batch of 50 sessions – see Note how function delay(t) is used to schedule a function call.

Executing this Node program for all session types results in JSON files with session details for session type. The data in these JSON files looks like this in an online JSON viewer:


This data can be used for various applications and demonstrations.

A more useful file can be compiled – a file that contains all sessions and for all sessions only relevant details (and for example not all internal identifiers). This file is oow2018-sessions-catalog.json . It has been created by the Node program  compile-oow-catalog-files.js. This program leverages the JSONata language for retrieving data from complex JSON documents as well as transforming JSON documents into target documents with a different structure. JSONata is comparable in function to XPath and XSLT or XQuery. The npm module JSONata was used in this case and proved very useful.

var catalog = []
// here follows the JSONata expression - equivalent to the XSLT template or XQuery mapping
var expression = jsonata(
    ` $.{
        'code': code
        ,'title': title
        ,'abstract': abstract
        ,'duration': length
        ,'event': eventName
        ,'type': type
        ,'waitlistPeak' : waitlistLimit
        ,'speakers': participants.{'name':(firstName & ' ' & lastName)
                                  , 'company': companyName
                                  , 'jobTitle': jobTitle
                                  , 'biography' : bio
                                  , 'photoURL' : photoURL
                                  , "twitter": attributevalues[attribute_id='twitter'].value
                                  , "designations": attributevalues[attribute_id='specialdesignations'].value
        , 'slots' : times.{ 'room': room
                          , 'date': date
                          , 'time': time   
                          , 'roomCapacity' :capacity                  
        , 'levels' :  attributevalues[attribute_id='SessionsbyExperienceLevel'].value
        , 'roles' :  attributevalues[attribute_id='SessionsbyYourRole'].value
        , 'track' :  attributevalues[attribute_id='Track'].value                  
        , 'slidesToDownload' : files. 
                               { "name": filename

for (sessionType of sessionTypes) {
    var file = oow2018Filename + sessionType + ".json"
    if (fs.existsSync(file)) {
        console.log("Processing " + sessionType)
        var buf = fs.readFileSync(oow2018Filename + sessionType + ".json");
        var sessions = JSON.parse(buf)

        var result = expression.evaluate(sessions);
        catalog = catalog.concat(result)
fs.writeFileSync(oow2018Filename + '.json', JSON.stringify(catalog, null, '\t'));



GitHub repo with the Node source code as well as the JSON files created for the session catalog data:

Online JSON Inspector:

Earlier article on retrieving Session Catalog for Oracle OpenWorld and JavaOne 2017:

JSONata – home page:

JSONata – in browser try out page –

About Post Author

Lucas Jellema

Lucas Jellema, active in IT (and with Oracle) since 1994. Oracle ACE Director and Oracle Developer Champion. Solution architect and developer on diverse areas including SQL, JavaScript, Kubernetes & Docker, Machine Learning, Java, SOA and microservices, events in various shapes and forms and many other things. Author of the Oracle Press book Oracle SOA Suite 12c Handbook. Frequent presenter on user groups and community events and conferences such as JavaOne, Oracle Code, CodeOne, NLJUG JFall and Oracle OpenWorld.
0 %
0 %
0 %
0 %
0 %
0 %
Next Post

JVM performance: OpenJ9 uses least memory. GraalVM most. OpenJDK distributions differ

In a previous blog post I created a setup to compare JVM performance of several JVMs. I received some valuable feedback on the measures I conducted and requests to add additional JVMs. In this second post I’ll look at some more JVMs and I’ve added some measures like process memory […]
%d bloggers like this: