Deep QCMagritte tutorial?

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
5 messages Options
Reply | Threaded
Open this post in threaded view
|

Deep QCMagritte tutorial?

Esteban A. Maringolo
Hi all,

I'm adding some features on top of my existing Magritte metamodel descriptions, and I found some of the features I want to add to be already there (or so it seems, QCQuery for instance), but I don't understand them just by looking at the code.

Does anybody have a video or something other than the Dry-Ing Magritte slides? (http://www.slideshare.net/esug/drying-magritte)

I don't want to build what's already there or might be extended... without exceeding my customer deadlines. :)

Regards!




Reply | Threaded
Open this post in threaded view
|

Re: Deep QCMagritte tutorial?

DiegoLont
Hi Esteban,

I am sorry there is no more reading material then the video. But you can ask questions and I will do my best to answer them. And add the answers somewhere in the documentation.

Because I more or less have the same problem: I want to expose the work I have done, so people can extend on it. But I do not always have the time to properly document them.

I have made it possible to search the model based on the queries, and build some components with them. If you install QCMagritte using the configuration, there is also a demo that shows part of the functionality QCMagritte adds. I do not believe I have added the search component in the demo yet … I have to check. What exactly are you looking for?

Regards,
Diego

On 18 Feb 2014, at 15:24, Esteban A. Maringolo <[hidden email]> wrote:

> Hi all,
>
> I'm adding some features on top of my existing Magritte metamodel
> descriptions, and I found some of the features I want to add to be already
> there (or so it seems, QCQuery for instance), but I don't understand them
> just by looking at the code.
>
> Does anybody have a video or something other than the Dry-Ing Magritte
> slides? (http://www.slideshare.net/esug/drying-magritte)
>
> I don't want to build what's already there or might be extended... without
> exceeding my customer deadlines. :)
>
> Regards!
>
>
>
>
>
>
>
>
> --
> View this message in context: http://forum.world.st/Deep-QCMagritte-tutorial-tp4744612.html
> Sent from the Magritte, Pier and Related Tools mailing list archive at Nabble.com.
> _______________________________________________
> Magritte, Pier and Related Tools ...
> https://www.iam.unibe.ch/mailman/listinfo/smallwiki


_______________________________________________
Magritte, Pier and Related Tools ...
https://www.iam.unibe.ch/mailman/listinfo/smallwiki
Reply | Threaded
Open this post in threaded view
|

Re: Deep QCMagritte tutorial?

Esteban A. Maringolo
1. What I have today is a result set (a collection of my domain objects) which can be managed independently of what objects I have (it is, different domain classes). To solve this I use Magritte Descriptions to define my metamodel.

2. What I need is a way to add "behavior" to such data set, like filtering (elements whitin certain group, state, etc.), value grouping/aggregation..., sorting, custom columns, etc.

It is... basic result set management plus pivot table behavior...

3. What I would like is to have the query described somehow, in order to translate it to a GLORP query to avoid loading a whole table to fetch only a few rows. These days I can do that, but I want to avoid it.

We did this in my previous job on top of our own metamodel system (very alike to Magritte), and I'm willing to code it again on top of Magritte if needed. But as always... we need to deliver, and the time is scarce...

Regards!



Reply | Threaded
Open this post in threaded view
|

Re: Deep QCMagritte tutorial?

DiegoLont
Hi Esteban,

The idea of a QCQuery is to search in a dataset, arbitrarily how it is organised. It does so by recursively visiting the magritte description of the objects, and has protection against loops. For instance:
        if you have parties in your model, and each party has addresses (telephone, email, post): you can pass your model to your query and it searches through all parties and addresses to find things that match.

The query itself is build up in 3 different parts:

