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

Shaclc: add features and implementations #70

Open
wants to merge 15 commits into
base: main
Choose a base branch
from

Conversation

VladimirAlexiev
Copy link
Contributor

No description provided.

@VladimirAlexiev
Copy link
Contributor Author

@jeswr and @HolgerKnublauch can you review?

@HolgerKnublauch
Copy link
Contributor

Hi Vladimir, I am generally supportive of the SHACL-C work and believe it should become a deliverable of the upcoming 1.2 WG. I personally do not have bandwidth to work on it though, as I would like to focus on the other deliverables. So please don't wait for reviews from me.

- [Support `xone` and more `or` cases](https://github.com/w3c/shacl/issues/12)
- Opt out of the production of the triple `?baseUri rdf:type owl:Ontology`
- Non-validating characteristics (e.g., generating `sh:order` triples by declaring `@order` at the top of a file/shape, allow grouping by `@group` at the top of a set of properties, and allowing a `@description` above properties).
- Target shapes, see [rsx:targetShape](https://rdf4j.org/shacl/extensions.html)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think this would only be appropriate if rsx:targetShape becomes part of the SHACL or SHACL-AF. Is there an effort to incorporate rsx: features into SHACL or SHACL-AF as part of the 1.2 work?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@HolgerKnublauch mentioned it as a possibility.


The first 2 of these have been supported in [this xtext file](https://gitlab.com/allotrope-open-source/shape-editor/-/blob/master/src/com.osthus.shapes.shaclc.parent/com.osthus.shapes.shaclc/src/com/osthus/shapes/shaclc/SHACLC.xtext) by [allotrope](https://www.allotrope.org/). Some or all of these additions may be ignored in favour of keeping SHACL-C a simple syntax to implement and use.
A number of features from [SHACLC.xtext](https://gitlab.com/allotrope-open-source/shape-editor/-/blob/master/src/com.osthus.shapes.shaclc.parent/com.osthus.shapes.shaclc/src/com/osthus/shapes/shaclc/SHACLC.xtext) by [Allotrope](https://www.allotrope.org/):
- [Shape Libraries](https://rawgit2.com/VladimirAlexiev/shacl/shaclc-grammars/shacl-compact-syntax/grammar/shaclc-XText.html#ShaclDoc) (versioned). Packaging shapes into libraries enables modularized development of shapes.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Could you please provide additional information or a pointer to describe what triples are produced when parsing this part of the grammar to make it clearer how the shape library works.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I have no idea whether these are implemented. They are good material for extending the scope of SHACL 1.2. I'll make a separate issue.
Guess we should add a note which are part of SHACL, and which are speculative?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Guess we should add a note which are part of SHACL, and which are speculative?

That would be great :)

Copy link
Contributor Author

@VladimirAlexiev VladimirAlexiev Aug 11, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

shacl-compact-syntax/scope.md Outdated Show resolved Hide resolved
shacl-compact-syntax/scope.md Outdated Show resolved Hide resolved
shacl-compact-syntax/scope.md Outdated Show resolved Hide resolved
shacl-compact-syntax/scope.md Outdated Show resolved Hide resolved
shacl-compact-syntax/scope.md Outdated Show resolved Hide resolved
shacl-compact-syntax/scope.md Outdated Show resolved Hide resolved
shacl-compact-syntax/scope.md Outdated Show resolved Hide resolved
shacl-compact-syntax/scope.md Outdated Show resolved Hide resolved
VladimirAlexiev and others added 8 commits August 11, 2024 11:11
Co-authored-by: Ted Thibodeau Jr <[email protected]>
Co-authored-by: Ted Thibodeau Jr <[email protected]>
Co-authored-by: Ted Thibodeau Jr <[email protected]>
Co-authored-by: Ted Thibodeau Jr <[email protected]>
Co-authored-by: Ted Thibodeau Jr <[email protected]>
Co-authored-by: Ted Thibodeau Jr <[email protected]>
Co-authored-by: Ted Thibodeau Jr <[email protected]>
Co-authored-by: Ted Thibodeau Jr <[email protected]>
@VladimirAlexiev
Copy link
Contributor Author

hi @jeswr!

At least 1 approving review is required by reviewers with write access.

Do you have such access? If not, ask Holger to give you access, since he has no time to review SHACL-C stuff.

@jeswr
Copy link
Member

jeswr commented Aug 11, 2024

I do not currently have write access. @HolgerKnublauch can you grant me access, or would I need to become a member of the SHACL working group first (noting w3c/data-shapes#187).

@VladimirAlexiev
Copy link
Contributor Author

Posted w3c/data-shapes#199 that corresponds to ### Extra SHACL Features.
It turns out that most SHACLC.xtext features map to existing SHACL-AF features.

Co-authored-by: Ted Thibodeau Jr <[email protected]>
A shape library is very similar to an OWL ontology and technically works in the same way.
In fact, we now use OWL ontologies because of inference from `owl:import`, but there was quite some discussion about whether the assembly of shapes is an ontology in the OWL sense.
For any large scale application of SHACL, it is necessary to modularize, and it felt like this was a serious gap in the specification.
- [Imports](https://rawgit2.com/VladimirAlexiev/shacl/shaclc-grammars/shacl-compact-syntax/grammar/shaclc-XText.html#ImportsDecl) (how is this different from `owl:imports`?)

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looking at the example, this is exactly translated to owl:imports. Nothing more...

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

Successfully merging this pull request may close these issues.

5 participants