 Okay. I'll just quickly introduce myself and I'll be talking about. So Jonathan New from CSIRO. I'm a researcher, data scientist at the CSIRO Environmental Informatics Group. I've been working on CISFOC for a little while and I guess I'm the main maintainer of the canonical CISFOC repository. And so today I'll be just giving an overview of what CISFOC is for those who don't know what it is. And then providing an overview of some of the latest release updates later in the talk. So CISFOC, the CIS part of it stands for spatial information services stack. And that was a product that came out of the Oscar project. So the vocabulary service was part of the stable of services and products that came out of that project. CISFOC is essentially a web server for publishing vocabularies. It's not for creating the content that goes into a vocabulary definition. But when you do have it and when you do have it in a particular format, CISFOC can be used to publish it by the web. And by publishing we mean via standardized think data APIs. It provides consistent APIs for accessing the SCOS content, which is the format that we assume these vocabularies are going to be published in. SCOS is a W3C standard for publishing things like vocabulary, simple lists, and think taxonomies and quite simple knowledge organization structures. CISFOC also provides auto-generated landing pages. So when you do load up your SCOS vocabulary into this web server, you automatically get landing pages for all the concepts and the links that generate to related concepts within the vocabulary. And that leverages the link data API, but it generates the HTML view, which is what people may see on the web in your browser. As I mentioned earlier, this product or web server software came out of the Oscar project and it's been around since 2009. We're in version 3 now, so there's been a couple of iterations, but essentially it's fairly stable and has been working well for what it is. The link to the page where this gripes is over there, CISFOC.info. So if you're curious, you can have a look there. Why use CISFOC? So it's really designed to enable access to your vocabulary content over the web if you're a publisher of vocabularies or if you have vocabularies mentioned earlier, it's for providing auto-generated landing pages so you don't have to write them yourself. You just have to define the vocabularies using the standardized SCOS format and the pages are generated for you. Sometimes clients and users want APIs to power other web applications, so particularly JSON for JavaScript-rich web applications. And typically for those sort of web developers doing those web applications, you don't want to deal with huge queries, sparkle queries to the backend, which is a triple store, which is equivalent to a SQL query to a relational database. You don't want to keep querying using that block of text over the web by API to the backend. And another reason for using CISFOC is users often adopted because it's a lightweight open-source software solution built on other open-source products, and it's existing, so you don't have to roll your own if you don't need to, assuming all the features that you want to hear. So what do I mean by the auto-generated landing pages? I've just picked one vocabulary definition that I could find via the ANTS or ARDC Research Vocabularies Australia platform, and I happen to look at Geosciences Australia's geology vocabulary, and this is an example of bedrock published via the CISFOC instance that's styled according to RVA's requirements, colors, fonts, whatever, and it's just presenting the cost definition of bedrock with the various fields and values for bedrock. GA also mirrors this with a CISFOC instance of their own on their website, and it looks like this and styled according to their needs. So these are all automatically generated, uses templates to style it, essentially, but the content comes through as a web page, and there are links to that, so it's cool. What do I mean by APIs? So CISFOC uses an underlying component called elder, and elder comes with linked data APIs, and these linked data APIs provide you various formats to access the vocabulary content through. So this is just the JSON version, if you're familiar with JSON, and this is the RDF version, so machine readable versions of that same definition. There are a couple of web widgets as well that's part of the ecosystem, so ARDC or ANS have a web component widget that takes a CISFOC instance and produces a list visualization like this, and this is what you see on RVA. We've also, through work with Monash University, developed this tree visualization tool, and it also just uses any existing CISFOC instance, and you're able to dynamically expand and present this tree-like view. So that's another widget that's built on top of CISFOC, so for presenting things. You can embed this either within a web page or just take screenshots and embed them within a report. Or another option that we tried in another project called EREVS is to enable further exploration of data that embeds some of these vocabularies within a database of observations and results, so you can provide some contextual exploration of data using these tools. Okay, who should deploy CISFOC? So definitely if you're running a project or you're developing a system that requires you to provide vocabularies access to your end users, then CISFOC is ideal. It's a web server that will just deliver those APIs and auto-generated landing pages. If you are seeking to publish vocabularies on behalf of the community, such as Research Vocabularies Australia, what they're doing, then you can spin out many CISFOCs for different vocabularies that you want to host on behalf of the community. So just an example of where CISFOC is used, particularly in Australia, these organizations, there are others that have been project-based as well and not all of Syro uses it, but there's a few projects where we use it. Who should use CISFOC deployments? So once you deploy CISFOC, who should use them? So if you are a research project or initiative looking to adopt existing vocabularies and definitions or you're part of a community that wants to leverage existing vocabularies, then you should look to some of these vocabularies that are actually published via CISFOC or RVA or such platforms. If you're building a web portal or mobile application that you need some drop-down lists that have vocabularies being published already, then this is a way to do that. If you've got applications requiring data validation using some vocabularie content, this is a way of doing that as well. We've previously used that in the Bureau of Net Project, where we have an XML data payload that describes the data using some of the vocabularie content, such as what sort of observation is it. So we can invalidate that those XML or other data payloads with the vocabularies themselves to ensure integrity. Other use cases include publishing reports in a consistent way. So you have multiple reports that use a core set of vocabularies. CISFOC diplomas could be used to help make those glossaries being produced and the terms being used with the labels consistent. Just some examples. So now we know what CISFOC is and what it does and who should use it and where you should use it. I guess the main update from us in maintaining CISFOC is that earlier this year we've done a little bit of tidying up and maintenance and released version 3.6 in April. So we've slowly moved towards having this on GitHub and having the repo be the point of truth, both for the source code as well as the build of the web application software itself. So we have an automated build of this CISFOC software via the Travis Continuous Integration components that's hosted by GitHub and also by Travis. So any changes that we make generally goes through an automated build, which is nice for maintenance. We also have fixes and additional tools. So we've done a bit of a cleanup of the existing landing page with some of the issues that I've been hanging over. And then there's also a build script now that uses Python, this Python build script to generate a CISFOC configuration as that can be a bit tedious. And the last one, which is probably something that's novel, is the deployment via Docker. Docker is a containerization technology. It's widely adopted now. And many open source products are available via Docker. And what this means is that if you've got a computer or virtual machine or if you're spinning stuff up on AWS, you can use Docker to deploy any of those software components to orchestrate their use in the cloud environment. So we've invested a bit of time to Dockerize CISFOC. And it's available via the Docker Hub repository and you can just pull that down and run CISFOC. And I'll just illustrate, I guess, the benefit of that. So this shows you the guts of CISFOC. We've got the components that CISFOC is built on. We've got the triple store where typically you load your vocabulary content. We've got elder, which is the API kind of generic stack where you use the CISFOC configuration to tell elder how to configure the APIs. And so users basically come in with the landing pages and APIs up here and they're generally happy because they can get what they want. Which is good. But the problem is doing a deployment of the RDF triple store as manual, editing the configurations manual, deploying the required components to deploy elder as manual. So there's many buttons you need to press and things you need to do, each step of the way, and that adds up, right? So that's just for one deployment, which, you know, it's okay if you're doing it one off, but if I'm a deployer, I kind of just be a bit mad and grown about it. So deployment from zero to go is days, maybe weeks. You need to read documentation. You need to figure out, maybe you need to ask questions and so it's not all smooth sailing. And then you need to spin up another one again, for example, and that's manual. So what you need to spin up the same one again, you can't remember how you did it and that's limiting the repeatability. So what we've been doing is providing a way to streamline a bit of that using Docker. So there are existing triple stores that you can deploy using Docker. So Fuzeki is one and RDF4J is another. So you can start to streamline how you publish your content and assuming you've done your configuration of SysFoc, still manual, but the rest is generally, there's a workflow to automate using Docker. So ideally it'll be one button push to a triple store. Ideally, once you've got the configuration, it's a one button push to deploy SysFoc. One of two buttons. And if you're the deployer, I think that'll be a much happier state to be in and deployment from zero to something running is hours, maybe even minutes depending on your requirements, maximum if you know what you're doing a day. Repeatability is fairly automated if you want to redeploy the same thing or tweak something and redeploy another thing or deploy multiple endpoints within one scenario. If you've got, you know, say 10 vocabularies, you want to publish via 10 separate SysFocs, then that's fairly automated as well. There's a bit of configuration, of course, it's not all automated, but in terms of repeatability and maintainability and deployment, it's a lot more streamlined. Okay, so just to summarize SysFoc, it's a web server for publishing, it's gospel caparies, features, automatically generated landing pages and the link data API. There's an existing ecosystem of related tools and deployment tooling as well as the widgets. I'd say deploying SysFoc has never been easier and that's a claim by me, so if you've got feedback, please provide that to us and we're always looking to make it easier. If you like a tech demo, I'm happy to give a tech demo offline. If you've got any feature requests or feedback or issues, the GitHub is the best place to provide that. Thank you.