{
  "@context": {
    "@vocab": "https://root-ld.org/spec/1.0/",
    "schema": "https://schema.org/",
    "bs": "https://boisestandard.org/vocab#",
    "rld": "https://root-ld.org/",
    "xsd": "http://www.w3.org/2001/XMLSchema#"
  },
  "@type": "rld:RootLD",
  "@id": "https://boisestandard.org/web/tennisdoctor-co-uk#root-ld",
  "rld:specVersion": "1.0",
  "rld:anchor": {
    "@type": "rld:Anchor",
    "rld:uuid": "54eca4c0-68e3-435d-8f7e-3259e8935d49",
    "rld:federationId": "bs-54eca4c0",
    "rld:contentHash": "cc192e5eacf4b53a338bf2dc0186ea6a9ff340b3a2fc0480e1028bcc16ab169b",
    "rld:primarySource": "https://www.tennisdoctor.co.uk/",
    "rld:sourceVerified": true,
    "rld:generationMethod": "crawl_extract_v1",
    "rld:specVersion": "1.0",
    "rld:queuedAt": "2026-05-26T20:33:17.334873+00:00",
    "rld:mintedAt": "2026-07-03T10:52:58.056355+00:00",
    "rld:sequence": 0,
    "rld:pipeline": "refinery-boise-v1.0.0",
    "rld:domainSignature": "tennisdoctor.co.uk",
    "rld:manifest": {
      "bs:schemaTypes": [
        "LocalBusiness",
        "PostalAddress",
        "GeoCoordinates",
        "City",
        "AdministrativeArea",
        "OpeningHoursSpecification",
        "AggregateRating",
        "OfferCatalog",
        "Offer",
        "Service",
        "FAQPage",
        "Question",
        "Answer",
        "BreadcrumbList",
        "ListItem",
        "Country"
      ],
      "bs:primaryType": "LocalBusiness",
      "bs:coverageScore": 0.6392,
      "bs:coverageLabel": "good",
      "bs:propCount": 43,
      "bs:blockCount": 4,
      "bs:ancestorCount": 2,
      "bs:negativeSpaceCount": 9,
      "bs:hasTopo": true,
      "bs:hasKeywords": true,
      "bs:hasSchema": true,
      "bs:hasEdges": false,
      "bs:hasGeo": false,
      "bs:hasAtomicAnswer": false,
      "bs:hasCommon": false,
      "bs:hasUncommon": false,
      "bs:edgeCount": 0,
      "bs:topologyCategory": "medium",
      "bs:totalTokens": 1416,
      "bs:typeTokenRatio": 0.5064,
      "bs:lastPassDate": null,
      "rld:toc": {
        "body": "https://boisestandard.org/web/tennisdoctor-co-uk#root-ld-body",
        "schema": "https://boisestandard.org/web/tennisdoctor-co-uk#root-ld-body/schema",
        "topology": "https://boisestandard.org/web/tennisdoctor-co-uk#root-ld-body/topology",
        "keywords": "https://boisestandard.org/web/tennisdoctor-co-uk#root-ld-body/keywords",
        "geo": null,
        "atomicAnswer": null,
        "schemaGraph": "https://boisestandard.org/web/tennisdoctor-co-uk#schema-graph",
        "manifest": "https://boisestandard.org/web/tennisdoctor-co-uk/manifest.json",
        "rootLd": "https://boisestandard.org/web/tennisdoctor-co-uk/root-ld.json",
        "edges": "https://boisestandard.org/web/tennisdoctor-co-uk#root-ld-recursive/edges",
        "commonEdges": "https://boisestandard.org/web/tennisdoctor-co-uk#root-ld-recursive/common",
        "uncommonEdges": "https://boisestandard.org/web/tennisdoctor-co-uk#root-ld-recursive/uncommon"
      }
    },
    "rld:linkPod": {
      "webPageUrl": "https://boisestandard.org/web/tennisdoctor-co-uk",
      "manifestUrl": "https://boisestandard.org/web/tennisdoctor-co-uk/manifest.json",
      "rootLdUrl": "https://boisestandard.org/web/tennisdoctor-co-uk/root-ld.json",
      "canonicalUrl": "https://www.tennisdoctor.co.uk/",
      "tldGraphEdgeUrl": "https://boisestandard.org/registry/tld/ledger/uk",
      "schemaVocabUrl": "https://boisestandard.org/schema/official_vocab.json",
      "schemaVocabHumanUrl": "https://boisestandard.org/schema/official_vocab/",
      "schemaStandardUrl": "https://boisestandard.org/schema/",
      "officialVocabUrl": "https://schema.org/version/latest/schemaorg-current-https.jsonld"
    }
  },
  "rld:body": {
    "@type": "rld:Body",
    "@id": "https://boisestandard.org/web/tennisdoctor-co-uk#root-ld-body",
    "rld:frozenAt": "2026-07-03T10:52:58.056355+00:00",
    "bs:identity": {
      "domain": "tennisdoctor.co.uk",
      "slug": "tennisdoctor-co-uk",
      "tld": "uk",
      "canonicalUrl": "https://www.tennisdoctor.co.uk/",
      "finalUrl": "https://www.tennisdoctor.co.uk/",
      "statusCode": 200,
      "sslValid": true,
      "serverHeader": "cloudflare",
      "responseTimeMs": 4705,
      "redirectChain": []
    },
    "bs:seo": {
      "@id": "https://boisestandard.org/web/tennisdoctor-co-uk#root-ld-body/seo",
      "title": "Tennis Racket Stringing Swindon | Professional Restringing Service | Tennis Doctor",
      "h1": "Professional Tennis\nRacket Stringing in Swindon",
      "metaDescription": "Professional tennis racket stringing in Swindon, Wiltshire. 25 years experience, same-day service, premium strings. Serving Swindon, Oxford, Bath, Bristol & Gloucestershire. Book today!",
      "canonicalUrl": "https://www.tennisdoctor.co.uk/",
      "langDeclared": "en-GB",
      "wordCount": 1383,
      "ogTitle": "Tennis Racket Stringing Swindon | Professional Service | Tennis Doctor",
      "ogDescription": "Professional tennis racket stringing with 25 years experience. Same-day service in Swindon, Wiltshire. Premium strings, expert precision. Book now!"
    },
    "bs:schema": {
      "@id": "https://boisestandard.org/web/tennisdoctor-co-uk#root-ld-body/schema",
      "typesFound": [
        "LocalBusiness",
        "PostalAddress",
        "GeoCoordinates",
        "City",
        "AdministrativeArea",
        "OpeningHoursSpecification",
        "AggregateRating",
        "OfferCatalog",
        "Offer",
        "Service",
        "FAQPage",
        "Question",
        "Answer",
        "BreadcrumbList",
        "ListItem",
        "Country"
      ],
      "interiorTypes": [
        "FAQPage",
        "BreadcrumbList",
        "LocalBusiness",
        "Service"
      ],
      "blockCount": 4,
      "propCount": 43,
      "coverageScore": 0.6392,
      "coverageLabel": "good",
      "gapList": [
        "openingHours",
        "geoCovers",
        "specialOpeningHoursSpecification",
        "publicAccess",
        "smokingAllowed",
        "geoOverlaps",
        "geoContains",
        "keywords",
        "hasMap",
        "globalLocationNumber",
        "review",
        "event",
        "tourBookingPage",
        "containsPlace",
        "containedInPlace",
        "geoEquals",
        "hasCertification",
        "hasDriveThroughService",
        "additionalProperty",
        "isicV4"
      ],
      "parentTypes": [
        "Place",
        "Organization"
      ],
      "siblingTypes": [
        "Accommodation",
        "DefinedRegion",
        "MedicalOrganization",
        "TouristAttraction",
        "Airline",
        "Residence",
        "SportsOrganization",
        "Corporation",
        "CivicStructure",
        "EducationalOrganization",
        "AdministrativeArea",
        "Landform",
        "PerformingGroup",
        "LandmarksOrHistoricalBuildings",
        "NGO"
      ],
      "childTypes": [
        "AnimalShelter",
        "ArchiveOrganization",
        "AutomotiveBusiness",
        "ChildCare",
        "Dentist",
        "DryCleaningOrLaundry",
        "EmergencyService",
        "EmploymentAgency",
        "EntertainmentBusiness",
        "FinancialService",
        "FoodEstablishment",
        "GovernmentOffice",
        "HealthAndBeautyBusiness",
        "HomeAndConstructionBusiness",
        "InternetCafe",
        "LegalService",
        "Library",
        "LodgingBusiness",
        "MedicalBusiness",
        "ProfessionalService",
        "RadioStation",
        "RealEstateAgent",
        "RecyclingCenter",
        "SelfStorage",
        "ShoppingCenter",
        "SportsActivityLocation",
        "Store",
        "TelevisionStation",
        "TouristInformationCenter",
        "TravelAgency"
      ],
      "negativeTypeSpace": [
        "Action",
        "BioChemEntity",
        "CreativeWork",
        "Event",
        "Intangible",
        "MedicalEntity",
        "Person",
        "Product",
        "Taxon"
      ],
      "negativeTypeSpaceNote": "These schema types have no structural connection to the declared type branch of the schema.org graph. Graph position measurement — not inference. Constitutional Law VI: the absence of connection is a pattern waiting to be read. Law III: meaning is yours.",
      "vocabVersion": "2.0.0",
      "analyzedAt": "2026-07-03T10:53:06.080856+00:00",
      "graphEdgeUrls": [
        "https://boisestandard.org/registry/schema/ledger/localbusiness",
        "https://boisestandard.org/registry/schema/ledger/postaladdress",
        "https://boisestandard.org/registry/schema/ledger/geocoordinates",
        "https://boisestandard.org/registry/schema/ledger/city",
        "https://boisestandard.org/registry/schema/ledger/administrativearea",
        "https://boisestandard.org/registry/schema/ledger/openinghoursspecification",
        "https://boisestandard.org/registry/schema/ledger/aggregaterating",
        "https://boisestandard.org/registry/schema/ledger/offercatalog",
        "https://boisestandard.org/registry/schema/ledger/offer",
        "https://boisestandard.org/registry/schema/ledger/service",
        "https://boisestandard.org/registry/schema/ledger/faqpage",
        "https://boisestandard.org/registry/schema/ledger/question",
        "https://boisestandard.org/registry/schema/ledger/answer",
        "https://boisestandard.org/registry/schema/ledger/breadcrumblist",
        "https://boisestandard.org/registry/schema/ledger/listitem",
        "https://boisestandard.org/registry/schema/ledger/country"
      ],
      "schemaGraphRef": "https://boisestandard.org/web/tennisdoctor-co-uk#schema-graph"
    },
    "bs:semantic": {
      "@id": "https://boisestandard.org/web/tennisdoctor-co-uk#root-ld-body/keywords",
      "topWords": [
        "racket",
        "tennis",
        "stringing",
        "service",
        "professional",
        "string",
        "services",
        "doctor",
        "swindon",
        "collection",
        "book",
        "restringing",
        "years",
        "quality",
        "tension",
        "tournament",
        "available",
        "experience",
        "precision",
        "turnaround",
        "premium",
        "equipment",
        "rackets",
        "performance",
        "players",
        "playing",
        "style",
        "delivery",
        "hours",
        "alan",
        "across",
        "process",
        "phase",
        "consultation",
        "game",
        "inspection",
        "touch",
        "grip",
        "court",
        "shirts"
      ],
      "wordCount": 40,
      "note": "Top words by frequency from homepage + interior pages after stop-word removal. No language classification. No dictionary matching. Pure signal from what the entity chose to say about itself. Constitutional Law III."
    },
    "bs:topologyFingerprint": {
      "@id": "https://boisestandard.org/web/tennisdoctor-co-uk#root-ld-body/topology",
      "modelVersion": "1.0.0",
      "extractedTextHash": "8837c52acf9013f066dc032686d3c45c155a7aa439a9e501cdabf3dd5674aaa5",
      "extractionTimestamp": "2026-07-03T10:53:06.069791+00:00",
      "textLengthCategory": "medium",
      "rawTextLength": 9474,
      "character": {
        "totalCharacters": 9474,
        "uniqueCharacters": 81,
        "characterDiversityRatio": 0.00855,
        "nonAsciiRatio": 0.001161,
        "uppercaseRatio": 0.064321,
        "numericRatio": 0.011716,
        "characterEntropy": 3.289435,
        "mostFrequentCharacter": "e",
        "leastFrequentCharacter": "J"
      },
      "token": {
        "totalTokens": 1416,
        "uniqueTokens": 717,
        "typeTokenRatio": 0.506356,
        "averageTokenLength": 5.611582,
        "maxTokenLength": 23,
        "longestToken": "info@tennisdoctor.co.uk",
        "hapaxLegomenaCount": 499
      },
      "punctuation": {
        "punctuationDensity": 0.02586,
        "commaToPeriodRatio": 0.9833,
        "punctuationEntropy": 1.685834,
        "avgInterPeriodDist": 153.457627,
        "avgInterCommaDist": 147.913793,
        "semicolonDensity": 0.000106,
        "questionMarkDensity": 0.001689
      },
      "sentence": {
        "sentenceCount": 63,
        "avgSentenceLengthTokens": 22.47619,
        "skewnessSentenceLength": 1.568583,
        "kurtosisSentenceLength": 2.619344,
        "longSentenceRatio": 0.079365,
        "firstToMeanLengthRatio": 1.4682,
        "lastToMeanLengthRatio": 1.8242
      },
      "paragraph": {
        "paragraphCount": 111,
        "avgParagraphLengthTokens": 12.72973,
        "singleSentenceParagraphRatio": 0.81982
      },
      "document": {
        "capitalTokenRatio": 0.274718,
        "repetitionScore": 0.647599,
        "bigramRepetitionScore": 0.176678,
        "hapaxToTypeRatio": 0.695955
      }
    },
    "bs:ratioSignals": {
      "schemaDensity": 1.075,
      "navRatio": 0.75,
      "contentToStructureRatio": 0.0113,
      "externalTldDiversity": 0,
      "selfDeclarationCoherence": 0.2525,
      "schemaToNavigationAlignment": 0.0,
      "javascriptSurfaceRatio": 0.0,
      "urlDepthDistribution": {
        "depth_0": 4,
        "depth_1": 0,
        "depth_2": 0,
        "depth_3plus": 0
      },
      "note": "Eight deterministic measurements. No judgment. The gap is the signal. Every value traces to a specific pipeline stage. Constitutional Law I: full provenance."
    },
    "bs:navigation": {
      "totalUrlCount": 4,
      "navUrlCount": 3,
      "deadUrls": [],
      "externalTlds": [],
      "interiorPageCount": 3,
      "interiorWordCount": 33,
      "jsSurfaceRatio": 0.0
    },
    "bs:provenance": {
      "securityLabel": "MODERATE",
      "httpsEnforced": true,
      "hstsDetected": true,
      "cspDetected": false,
      "freshnessLabel": "RECENT",
      "latestYearInContent": 2025,
      "techStack": {
        "cms": null,
        "cdn": "Cloudflare",
        "web_server": "cloudflare",
        "analytics": [],
        "frameworks": []
      }
    },
    "bs:graphEdges": {
      "totalEdges": 60,
      "tldEdges": 1,
      "schemaTypeEdges": 16,
      "schemaPropEdges": 43,
      "note": "Graph edges this entity leaves on the Boise Standard graph. Each edge records this entity's connection to a vocabulary node — a schema type, a schema property, or a TLD. Constitutional Law V: what two things share is a thing. The graph builds itself."
    },
    "bs:pipeline": {
      "extractorVersion": "refinery-boise-v1.0.0",
      "extract1TimeS": 7.74,
      "extract2TimeS": 0.27,
      "topologyTimeS": 0.011,
      "schemaTimeS": 0.0,
      "atomicAnswerTimeS": 0.0,
      "totalPipelineS": 8.04,
      "attemptCount": 1,
      "braidName": "run-20260629-203336"
    }
  },
  "rld:recursive": {
    "@type": "rld:Recursive",
    "@id": "https://boisestandard.org/web/tennisdoctor-co-uk#root-ld-recursive",
    "rld:edgeCount": 0,
    "rld:edges": [],
    "rld:appendedAt": [],
    "rld:mintNote": "Recursive layer initialized at mint. Empty by design. Edges form through accumulated corpus passes — common edges (Law V), uncommon edges (Law VI), topology cluster scores, and for Boise Standard: jurisdictional and supply-chain edges. The graph builds itself. Constitutional Law VII — Torus.",
    "rld:substrateNote": "Topology cluster membership and geometric coordinates in shape space populate here when corpus depth makes the measurements meaningful.",
    "rld:recursiveSpecUrl": "https://root-ld.org/spec/1.0/recursive",
    "rld:initializedAt": "2026-07-03T10:53:06.642177+00:00"
  }
}