elsevierlabs-os / linked-data

Linked Data Extension for VSCode
https://marketplace.visualstudio.com/items?itemName=Elsevier.linked-data
Other
30 stars 4 forks source link

[Feature Request]: N3 Support using vscode-extension-n3 #9

Closed jeswr closed 7 months ago

jeswr commented 1 year ago

As I raised in https://github.com/william-vw/vscode-extension-n3/issues/1; it would be great of this extension could support Notation3 syntax by using the https://github.com/william-vw/vscode-extension-n3 extension.

RinkeHoekstra commented 1 year ago

I had a quick look at the n3 extension, interesting stuff!

What features would you like this extension to support? I don't immediately have a good idea of how useful it would be to convert from n3 to other formats, as the rules are not supported in any of the others. Also, visualising rules as a graph is tricky.

Ideas welcome :-)

jeswr commented 1 year ago

What features would you like this extension to support?

The main one would be syntax highlighting so you get that out of the box when installing this extension.

I don't immediately have a good idea of how useful it would be to convert from n3 to other formats, as the rules are not supported in any of the others.

The way libraries like N3.js treat this is by interpreting { :a :b :c } => { :d :e :f }

as the following n-quads

@prefix log: <http://www.w3.org/2000/10/swap/log#> .

:a :b :c _:b0 .
:a :b :c _:b1 .
_:b0 log:implies _:b1 .

There are a bunch of edge cases where N3 doesn't interoperate with generalized RDF (e.g. how do you express the empty graph in an example like this); which I would like to see resolved at the N3 standard level in the long term, but I don't think this is something that needs to be worried about in this extension, it can just use the existing behavior of N3.js (I'm currently working to make it comply with the latest version of the N3 standard btw https://github.com/rdfjs/N3.js/pull/341).

RinkeHoekstra commented 7 months ago

@jeswr I still like your N3 extension (though I'm not using it myself), but wouldn't anyone who wants this support just install your extension?

I can't think of anything that my extension would offer above and beyond yours. Happy to be proven wrong though!