Skip to main content

jsonld views for cubicweb

Project description

Summary

jsonld views for cubicweb

Views

This cube provides a jsonld view with two different implementations.

jsonld for CWEType

The jsonld view for CWEType entities is accessible either explicitly or through the BASE_URL/<etype>.jsonld url. It provides schema information using the jsonld specification.

Assuming you have the following schema declaration:

class Person(EntityType):
    name = String()
    age = Int()
    birthdate = Date()

The corresponding jsonld output will be:

{
    "@context": {
        "xsd": "http://www.w3.org/2001/XMLSchema#",
        "creation_date": {
          "@id": "https://my-app.org/CWRType/creation_date",
          "@type": "xsd:dateTime"
        },
        "modification_date": {
          "@id": "https://my-app.org/CWRType/modification_date",
          "@type": "xsd:dateTime"
        },
        "cwuri": {
          "@id": "https://my-app.org/CWRType/cwuri",
          "@type": "@id"
        },
        "eid": {
          "@id": "https://my-app.org/CWRType/eid",
          "@type": "xsd:integer"
        },
        "name": {
          "@id": "https://my-app.org/CWAttribute/278",
          "@type": "xsd:string"
        },
        "age": {
          "@id": "https://my-app.org/CWAttribute/281",
          "@type": "xsd:string"
        },
        "birthdate": {
          "@id": "https://my-app.org/CWAttribute/301",
          "@type": "xsd:date"
        }
    }
}

jsonld for any rset

This view is somewhat similar to the standard jsonexport one with two main differences:

  • it provides resultset metadata alongside the actual data and tries to be as close as possible to the general shape of the sparql-results-json format,

  • each cell is exposed as a “jsonld” object. Entities expose all their attributes and dc properties, “final” values expose their type and value.

Considering the RQL query Any P,N LIMIT 2 WHERE P is Person, P name N, the jsonld output would look like:

{
    "@context": {
        "cw": "http://ns.cubicweb.org/cubicweb/0.0/",
        "xsd": "http://www.w3.org/2001/XMLSchema#",
        "dcterms": "http://purl.org/dc/terms/",
        "myapp": "https://my-app.org/CWEType/"
    },
    "cw:head": {
        "rql": "Any P,N LIMIT 2 WHERE P is Person, P name N",
        "vars": ["P", "N"],
        "limit": 2
    },
    "cw:results": [
        [{
            "@context": "https://my-app.org/Person.jsonld",
            "@type": "myapp:Person",
            "cwuri": "https://my-app.org/1234",
            "name": "John",
            "age": 42,
            "birthdate": "2013/01/01",
            "creation_date": "2009/08/07 15:20:30",
            "modification_date": "2009/08/05 11:12:24",
            "eid": 1234,
            "dcterms:title": "the result of p.dc_title() on John",
            "dcterms:description": null
        },
        {
            "@type": "xsd:string",
            "@value": "John"
        }],
       [{
            "@context": "https://my-app.org/Person.jsonld",
            "@type": "myapp:Person",
            "cwuri": "https://my-app.org/4321",
            "name": "Mary",
            "age": 40,
            "birthdate": "2015/02/02",
            "creation_date": "2014/01/02 11:30:20",
            "modification_date": "2015/01/05 12:24:11",
            "eid": 4321,
            "dcterms:title": "the result of p.dc_title() on Mary",
            "dcterms:description": null
       },
        {
            "@type": "xsd:string",
            "@value": "Mary"
        }]
    ]
}

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

cubicweb-jsonld-0.1.0.tar.gz (9.6 kB view details)

Uploaded Source

File details

Details for the file cubicweb-jsonld-0.1.0.tar.gz.

File metadata

File hashes

Hashes for cubicweb-jsonld-0.1.0.tar.gz
Algorithm Hash digest
SHA256 b1a1f9759dc69405fae26d0fe11d4156990a120cdc5655e3058bbcee805939c4
MD5 57f7d3ee1da74ad2ce386c221c5272e3
BLAKE2b-256 978c95ff91435f7d1b52b2fc027041d2e676beca42a425ca656641f348377af4

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page