Release Date: 11/4/2026
Format: N-Quads
Size: 18.71 GB
N-Quads knowledge graph generated by stack2graph from Stack Overflow snapshot stackexchange_20260630_sakura. This dataset contains Stack Overflow questions whose tags do not match any configured language category in the release's selection registry, together with their answers and comments. It is the extra-languages fallback graph, not a separate programming language. The package includes its selected graph, schema and shared documentation. The archive contains publication.json with the exact file inventory, SHA-256 hashes and export identity. Named graph IRIs are embedded in the N-Quads and must be preserved when loading. Source code and current procedures: https://github.com/tha-atlas/Stack2Graph
Licensing
Creative Commons Attribution Share Alike 4.0 International (CC-BY-SA-4.0)
https://spdx.org/licenses/CC-BY-SA-4.0.htmlUse must comply with the source StackOverflow content license and attribution requirements.
Do not use in ways that violate the source content license, privacy expectations, or applicable law.
Ethical Review
Built from publicly released StackOverflow data dumps; users remain responsible for compliant usage.
Intended Use
Graph retrieval, SPARQL analysis and retrieval-augmented question answering over Stack Overflow discussions.
This dataset contains Stack Overflow questions whose tags do not match any configured language category in the release's selection registry, together with their answers and comments. It is the extra-languages fallback graph, not a separate programming language.
The RDF export is produced by stack2graph.
| Field | Value |
|---|---|
| Source snapshot | stackexchange_20260630_sakura |
| Source release date | 2026-06 |
| Source archive | stackexchange_20260630/stackoverflow.com.7z |
| RDF format | N-Quads |
| RDF shards | 1646 |
| Quads across all included shards | 767292164 |
| Named graphs | 41 |
| Stored RDF shard bytes | 171772262255 |
| Shard compression | none |
| Mapping version | kg-map-5-streamed-count-acceptance |
The byte count is the sum of the RDF files as stored inside the archive. The size of the downloadable archive also depends on compression and the included metadata.
The selected language graph is http://stackoverflow.com/extra-languages. Schema statements are
stored in http://stackoverflow.com/schema. The package also includes the full set of shared
tag-documentation shards, including documentation assigned to other language
graphs. The counts below cover every included shard.
| Named graph IRI | Shards | Quads | Stored bytes |
|---|---|---|---|
http://stackoverflow.com/.net | 1 | 509,802 | 106,946,489 |
http://stackoverflow.com/abap | 1 | 28,199 | 7,135,975 |
http://stackoverflow.com/assembly | 1 | 108,506 | 24,486,120 |
http://stackoverflow.com/bash | 1 | 269,740 | 58,415,774 |
http://stackoverflow.com/c | 1 | 397,463 | 82,602,742 |
http://stackoverflow.com/c%23 | 2 |
Questions with tags for several programming languages can appear in several language packages. Totals from different packages therefore overlap.
Each N-Quads statement contains a subject, predicate, object and named graph IRI. The named graph records the language selection that contains the statement. Entities keep the same IRIs across language graphs, so the same question can be queried in several contexts without introducing a separate question identity. Files are storage shards; splitting a graph across files does not create new logical graphs.
The vocabulary uses the namespace http://stackoverflow.com/schema#, abbreviated
as so: below. Its RDF/OWL definitions are included in http://stackoverflow.com/schema.
Questions connect to answers, comments, tags and other questions. The relationship table below gives the direction of each predicate and its exported inverse. An accepted answer is also an answer, and acceptance edges are present only when resolved from the source. Comments can also belong to tag documentation posts. The diagram below shows these entities and relationships.
The diagram's combined "Other question" node illustrates the possible directions of
so:duplicateOf. It does not assert that a pair of questions is marked as a
duplicate in both directions. Each arrow requires its own source PostLinks
record. Neither so:duplicateOf nor so:linkedTo has an automatically
exported inverse; an incoming edge is a separate source relation, not a generated
reverse of the outgoing edge. An incoming edge is stored in its source question's
language graph, so displaying it can require loading another language package.
Timestamps are datatype properties whose objects are xsd:dateTime literals.
Each field is a separate RDF statement. In the diagram, rectangular
panels group these properties beside their entities; the panels are not RDF
entities. Missing source values produce no statement.
| Property | Meaning | Applicable entities |
|---|---|---|
so:creationDate | Creation time | Questions, answers, tag documentation and comments |
so:lastEditDate | Last edit time | Questions, answers and tag documentation |
so:lastActivityDate | Last activity time | Questions, answers and tag documentation |
so:communityOwnedDate | Conversion to community wiki | Questions, answers and tag documentation |
so:closedDate | Closure time | Questions |
The packaged SVG shows representative panels for the question, an answer and a comment. The same rules apply to accepted answers, answer comments and tag documentation as listed above. For example, a question's creation time is represented as the following triple, within its named graph (the value is illustrative):
@prefix so: <http://stackoverflow.com/schema#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
<http://stackoverflow.com/q/123>
so:creationDate "2024-03-15T10:30:00Z"^^xsd:dateTime .
These fields describe the source snapshot, not a complete revision history. Last activity or last edit dates alone do not establish technical freshness.
| Entity | Representation |
|---|---|
| Question | so:Question, identified by http://stackoverflow.com/q/{post_id} |
| Answer | so:Answer, identified by http://stackoverflow.com/a/{post_id} |
| Comment | so:Comment, with so:QuestionComment or so:AnswerComment for comments on discussions |
| Tag | so:Tag, identified by http://stackoverflow.com/tags/{encoded_tag} |
| Tag documentation | so:TagWiki and so:TagExcerpt, connected to their tag |
Questions, answers and documentation posts carry source post IDs. Available properties include titles, original HTML bodies, scores, aggregated upvote and downvote counts, timestamps and content licenses. Comments carry text, scores, creation dates and licenses. Question-specific properties include source answer, view and favorite counts. Missing source values are omitted. Individual voters and user-profile entities are not represented by this mapping.
| Relationship | Meaning | Exported inverse |
|---|---|---|
so:hasAnswer | Question to one of its answers | so:answersQuestion |
so:acceptedAnswer | Question to its resolved accepted answer | so:acceptedAnswerOf |
so:hasComment | Post to a comment on it | so:commentOn |
so:taggedWith | Question to one of its source tags | so:tagsQuestion |
so:hasTagWiki | Tag to its documentation post | so:tagWikiOf |
so:hasTagExcerpt | Tag to its short description |
The listed inverse relationships are written as triples, so querying them does
not require an inference engine. A link or duplicate edge does not imply a reverse
edge. The mapper also writes applicable superclass types. Answer status uses
classes such as so:AnsweredQuestion, so:UnansweredQuestion and
so:QuestionWithAcceptedAnswer; missing edges alone do not establish unanswered
status. An accepted answer or a high score does not establish technical correctness.
The ontology defines so:possibleBetterAnswer, but this exporter does not generate
that assessment.
Language membership is determined from question tags using the release's selection
registry. Matching covers configured base tags, version patterns and aliases.
Answers and discussion comments inherit their question's graph membership; their
bodies are not classified independently. Questions without a registry match are
routed to the http://stackoverflow.com/extra-languages graph in the full export.
This category is not an additional match for questions already assigned to a
registered language.
extra-languages can be published as its own dataset alongside the 39 language
datasets. Its graph IRI is http://stackoverflow.com/extra-languages. It contains
questions with no match in the release's configured language registry, including
their answers, comments and outgoing question links. This can include questions
about unconfigured languages and questions without a recognized language tag;
it is not a classification into one additional programming language.
The graph also holds tags without recorded graph usage and tag documentation without a resolved owner. Its publication package includes its discussion shards, the schema and all shared documentation shards. Regular language packages include shared documentation from this graph, but not its complete discussion collection. Load the extra-languages dataset from the same export identity to resolve links whose target discussions are in that graph. It complements the configured language selections without assigning those discussions to another language.
There are three ways language graphs share or connect content:
extra-languages.so:linkedTo and so:duplicateOf point
from a question to another question's IRI. The edge is stored in the source
question's language graphs. Its target can belong to another language graph.For example, Q1 has tags matching both Python and Java, so its discussion is represented in both graphs. Q2 belongs to Java and is the target of a source link from Q1. The following statements illustrate this arrangement:
| Named graph | Subject | Predicate | Object |
|---|---|---|---|
http://stackoverflow.com/python | Q1 | so:linkedTo | Q2 |
http://stackoverflow.com/java | Q1 | so:linkedTo | Q2 |
http://stackoverflow.com/java | Q2 | rdf:type | so:Question |
Q1 stands for http://stackoverflow.com/q/1 in both graphs; Q2 stands for
http://stackoverflow.com/q/2. The two Q1 entries describe the same entity.
There is no additional "same entity" edge. The two so:linkedTo statements are
copies of the same source link stored in different named graphs.
These IDs are illustrative. Q2's reference in the Python graph does not by itself include Q2's title, body or answers there. Those descriptions are available when the package containing Q2's discussion has been loaded.
Each language package contains the selected language's discussion shards plus
all shared tag-documentation shards and the schema. A Java graph appearing in a
Python package's inventory can therefore contain shared documentation without
containing Java's full question-and-answer collection. The same applies to
extra-languages: its shared documentation can be present without its discussion
shards. A referenced question can have no local description when its discussion
is only in another package.
To follow these connections across languages, load the relevant packages from
the same export identity into one RDF dataset and preserve the named graphs.
Shared shards occur in multiple packages; avoid importing them repeatedly into
stores that retain duplicate statements. For entity counts across graphs, use
COUNT(DISTINCT ?question). Summing quad counts measures graph statements,
including repeated statements in different language graphs, rather than unique
discussions.
publication.json records each file's path, stored byte count, SHA-256 checksum
and graph key, together with the export identity. RDF files are under graphs/.
Internal run manifests, QLever indexes, credentials and uploader source are
excluded from the archive.
Load the .nq files as N-Quads and preserve their embedded named graph IRIs.
For .nq.gz files, decompress them first if your RDF store cannot read gzip.
The following query counts loaded quads by graph. Use the graph inventory above
to check the result, or restrict queries to http://stackoverflow.com/extra-languages when working
with the selected language.
SELECT ?graph (COUNT(*) AS ?quads)
WHERE { GRAPH ?graph { ?s ?p ?o } }
GROUP BY ?graph
Retrieve questions and their available answers in this language graph:
PREFIX so: <http://stackoverflow.com/schema#>
SELECT ?question ?title ?answer
WHERE {
GRAPH <http://stackoverflow.com/extra-languages> {
?question a so:Question .
OPTIONAL { ?question so:hasTitle ?title }
OPTIONAL { ?question so:hasAnswer ?answer }
}
}
LIMIT 25
After loading other language packages, find linked or duplicate questions whose descriptions are available in another named graph:
PREFIX so: <http://stackoverflow.com/schema#>
SELECT DISTINCT ?question ?relation ?target ?targetGraph ?targetTitle
WHERE {
GRAPH <http://stackoverflow.com/extra-languages> {
VALUES ?relation { so:linkedTo so:duplicateOf }
?question a so:Question ; ?relation ?target .
}
GRAPH ?targetGraph {
?target a so:Question ; so:hasTitle ?targetTitle .
}
FILTER (?targetGraph != <http://stackoverflow.com/extra-languages>)
}
LIMIT 25
The second query returns only targets with loaded descriptions and titles. A target can occur in several graphs through overlapping tag selections; this does not mean the source and target questions use different languages exclusively.
The graph supports SPARQL analysis and retrieval over Stack Overflow discussions, including retrieval-augmented question answering. It represents the source snapshot; later edits and deletions on Stack Overflow are not reflected here.
This dataset is derived from Stack Overflow content. Its declared dataset license
is CC BY-SA 4.0
(CC-BY-SA-4.0). Preserve required attribution and license notices when
redistributing derived artifacts, and identify changes where required.
Individual source contributions retain their applicable license terms.
Stack Overflow's licensing guidance
distinguishes CC BY-SA 2.5, 3.0 and 4.0 according to contribution date. A dataset-level
license declaration does not replace those source notices. The graph preserves
source-provided license labels in so:contentLicense where available. Consult the
original posts and revision records for author attribution and applicable terms.
The publication's MDC datasheet provides its license declaration and contact details.
If you use this dataset, cite the Stack2Graph project. The research citation accompanies the required attribution for the underlying Stack Overflow content.
Kleybolte, L. A., Ventura, V., & Zarcone, A. (2026). Stack2Graph: A Structured Knowledge Representation of Stack Overflow Data for Retrieval-based Question Answering. In Proceedings of the Knowledge Graphs and Large Language Models Workshop (KG-LLM) @ LREC26 (pp. 120-133). European Language Resources Association (ELRA). https://doi.org/10.63317/583q4d3mwbdu.
These fingerprints identify the inputs and exporter used for this release.
The export identity describes the build configuration and inputs; file checksums
are listed separately in publication.json.
| Component | Fingerprint |
|---|---|
| Export identity | 4d415cea2977835bf886c177f2bfc309a22738e145591f9c7ae4256e9bd086d5 |
| Source snapshot identity | 56fe643952cec74b17ea13d91edc8ad95181326156177c94cce48d3fed9834b9 |
| Language registry | d2a7357c04e7f47d9bb598189aeeb7db0680d6b35f0d9695d8d2e544121afb8e |
| Ontology | 1fc4dc1cc73a1baeddc0e1d70dc22ab95962581c6b61eb895ddcc70956621153 |
| Exporter | 8d9b9bac86b5e9c19bb0ce5af022e8a1ecd14c9f8e82e73169cbdb8455470422 |
Source code and documentation: stack2graph.
| 747,572 |
| 154,579,782 |
http://stackoverflow.com/c%2B%2B | 1 | 547,224 | 115,565,769 |
http://stackoverflow.com/cobol | 1 | 22,806 | 5,905,661 |
http://stackoverflow.com/css | 1 | 377,632 | 79,878,757 |
http://stackoverflow.com/dart | 1 | 173,422 | 38,418,337 |
http://stackoverflow.com/elixir | 1 | 53,770 | 13,214,613 |
http://stackoverflow.com/erlang | 1 | 70,831 | 17,015,911 |
http://stackoverflow.com/extra-languages | 1,602 | 755,778,616 | 169,308,210,168 |
http://stackoverflow.com/f%23 | 1 | 99,577 | 23,061,999 |
http://stackoverflow.com/fortran | 1 | 69,210 | 16,302,861 |
http://stackoverflow.com/go | 1 | 232,066 | 50,190,743 |
http://stackoverflow.com/haskell | 1 | 130,034 | 29,549,858 |
http://stackoverflow.com/html | 1 | 564,991 | 118,397,694 |
http://stackoverflow.com/java | 2 | 852,778 | 175,779,641 |
http://stackoverflow.com/javascript | 2 | 835,318 | 176,973,616 |
http://stackoverflow.com/julia | 1 | 78,196 | 18,129,118 |
http://stackoverflow.com/kotlin | 1 | 235,993 | 51,596,215 |
http://stackoverflow.com/lisp | 1 | 51,116 | 12,303,281 |
http://stackoverflow.com/lua | 1 | 121,394 | 27,520,033 |
http://stackoverflow.com/matlab | 1 | 192,261 | 42,328,114 |
http://stackoverflow.com/objective-c | 1 | 295,433 | 65,168,125 |
http://stackoverflow.com/perl | 1 | 199,111 | 43,997,237 |
http://stackoverflow.com/php | 1 | 599,966 | 124,416,158 |
http://stackoverflow.com/powershell | 1 | 246,683 | 54,868,728 |
http://stackoverflow.com/prolog | 1 | 52,218 | 12,630,513 |
http://stackoverflow.com/python | 2 | 832,615 | 172,503,416 |
http://stackoverflow.com/r | 1 | 309,658 | 65,272,221 |
http://stackoverflow.com/ruby | 1 | 332,599 | 71,344,012 |
http://stackoverflow.com/rust | 1 | 141,564 | 31,460,455 |
http://stackoverflow.com/scala | 1 | 225,800 | 49,890,758 |
http://stackoverflow.com/schema | 1 | 246 | 42,209 |
http://stackoverflow.com/shell | 1 | 231,941 | 51,162,808 |
http://stackoverflow.com/sql | 1 | 385,479 | 82,063,553 |
http://stackoverflow.com/swift | 1 | 305,458 | 65,138,858 |
http://stackoverflow.com/typescript | 1 | 303,648 | 66,849,340 |
http://stackoverflow.com/vb.net | 1 | 281,228 | 60,944,593 |
so:tagExcerptOf |
so:linkedTo | Directed source PostLinks relation of type 1 | None |
so:duplicateOf | Directed source PostLinks relation of type 3 | None |
Compensated · similar languages
High-specularity optical edge-case dataset (425 assets) for benchmarking computer vision and autonomous navigation against severe specular reflections.
Versioned software-engineering corpus with code, configuration, workflows, and AI-tooling artifacts across frontend, backend, cloud, and infrastructure.