Git Product home page Git Product logo

Comments (8)

tombaker avatar tombaker commented on August 30, 2024

@sroertgen By "constraints", do you specifically mean the integrity conditions defined in the spec, or do you want to check SKOS graphs for conformance with other quality criteria, as per Skosify or qSKOS?

from skohub-shapes.

sroertgen avatar sroertgen commented on August 30, 2024

Hello @tombaker ,

Yes, I thought about checking the integrity conditions in the shape and throwing an error if the data does not conform to the shape.

Quality checks are also interesting.
Is there a published list of quality criteria we can reuse?
I could also think about translating them into a shape. But these would only throw "warning" or "info" messages.

from skohub-shapes.

nichtich avatar nichtich commented on August 30, 2024

In any case the documentation should make clear which explicit integrity conditions and which other rules are enforced. A query for regex S[0-9]+ in sh:description sh:message might help to automatically create a list.

I found the rules are only mentioned via some sh:description but they should better be in sh:message of each shape, so the query would be like

prefix sh: <http://www.w3.org/ns/shacl#>

SELECT ?shape ?msg {
  ?shape sh:message ?msg
  filter(regex(?msg,"S[0-9]+")) 
}

P.S: I've created a pull request to implement this (without filter by now)

from skohub-shapes.

nichtich avatar nichtich commented on August 30, 2024

Integrity constrains from https://www.w3.org/TR/skos-reference/

  • S9 | skos:ConceptScheme is disjoint with skos:Concept.
  • S13 | skos:prefLabel, skos:altLabel and skos:hiddenLabel are pairwise disjoint properties.
  • S14 | A resource has no more than one value of skos:prefLabel per language tag.
  • S27 | skos:related is disjoint with the property skos:broaderTransitive (by my reading of this constraint differs from the implementation in Shacl!).
  • S37 | skos:Collection is disjoint with each of skos:Concept and skos:ConceptScheme.
  • S46 | skos:exactMatch is disjoint with each of the properties skos:broadMatch and skos:relatedMatch.

from skohub-shapes.

sroertgen avatar sroertgen commented on August 30, 2024

Hey @nichtich,

thank you for providing feedback!

So for better documenting constraints inside the shape I began working on adding property groups, e.g.
https://github.com/skohub-io/shapes/blob/3e93b208993a8c86c94499aab59a17c0023d8d46/skos.shacl.ttl#L27-L50

These groups can then be assigned to sh:property, e.g.

https://github.com/skohub-io/shapes/blob/3e93b208993a8c86c94499aab59a17c0023d8d46/skos.shacl.ttl#L74-L81

What do you think of this approach?

But +1 for extracting this info later with a query.

from skohub-shapes.

sroertgen avatar sroertgen commented on August 30, 2024

In any case the documentation should make clear which explicit integrity conditions and which other rules are enforced. A query for regex S[0-9]+ in sh:description sh:message might help to automatically create a list.

I found the rules are only mentioned via some sh:description but they should better be in sh:message of each shape, so the query would be like

prefix sh: <http://www.w3.org/ns/shacl#>

SELECT ?shape ?msg {
  ?shape sh:message ?msg
  filter(regex(?msg,"S[0-9]+")) 
}

P.S: I've created a pull request to implement this (without filter by now)

And I fully agree on using sh:message

from skohub-shapes.

nichtich avatar nichtich commented on August 30, 2024

I'm not sure about your approach with PropertyGroup. Seems to make sense for other use cases. In particular the group is lost in validation reports (except if sh:sourceShape links to a shape that links to a group but this looks a bit complex).

from skohub-shapes.

sroertgen avatar sroertgen commented on August 30, 2024

Done with 89a1e97

from skohub-shapes.

Related Issues (15)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.