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

SHACL support #62

Open
33 of 38 tasks
jimkont opened this issue Feb 15, 2016 · 9 comments
Open
33 of 38 tasks

SHACL support #62

jimkont opened this issue Feb 15, 2016 · 9 comments
Labels

Comments

@jimkont
Copy link
Member

jimkont commented Feb 15, 2016

This issue tracks SHACL support in RDFUnit

Scopes

  • sh:targetNode
  • sh:targetClass
  • sh:targetSubjecsOf
  • sh:targetObjects

SHACL Core Constraint Components

  • sh:class
  • sh:datatype
  • sh:nodeKind
  • sh:minCount
  • sh:maxCount
  • sh:minExclusive
  • sh:minInclusive
  • sh:maxExclusive
  • sh:maxInclusive
  • sh:minLength
  • sh:maxLength
  • sh:pattern
  • sh:languageIn (does not yet match cases like @en / @en-us, only works for exact matches for now)
  • sh:uniqueLang
  • sh:equals
  • sh:disjoint
  • sh:lessThan
  • sh:lessThanOrEquals
  • sh:not
  • sh:and (partial support in top-level sh:and constraints)
  • sh:or
  • sh:xone
  • sh:node
  • sh:property
  • sh:qualifiedValueShape, sh:qualifiedMinCount, sh:qualifiedMaxCount
  • sh:closed, sh:ignoredProperties
  • sh:hasValue
  • sh:in

SPARQL-based Constraints

  • Almost fully supported
    • shapesGraph prebinding is not supported
    • currentShape prebinding is not supported
    • projection expressions in SPARQL queries are not yet supported e.g. the path variable in SELECT ?this (<a> AS ?path) WHERE {...} is not yet supported (planned to be). what can be done instead for now is SELECT ?this ?path WHERE { BIND(<a> AS ?path) ...}

SPARQL-based Constraint Components

  • Supported
    • noticed some strange behavior in complex ASK-based validators and node constraints that is investigated. simple ASK-based validators that contain only a filter clause are well supported.

Actually, all of the supported SHACL-Core is defined in this document which are SPARQL-based Constraint Components

Some pre-binding corner cases are not covered yet and are under development (see implementation report (to be submitted soon))

@jimkont jimkont self-assigned this Feb 15, 2016
@akuckartz
Copy link

👍

@chile12
Copy link

chile12 commented Feb 20, 2016

awesome, good work

@nandana
Copy link

nandana commented Feb 10, 2017

👍

@jimkont
Copy link
Member Author

jimkont commented Aug 19, 2017

Hi, for those following this issue (cc/ @akuckartz , @nandana , @chile12 , @gcpdev, @seebi) the description is now updated to the latest SHACL support from RDFUnit. Thanks to @neradis an implementation report will be submitted soon and a new artifact will be published to maven central after some polishing. Until then, you can use latest master branch for testing.

Any feedback / bug reports are more than welcome

@tomas-knap
Copy link

Great, we will try it out!

@ktk
Copy link

ktk commented Sep 25, 2023

Hi @jimkont, great meeting you at Semantics! I had a look at RDF Unit & SHACL & found this issue. Is this still representing the level of the current implementation? This is great but I think I won't get around logical constraints at some point, any plans in that regard?

@jimkont
Copy link
Member Author

jimkont commented Sep 25, 2023

Hi @ktk , great meeting you in person as well. IIRC logical constraints were (fully?) implemented but cannot recall about qualified shapes.
It has been a while but can try regenerating the implementation report and check which tests fail and you can take a look and judge based on that

@jimkont
Copy link
Member Author

jimkont commented Sep 25, 2023

So, I rerun the SHACL test suite and the results are improved compared to the submitted compliance report. As an aggregate there are: tests passed: 73, failed: 10 and partial: 37 (errors detected but there is some mismatch in the exact expected reporting). The failing ones are mainly related to prebinding and qualified cardinality, here's the full list
rdfunit-shacl-earl.ttl.zip

If you decide to try it out, you might want to use the aggregate reports when testing SPARQL endpoints directly. The results in that mode are much more useful to process than individual instance errors, especially when you expect a lot of violations

@ktk
Copy link

ktk commented Sep 26, 2023

Great, thanks for the update!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

6 participants