Skip to content

Conversation

@lecoqlibre
Copy link
Contributor

Added details into the Semantizer demo part.

Added details into the Semantizer demo part.
@michielbdejong michielbdejong merged commit 59d2801 into solid:meeting-2024-09-11 Sep 12, 2024
Copy link
Contributor

@TallTed TallTed left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can you make a PR with these changes, or should I?

(Note -- This is yet more evidence in favor of waiting at least one business day after submission of a PR, before merging it.)

* MLG: First we can see the React-Admin app and later the code. We can see in the network console of the browser that the app is fetching my WebId, then the extended profile, then the enterprise and its extended profile where it finds links to the catalogs. On the interface of the app, we can see a list of catalogs. We can click on a catalog to see the contained catalog-items. In the code it is really simple, we load the documents in the order explained above.
* MLG: Once I fetch/load the first dataset (profile), I can use mixins. Mixins use RDF/JS dataset. With mixin I have access to methods I can call on the dataset to access to data in an easy way. With only few lines I can easily query the pod. I can also show you another example. A bit of code I'm working on for Startin'Blox which shows the usage of the TypeIndex mixin: I can get the TypeIndex by simply call the `getPublicTypeIndex` method. Then I can directly access to a registration instance with the dedicated method `getRegistratedInstanceForClass`.
### Work in Progress: Semantizer library and a React-Admin app demo
* Maxime Lecoq-Gaillard (lecoqlibre): I would like to make a quick demo of Semantizer, a TypeScript library I'm working on to make Solid apps (it could be used to create non-Solid apps too). Semantizer is based on the RDFJS interfaces and use mixins. Users can define their own mixins very easily to add methods to manipulate their data. Currently some mixins already exist like the WebId, the SolidWebId and the TypeIndex ones. I will also add a Comunica mixin soon to run SPARQL queries directly on the data.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
* Maxime Lecoq-Gaillard (lecoqlibre): I would like to make a quick demo of Semantizer, a TypeScript library I'm working on to make Solid apps (it could be used to create non-Solid apps too). Semantizer is based on the RDFJS interfaces and use mixins. Users can define their own mixins very easily to add methods to manipulate their data. Currently some mixins already exist like the WebId, the SolidWebId and the TypeIndex ones. I will also add a Comunica mixin soon to run SPARQL queries directly on the data.
* Maxime Lecoq-Gaillard (lecoqlibre): I would like to make a quick demo of Semantizer, a TypeScript library I'm working on to make Solid apps. (It could be used to create non-Solid apps, too.) Semantizer is based on the RDFJS interfaces and uses mixins. Users can define their own mixins very easily to add methods to manipulate their data. Some mixins already exist, like the WebId, SolidWebId and TypeIndex ones. I will also add a Comunica mixin soon, to run SPARQL queries directly on the data.

* MLG: Once I fetch/load the first dataset (profile), I can use mixins. Mixins use RDF/JS dataset. With mixin I have access to methods I can call on the dataset to access to data in an easy way. With only few lines I can easily query the pod. I can also show you another example. A bit of code I'm working on for Startin'Blox which shows the usage of the TypeIndex mixin: I can get the TypeIndex by simply call the `getPublicTypeIndex` method. Then I can directly access to a registration instance with the dedicated method `getRegistratedInstanceForClass`.
### Work in Progress: Semantizer library and a React-Admin app demo
* Maxime Lecoq-Gaillard (lecoqlibre): I would like to make a quick demo of Semantizer, a TypeScript library I'm working on to make Solid apps (it could be used to create non-Solid apps too). Semantizer is based on the RDFJS interfaces and use mixins. Users can define their own mixins very easily to add methods to manipulate their data. Currently some mixins already exist like the WebId, the SolidWebId and the TypeIndex ones. I will also add a Comunica mixin soon to run SPARQL queries directly on the data.
* MLG: The demo will be in the domain of agriculture. Let's starts with taking a look at the datasets in my POD. All starts from the WebId profile of a person (representing a food producer). In its profile, the producer is affiliated to some enterprises. Enterprises have their own profile in which they list catalogs which are linked to some products (catalog items). The demo will show the catalogs of the producer being fetched from its WebId. The demo will also make use of extended profiles (linked in the person and the enterprise profiles).
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
* MLG: The demo will be in the domain of agriculture. Let's starts with taking a look at the datasets in my POD. All starts from the WebId profile of a person (representing a food producer). In its profile, the producer is affiliated to some enterprises. Enterprises have their own profile in which they list catalogs which are linked to some products (catalog items). The demo will show the catalogs of the producer being fetched from its WebId. The demo will also make use of extended profiles (linked in the person and the enterprise profiles).
* MLG: The demo will be in the domain of agriculture. Let's start by taking a look at the datasets in my pod. All start from the WebId profile of a person (representing a food producer). In its profile, the producer is affiliated with some enterprises. Enterprises have their own profiles, in which they list catalogs which are linked to some products (catalog items). The demo will show the catalogs of the producer being fetched from its WebId. The demo will also make use of extended profiles (linked in the person and enterprise profiles).

