- From: Gregg Kellogg <gregg@greggkellogg.net>
- Date: Mon, 6 Mar 2017 17:42:04 -0800
- To: Robert Sanderson <azaroth42@gmail.com>
- Cc: Linked JSON <public-linked-json@w3.org>
- Message-Id: <FE0243AB-790B-4DBB-BB03-25C37306133F@greggkellogg.net>
> On Mar 6, 2017, at 5:02 PM, Robert Sanderson <azaroth42@gmail.com> wrote:
>
>
> Another scoping question ... is it possible to use scoped contexts for URI expansion within specific relationships?
>
> For example, if I have an external classification system (say http://vocab.gett.edu/aat/ <http://vocab.gett.edu/aat/>) and a predicate that refers to it (crm:P2_has_type) which I map to `classified_as`, would an embedded/scoped context be resolved for the vocabulary terms only when used with that predicate?
I believe so, but you can try it with the latest version of the Ruby json-ld gem to be sure.
The way the expansion algorithm reads is in 8.5, if key has a local context (scoped context), to use that to set term context. Later, in 8.8, term context is used to expand the value of the property (“Painting”, in your case).
> For example, in the below, I would want Painting to resolve to aat:300033618 only when used with `classified_as`:
>
> ```
> {
> "@context": {
> "id": "@id",
> "type": "@type",
> "classified_as": {
> "@id": "crm:P2_has_type",
> "@type": "@vocab",
> "@context": {
> "aat": "http://vocab.gett.edu/aat/ <http://vocab.gett.edu/aat/>",
> "Painting": "aat:300033618"
> }
> }
> },
> "id": "http://example.org/object/1 <http://example.org/object/1>",
> "type": "ManMadeObject",
> "classified_as": "Painting"
> }
> ```
I get the following expanded JSON-LD:
```
[
{
"@id": "http://example.org/object/1",
"@type": [
"ManMadeObject"
],
"crm:P2_has_type": [
{
"@id": "http://vocab.gett.edu/aat/300033618"
}
]
}
]
```
Looks like what you want, note that ManMadeObject isn’t expanded, as it’s not defined anywhere.
Gregg
> Thoughts?
>
> Rob
>
> --
> Rob Sanderson
> Semantic Architect
> The Getty Trust
> Los Angeles, CA 90049
Received on Tuesday, 7 March 2017 01:42:39 UTC