ODapps: Ontology Driven Apps

I just found this great paper (thanks Johanna Kappel) introducing ODapps, or ontology-driven apps, as a new paradigm for user apps.

Listing the benefits from this approach, taken from the article:

Perhaps now, with the resurgent interest in knowledge graphs, we can finally see our way clear to a suite of semantic approaches that promise a revolution in software design practices and the democratization of information technologies. Through the ODapp approach, we believe that customers can see:

  • Reduced development times — producing software artifacts that are closer to how we think, combined with reuse and automation that enables applications to be developed more quickly
  • Re-use — abstract/general notions can be used to instantiate more concrete/specific notions, allowing more reuse
  • Increased reliability — formal constructs with automation reduces human error
  • Decreased maintenance costs — increased reliability and the use of automation to convert models to executable code reduces errors. A formal link between the models and the code makes software easier to comprehend and thus maintain.

[Additional] benefits for ontology-based approaches not claimed by other methodologies:

  • Reduced conceptual gap — application developers can interact with the tools in a way that is closer to their thinking
  • Facilitate automation — formal structures are amenable to automated reasoning, reducing the load on the human, and
  • Agility/flexibility — ontology-driven information systems are more flexible, because you can more easily and reliably make changes in the model than in code.

I think this comes very close to the concept that @happybeing referred to earlier in Building an app out of RDF and also this will be interesting to @pukkamustard’s OpenEngiadina that aims to combine fediverse (ActivityPub) with the full power of Linked Data.

Also @cjslep the developer of Go-Fed - the ActivityPub library written in Go - might be interested. The approach that go-fed takes is that at compile-time it auto-generates complete Go sourcecode based on an OWL definition of any activitypub extension (and the core specifications itself).

(Edit: Notified the Fediverse with a heads up to @cjslep in this toot)

(Edit2: I added the article link to a new ‘Ontologies’ section on the delightful-linked-data curated list. See announcement here)

4 Likes

@aschrijver please take a look at LinkedDataHub, our ontology-driven Knowledge Graph management system.

An article on this approach: Linked Data Templates: Ontology-driven approach to read-write Linked Data.

1 Like

Oww, this is very nice looking application. Thanks for the heads up, and know that I have you staged for inclusion on delightful-linked-data :smiley:

1 Like

@namedgraph I am facilitator of Humane Tech Community, big proponent of humanetech, decentralized web, and FOSS freed from Big Tech. There’s some improvements to be made in your project, by getting rid of your Google dependencies. And it can give you added benefits in terms of using open linked data based services.

One of our community members did that (except for the ads, which can be opted-out) and switched to OpenStreetMap for his companies’ service. His product is MapCarta and has a bunch of open service integrations to create the site.

@aschrijver do you know this page? https://github.com/semantalytics/awesome-semantic-web

Yes, I am. It is a great (long) list. I want to make the delightful list more relevant to current linked data activities (remove 5yr unmaintained entries), web development (above academic world) and compliant to delightful project rules (FOSS-only, open data, open science). I will also give it a twist towards (ActivityPub/JSON-LD) Fediverse applications, which are starting to diversify beyond microblogging more and more.

Thank you for this share @aschrijver,

On the topic of leveraging ontologies, I have finished an integration of a SPARQL end point data source to the low-code platform Generative Objects. And I tested it on DBPedia ontologies.

The idea is accelerate the creation of applications using ontologies by modeling data, business rules and UI and automatically generating code.

You can check there for a demonstration of it :

An improvment to add is the capability to infer a full ontology from the ontology description, so that there would be no need to model data, just select which entities and fields from which ontologies to connect to.

I am now finalizing also a connector to SOLID pods, to automate the creation of SOLID applications, and I will share soon about it. By combining the two, we could then create very fast, without writing a line of code, Solid applications making use of ontologies and connecting to linked data sources.