@prefix : <https://github.com/veleda/rdf-vendor-landscape#> .
@prefix schema: <http://schema.org/> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
@prefix skos: <http://www.w3.org/2004/02/skos/core#> .
@prefix dct: <http://purl.org/dc/terms/> .
@prefix prov: <http://www.w3.org/ns/prov#> .
@prefix dcat: <http://www.w3.org/ns/dcat#> .
@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix vl: <http://data.veronahe.no/vocab#> .

##############################################
# Lightweight Ontology
##############################################

: a owl:Ontology ;
    schema:name "RDF Vendor Landscape Meta-Ontology"@en ;
    schema:description "A meta-level knowledge graph describing the RDF Vendor Landscape dataset — a comprehensive, interactive guide to 75 databases, frameworks, and tools in the RDF and semantic web ecosystem."@en ;
    schema:identifier "https://github.com/veleda/rdf-vendor-landscape" ;
    rdfs:label "RDF Vendor Landscape Meta-Ontology"@en ;
    rdfs:comment "Meta-level ontology for describing the vendor landscape dataset, its statistics, build pipeline, and deployment architecture."@en ;
    rdfs:isDefinedBy : .

# --- Custom Classes ---

:VendorLandscape a rdfs:Class ;
    rdfs:label "Vendor Landscape"@en ;
    rdfs:comment "A curated collection of RDF and semantic web vendors — databases, frameworks, and tools."@en ;
    rdfs:isDefinedBy : .

:BuildPipeline a rdfs:Class ;
    rdfs:label "Build Pipeline"@en ;
    rdfs:comment "The automated build process that transforms RDF source data into a deployable web application."@en ;
    rdfs:isDefinedBy : .

##############################################
# Main Dataset Description
##############################################

:vendorLandscapeDataset a dcat:Dataset, schema:Dataset ;
    schema:name "RDF Vendor Landscape Dataset"@en ;
    schema:description "A comprehensive RDF (Turtle) dataset describing 75 databases, frameworks, and tools in the RDF and semantic web ecosystem — including their capabilities, standards support, licensing, pricing, geographic distribution, and organizational affiliations. Serves as the single source of truth for the interactive vendor landscape website."@en ;
    schema:url "https://github.com/veleda/rdf-vendor-landscape" ;
    dct:description "Single source of truth for all vendor data in the RDF ecosystem"@en ;
    dct:format "text/turtle" ;
    dct:issued "2026-05-20"^^xsd:date ;
    dcat:distribution :vendorsTtlDistribution, :gitHubPagesDistribution ;
    schema:author :veleda ;
    schema:provider :gitHub ;
    schema:hasPart :buildPipeline, :vendorStatistics, :liveSite, :projectRepository ;
    prov:wasGeneratedBy :kgGeneratorSkill .

:vendorsTtlDistribution a dcat:Distribution ;
    dct:title "vendors.ttl"@en ;
    dct:format "text/turtle" ;
    dcat:accessURL <https://github.com/veleda/rdf-vendor-landscape/blob/main/vendors.ttl> .

:gitHubPagesDistribution a dcat:Distribution ;
    dct:title "Live Website"@en ;
    dct:format "text/html" ;
    dcat:accessURL <https://veleda.github.io/rdf-vendor-landscape/> .

##############################################
# Statistics
##############################################

:vendorStatistics a schema:ArticleSection ;
    schema:name "Vendor Landscape Statistics"@en ;
    schema:description "Key statistics about the RDF Vendor Landscape dataset — 75 products from 59 organizations across 19 countries."@en ;
    schema:isPartOf :vendorLandscapeDataset .

:totalProducts a schema:Observation ;
    schema:name "Total Products"@en ;
    schema:value "75" ;
    schema:isPartOf :vendorStatistics .

:totalDatabases a schema:Observation ;
    schema:name "Databases"@en ;
    schema:value "22" ;
    schema:isPartOf :vendorStatistics .

