Open khelm opened 7 years ago
BIDS:"Creator" is currently being used at the project level, as the role for investigators that are involved in the study or who wrote the paper. I've reformulated this in prov (note that NEMO_0448000 is the activity "writing") to show how one doesn't need "creator":
The prov version of this would be:
@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix prov: <http://www.w3.org/ns/prov#> .
@prefix nemo: <http://www.nemo.org/ns#> . #this is fake
@prefix sio: <http://www.sio.org/ns#> . #this is fake
@prefix ncit: <http://www.ncit.org/ns#> . #this is also fake
@prefix : <http://example.com/> .
nemo:NEMO_0448000
a prov:Activity ;
ncit:author a prov:Role.
:dave a prov:Person, prov:Agent ;
prov:hadRole ncit:author .
<http://purl.org/nidash/nidm#0485a306-aa22-11e7-8e01-6c4008b8f03e> a sio:manuscript,
prov:Entity ;
prov:wasAssociatedWith :dave ;
prov:wasGeneratedBy nemo:NEMO_0448000 .
Or using qualified associations:
@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix prov: <http://www.w3.org/ns/prov#> .
@prefix nemo: <http://www.nemo.org/ns#> . #this is fake
@prefix sio: <http://www.sio.org/ns#> . #this is fake
@prefix ncit: <http://www.ncit.org/ns#> . #this is also fake
@prefix : <http://example.com/> .
nemo:NEMO_0448000
a prov:Activity;
prov:wasAssociatedWith :dave ; ## the writing activity was associated with Dave.
.
nemo:NEMO_0448000
prov:qualifiedAssociation [ ## Qualify how the writing activity
a prov:Association; ## was associated with
prov:agent :dave ## the Agent Dave.
prov:hadRole ncit:author; ## Qualification: The role that Dave served.
prov:hadPlan :style-guide;
rdfs:comment "Dave wrote the manuscript."@en
];
.
:dave a prov:Person, prov:Agent .
ncit:author a prov:Role .
:style-guide a prov:Plan, prov:Entity .
@dbkeator , here is an example using terms from NIDM-E. I tried to use actual ID's from your document, but I have flagged the exception.
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>.
@prefix xsd: <http://www.w3.org/2000/10/XMLSchema#> .
@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix prov: <http://www.w3.org/ns/prov#> .
@prefix sio: <http://semanticscience.org/resource/> .
@prefix ncit: <http://ncitt.ncit.nih.gov/> .
@prefix prov: <http://www.w3.org/ns/prov#> .
# define the Agents
nidm:lauren a prov:Person, prov:Agent ;
prov:hadRole nidm:DemographicsInstrumentAdministrator.
nidm:dave a prov:Person, prov:Agent ;
prov:hadRole nidm:AcquisitionDeviceOperator . # role needs to be added to NIDM-E
#define the protocol
nidm:Protocol a nidm:PerformedPlan # we also have nidm:SpecifiedPlan
# define the project
nidm:_9bb88d4a-ae00-11e7-bb29-6c4008b8f03e a nidm:Project,
prov:Activity ; #I don’t think you need this because project is already an activity in the owl file
dctypes:title "UCLA Consortium for Neuropsychiatric Phenomics LA5c Study"^^xsd:string ;
dct:description "All participants received brief training on each task directly before scanning. Each participant viewed the task through MRI-compatible goggles, responded with his or her right hand on an MR-compatible button box in the scanner, and performed one run of each task while in the scanner. Stimulus presentation and timing of all stimuli and response events were achieved using Matlab (Mathworks) and the Psychtoolbox (www.psychtoolbox.org) on an Apple Powerbook."^^xsd:string ;
dct:license "PDDL"^^xsd:string ;
sio:identifier "1.0.0rc3"^^xsd:string ;
dcat:creator "DB Keater"^^xsd:string .
# define the session
nidm:_9bbbf534-ae00-11e7-bd89-6c4008b8f03e a nidm:Session,
dct:isPartOf nidm:_ 9bb88d4a-ae00-11e7-bb29-6c4008b8f03e . #part of the project
# which assessment activity
nidm:_9bb9afcc-ae00-11e7-8cf7-6c4008b8f03e a onli:instrument-based-assessment,
Prov:used nidm:fBIRNDemographicsForm .
# which assessment was used
nidm:fBIRNDemographicsForm a onli:assessment-instrument . # don’t need to do this if the form is in NIDM-E, but we’ll have to define a document as the form in this doc if not.
#which imaging protocol
nidm:_9bbd8c26-ae00-11e7-8230-6c4008b8f03e a sio:file , #there is not a protocol in Dave’s example
a nidm:Protocol . #so this is a fake ID
# which MRI acquisition activity
nidm:_9bbc5b50-ae00-11e7-a6bf-6c4008b8f03e a nidm:Acquisition ;
prov:used nidm:b-valueFile ;
prov:used nidm:b-vectorFile ;
prov:qualifiedAssociation [ ## Qualify how the writing activity
a prov:Association; ## was associated with
prov:Agent nidm:Dave ## the Agent Dave
prov:hadPlan nidm:Protocol;
rdfs:comment "Dave scanned the subject."@en
] ;
.
# which demographics acquisition activity
nidm:_9bb9afcc-ae00-11e7-8cf7-6c4008b8f03e a nidm:DemographicsDataAcquisition ;
prov:used nidm:fBIRNDemographicsForm ;
prov:qualifiedAssociation [ ## Qualify how the writing activity
a prov:Association; ## was associated with
prov:Agent nidm:Lauren ## the Agent Lauren
rdfs:comment "Lauren gathered the demographics information."@en
] ;
.
#example of demographics information acquisition entity
nidm:_9bb9b398-ae00-11e7-a86f-6c4008b8f03e a sio:file ;
prov:wasGeneratedBy onli:instrument-based-assessment ;
ncicb:Age "30"^^xsd:string ;
ncit:Diagnosis "CONTROL"^^xsd:string ;
nidm:_9bb9afcc-ae00-11e7-8cf7-6c4008b8f03e ;
ndar:gender "F"^^xsd:string ;
ndar:src_subject_id "sub-10159"^^xsd:string .
#example of dicom file from image acquisition
nidm:_9bbc60e6-ae00-11e7-991b-6c4008b8f03e a nidm:AcquistionObject ;
nidm:hasImageContrastType nidm:DiffusionWeighted ;
nidm:hasImageUsageType nidm:StructuralObject ;
dicom:AccelerationFactorPE "1"^^xsd:int ;
dicom:AcquisitionMatrix "96/0/0/96"^^xsd:string ;
dicom:DeviceSerialNumber "35343"^^xsd:string ;
dicom:EchoTime 9.26e-02 ;
dicom:EchoTrainLength "1"^^xsd:int ;
dicom:FlipAngle "90"^^xsd:int ;
dicom:ImageType "ORIGINAL/PRIMARY/M/ND/MOSAIC"^^xsd:string ;
dicom:ImagingFrequency "123249931"^^xsd:int ;
dicom:InPlanePhaseEncodingDirection "COL"^^xsd:string ;
dicom:MRAcquisitionType "2D"^^xsd:string ;
dicom:MagneticFieldStrength "3"^^xsd:int ;
dicom:ManufacturerModelName "TrioTim"^^xsd:string ;
dicom:NumberOfAverages "1"^^xsd:int ;
dicom:NumberOfPhaseEncodingSteps "72"^^xsd:int ;
dicom:PatientPosition "HFS"^^xsd:string ;
dicom:PercentPhaseFieldOfView "100"^^xsd:int ;
dicom:PercentSampling "100"^^xsd:int ;
dicom:PixelBandwidth "2265"^^xsd:int ;
dicom:ProtocolName "DTI 64dir"^^xsd:string ;
dicom:ReceiveCoilName "HeadMatrix"^^xsd:string ;
dicom:RepetitionTime "7"^^xsd:int ;
dicom:ScanOptions "PFP/FS"^^xsd:string ;
dicom:ScanningSequence "EP"^^xsd:string ;
dicom:SequenceName "*ep_b1000#10"^^xsd:string ;
dicom:SequenceVariant "SK/SP"^^xsd:string ;
dicom:SoftwareVersions "syngo MR B15"^^xsd:string ;
dicom:TotalReadoutTime 8.831782e-02 ;
dicom:TotalScanTimeSec "464"^^xsd:int ;
dicom:TransmitCoilName "Body"^^xsd:string ;
dicom:VariableFlipAngleFlag "N"^^xsd:string ;
nidm:EffectiveEchoSpacing 6.89983e-04 ;
nidm:PhaseEncodingDirection "j-"^^xsd:string ;
nidm:SliceTiming "3.51503.6550.14253.7950.28253.93750.42254.07750.56254.21750.7054.35750.8454.50.9854.641.1254.781.2654.921.40755.061.54755.20251.68755.34251.82755.48251.975.62252.115.7652.255.9052.396.0452.536.1852.67256.3252.81256.46752.95256.60753.09256.74753.2356.88753.375"^^xsd:string ;
nfo:filename "/Users/dbkeator/Documents/UCI/ReproNim/example_bids/ds000030_single_subj/sub-10159/dwi/sub-10159_dwi.nii.gz"^^xsd:string ;
prov:wasGeneratedBy nidm:_9bbc5b50-ae00-11e7-a6bf-6c4008b8f03e .
@dbkeator : I'm wondering if this is necessary or if the structure of Prov makes this redundant since we have Entity being connected to Activity by
prov:wasGeneratedBy
and Prov then hasprov:wasAttributedTo
, to connect an Entity to an Agent. Is that enough or do we need 'creator' to be used as a role?