Comment on lines +50 to +51
* MLG: First we can see the React-Admin app and later the code. We can see in the network console of the browser that the app is fetching my WebId, then the extended profile, then the enterprise and its extended profile where it finds links to the catalogs. On the interface of the app, we can see the list of catalogs of the producer. We can click on a catalog to see the contained catalog-items. In the code it is really simple, we load the documents (datasets) in the order explained above.
* MLG: Once I fetch/load the first dataset (profile), I can use mixins. With mixin I have access to methods I can call on the dataset to access to data in an easy way. With only few lines I can easily query the pod. I can also show you another example. A bit of code I'm working on for Startin'Blox which shows the usage of the TypeIndex mixin: I can get the TypeIndex by simply call the `getPublicTypeIndex` method. Then I can directly access to a registration instance with the dedicated method `getRegistratedInstanceForClass`.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
* MLG: First we can see the React-Admin app and later the code. We can see in the network console of the browser that the app is fetching my WebId, then the extended profile, then the enterprise and its extended profile where it finds links to the catalogs. On the interface of the app, we can see the list of catalogs of the producer. We can click on a catalog to see the contained catalog-items. In the code it is really simple, we load the documents (datasets) in the order explained above.
* MLG: Once I fetch/load the first dataset (profile), I can use mixins. With mixin I have access to methods I can call on the dataset to access to data in an easy way. With only few lines I can easily query the pod. I can also show you another example. A bit of code I'm working on for Startin'Blox which shows the usage of the TypeIndex mixin: I can get the TypeIndex by simply call the `getPublicTypeIndex` method. Then I can directly access to a registration instance with the dedicated method `getRegistratedInstanceForClass`.
* MLG: First, we can see the React-Admin app, and later the code. We can see in the network console of the browser that the app is fetching my WebId, then the extended profile, then the enterprise and its extended profile, where it finds links to the catalogs. On the interface of the app, we can see the list of catalogs of the producer. We can click on a catalog to see the contained catalog-items. In the code, it is really simple; we load the documents (datasets) in the order explained above.
* MLG: Once I fetch/load the first dataset (profile), I can use mixins. With mixins, I have access to methods I can call on the dataset to access to data in an easy way. With only few lines, I can easily query the pod. I can also show you another example. A bit of code I'm working on for Startin'Blox which shows the usage of the TypeIndex mixin: I can get the TypeIndex by simply calling the `getPublicTypeIndex` method. Then I can directly access a registration instance with the dedicated method `getRegistratedInstanceForClass`.

