Open Mitzi-Laszlo opened 5 years ago
Hi @calummackervoy - the simple answer to your question is "no", I'm afraid. Basically, it's just not a high priority for us to open-source that particular project right now (we're still a very small start-up, and our bandwidth is limited). One reason is that we know very specific issues that could potentially lead to support requests that we don't have time to address. For example, if a published RDF vocabulary is unavailable, our generator currently exits with a exception. The RLOG vocabulary from Leipzig University (https://persistence.uni-leipzig.org/nlp2rdf/ontologies/rlog/rlog.owl) was an example - it's server was intermittently down, causing our CI process to break randomly. We know what we want to do to workaround fiddly issues like that (e.g. cache the RDF once it is accessible, and implement a 'use-cached-version-if-unavailable' option). Another change we know we want to make is to use SKOS-XL for vocabulary 'constants' (currently our generator uses rdfs:Literal, which isn't semantically 'correct' but I wasn't aware of SKOS-XL at the time I implemented constant support :) !). But perhaps the biggest reason is that we're still drafting our public guidance for RDF vocabulary creation generally (you can see the latest draft here). Feedback on that is most welcome(!), but once that's approved we want our artifact generator to automatically enforce many of the guidelines contained within that, and open-sourcing it beforehand could potentially lead to lots of confusing breaking changes. Plus the generator has a lot of configuration options, and so there's the overhead in making sure it's properly documented before open-sourcing (and see above with regards to our limited bandwidth!). But I am curious - is there a particular vocabulary (or a set of vocabs) for which you're interested in using the artifact generator...? One very interesting aspect of the generator's long evolution has been the incredible number of idiosyncrasies found when generating source-code artifacts from new vocabs. It's a reflection, I believe, of a few of RDF's general 'warts' - e.g. the lack of a single authoritative 'How to create an RDF vocab' guide, the common 'not invented here' syndrome where multiple parties define terms for essentially the same concepts, the academic background (e.g. researchers proposing great ideas for vocab/dataset meta-data (like VoID for instance), but there's no commercial imperative to push or evangelise those ideas more widely, so very few people add that meta-data), etc. Anyway, I'm always keen to try out new vocabs with the generator, so I'd be happy to run our generator for you on any vocab(s) you might suggest...?
@pmcb55 thanks for the detailed response, and especially for the guidelines which are very useful! A lot of things I hadn't thought about or been aware of 😅
thanks for the kind offer to generate the artifact for me, at the moment though my vocabulary is very simple and so it will change a lot in the coming months.. I've based it heavily from the Obelisk tutorial so that I could start learning React and playing around with the Inrupt SDKs (I started it a week ago)
If you're interested in the use case, I'm aiming to build a tool for Multi-User Domains using Solid, in particular I used to love making text-based adventure games as a kid, but I got frustrated that the art is to create the illusion of choice in order to cull the tree of possible choices as much as possible. I have some ideas on how a "choose your own adventure" game might be made to feel "infinite" through a combination of short choice trees (within a more 'simulation' feeling game-loop), some procedural generation and federation via Solid
Hi Calum - intriguing use case (I too wrote a text-based adventure game, in my far distant youth, but as you say, with very limited choice trees). It's cool that you published your vocab as a resource in a Pod - it's an idea we've explored too, but it's not something I'm 100% convinced on in the long term, since something as simple as a vocab should be just a static resource, and therefore it should only require the simplicity of the most basic Nginx/Apache server, and not the full blown sophistication of a Solid server (although we do want our servers to be as 'dumb' as possible!). But certainly, for initial personal projects or whatever, it sure makes a lot of sense.
I did run your vocab through our generator though, and exactly as I alluded to above (re. "idiosyncrasies found when generating source-code artifacts from new vocabs"), it did throw up an interesting case: your vocab defines both mudchar:name
and mudchar:CharactersList
as owl:DataProperty
- but there is no such type in OWL (that I know of anyway). I'd just use plain old rdf:Property
instead anyway (unless you have a very specific reason for needing OWL, generally I'd just avoid it).
Also, just a very minor naming issue, but I tend to completely avoid plurals when naming anything (i.e. in vocabs, or in code), so I'd change mudchar:CharactersList
to be simply mudchar:CharacterList
(and anyway, in just plain English, "a Characters List" reads kinda weird, as opposed to "a Character List").
Anyway, good luck with the project - definitely interesting...
Thanks for taking the time to point these things out! At some point I'll move it to a standalone server, as you say it's a personal project at the moment so I just put it there because it was fast. The other things I'll change now :-)
I'd gotten owl:DataProperty
originally from the Obelisk vocabulary turtle, but in the tutorial content it uses rdf:Property
as you say. I thought I'd mention it in case other users do the same thing
I think that it would be valuable to link to the guidelines in the How to create your own vocabulary page? I'd be happy to open a PR for this (after your PR is merged), it'd be nice to contribute something
I think that the naming convention is a good point, I have on my TODO list to change this property anyway so that it's defined as a collection on the mudchar:Account
rather than a text string
Thanks for pointing out the Obelisk vocabulary Turtle - that was written before our guidelines, and needs quite a lot of tidying up (which we're doing right away!). But we also need to move it from it's current location too (as it's on the author's personal web server right now), but we'll get to that later. Yeah, that's a good idea to link to the guidelines from the How-to page - feel free to create that PR when the guidelines are out of draft! Thanks again for the feedback - it's been really helpful :) !
Hello! In the page of the tutorial on this (https://solidproject.org/developers/vocabularies/code/quickstart), it mentions that the
lit-artifact-generator
will be publicly available "soon".. has a date been set when I can get my hands on this? :-)