Skip to content

Consider using LinkML-Scala? #5

Description

@Ostrzyciel

Hi! I've been following your hard work here for a while :) really appreciate it. (Also, thank you for maintaining Protégé! I taught it to students when I was in academia.)

I've just noticed your issue here: linkml/linkml#3912

I tried it with LinkML-Scala (our implementation of the LinkML spec from Scala), and it is indeed reported as an error:

Image

In general, we took the approach of starting from a blank canvas and sticking to the spec as closely as possible. We were also frustrated by linkml/linkml's spec non-compliance.

This made me think – would it be possible to reuse some of our work for your purposes? The "secondary aims" you list in the README are already possible in LinkML-Scala, on the JVM. We have a fully-featured SchemaView interface, schema derivation, and infrastructure for building generators. These generators can be simply Java classes, you only need a Maven dependency on LinkML-Scala: https://central.sonatype.com/artifact/eu.neverblink.linkml/schemaview_3

Example generator (RDFS): https://github.com/NeverBlink-OSS/linkml-scala/blob/main/generator/src/eu/neverblink/linkml/generator/rdfs/RdfsGenerator.scala

With this, it's totally possible to write a Java generator in pure Java. It could use either direct string interpolation or something like javapoet.

Does this sound interesting? To be honest, we will also need a good Java generator at some point, so I would be very happy to support your work here in some way. If for example the Scala interfaces turn out to be annoying to use from Java, we could add Java façades.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions