{"schema":"https://ver.cy/schemas/card/1.0.0","id":"vr.tr.data-dependency","code":"thing-q334630","url":"https://ver.cy/models/thing/q334630/","name":"data dependency","alternateNames":[],"kind":"thing","status":"research-draft","version":"0.2.0-wave.2","language":"en","classifiers":{"family":"Thing Registry","category":"Cross-cutting context","entryKind":"thing","plane":"XCT","domain":["XCT.REL"],"industry":[],"navPath":"","tags":[],"facets":{}},"whatItIs":"A situation in computing in which an instruction, statement or task refers to data produced or modified by a preceding one, so that their order of execution matters, classified as true, anti and output dependencies and analysed to enable safe instruction scheduling, pipelining, parallelisation and compiler optimisation; data dependencies also arise between tasks in workflows and between datasets.","purpose":"Let an agent explain data dependencies and their kinds, analyse dependencies in code or workflows, describe how processors and compilers handle them, and support parallelisation.","scope":{"in":[],"out":[],"boundaries":[]},"distinguishingFeatures":["Data-driven ordering","Three classic kinds","Limits parallelism","Analysable"],"structure":{"bundles":[{"id":"define","name":"Define","description":"Kinds of dependency.","layers":[{"id":"kinds","name":"Kinds","description":"True, anti, output.","findings":[{"id":"kinds-finding","name":"Kinds","description":"Kinds.","questions":[{"text":"What are true, anti and output data dependencies, and how do they differ from control dependencies?","kind":"definition"},{"text":"What is a loop-carried dependency?","kind":"definition"}]}]},{"id":"analyse","name":"Analyse","description":"Analysing code.","findings":[{"id":"analyse-finding","name":"Analyse","description":"Analysis.","questions":[{"text":"Which data dependencies exist in this code or loop, and which prevent reordering or parallel execution?","kind":"action"},{"text":"How are dependencies represented in graphs?","kind":"definition"}]}]}]},{"id":"hardware","name":"Hardware","description":"Processors.","layers":[{"id":"hazards","name":"Hazards","description":"Pipeline hazards.","findings":[{"id":"hazards-finding","name":"Hazards","description":"Hazards.","questions":[{"text":"How do processors detect and resolve data hazards with forwarding, stalls and register renaming?","kind":"definition"},{"text":"What is out-of-order execution?","kind":"definition"}]}]},{"id":"memory","name":"Memory","description":"Memory dependencies.","findings":[{"id":"memory-finding","name":"Memory","description":"Memory.","questions":[{"text":"How are memory dependencies handled, and what are memory disambiguation and consistency models?","kind":"definition"},{"text":"Which entry fits processor architecture?","kind":"action"}]}]}]},{"id":"software","name":"Software","description":"Compilers and parallelism.","layers":[{"id":"compilers","name":"Compilers","description":"Compiler analysis.","findings":[{"id":"compilers-finding","name":"Compilers","description":"Compilers.","questions":[{"text":"How do compilers use dependence analysis for scheduling, vectorisation and loop transformations?","kind":"definition"},{"text":"How can anti and output dependencies be removed by renaming?","kind":"action"}]}]},{"id":"parallel","name":"Parallel","description":"Parallel programming.","findings":[{"id":"parallel-finding","name":"Parallel","description":"Parallel programming.","questions":[{"text":"How can this computation be parallelised safely given its dependencies?","kind":"action"},{"text":"Which tools detect races?","kind":"provenance"}]}]}]},{"id":"workflows","name":"Workflows","description":"Tasks and datasets.","layers":[{"id":"pipelines","name":"Pipelines","description":"Data pipelines.","findings":[{"id":"pipelines-finding","name":"Pipelines","description":"Pipelines.","questions":[{"text":"How are data dependencies expressed in workflow and build systems, and how do they drive scheduling?","kind":"definition"},{"text":"How is lineage tracked?","kind":"provenance"}]}]},{"id":"teach","name":"Teach","description":"Teaching.","findings":[{"id":"teach-finding","name":"Teach","description":"Teaching.","questions":[{"text":"How can data dependencies be taught with examples?","kind":"action"},{"text":"Which misconceptions arise?","kind":"provenance"}]}]}]}]},"agentConduct":{"may":["Analyse code it is authorized to change and report true, anti and output dependencies between statements.","Preserve the order of dependent operations when reordering, parallelising or optimising code."],"mustNot":["Reorder or parallelise operations in a way that breaks a dependency and silently changes results.","Report code as safe to run concurrently without checking its shared data.","Remove synchronisation that protects a dependency to gain speed without the maintainer's agreement.","Hide a detected race condition from the people responsible for the code."],"requiresHuman":["Deploying a parallelised change to systems where wrong results affect money, safety or health."]},"ethics":{"considerations":["Ignored dependencies produce wrong results that look correct, which is worse than a visible crash.","Systems that control machines or records can harm people when ordering bugs slip through."],"affectedParties":["Users of the software","Developers and maintainers","People affected by its outputs"]},"owners":{"steward":"Nobody owns the concept; the maintainers of each program answer for the dependencies in it.","roles":[],"masterSystems":[]},"relations":[{"target":"Q1191527","type":"parent","note":"registry parent class"},{"target":"dependency","type":"related","note":"category"},{"target":"calculation","type":"related","note":"computation ordering"},{"target":"data set","type":"related","note":"dataset dependencies"},{"target":"routing","type":"related","note":"ordering in networks contrast"}],"interaction":{"identity":{"applicability":"required","items":["Vercy registry: vr.tr.data-dependency","Wikidata: Q334630 (https://www.wikidata.org/wiki/Q334630)"]},"properties":{"applicability":"not-applicable","items":[]},"recognition":{"applicability":"optional","items":["Later operation uses earlier data","True, anti or output dependency","Control dependency concerns branching, not data","Not physical; relations between instructions or tasks."]},"capabilities":{"applicability":"required","items":["explain kinds of data dependency","analyse dependencies in code or workflows","describe hardware and compiler handling","support parallelisation"]},"hazards":{"applicability":"required","items":["Race conditions from ignored dependencies","Pipeline hazards","Incorrect parallelisation"]},"interfaces":{"applicability":"required","items":["Compiler and processor design conventions","Workflow specification standards"]},"context":{"applicability":"required","items":["Ordering constraints from data use.","true or flow dependencies","anti dependencies","output dependencies","loop-carried dependencies","task and dataset dependencies in workflows"]}},"sources":[{"title":"Wikidata item Q334630: data dependency","url":"https://www.wikidata.org/wiki/Q334630","note":"identity and sense of the item"},{"title":"Wikipedia: Data dependency","url":"https://en.wikipedia.org/wiki/Data_dependency","note":"general description of the item"}],"openQuestions":["Should control dependency be a paired entry?","How should compiler references be linked?","How should workflow tools be linked?"],"resources":{"spec":"/models/things/publications/thing-q334630/spec.json"},"provenance":{"origin":"thing registry research (pass 2)","builtFrom":["models/things/publications/thing-q334630/spec.json"],"providers":["Claude"],"researchStatus":"unreviewed","generatedAt":"2026-09-11T22:25:28Z","builder":"tools/build_cards.py@1.0.0"},"completeness":{"sections":{"classifiers":"filled","whatItIs":"filled","purpose":"filled","distinguishingFeatures":"filled","structure":"filled","agentConduct":"filled","ethics":"filled","owners":"filled","relations":"filled","interaction.identity":"filled","interaction.properties":"not-applicable","interaction.recognition":"filled","interaction.capabilities":"filled","interaction.hazards":"filled","interaction.interfaces":"filled","interaction.context":"filled","sources":"filled"},"notes":{"interaction.properties":"Plane XCT: no invented physical properties."},"score":1.0}}