:totalFrameworks a schema:Observation ;
    schema:name "Frameworks"@en ;
    schema:value "23" ;
    schema:isPartOf :vendorStatistics .

:totalTools a schema:Observation ;
    schema:name "Tools"@en ;
    schema:value "30" ;
    schema:isPartOf :vendorStatistics .

:totalOrganizations a schema:Observation ;
    schema:name "Organizations"@en ;
    schema:value "59" ;
    schema:isPartOf :vendorStatistics .

:totalFocusAreas a schema:Observation ;
    schema:name "Focus Areas"@en ;
    schema:value "231" ;
    schema:isPartOf :vendorStatistics .

:totalStandards a schema:Observation ;
    schema:name "Standards"@en ;
    schema:value "14" ;
    schema:isPartOf :vendorStatistics .

:totalCountries a schema:Observation ;
    schema:name "Countries Represented"@en ;
    schema:value "19" ;
    schema:isPartOf :vendorStatistics .

:totalTriples a schema:Observation ;
    schema:name "Total RDF Triples"@en ;
    schema:value "3071" ;
    schema:isPartOf :vendorStatistics .

##############################################
# Build Pipeline
##############################################

:buildPipeline a :BuildPipeline, schema:HowTo ;
    schema:name "Vendor Landscape Build Pipeline"@en ;
    schema:description "The automated pipeline: vendors.ttl (RDF source) → build.py (maplib + SPARQL) → index.html (self-contained website)"@en ;
    schema:step :stepSource, :stepBuild, :stepDeploy ;
    schema:isPartOf :vendorLandscapeDataset .

:stepSource a schema:HowToStep ;
    schema:name "Edit vendors.ttl"@en ;
    schema:description "Edit the RDF Turtle file — the single source of truth for all vendor data. Add new vendors, update descriptions, correct URLs, or modify metadata."@en ;
    schema:position 1 .

:stepBuild a schema:HowToStep ;
    schema:name "Run build.py"@en ;
    schema:description "Execute the Python build script which uses the maplib library to parse vendors.ttl, run SPARQL queries to extract structured data, and inject the results as a JavaScript array into index.html."@en ;
    schema:position 2 .

:stepDeploy a schema:HowToStep ;
    schema:name "Deploy via GitHub Pages"@en ;
    schema:description "Commit and push changes. GitHub Pages automatically deploys index.html to https://veleda.github.io/rdf-vendor-landscape/ — no server required."@en ;
    schema:position 3 .

##############################################
# Technology Stack
##############################################

:maplibTool a schema:SoftwareApplication ;
    schema:name "maplib" ;
    schema:description "Python library used in the build pipeline to parse vendors.ttl and execute SPARQL queries for data extraction and JavaScript injection."@en ;
    schema:url "https://github.com/DataTreehouse/maplib" .

:sparqlTech a schema:DefinedTerm, schema:ComputerLanguage ;
    schema:name "SPARQL" ;
    schema:description "W3C standard query language for RDF — used in build.py to extract structured data from the vendor landscape for injection into the web application."@en ;
    schema:url "https://www.w3.org/TR/sparql11-query/" .

:gitHubPagesTech a schema:SoftwareApplication ;
    schema:name "GitHub Pages" ;
    schema:description "Static site hosting service used to deploy the vendor landscape website — no server infrastructure required."@en ;
    schema:url "https://pages.github.com/" .

:rdfTech a schema:DefinedTerm ;
    schema:name "RDF (Resource Description Framework)"@en ;
    schema:description "W3C standard for representing linked data as subject-predicate-object triples — the foundational data model for the vendor landscape."@en ;
    schema:url "https://www.w3.org/RDF/" .

##############################################
# People
##############################################

:veleda a schema:Person ;
    schema:name "Veronika Heimsbakk" ;
    schema:description "Creator of the RDF Vendor Landscape project — a comprehensive guide to RDF databases, frameworks, and tools."@en ;
    schema:url "https://www.linkedin.com/in/vheimsbakk/" ;
    schema:identifier "https://www.linkedin.com/in/vheimsbakk/" ;
    owl:sameAs <https://www.linkedin.com/in/vheimsbakk/#this> .

:gitHub a schema:Organization ;
    schema:name "GitHub" ;
    schema:url "https://github.com/" ;
    schema:description "Software development platform hosting the vendor landscape repository and providing Pages deployment."@en .

##############################################
# Project Repository
##############################################

:projectRepository a schema:SoftwareSourceCode ;
    schema:name "rdf-vendor-landscape"@en ;
    schema:description "GitHub repository containing the vendor landscape source code, RDF data, build script, and self-contained index.html web application."@en ;
    schema:url "https://github.com/veleda/rdf-vendor-landscape" ;
    schema:codeRepository "https://github.com/veleda/rdf-vendor-landscape" ;
    schema:programmingLanguage "HTML", "Python" ;
    schema:license "Open for reuse" ;
    schema:author :veleda .

:liveSite a schema:WebSite ;
    schema:name "RDF Vendor Landscape — Live Site"@en ;
    schema:description "Interactive single-page website for browsing and comparing RDF vendors — with filtering, comparison tools, benchmarks, and an in-browser SPARQL editor."@en ;
    schema:url "https://veleda.github.io/rdf-vendor-landscape/" .

##############################################
# FAQ Section — 12 Questions
##############################################

:faqSection a schema:FAQPage ;
    schema:name "RDF Vendor Landscape FAQ"@en ;
    schema:description "Frequently asked questions about the RDF Vendor Landscape dataset and website."@en ;
    schema:mainEntity :q1, :q2, :q3, :q4, :q5, :q6, :q7, :q8, :q9, :q10, :q11, :q12 ;
    schema:hasPart :q1, :q2, :q3, :q4, :q5, :q6, :q7, :q8, :q9, :q10, :q11, :q12 ;
    schema:isPartOf :vendorLandscapeDataset .

:q1 a schema:Question ; schema:name "What is the RDF Vendor Landscape?"@en ; schema:text "What is the RDF Vendor Landscape?"@en ; schema:acceptedAnswer :a1 .
:a1 a schema:Answer ; schema:text "A comprehensive, interactive guide to 75 databases, frameworks, and tools in the RDF and semantic web ecosystem. It provides filtering, comparison tools, benchmarks, and an in-browser SPARQL editor — all from a single self-contained HTML file."@en .

:q2 a schema:Question ; schema:name "What is the source of truth for the data?"@en ; schema:text "What is the source of truth for the data?"@en ; schema:acceptedAnswer :a2 .
:a2 a schema:Answer ; schema:text "The file vendors.ttl — an RDF Turtle document serving as the single source of truth for all vendor data. It contains descriptions, standards support, licensing, pricing, GitHub URLs, and geographic information for every vendor."@en .

:q3 a schema:Question ; schema:name "How is the website built?"@en ; schema:text "How is the website built?"@en ; schema:acceptedAnswer :a3 .
:a3 a schema:Answer ; schema:text "The build pipeline uses the maplib Python library to parse vendors.ttl, execute SPARQL queries to extract structured data, and inject the results as a JavaScript array into a self-contained index.html file. The site is then deployed via GitHub Pages."@en .

:q4 a schema:Question ; schema:name "How many vendors are in the landscape?"@en ; schema:text "How many vendors are in the landscape?"@en ; schema:acceptedAnswer :a4 .
:a4 a schema:Answer ; schema:text "75 vendors across three categories: 22 Databases, 23 Frameworks, and 30 Tools. These represent 59 organizations across 19 countries, covering 231 focus areas and 14 W3C/community standards."@en .

:q5 a schema:Question ; schema:name "What technologies power the project?"@en ; schema:text "What technologies power the project?"@en ; schema:acceptedAnswer :a5 .
:a5 a schema:Answer ; schema:text "The project uses RDF Turtle for data modeling, the maplib Python library for RDF-to-JavaScript conversion, SPARQL for data extraction, and GitHub Pages for deployment. The final output is a single self-contained HTML file requiring no server."@en .

