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

update tool-analysis.md re SOML #1982

Open
VladimirAlexiev opened this issue Mar 6, 2024 · 5 comments
Open

update tool-analysis.md re SOML #1982

VladimirAlexiev opened this issue Mar 6, 2024 · 5 comments
Labels
Semantics Semantics-related issues Tooling topics around tooling for the specification

Comments

@VladimirAlexiev
Copy link

Hi @mahdanoura!

I was pointed to https://github.com/w3c/wot-thing-description/blob/main/toolchain/tool-analysis.md by egekorkan.
I guess your tool selection is completed (I see elsewhere "STTL" and that's a nice tool; I use its newer incarnation SPARLQ Generate).
So this issue is probably unimportant and petty.

But I have a couple of clarifications about SOML (that's https://platform.ontotext.com/semantic-objects/soml/index.html, right?)

  • "Language" is java
  • "Type/Type[] support": we have it, that's max: 1 (which is default) vs any bigger max. This distinction is crucial for GraphQL
  • "Unknown object keys": what is that?
  • "SHACL Shapes Generation": we have that. The SOML model is used to generate GraphQL mutations, but also SHACL shapes that are used if you load RDF data in bulk (not through mutations)
  • "Diagram Generation": see
@github-actions github-actions bot added the needs-triage Automatically added to new issues. TF should triage them with proper labels label Mar 6, 2024
@egekorkan egekorkan added Semantics Semantics-related issues Tooling topics around tooling for the specification and removed needs-triage Automatically added to new issues. TF should triage them with proper labels labels Mar 6, 2024
@egekorkan
Copy link
Contributor

"Unknown object keys": what is that?

That is the case where you have an object but the information model doesn't define what they should be. In TDs, you have properties, actions and events objects but each TD picks the terms that suits them. So in the example below, status property can be different in each TD:

"properties": {
        "status": {
            "type": "string",
            "forms": [{"href": "https://mylamp.example.com/status"}]
        }
    },

@VladimirAlexiev
Copy link
Author

@egekorkan then SOML supports this: https://platform.ontotext.com/semantic-objects/soml/properties.html

(you can) Change rdfProp. This allows different predicates to be queried in a subclass.

As an example, you can have this:

objects:
  Thing:
    props:
      status:
  MyThing:
    inherits: Thing
    props:
      status: {rdfProp: https://mything.example.com/status}
  YourThing:
    inherits: Thing
    props:
      status: {rdfProp: https://yourthing.example.com/status}

Then you can use this GraphQL query

query ThingsWithStatus {
  thing {status}
}

@egekorkan
Copy link
Contributor

I think we are not in the same scope. The different tools we have analyzed will be only used by the specification group and the TD writers (people, tools, etc.) will still use plain JSON or JSON-LD. So we need to specify our information model with something like SOML, LinkML etc. and generate a bunch of stuff (Ontology, HTML spec, JSON Schema) to give to different communities.

@VladimirAlexiev
Copy link
Author

What I'm saying is that SOML supports the 5 bullets in the issue description.

  • I don't claim that SOML is suitable for your effort: there may be a million reasons why it's not.
  • But the comparison table says it doesn't have these 5 features: please correct it.

@egekorkan
Copy link
Contributor

Thanks :) I will check with @mahdanoura when she is available again in a couple of weeks

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Semantics Semantics-related issues Tooling topics around tooling for the specification
Projects
None yet
Development

No branches or pull requests

2 participants