{
  "@context": [
    "https://linkedsoftwaredependencies.org/bundles/npm/@solid/community-server/^8.0.0/components/context.jsonld",
    "https://linkedsoftwaredependencies.org/bundles/npm/@undefineds.co/xpod/^0.0.0/components/context.jsonld",
    "https://linkedsoftwaredependencies.org/bundles/npm/asynchronous-handlers/^1.0.0/components/context.jsonld"
  ],
  "import": [
    "./main.json",
    "./xpod.base.json",
    "./terminal.json",
    "./extensions.local.initializer.json"
  ],
  "@graph": [
    {
      "comment": "VectorStore using the canonical Local RDF SQLite file.",
      "@id": "urn:undefineds:xpod:VectorStore",
      "@type": "SqliteVectorStore",
      "options_connectionString": {
        "@id": "urn:solid-server:default:variable:rdfIndexPath",
        "@type": "Variable"
      }
    },
    {
      "comment": "Local FTS index sharing the canonical RDF SQLite file.",
      "@id": "urn:undefineds:xpod:RdfTextIndex",
      "@type": "RdfTextIndex",
      "options_path": {
        "@id": "urn:solid-server:default:variable:rdfIndexPath",
        "@type": "Variable"
      }
    },
    {
      "comment": "Local vector index sharing the canonical RDF SQLite file.",
      "@id": "urn:undefineds:xpod:RdfVectorIndex",
      "@type": "RdfVectorIndex",
      "options_path": {
        "@id": "urn:solid-server:default:variable:rdfIndexPath",
        "@type": "Variable"
      },
      "options_defaultMetric": "cosine"
    },
    {
      "comment": "Persistent native-only QLever process backed by the canonical RDF SQLite file.",
      "@id": "urn:undefineds:xpod:LocalQleverNativeSparqlClient",
      "@type": "LocalQleverNativeSparqlClient",
      "options_args": [
        "--sqlite-path",
        {
          "@id": "urn:solid-server:default:variable:rdfIndexPath",
          "@type": "Variable"
        }
      ]
    },
    {
      "comment": "RDF facts, FTS, VEC, and native QLever share one Local SQLite file.",
      "@id": "urn:undefineds:xpod:SolidRdfEngine",
      "@type": "SolidRdfEngine",
      "index_path": {
        "@id": "urn:solid-server:default:variable:rdfIndexPath",
        "@type": "Variable"
      },
      "textIndex": {
        "@id": "urn:undefineds:xpod:RdfTextIndex"
      },
      "vectorIndex": {
        "@id": "urn:undefineds:xpod:RdfVectorIndex"
      },
      "nativeSparqlClient": {
        "@id": "urn:undefineds:xpod:LocalQleverNativeSparqlClient"
      },
      "autoOpen": true
    },
    {
      "comment": "Default SPARQL engine: every server-owned Pod query requires native QLever.",
      "@id": "urn:undefineds:xpod:DefaultSparqlEngine",
      "@type": "QleverSparqlEngine",
      "rdfEngine": {
        "@id": "urn:undefineds:xpod:SolidRdfEngine"
      }
    },
    {
      "comment": "Use SolidRdfEngine for structured RDF data.",
      "@id": "urn:undefineds:xpod:MixDataAccessor",
      "@type": "MixDataAccessor",
      "structuredDataAccessor": {
        "@id": "urn:undefineds:xpod:SolidRdfDataAccessor"
      },
      "unstructuredDataAccessor": {
        "@id": "urn:solid-server:default:FileDataAccessor"
      },
      "textSearchIndexingEnabled": true,
      "rdfSearchIntentSink": {
        "@id": "urn:undefineds:xpod:RdfSearchIntentSink"
      }
    },
    {
      "comment": "Default structured RDF data accessor backed directly by SolidRdfEngine.",
      "@id": "urn:undefineds:xpod:SolidRdfDataAccessor",
      "@type": "SolidRdfDataAccessor",
      "rdfEngine": {
        "@id": "urn:undefineds:xpod:SolidRdfEngine"
      },
      "identifierStrategy": {
        "@id": "urn:solid-server:default:IdentifierStrategy"
      }
    },
    {
      "comment": "Override ResourceStore to use Bun-compatible implementation",
      "@type": "Override",
      "overrideInstance": {
        "@id": "urn:solid-server:default:ResourceStore_Backend"
      },
      "overrideParameters": {
        "@type": "SparqlUpdateResourceStore",
        "identifierStrategy": { "@id": "urn:solid-server:default:IdentifierStrategy" },
        "auxiliaryStrategy": { "@id": "urn:solid-server:default:AuxiliaryStrategy" },
        "metadataStrategy": { "@id": "urn:solid-server:default:MetadataStrategy" },
        "accessor": { "@id": "urn:undefineds:xpod:MixDataAccessor" }
      }
    },
    {
      "comment": "Disable quota for local profile",
      "@id": "urn:undefineds:xpod:QuotaService",
      "@type": "NoopQuotaService"
    },
    {
      "@id": "urn:solid-server:default:variable:rootFilePath",
      "@value": "./data"
    },
    {
      "@id": "urn:solid-server:default:variable:registration",
      "@value": true
    }
  ]
}
