Quick Start Guide
DDI-Codebook
Loading and processing a DDI-Codebook document:
from dartfx.ddi import ddicodebook
# Load from file
my_codebook = ddicodebook.loadxml('path/to/codebook.xml')
# Access study metadata
study = my_codebook.studyDscr
# Access variables
if my_codebook.dataDscr:
for var in my_codebook.dataDscr.var:
print(f"Variable: {var.name}")
DDI-CDI & Assistant Framework
Working with DDI-CDI is easiest using the Assistant framework, which manages identifiers and complex object skeletons for you.
Basic Lifecycle:
from dartfx.ddi.ddicdi import model_1_0_0 as model
from dartfx.ddi.ddicdi.assistants import CdiClassAssistant
# 1. Create resources
dataset = CdiClassAssistant.create(model.DataSet, name="MyDataset")
variable = CdiClassAssistant.create(model.InstanceVariable, name="AGE")
# 2. Relate resources (methods are bound to the model)
dataset.add_variable(variable)
# 3. Export to RDF
graph = dataset.to_rdf_graph()
print(graph.serialize(format="turtle"))
Conversion from DDI-Codebook
Transform DDI-Codebook metadata into a stack of DDI-CDI resources aligned with the CDIF profile:
from dartfx.ddi.utils import codebook_to_cdif
# cb is a loaded codeBookType instance
cdi_resources = codebook_to_cdif(cb)
# The result is a dictionary mapping URIs to Assistants
for uri, assistant in cdi_resources.items():
print(f"Generated CDI Resource: {uri}")
Specification Loader
For introspecting the DDI-CDI specification itself:
from dartfx.ddi.ddicdi.specification import DdiCdiModel
# Initialize model from local spec files
cdi_spec = DdiCdiModel(root_dir='specifications/ddi-cdi-1.0')
# Search for classes
variable_classes = cdi_spec.search_classes("variable")
Next Steps
Learn about the core DDI Cross Domain Integration (CDI) implementation.
Explore the DDI-Codebook Processing API reference.
See Examples for more detailed use cases.