- From: Dietrich Schulten <ds@escalon.de>
- Date: Sat, 06 Sep 2014 13:04:02 +0200
- To: public-hydra@w3.org
Hi,
while experimenting with Java annotations for Hydra enabled classes, I
ran into the problem of enumerated values: schema.org uses
http://schema.org/Enumeration with many subtypes such as
http://schema.org/OnSitePickup and it has a general practice to allow
enumeration values from other vocabs as attribute values, notably
goodrelations, as in the businessFunction attribute below:
{
"@context": {
"@vocab" : "http://schema.org/"
},
"@type": "Movie",
"name": "Pirates of the Carribean"
"offer": {
"businessFunction": "http://purl.org/goodrelations/v1#LeaseOut"
}
}
An enumeration value is a URL. In the json-ld spec, it is not
mentioned that I can use a term to define the semantics of an
attribute *value*.
When applying enumeration values to a plain json file, the problem
arises that some mapping might be necessary. Assuming this json:
{
name: "Pirates of the Caribbean",
acquire: "RENT",
delivery: "IN_SHOP"
}
Can I write a context which says that "RENT" means
http://purl.org/goodrelations/v1#LeaseOut and "IN_SHOP" means
"http://schema.org/OnSitePickup"? The json-ld spec seems not to
mention such a usage.
It seems that terms cannot appear as attribute values unless the
attribute is @type. Also, jsonld-java doesn't understand what I might
mean by:
"@context":
{
"schema" : "http://schema.org/",
"gr" : "http://purl.org/goodrelations/v1#",
"RENT" : "gr:LeaseOut",
"IN_SHOP": "schema:OnSitePickup"
},
"schema:name" : "Pirates of the Caribbean",
"acquire" : "RENT",
"delivery" : "IN_SHOP"
}
That leads me to believe that it cannot be done, is that correct?
The solution for my Java Hydra set of annotations is to allow
something like this:
@Expose("BusinessFunction")
@Term(define = "gr", as = "http://purl.org/goodrelations/v1#")
enum Acquire {
@Expose("gr:LeaseOut")
RENT
}
If the client accepts json-ld, it will get the full url value, for
other json varieties it will render "RENT". But hey, what a noise,
even if I make the @Term a package annotation.
Best regards,
Dietrich
--
Dietrich Schulten
Escalon System-Entwicklung
Bubenhalde 10
74199 Untergruppenbach
+49 172 7369456
Received on Saturday, 6 September 2014 11:04:45 UTC