# Auto-Completion

When trying to publish data on the Databus, the HTTP API accepts not only fully complete JSON-LD DataIds as input. Some properties of the JSON-LD input are allowed to be omitted as they can be inferred from others.

## Properties

The following table shows a list of inferrable properties that can optionally be omitted in the input.

### Version

| Property         | Value inferred from                   |
| ---------------- | ------------------------------------- |
| dataid:publisher | @id of databus:Version                |
| databus:group    | @id of databus:Version                |
| databus:artifact | @id of databus:Version                |
| dct:hasVersion   | @id of databus:Version                |
| dct:abstract     | First line of dct:description         |
| dct:issued       | *current time*                        |
| dct:modified     | *current time (always set by server)* |

### Part

| Property                                                          | Value inferred from                                                                                                                                                |
| ----------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| @id                                                               | @id of databus:Version, databus:formatExtension, databus:compression and content variants (i.e. properties with prefix *<https://dataid.dbpedia.org/databus-cv#>*) |
| databus:formatExtension                                           | content-disposition header of file specified with dcat:downloadURL (if present). *Alternatively:* String value of dcat:downloadURL                                 |
| databus:compression                                               | content-disposition header of file specified with dcat:downloadURL (if present). *Alternatively:* String value of dcat:downloadURL                                 |
| dataid:shasum                                                     | sha256sum of the file specified with dcat:downloadURL                                                                                                              |
| dataid:byteSize                                                   | size of the file specified with dcat:downloadURL                                                                                                                   |
| dct:hasVersion                                                    | dct:hasVersion of associated databus:Version                                                                                                                       |
| properties with prefix *<https://dataid.dbpedia.org/databus-cv#>* | Only set if the property is used in any other databus:Part of the databus:Version. Value is set to empty string.                                                   |

## Additional Graphs

The following table lists the additional graphs that can be generated by the Databus automatically:

| Type                                                          | Inferred from                         |
| ------------------------------------------------------------- | ------------------------------------- |
| databus:Artifact                                              | databus:artifact *of databus:Version* |
| databus:Group                                                 | databus:group *of databus:Group*.     |
| rdf:Property *with rdfs:subPropertyOf databus:contentVariant* | *all properties starting with dcv:*   |

## Example

### API Input

```json
{
  "@context": "https://downloads.dbpedia.org/databus/context.jsonld",
  "@graph": [
    {
      "@type": [
        "Version",
        "Dataset"
      ],
      "@id": "https://databus.example.org/janfo/examples/example_one/2023-03-08",
      "title": "My Title",
      "description": "This is my description",
      "license": "http://dalicc.net/licenselibrary/AdaptivePublicLicense10",
      "distribution": [
        {
          "@type": "Part",
          "downloadURL": "https://holycrab13.github.io/webid.ttl"
        },
        {
          "@type": "Part",
          "downloadURL": "https://holycrab13.github.io/webid.ttl",
          "dcv:tag": "asdf"
        },
        {
          "@type": "Part",
          "downloadURL": "https://holycrab13.github.io/webid.ttl",
          "dcv:tag": "hallo"
        }
      ]
    }
  ]
}
```

### Auto-Completed Input

```json
{
  "@context": "https://downloads.dbpedia.org/databus/context.jsonld",
  "@graph": [
    {
      "@id": "https://databus.example.org/janfo/examples/example_one/2023-03-08",
      "@type": [
        "databus:Version",
        "Dataset"
      ],
      "artifact": "https://databus.example.org/janfo/examples/example_one",
      "group": "https://databus.example.org/janfo/examples",
      "abstract": "This is my description",
      "description": "This is my description",
      "hasVersion": "2023-03-08",
      "issued": "2023-03-15T14:08:44.413Z",
      "license": "http://dalicc.net/licenselibrary/AdaptivePublicLicense10",
      "modified": "2023-03-15T14:08:44.413Z",
      "publisher": "https://databus.example.org/janfo#this",
      "title": "My Title",
      "distribution": [
        "https://databus.example.org/janfo/examples/example_one/2023-03-08#example_one_tag=hallo",
        "https://databus.example.org/janfo/examples/example_one/2023-03-08#example_one",
        "https://databus.example.org/janfo/examples/example_one/2023-03-08#example_one_tag=asdf"
      ]
    },
    {
      "@id": "https://databus.example.org/janfo/examples/example_one/2023-03-08#example_one_tag=hallo",
      "@type": "Part",
      "compression": "none",
      "file": "https://databus.example.org/janfo/examples/example_one/2023-03-08/example_one_tag=hallo",
      "formatExtension": "ttl",
      "sha256sum": "d61a05ca4810367f361f17500304a168aab27a3119c93a18c00bce1775dfd6b1",
      "dcv:tag": "hallo",
      "hasVersion": "2023-03-08",
      "issued": "2023-03-15T14:08:44.413Z",
      "modified": "2023-03-15T14:08:44.413Z",
      "byteSize": 2730,
      "downloadURL": "https://holycrab13.github.io/webid.ttl"
    },
    {
      "@id": "https://databus.example.org/janfo/examples/example_one/2023-03-08#example_one",
      "@type": "Part",
      "compression": "none",
      "file": "https://databus.example.org/janfo/examples/example_one/2023-03-08/example_one",
      "formatExtension": "ttl",
      "sha256sum": "d61a05ca4810367f361f17500304a168aab27a3119c93a18c00bce1775dfd6b1",
      "dcv:tag": "",
      "hasVersion": "2023-03-08",
      "issued": "2023-03-15T14:08:44.413Z",
      "modified": "2023-03-15T14:08:44.413Z",
      "byteSize": 2730,
      "downloadURL": "https://holycrab13.github.io/webid.ttl"
    },
    {
      "@id": "https://databus.example.org/janfo/examples/example_one/2023-03-08#example_one_tag=asdf",
      "@type": "Part",
      "compression": "none",
      "file": "https://databus.example.org/janfo/examples/example_one/2023-03-08/example_one_tag=asdf",
      "formatExtension": "ttl",
      "sha256sum": "d61a05ca4810367f361f17500304a168aab27a3119c93a18c00bce1775dfd6b1",
      "dcv:tag": "asdf",
      "hasVersion": "2023-03-08",
      "issued": "2023-03-15T14:08:44.413Z",
      "modified": "2023-03-15T14:08:44.413Z",
      "byteSize": 2730,
      "downloadURL": "https://holycrab13.github.io/webid.ttl"
    },
    {
      "@id": "https://databus.example.org/janfo/examples/example_one",
      "@type": "Artifact"
    },
    {
      "@id": "https://databus.example.org/janfo/examples",
      "@type": "Group"
    },
    {
      "@id": "dcv:tag",
      "@type": "http://www.w3.org/1999/02/22-rdf-syntax-ns#Property",
      "subPropertyOf": "databus:contentVariant"
    }
  ]
}
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://dbpedia.gitbook.io/databus/usage/web-interface/auto-completion.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
