- From: Tomasz Pluskiewicz via GitHub <sysbot+gh@w3.org>
- Date: Sun, 23 Oct 2022 15:22:02 +0000
- To: public-hydra-logs@w3.org
tpluscode has just created a new issue for https://github.com/HydraCG/Specifications:
== Should blank nodes be ignored in member assertion by default? ==
## Describe the requirement
I have been working with member assertions lately and I figured that in the current design they do not make sense when their `subject/property/object` are blank nodes
## Hydra-agnostic example
In my particular example, I wanted to express a collection of languages in which known books are written. In SPARQL I can express this as
```sparql
SELECT ?language {
?book dcterms:language ?language .
?book a bibo:Book .
}
```
To turn that into a member assertion, I first got `hydra:property dcterm:language` but the `hydra:subject` needed to be something that expresses more patterns.
I used SHACL to create a variable for the `?book` in query. My custom implementation converts that into query patterns above
```turtle
<book-languages>
hydra:memberAssertion
[
hydra:property dcterms:language ;
hydra:subject
[
a sh:NodeShape ;
sh:targetClass bibo:Book ;
] ;
] ;
.
```
## Proposed solutions
There is nothing in the spec that disallows that but I figured that a blank node has potentially undetermined meaning for a generic client or server. I propose that we explicitly state that if the `hydra:subject/predicate/object` is a blank node it SHOULD be ignored by a generic client, unless they explicitly know how to support that particular node (such as `sh:NodeShape` here).
That is to prevent queries like `[]dcterms:language ?language .`
## Further work
I also propose to describe the use of SHACL or OWL in their respective extensions.
Please view or discuss this issue at https://github.com/HydraCG/Specifications/issues/248 using your GitHub account
--
Sent via github-notify-ml as configured in https://github.com/w3c/github-notify-ml-config
Received on Sunday, 23 October 2022 15:22:04 UTC