Comment on lines +53 to +55
* MLG: Mixin are very easy to define. It is just a mixin function in TS in which you define some methods you want to add to your dataset. You also have to export a factory to create and load instances of your mixin (an helper is available).
* eP: Do you have an example of using multiple mixins on the same resource?
* MLG: Yes, for instance the SolidWebID mixin uses the WebIDMixin and the DatasetMixin. The DatasetMixin is the base mixin which adds the URI of the dataset.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
* MLG: Mixin are very easy to define. It is just a mixin function in TS in which you define some methods you want to add to your dataset. You also have to export a factory to create and load instances of your mixin (an helper is available).
* eP: Do you have an example of using multiple mixins on the same resource?
* MLG: Yes, for instance the SolidWebID mixin uses the WebIDMixin and the DatasetMixin. The DatasetMixin is the base mixin which adds the URI of the dataset.
* MLG: Mixins are very easy to define. It is just a mixin function in TS, in which you define some methods you want to add to your dataset. You also have to export a factory to create and load instances of your mixin. (A helper is available.)
* eP: Do you have an example of using multiple mixins on the same resource?
* MLG: Yes. For instance, the SolidWebID mixin uses the WebIDMixin and the DatasetMixin. The DatasetMixin is the base mixin which adds the URI of the dataset.

* MLG: Yes, for instance the SolidWebID mixin uses the WebIDMixin and the DatasetMixin. The DatasetMixin is the base mixin which adds the URI of the dataset.
* eP: Could you use WebID mixin and Vcard mixin together for example?
* MLG: Yes, mixins can be mixed like wanted.
* MLG: Yes, mixins can be mixed like wanted to add an unlimited number of methods to manipulate the data.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
* MLG: Yes, mixins can be mixed like wanted to add an unlimited number of methods to manipulate the data.
* MLG: Yes, mixins can be mixed like you wanted, to add an unlimited number of methods to manipulate the data.

* eP: How do you compare it to LDO and the class based approach used by Noel?
* MLG: LDO only defines properties to access underlying data (defined from a shape). If you want to add methods to LDO objects you have to do it by yourself. Semantizer can be used to do so. Semantizer adds mixin, which supports RDFJS datasets and all the RDF data model (blank nodes also).
* MLG: Semantizer can be used to add some methods to LDO objects. For example to lint, add logic or compute some values.
* MLG: LDO only defines properties to access underlying data (defined from a shape). If you want to add methods to LDO objects you have to do it by yourself. Semantizer can be used to do so as it can work with any RDFJS compatible dataset. Semantizer can be used to add some methods to LDO objects for example to lint, add logic or compute some values. Semantizer also supports blank nodes (which the lib of Noël does not).
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
* MLG: LDO only defines properties to access underlying data (defined from a shape). If you want to add methods to LDO objects you have to do it by yourself. Semantizer can be used to do so as it can work with any RDFJS compatible dataset. Semantizer can be used to add some methods to LDO objects for example to lint, add logic or compute some values. Semantizer also supports blank nodes (which the lib of Noël does not).
* MLG: LDO only defines properties to access underlying data (defined from a shape). If you want to add methods to LDO objects, you have to do it by yourself. Semantizer can be used to do so, as it can work with any RDFJS compatible dataset. Semantizer can be used to add some methods to LDO objects; for example, to lint, add logic, or compute some values. Semantizer also supports blank nodes (which the lib of Noël does not).

@elf-pavlik
Copy link
Member

This was just a PR on a PR branch. The original PR is still open #682

@michielbdejong
Copy link
Contributor

Oh, @lecoqlibre can you reopen this PR and commit Ted's suggestions? I think only you can do that.

michielbdejong added a commit that referenced this pull request Sep 23, 2024
* Meeting notes 2024-09-11

* Update 2024-09-11.md (#683)

Added details into the Semantizer demo part.

---------

Co-authored-by: Maxime Lecoq <[email protected]>
@michielbdejong
Copy link
Contributor

I merged the main PR now so if you still want these suggestions processed, you can rebase this PR on solid:main

@TallTed
Copy link
Contributor

TallTed commented Sep 24, 2024

I'll do something about another PR. sighs

@VirginiaBalseiro
Copy link
Member

@TallTed I just wanted to take a moment to express my gratitude for all your contributions over the years to improve the quality of our meeting minutes. Your attention to detail is really appreciated, and it’s unfortunate that your changes couldn't be merged directly.
If you need any assistance with a new PR or if there's anything I can do, please let me know. Thanks again for your hard work!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants