Configuration

YAML

The full KnowledgeGraphForge YAML configuration has the following structure:

Model:
  name: <a class name of a Model>
  origin: <'directory', 'url', or 'store'>
  source: <a directory path, an URL, or the class name of a Store>
  bucket: <when 'origin' is 'store', a Store bucket, a section or segment in the Store>
  endpoint: <when 'origin' is 'store', a Store endpoint, default to Store:endpoint>
  token: <when 'origin' is 'store', a Store token, default to Store:token>
  context: <when a 'origin' is 'store', a Store token, default to Model:token>
    iri: <an IRI>
    bucket: <when 'origin' is 'store', a Store bucket, default to Model:bucket>
    endpoint: <when 'origin' is 'store', a Store endpoint, default to Model:endpoint>
    token: <when 'origin' is 'store', a Store token, default to Model:token>
Store:
  name: <a class name of a Store>
  endpoint: <an URL>
  bucket: <a bucket as a string>
  token: <a token as a string>
  searchendpoints:
     <querytype>: <a query paradigm supported by configured store (e.g. sparql)>
       endpoint: <an IRI of a query endpoint>
  params:
     <Store method>: <e.g. register, tag,...>
       param: <http query param value to use for the Store method>
  versioned_id_template: <a string template using 'x' to access resource fields>
  file_resource_mapping: <an Hjson string, a file path, or an URL>
Resolvers:
  <scope>:
    - resolver: <a class name of a Resolver>
      origin: <'directory', 'web_service', or 'store'>
      source: <a directory path, a web service endpoint, or the class name of a Store>
      targets:
        - identifier: <a name, or an IRI>
          bucket: <a file name, an URL path, or a Store bucket>
      resolve_with_properties: <a list of str currently only supported by DemoResolver>
      result_resource_mapping: <an Hjson string, a file path, or an URL>
      endpoint: <when 'origin' is 'store', a Store endpoint, default to Store:endpoint>
      token: <when 'origin' is 'store', a Store token, default to Store:token>
Formatters:
  <identifier>: <a string template with replacement fields delimited by braces, i.e. '{}'>

JSON

The corresponding python configuration file would be like:

{
    "Model": {
        "name": <str>,
        "origin": <str>,
        "source": <str>,
        "bucket": <str>,
        "endpoint": <str>,
        "token": <str>,
        "context": {
              "iri": <str>,
              "bucket": <str>,
              "endpoint": <str>,
              "token": <str>,
        }
    },
    "Store": {
        "name": <str>,
        "endpoint": <str>,
        "bucket": <str>,
        "token": <str>,
        "searchendpoints": {
             "<querytype>": {
             "endpoint": <str>
         }
        },
        "params": {
            "<Store method>": {
                "param": <str>
            }
        },
        "versioned_id_template": <str>,
        "file_resource_mapping": <str>,
    },
    "Resolvers": {
        "<scope>": [
            {
                "resolver": <str>,
                "origin": <str>,
                "source": <str>,
                "targets": [
                    {
                        "identifier": <str>,
                        "bucket": <str>,
                    },
                    ...,
                ],
                "resolve_with_properties":[str],
                "result_resource_mapping": <str>,
                "endpoint": <str>,
                "token": <str>,
            },
            ...,
        ],
    },
    "Formatters": {
        "<name>": <str>,
        ...,
    },
}