Re: A call for a new form, an algorithm

Hi Thad,
the form could be seen as something like a type/class reflection API
populated with values/objects.

Here is a variation on the "Activity" example that I've picked instead
because it does not use inline contexts.

{

"@context": "https://www.w3.org/ns/activitystreams",

"@type": {

"Created": {

"@def": "https://www.w3.org/ns/activitystreams#Create", // a source of the
definition, could be JSON pointer for inline context

"@definedBy": "https://www.w3.org/ns/activitystreams"

}

},

"actor": {

"@def": "https://www.w3.org/ns/activitystreams#actor",

"@definedBy": "https://www.w3.org/ns/activitystreams",

"@container": [

{

"@type": {

// there could be type property definition in case of non-generic prop name

"Person": {

"@def": "https://www.w3.org/ns/activitystreams#Person",

"@definedBy": "https://www.w3.org/ns/activitystreams"

}

},

"@id": "acct:sally@example.org",

"name": {

"@def": "https://www.w3.org/ns/activitystreams#name",

"@definedBy": "https://www.w3.org/ns/activitystreams",

"@container": [

{

"@value": "Sally"

}

]

}

}

]

},

"published": {

"@def": "https://www.w3.org/ns/activitystreams#published",

"@definedBy": "https://www.w3.org/ns/activitystreams",

"@container": {

"@def": "https://www.w3.org/ns/activitystreams#published",

"@definedBy": "https://www.w3.org/ns/activitystreams",

"@container": [

{

"@value": "2015-01-25T12:34:56Z",

"@type": "http://www.w3.org/2001/XMLSchema#dateTime"

}

]

}

}

}


It's only an example of what it could be like when serialized to JSON, to
demonstrate what is needed to get - you would be rather processing a
programmatic structure using pointers/references to definitions, etc. than
plain JSON serialization.

The main difference is that now you can start processing an input JSON-LD
using compacted form and still have a quite fine granular and complete
picture of what you are dealing with.

One could say: Why don't you just expand and then re-compact it to a form
you want to work with?
 * the def mapping is still lost, it's only a programmers knowledge to what
re-compact to what and what a context defines
 * it does not scale - see above
 * current JSON-LD expansion drops/or rejects to deal with/ undefined terms
 * it's overhead, you run two transformation instead of one

I hope this helps, I don't have a complete solution, nor answers to all
questions (@reverse, etc.), but a need to improve the processing
performance with keeping full extensibility and adaptability.

Best,
Filip


On Thu, Oct 31, 2024 at 4:49 AM Thad Guidry <thadguidry@gmail.com> wrote:

> Hi Filip!
>
> Can you provide 1 simple example, in expanded form, contrasted with
> compact form, and then explain your problem space with your use cases?
>
> Let's start with the the JSON-LD Playground's
> <https://json-ld.org/playground/> "Place" example, which expanded form
> looks like this:
>
> [
>   {
>     "http://schema.org/description": [
>       {
>         "@value": "The Empire State Building is a 102-story landmark in
> New York City."
>       }
>     ],
>     "http://schema.org/geo": [
>       {
>         "http://schema.org/latitude": [
>           {
>             "@type": "http://www.w3.org/2001/XMLSchema#float",
>             "@value": "40.75"
>           }
>         ],
>         "http://schema.org/longitude": [
>           {
>             "@type": "http://www.w3.org/2001/XMLSchema#float",
>             "@value": "73.98"
>           }
>         ]
>       }
>     ],
>     "http://schema.org/image": [
>       {
>         "@id": "
> http://www.civil.usherbrooke.ca/cours/gci215a/empire-state-building.jpg"
>       }
>     ],
>     "http://schema.org/name": [
>       {
>         "@value": "The Empire State Building"
>       }
>     ]
>   }
> ]
>
>
> Thad
> https://www.linkedin.com/in/thadguidry/
> https://calendly.com/thadguidry/
>

Received on Thursday, 31 October 2024 10:19:19 UTC