:q6 a schema:Question ; schema:name "How can I contribute?"@en ; schema:text "How can I contribute?"@en ; schema:acceptedAnswer :a6 .
:a6 a schema:Answer ; schema:text "Edit vendors.ttl to add new vendors, correct descriptions or URLs, update licensing/pricing information, or add benchmark data. Then run pip install maplib && python build.py, verify changes in a browser, and submit a pull request on GitHub."@en .

:q7 a schema:Question ; schema:name "What license does the data use?"@en ; schema:text "What license does the data use?"@en ; schema:acceptedAnswer :a7 .
:a7 a schema:Answer ; schema:text "The vendor data and website code are open for reuse. Individual vendor entries carry their own licenses and trademarks as specified in their respective documentation."@en .

:q8 a schema:Question ; schema:name "What standards are tracked?"@en ; schema:text "What standards are tracked in the landscape?"@en ; schema:acceptedAnswer :a8 .
:a8 a schema:Answer ; schema:text "14 W3C and community standards are tracked, including RDF 1.1, SPARQL 1.1, OWL 2, SHACL, JSON-LD, RDFa, Turtle, N-Triples, RDF/XML, SPARQL 1.1 Update, SPARQL 1.1 Protocol, LDP, GeoSPARQL, and Graph Store Protocol."@en .

:q9 a schema:Question ; schema:name "What organization types are represented?"@en ; schema:text "What organization types are represented?"@en ; schema:acceptedAnswer :a9 .
:a9 a schema:Answer ; schema:text "59 organizations including major technology companies (Oracle, SAP, Amazon, Google, Microsoft), AI research labs (Google DeepMind, Oxford), open-source foundations (Apache, Eclipse), universities (Stanford, Ghent, KU Leuven, Mannheim), and specialized semantic web companies (Ontotext, Stardog, Franz Inc., TopQuadrant, OpenLink Software)."@en .

:q10 a schema:Question ; schema:name "Does it include benchmarks?"@en ; schema:text "Does the vendor landscape include benchmarks?"@en ; schema:acceptedAnswer :a10 .
:a10 a schema:Answer ; schema:text "Yes. Several vendors have benchmark data from the trainmarks benchmark suite. Vendors are tagged with speed tiers (fast, varies) and scale tiers (large, medium, small) based on community knowledge and published results."@en .

:q11 a schema:Question ; schema:name "How are focus areas organized?"@en ; schema:text "How are the 231 focus areas organized?"@en ; schema:acceptedAnswer :a11 .
:a11 a schema:Answer ; schema:text "Focus areas are organized as a controlled vocabulary covering capabilities like SPARQL, SHACL, OWL reasoning, RDF visualization, knowledge graph construction, linked data publishing, federated queries, GeoSPARQL, JSON-LD processing, enterprise integration, and many more. Vendors are tagged with all applicable focus areas."@en .

:q12 a schema:Question ; schema:name "Where is the live site?"@en ; schema:text "Where can I browse the vendor landscape?"@en ; schema:acceptedAnswer :a12 .
:a12 a schema:Answer ; schema:text "The live site is deployed at https://veleda.github.io/rdf-vendor-landscape/ via GitHub Pages. It is a single self-contained HTML file with filtering, comparison, and SPARQL query capabilities — no server or installation required."@en .

##############################################
# Glossary — 10 Terms
##############################################

:glossarySection a skos:ConceptScheme, schema:DefinedTermSet ;
    schema:name "RDF Vendor Landscape Glossary"@en ;
    schema:description "Key terms for understanding the RDF Vendor Landscape project."@en ;
    schema:hasDefinedTerm :termVendorLandscape, :termVendorsTTL, :termBuildPipeline, :termMaplib, :termSPARQL, :termGitHubPages, :termFocusArea, :termStandard, :termVendorType, :termOrganization ;
    schema:isPartOf :vendorLandscapeDataset .