The select. This can be a simple string (the string value of any field matches: ’06410’, a conditional string (‘name’ = *’die’*), or a complex query that is an and/or of possible selects. The select could easily be extended with extra things, with the only requirement that they implement the “#matches:” (or “matches:description: if more control is needed).

The target and search path. That together determine the part of the model that is searched.

The results description. The result set itself generates a magritte description. When nothing specified in the results description it returns the magritte description of the common class of the results. You can add an extra filter here, that you only want results of a certain type, or add columns to give additional calculated fields in the results.

My query does not sort and/or group and has no translation into SQL. So I have the feeling there is a mismatch here. As my need was to search the objects that are loaded in the image, and allow the user to search through them. So it does have a string representation the is human readable.

Regards,
Diego


> 1. What I have today is a result set (a collection of my domain objects)
> which can be managed independently of what objects I have (it is, different
> domain classes). To solve this I use Magritte Descriptions to define my
> metamodel.
>
> 2. What I need is a way to add "behavior" to such data set, like filtering
> (elements whitin certain group, state, etc.), value grouping/aggregation...,
> sorting, custom columns, etc.
>
> It is... basic result set management plus pivot table behavior...
>
> 3. What I would like is to have the query described somehow, in order to
> translate it to a GLORP query to avoid loading a whole table to fetch only a
> few rows. These days I can do that, but I want to avoid it.
>
> We did this in my previous job on top of our own metamodel system (very
> alike to Magritte), and I'm willing to code it again on top of Magritte if
> needed. But as always... we need to deliver, and the time is scarce...
>
> Regards!
>
>
> --
> View this message in context: http://forum.world.st/Deep-QCMagritte-tutorial-tp4744612p4744695.html
> Sent from the Magritte, Pier and Related Tools mailing list archive at Nabble.com.
> _______________________________________________
> Magritte, Pier and Related Tools ...
> https://www.iam.unibe.ch/mailman/listinfo/smallwiki


_______________________________________________
Magritte, Pier and Related Tools ...
https://www.iam.unibe.ch/mailman/listinfo/smallwiki
Reply | Threaded
Open this post in threaded view
|

Re: Deep QCMagritte tutorial?

Esteban A. Maringolo
Diego:

In the ConfigurationOfQCMagritte some class dependencies are missing:
QCQueryRunVisitor and QCQueryRunVisitor. Which are in the package
QC-Magritte-Visitor.

Somehow it looks like what I want to implement. But I still can't get
my head around as to adapt/extend it to my own needs.

Regards,

Esteban A. Maringolo


2014-02-19 16:01 GMT-03:00 DiegoLont [via Smalltalk]
<[hidden email]>:

> Hi Esteban,
>
> The idea of a QCQuery is to search in a dataset, arbitrarily how it is
> organised. It does so by recursively visiting the magritte description of
> the objects, and has protection against loops. For instance:
>         if you have parties in your model, and each party has addresses
> (telephone, email, post): you can pass your model to your query and it
> searches through all parties and addresses to find things that match.
>
> The query itself is build up in 3 different parts:
>
> The select. This can be a simple string (the string value of any field
> matches: '06410', a conditional string ('name' = *'die'*), or a complex
> query that is an and/or of possible selects. The select could easily be
> extended with extra things, with the only requirement that they implement
> the "#matches:" (or "matches:description: if more control is needed).
>
> The target and search path. That together determine the part of the model
> that is searched.
>
> The results description. The result set itself generates a magritte
> description. When nothing specified in the results description it returns
> the magritte description of the common class of the results. You can add an
> extra filter here, that you only want results of a certain type, or add
> columns to give additional calculated fields in the results.
>
> My query does not sort and/or group and has no translation into SQL. So I
> have the feeling there is a mismatch here. As my need was to search the
> objects that are loaded in the image, and allow the user to search through
> them. So it does have a string representation the is human readable.
>
> Regards,
> Diego
>
>
>> 1. What I have today is a result set (a collection of my domain objects)
>> which can be managed independently of what objects I have (it is,
>> different
>> domain classes). To solve this I use Magritte Descriptions to define my
>> metamodel.
>>
>> 2. What I need is a way to add "behavior" to such data set, like filtering
>> (elements whitin certain group, state, etc.), value
>> grouping/aggregation...,
>> sorting, custom columns, etc.
>>
>> It is... basic result set management plus pivot table behavior...
>>
>> 3. What I would like is to have the query described somehow, in order to
>> translate it to a GLORP query to avoid loading a whole table to fetch only
>> a
>> few rows. These days I can do that, but I want to avoid it.
>>
>> We did this in my previous job on top of our own metamodel system (very
>> alike to Magritte), and I'm willing to code it again on top of Magritte if
>> needed. But as always... we need to deliver, and the time is scarce...
>>
>> Regards!
>>
>>
>> --
>> View this message in context:
>> http://forum.world.st/Deep-QCMagritte-tutorial-tp4744612p4744695.html
>> Sent from the Magritte, Pier and Related Tools mailing list archive at
>> Nabble.com.
>> _______________________________________________
>> Magritte, Pier and Related Tools ...
>> https://www.iam.unibe.ch/mailman/listinfo/smallwiki
>
>
> _______________________________________________
> Magritte, Pier and Related Tools ...
> https://www.iam.unibe.ch/mailman/listinfo/smallwiki
>
>
> ________________________________
> If you reply to this email, your message will be added to the discussion
> below:
> http://forum.world.st/Deep-QCMagritte-tutorial-tp4744612p4744943.html
> To start a new topic under Magritte, Pier and Related Tools, email
> [hidden email]
> To unsubscribe from Magritte, Pier and Related Tools, click here.
> NAML