ComPlat / ChemistryKnowledgeBase

a project based on semantic media wiki - enriched with chemistry toolkits
1 stars 0 forks source link

Returning JSON-LD for single pages #91

Closed IllDepence closed 1 year ago

IllDepence commented 1 year ago

Open question:

Would it be possible to return single pages (for now especially interesting for molecule pages) as JSON-LD?

I.e. identical to using the Special:ExportRDF and entering something like Molecule:100629, but for the case that a client requests http://chemwiki.scc.kit.edu/main/mediawiki/Molecule:100629 with an Accept: application/ld+json header.

kkthek commented 1 year ago

As far as I see, there is only RDF and turtle export for Special:ExportRDF available. Do you any source for JSON-LD together with Mediawiki? @IllDepence

CNChem commented 1 year ago

https://professional.wiki/en/articles/semantic-mediawiki-320 This is what Nicole found the other day

emwiemaikel commented 1 year ago

Every page with semantic data has an RDF icon in the top right corner, which leads to the RDF/XML representation of this page

alternatively a more concise version comes in turtle format

Both are well established SemanticWeb/Linked Data formats. To my knowledge SMW does not support JSON-LD

It is possible that there are extensions out there that support JSON-LD out of the box, but we do not have experience with them. If we should look into this task I would investigate https://m.mediawiki.org/wiki/Extension:PageProperties and see if we can seamlessly integrate it. Unfortunately this extension has many features :/

kkthek commented 1 year ago

I checked PageProperties extension. It can add JSON-LD in the wikitext. This is not really what we want. Besides, it adds lots of other features which we dont need/want.

I suggest to add an JSON-LD export feature. This should not be too much effort. https://de.wikipedia.org/wiki/JSON-LD

Edit: checked SMWExporter class. It provides all data and also resolves the URIs correctly (Imported from). We could write a serializer for JSON-LD

kkthek commented 1 year ago

I added a new JSON-LD endpoint: Example