- From: Dietrich Schulten <ds@escalon.de>
- Date: Sun, 28 Dec 2014 20:21:08 +0100
- To: public-hydra@w3.org
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Am 16.12.2014 um 23:16 schrieb Markus Lanthaler:
> Thanks a lot for the update Holger. Much appreciated!
>
> On 15 Dez 2014 at 00:09, Holger Knublauch wrote:
>> On 12/15/2014 5:44, Markus Lanthaler wrote:
>>> At the moment we can't really. We need to find a solution for
>>> this or, if we are lucky, someone else will for us. The new RDF
>>> Data Shapes WG works on exactly this. Unfortunately I'm not up
>>> to date with their work but Holger (CC'ed) is quite active in
>>> that group and may have a couple of minutes to give us a status
>>> update.
>>
>> The Shapes group is still in its early stages - we are about to
>> finish (or freeze) the User Stories which are input to the
>> Requirements which we have started collecting. It is hard to say
>> how long that phase will take; I certainly hope this can be
>> covered in January and we have the first technical proposals
>> shortly after that. But who knows...
>>
>> The topic of nested (or context-sensitive) property definitions
>> has come up in the group as well, and it will almost certainly be
>> covered by the
>
> Good to hear that.
>
>> resulting standard. For example, the Resource Shapes 2.0
>> language, which is one of the inputs to the WG, has a system
>> property :valueShape [1] that is linking a :Property with
>> additional constraints for its values. This is similar to
>> owl:allValuesFrom in that it allows you to use nested (blank)
>> nodes that go various hops deep from the starting point.
>
> Quite straightforward :-)
The Resource Shape language is quite powerful, my impression is it
would solve most issues I have if we find a way to mix oslc (Resource
Shape 2) with hydra and schema.org. I'd like to start using it in
hydra-java right away, if that were possible :)
I have one problem with valueShape, according to [1] its
representation must be a reference, i.e. it does not seem possible to
inline it, and this is what I would like to do at the moment.
@Holger, your comment seems to imply that valueShape can hold nested
blank nodes. I couldn't find such an example, do you have one?
For demonstration I attempted to inline the valueShape for a
http://schema.org/Rating below.
Is the usage of oslc:ResourceShape together with hydra:Class below
legitimate?
{
"@context":
{
"@vocab": "http://schema.org/",
"hydra": "http://www.w3.org/ns/hydra/core#"
"oslc": "http://open-services.net/ns/core#"
},
"@type": "Event",
"@id": "http://example.com/hypermedia-api/events/2",
"performer": "Cornelia Bielefeldt",
"location": "Heilbronn",
"eventStatus": "EventScheduled",
"workPerformed":
{
"@type": "CreativeWork",
"name": "Mein letzter Film",
"review":
{
"@id":
"http://localhost:8180/webapp/hypermedia-api/reviews/events/2",
"hydra:operation": [
{
"@type": "ReviewAction",
"hydra:method": "POST",
"hydra:expects":
{
"@type": ["hydra:Class", "oslc:ResourceShape"],
"hydra:subClassOf": "Review",
"oslc:describes": "Review",
"hydra:supportedProperty": [
{
"@type": "hydra:SupportedProperty",
"hydra:property": "reviewBody",
"hydra:required": true
},
{
"@type": "hydra:SupportedProperty",
"hydra:property": "reviewRating",
"hydra:required": false
}],
"oslc:property": [
{
"@type": "oslc:Property",
"oslc:propertyDefinition": "reviewBody",
"oslc:occurs": "oslc:Exactly-one",
"oslc:valueType": "xsd:string"
},
{
"@type": "oslc:Property",
"oslc:propertyDefinition": "reviewRating",
"oslc:occurs": "oslc:Zero-or-one",
"oslc:valueShape": {
"@type": "oslc:ResourceShape",
"oslc:describes": "Rating",
"oslc:property": [
{
"@type": "oslc:Property",
"oslc:propertyDefinition": "ratingValue",
"oslc:occurs": "oslc:Exactly-one",
"oslc:valueType": "xsd:integer",
"xsd:minInclusive": 1,
"xsd:maxInclusive": 5
}
]
}
}]
}
}]
}
}
}
1. Is it possible that this kind of inlining would be correct from the
perspective of Resource Shape 2? If not, is there a compelling reason
why a valueShape must be represented as a reference?
2. Some hydra properties seem to be very close to oslc which forced me
to use both, namely:
- - oslc:describes <=> hydra:subClassOf to say which type of subject is
expected
- - oslc:property <=> hydra:supportedProperty to hold multiple
oslc:Property (or hydra:SupportedProperty) objects
- - oslc:propertyDefinition <=> hydra:property to identify an expected
predicate
Biggest issue with that: If I would generate resources as shown above
with hydra-java, clients would get hydra:supportedProperty alongside
oslc:property.
- From the perspective of hydra - would that be desirable? How could
both be unified to avoid the duplications above? Right now I need to
use both to be understandable for "pure" hydra clients.
Best regards,
Dietrich
[1] http://www.w3.org/Submission/2014/SUBM-shapes-20140211/#Property
[2] http://open-services.net/bin/view/Main/CmSpecificationV2Shapes
- --
Dietrich Schulten
Escalon System-Entwicklung
Bubenhalde 10
74199 Untergruppenbach
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.22 (MingW32)
iEYEARECAAYFAlSgWCQACgkQuKLNitGfiZMFlQCfdniGv37uFDuA7k/0QRLT2XYj
UHQAoNsnMnh9yDHWw7sihepoi27A/tDD
=hccj
-----END PGP SIGNATURE-----
Received on Sunday, 28 December 2014 19:21:39 UTC