:termVendorLandscape a skos:Concept, schema:DefinedTerm ; schema:name "RDF Vendor Landscape"@en ; schema:description "A comprehensive interactive guide to 75 RDF databases, frameworks, and tools — built from a single RDF source of truth."@en ; skos:definition "A comprehensive interactive guide to RDF vendors."@en ; skos:inScheme :glossarySection .
:termVendorsTTL a skos:Concept, schema:DefinedTerm ; schema:name "vendors.ttl"@en ; schema:description "The RDF Turtle file serving as the single source of truth for all vendor data in the landscape."@en ; skos:definition "The RDF Turtle file serving as the single source of truth."@en ; skos:inScheme :glossarySection .
:termBuildPipeline a skos:Concept, schema:DefinedTerm ; schema:name "Build Pipeline"@en ; schema:description "The automated process: vendors.ttl → build.py (maplib + SPARQL) → index.html — transforming RDF data into a deployable web application."@en ; skos:definition "The automated build process from RDF to web application."@en ; skos:inScheme :glossarySection .
:termMaplib a skos:Concept, schema:DefinedTerm ; schema:name "maplib"@en ; schema:description "A Python library for mapping DataFrames to RDF and executing SPARQL queries against RDF data — used in the build pipeline."@en ; skos:definition "A Python library for RDF data processing and SPARQL execution."@en ; skos:inScheme :glossarySection .
:termSPARQL a skos:Concept, schema:DefinedTerm ; schema:name "SPARQL"@en ; schema:description "The W3C standard query language for RDF — used in the build pipeline to extract structured data from the vendor landscape."@en ; skos:definition "The W3C standard query language for RDF."@en ; skos:inScheme :glossarySection .
:termGitHubPages a skos:Concept, schema:DefinedTerm ; schema:name "GitHub Pages"@en ; schema:description "Static site hosting service used to deploy the vendor landscape website — no server infrastructure required."@en ; skos:definition "Static site hosting service."@en ; skos:inScheme :glossarySection .
:termFocusArea a skos:Concept, schema:DefinedTerm ; schema:name "Focus Area"@en ; schema:description "A specific capability or domain that a vendor addresses — there are 231 focus areas in the landscape."@en ; skos:definition "A specific capability or domain addressed by a vendor."@en ; skos:inScheme :glossarySection .
:termStandard a skos:Concept, schema:DefinedTerm ; schema:name "W3C/Community Standard"@en ; schema:description "A specification or standard that vendors can support — 14 standards are tracked across the landscape."@en ; skos:definition "A specification or standard supported by vendors."@en ; skos:inScheme :glossarySection .
:termVendorType a skos:Concept, schema:DefinedTerm ; schema:name "Vendor Type"@en ; schema:description "The classification of a vendor as a Database (22), Framework (23), or Tool (30)."@en ; skos:definition "Classification of a vendor: Database, Framework, or Tool."@en ; skos:inScheme :glossarySection .
:termOrganization a skos:Concept, schema:DefinedTerm ; schema:name "Organization"@en ; schema:description "The company or institution behind a vendor product — 59 organizations are represented in the landscape."@en ; skos:definition "The company or institution behind a vendor product."@en ; skos:inScheme :glossarySection .

##############################################
# Attribution
##############################################

:kgGeneratorSkill a schema:SoftwareApplication ;
    schema:name "kg-generator skill" ;
    schema:url "https://github.com/OpenLinkSoftware/ai-agent-skills/tree/main/kg-generator" ;
    schema:description "Generated this meta-knowledge graph describing the RDF Vendor Landscape dataset."@en .

:rdfInfographicSkill a schema:SoftwareApplication ;
    schema:name "rdf-infographic-skill" ;
    schema:url "https://github.com/OpenLinkSoftware/ai-agent-skills/tree/main/rdf-infographic-skill" ;
    schema:description "Generated the companion HTML infographic and Markdown document from the RDF knowledge graph."@en .