Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

annotations of material or course according to (Bio)schemas specification #118

Open
abotzki opened this issue Feb 17, 2023 · 12 comments
Open

Comments

@abotzki
Copy link

abotzki commented Feb 17, 2023

Hi,

as discussed some time ago, I send you two example of an annotation of training material (and courses = events) which we use:

example Learning material

Following this specification, the TeSS team extracts relevant data from the registry system that can be transferred to the JSON-LD object in the HTML header of the individual material page.

In an ideal scenario, the original material page has also an annotation.

For events, we use Course/CourseInstance: see example Course/CourseInstance

The doc: https://bioschemas.org/profiles/

Please reach out if you have some question on this matter.

@andre-dietrich
Copy link
Member

@abotzki Thanks a lot, I will try this out and ask my local chat-gpt and @SebastianZug for help and come back to you ... I will try to add basic functionality into our exporter, that shall be afterwards linked to a course document .... my current tool of choice for handling linked data is comunica of would you suggest another one ;-)

@abotzki
Copy link
Author

abotzki commented Feb 18, 2023 via email

@andre-dietrich
Copy link
Member

Hi @abotzki , for testing-purposes I added a new export format to the exporter-tool:

https://www.npmjs.com/package/@liascript/exporter#rdf--json-ld

It generates a simple jsonld-file based on the LiaScript meta-information ... I used Course instead of EducationalResource, but this can be fixed via --rdf-type.

At the moment I am not sure how to add additional information, maybe this could be included into the header-comment or by adding a special command-option to the exporter, that reads in a template-jsonld and adds the data from the Readme. What do you think?

You can also try out the exporter with URLs as --input | -i parameter and --rdf-preview ...

@abotzki
Copy link
Author

abotzki commented Mar 3, 2023

Hi @andre-dietrich thanks for all this work. I did not yet run it but I will soon.

Just for inspiration how e.g. the Galaxy training network approaches this:

Have a look at this training material:
https://raw.githubusercontent.com/galaxyproject/training-material/main/topics/single-cell/tutorials/scrna-raceid/tutorial.md

In the md file is also a yml header with some of the relevant information.

Apart from this, the information for the JSON-LD object for each course or learningResource is extracted and merged from various sources and put into the header of the rendered HTML page.

see code here:
https://github.com/galaxyproject/training-material/blob/main/_plugins/jekyll-jsonld.rb

So, obviously the header-comment is an option as well as the suggestion to merge on export with other information from a template-jsonld file.

Importantly, I was wondering whether you could make this JSON-LD object also part of the HTML header of the individual material next to have it separately stored as a file?

@andre-dietrich
Copy link
Member

Yes, that could be added to a web and project output generated by the exporter tool ... I will have a look at the example, thank you for that ... The --rdf-template option is locally included, I need to run a few experiments, if this works like expected and then publish it ...

@andre-dietrich
Copy link
Member

@abotzki ... Hi, I just published the update with the --rdf-template option ... with this you can us a file or http-reference of a json-ld file, only fields that are not defined within the template will be added by the exporter. keywords are an exception to this rule and will be added, if they have been defined within the template.

However, I wanted to generate also a more complex json and add this to the project-export

https://tubaf-ifi-liascript.github.io

You can see the output in action here:

https://tubaf-ifi-liascript.github.io/

this will require a grouping of courses on two levels, since it is also possible to generate sub-collections, that are presented their own box with smaller cards.

However, I am at the moment not sure, which format fits best. I think of ItemList, which may contain another ItemList for sub-collections of courses... Or, do you know or maybe use another structure?

@abotzki
Copy link
Author

abotzki commented Mar 8, 2023

@andre-dietrich Thanks a lot for your work. I'll try it out soon.

Regarding the overview of the project export an dhow you organise this is an open question in our community as well.

We tend to think about learning paths as well as collections/sub-collections. You can imagine that this is not so easy to get the head around it and keep it simple in a presentation format.

For the time being, we have the concept of a simple collection which is just a list.

But in our future activitites within ELIXIR, we would like to include learning paths as well. This will be more difficult since you are linking "modules" (e.g. items of the list) with each other.
For instance, the LearningResource definition has a hasPart or isPartOf property which is an initial starting point to create links between objects of LearningResources. How this overall picture looks is not yet discussed.

@abotzki
Copy link
Author

abotzki commented Mar 17, 2023

I just found this tool: https://linkml.io/linkml/ - not sure whether is useful compared to comunica.

@andre-dietrich
Copy link
Member

Hello @abotzki ... so far the exporter can do a pretty simple jsonld generation. We added this into the project generation that generates nice little and configurable overview - pages based on a yaml file. You can see an example project here:

https://github.com/TUBAF-IfI-LiaScript/TUBAF-IfI-LiaScript.github.io

The result is a website:

https://tubaf-ifi-liascript.github.io/

In this example only the course-overviews contain json-ld

https://tubaf-ifi-liascript.github.io/softwareentwicklung.html

It can be checked here ...

https://validator.schema.org/#url=https%3A%2F%2Ftubaf-ifi-liascript.github.io%2Fsoftwareentwicklung.html

From your experience, what would be a next step in order to support querying of multiple educational resources (JSONLD) or how do you use your generated data?

Kind regards

@abotzki
Copy link
Author

abotzki commented May 10, 2023

@andre-dietrich We did not yet discuss the querying of multiple educational resources. In contrast, I like you using ItemList for the collection of courses.
It has been included in the discussions in the ELIXIR All Hands meeting which takes place beginning of June 2023.

@abotzki
Copy link
Author

abotzki commented Jun 3, 2023

@andre-dietrich I see that for collections of learning materials this definition instead of an ItemList will most probably be selected: https://schema.org/Collection - still to be confirmed. Furthermore, discussions about learning paths will be started and this will take time.

@andre-dietrich
Copy link
Member

@abotzki thanks for the info, I will have a look at it ...

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

No branches or pull requests

2 participants