Hello,

> 1. why defining a new "DSL" to describe the model metadata? what's with
existing things like json schema. defining a completely new DSL often has
the risk of not getting it "right" in the first place.

You still need the runtime API. In this case DataMode.class, Property.class
and other models. Even if you define things using JSON Schema, you don't
want to use JSON API (e.g. JSONObject.class) there.

So the model API itself is just another Java interface leveraging OSGi.
Take DataModel.class. One can define a data model definition by registering
a [PropertyProvider] component, and implement it by reading the information
from JSON. You can also imagine that implementing it using Java annotation
makes sense as well.

Cheers,
Christanto

[PropertyProvider]
https://github.com/christanto/sling-whiteboard/blob/08fd3637c4045470e2b2ba8f8d9bbf4fcf82c211/modeling/src/main/java/org/apache/sling/modeling/data/spi/PropertyProvider.java


On Tue, Jan 8, 2019 at 6:44 PM Stefan Seifert <sseif...@pro-vision.de>
wrote:

> hello christanto.
>
> thanks for bringing this up! some first questions after a first read:
>
> 1. why defining a new "DSL" to describe the model metadata? what's with
> existing things like json schema. defining a completely new DSL often has
> the risk of not getting it "right" in the first place.
>
> 2. do you plan to support only a single resource/node and it's properties.
> what's with sub tree structures, that are supported by JCR CND definitions?
> more complex data models like forms are unlikely to be represented by a
> single resource. or maybe that is already covered with the property
> handlers although the name does not indicate it.
>
> 3. one of the reasons why sling is why it is (without an explicit modeling
> capability) is the rule #1 of david's model "Data First, Structure Later.
> Maybe." [1]. this was stated a very long time ago. would be nice if you can
> add a reference to your explainer page to it as well and explain why you
> think different nowadays (i think there are good reasons for it, but it
> always depends on the use cases).
>
> 4. the name "Models" can be mixed up with "Sling Models" [2] which points
> somewhat into the same direction but is currently based on different
> concepts and is already used much. but i suppose this can be sorted out
> later to decide if this new approach can be "Sling Models 2.0" or the new
> things should get a different name (like Type System). still it would make
> sense to also add a reference to sling models to the explainer.
>
> 5. you describe it should be possible to derive data models from JCR CND
> definitions. do you think this should be the major use case? JCR CND
> definitions are quite out-of-fashion nowadays, and used more for historical
> reasons (or for performance optimizations because oak indexes are based on
> them). the tooling around them is not good (e.g. difficult to
> update/replace them in a running system).
>
> 6. you describe some "other models" like FormModel, ActionsModel which
> sound like hypermedia support. i do not fully understand how hypermedia
> support fits into the other parts you describe which primarily describe the
> data model and not the actions for them. where does this hypermedia
> metadata come from?
>
> stefan
>
> [1] https://wiki.apache.org/jackrabbit/DavidsModel
> [2] https://sling.apache.org/documentation/bundles/models.html
>
>
>
> >-----Original Message-----
> >From: Christanto Leonardo [mailto:christanto.leona...@gmail.com]
> >Sent: Tuesday, January 8, 2019 4:03 AM
> >To: dev@sling.apache.org
> >Subject: Re: Sling Type System: started a wiki page for concepts, ideas,
> >motivation
> >
> >Hello,
> >
> >I am currently working on the proposal to introduce the concept of
> modeling
> >in Sling. See it at <
> >https://github.com/christanto/sling-whiteboard/tree/master/modeling>.
> >One is especially encouraged to read the explainer at <
> >https://github.com/christanto/sling-
> >whiteboard/blob/master/modeling/docs/explainer.md
> >>.
> >
> >My hope is that the Sling Modeling Framework can provide the ability to
> >model many concepts in the application, starting with the typing system of
> >the resource (i.e. the resource type definition) as the lowest layer.
> >
> >Please let me know what you think. I plan to continue developing this
> >proposal.
> >
> >Cheers,
> >Christanto
> >
> >On 2018/10/02 11:59:08, Bertrand Delacretaz <b...@apache.org> wrote:
> >> Hi,>
> >>
> >> Recent discussions with a number of people from the Sling community>
> >> [1] have helped clarify my thoughts about this, I have started a wiki>
> >> page at
> >
> https://cwiki.apache.org/confluence/display/SLING/Sling+Type+System%3A+moti
> >vation+and+requirements>
> >
> >> and feedback is welcome, on that page or here.>
> >>
> >> Roughly, the goal is to create a Sling Type System that defines much>
> >> more precisely what the various Resource Types can contain, how they>
> >> work together, etc. with the goal of generating self-describing>
> >> interfaces.>
> >>
> >> Let's see where this leads, it's just rough ideas so far but it feels>
> >> like a useful unifying concept for Sling.>
> >>
> >> -Bertrand>
> >>
> >> [1] along with reading "a conversation with Alan Kay, creator of>
> >> Smalltalk" - https://queue.acm.org/detail.cfm?id=1039523>
> >>
>

Reply via email to