Template:Workflow
Available identifiers
Problem statement
Object of research and objective
Involved disciplines
Model
{{#sparql: SELECT ?Label ?Description ?Time ?Space WHERE {
wd: wdt:P557 ?item .
?item wdt:P31 wd:Q68663;
rdfs:label ?Label;
schema:description ?Description;
BIND(
IF(EXISTS { ?item wdt:P31 wd:Q6672091 }, "continuous",
IF(EXISTS { ?item wdt:P31 wd:Q6672095 }, "discrete",
"independent"
)
) AS ?Time
)
BIND(
IF(EXISTS { ?item wdt:P31 wd:Q6672089 }, "continuous",
IF(EXISTS { ?item wdt:P31 wd:Q6672093 }, "discrete",
"independent"
)
) AS ?Space
)
} | chart=bordercloud.visualization.DataTable | endpoint=https://query.portal.mardi4nfdi.de/sparql }}
Variables
{{#sparql: SELECT ?Name ?Unit ?Symbol ?Task (?Type AS ?Dependency_Type) WHERE {
# Starting from the central item wd: p:P557 ?statement. ?statement ps:P557 ?model. ?statement pq:P147 ?task. ?model wdt:P31 wd:Q68663.
?task rdfs:label ?Task .
# Define type based on connection type (Input or Output)
{
?task p:P1560 ?inner_statement .
?inner_statement ps:P1560 ?item.
?inner_statement pq:P560 ?role.
FILTER (?role = wd:Q6480299)
?item rdfs:label ?Name .
BIND("independent" AS ?Type)
}
UNION
{
?task p:P1560 ?inner_statement .
?inner_statement ps:P1560 ?item.
?inner_statement pq:P560 ?role.
FILTER (?role = wd:Q6480295)
?item rdfs:label ?Name .
BIND("dependent" AS ?Type)
}
# Filter results to only show defining statements that match the current quantity label
OPTIONAL {
?task wdt:P1560 ?formulation.
?formulation wdt:P31 wd:Q6481152.
?formulation p:P983 ?inner_inner_statement .
?inner_inner_statement ps:P983 ?Symbol.
?inner_inner_statement pq:P984 ?quantity
}
FILTER (?quantity = ?item)
BIND("" AS ?Unit)
} ORDER BY ?task ?item | chart=bordercloud.visualization.DataTable | endpoint=https://query.portal.mardi4nfdi.de/sparql }}
Parameters
{{#sparql: SELECT ?Name ?Unit ?Symbol ?Task WHERE {
# Starting from the central item wd: p:P557 ?statement. ?statement ps:P557 ?model. ?statement pq:P147 ?task. ?model wdt:P31 wd:Q68663.
?task rdfs:label ?Task .
# Define type based on connection type (Parameter)
?task p:P1560 ?inner_statement .
?inner_statement ps:P1560 ?item.
?inner_statement pq:P560 ?role.
FILTER (?role = wd:Q6480341)
?item rdfs:label ?Name .
# Filter results to only show defining statements that match the current quantity label
OPTIONAL {
?task wdt:P1560 ?formulation.
?formulation wdt:P31 wd:Q6481152.
?formulation p:P983 ?inner_inner_statement .
?inner_inner_statement ps:P983 ?Symbol.
?inner_inner_statement pq:P984 ?quantity
}
FILTER (?quantity = ?item)
BIND("" AS ?Unit)
} ORDER BY ?task ?item| chart=bordercloud.visualization.DataTable | endpoint=https://query.portal.mardi4nfdi.de/sparql }}
Process information
Process steps
{{#sparql: SELECT ?Number
?Name
?Description
(GROUP_CONCAT(DISTINCT ?inputLink; separator=", ") AS ?Input)
(GROUP_CONCAT(DISTINCT ?outputLink; separator=", ") AS ?Output)
(GROUP_CONCAT(DISTINCT ?methodLink; separator=", ") AS ?Method)
(GROUP_CONCAT(DISTINCT ?environmentLink; separator=", ") AS ?Environment)
(GROUP_CONCAT(DISTINCT ?disciplineLink; separator=", ") AS ?Discipline)
WHERE {
# Get Step Label and Description
wd: p:P557 ?mainStatement.
?mainStatement ps:P557 ?stepID.
?stepID wdt:P31 wd:Q6486603.
?stepID rdfs:label ?NameLabel.
FILTER (lang(?NameLabel) = 'en')
BIND(replace( xsd:string(?stepID),
'https://portal.mardi4nfdi.de/entity/',
) as ?qid)
BIND (CONCAT('<a href=\'/wiki/Item:',?qid,'\'>',?NameLabel,'</a>') as ?Name)
?mainStatement pq:P146 ?Number.
OPTIONAL {
?stepID schema:description ?Description.
FILTER (lang(?Description) = 'en')
}
# Get Step Input(s)
OPTIONAL {
?stepID wdt:P1605 ?inputID.
?inputID rdfs:label ?inputLabel.
FILTER (lang(?inputLabel) = 'en')
BIND(replace( xsd:string(?inputID),
'https://portal.mardi4nfdi.de/entity/',
) as ?inputQID)
BIND (CONCAT('<a href=\'/wiki/Item:',?inputQID,'\'>',?inputLabel,'</a>') as ?inputLink)
}
# Get Step Output(s)
OPTIONAL {
?stepID wdt:P1606 ?outputID.
?outputID rdfs:label ?outputLabel.
FILTER (lang(?outputLabel) = 'en')
BIND(replace( xsd:string(?outputID),
'https://portal.mardi4nfdi.de/entity/',
) as ?outputQID)
BIND (CONCAT('<a href=\'/wiki/Item:',?outputQID,'\'>',?outputLabel,'</a>') as ?outputLink)
}
# Get Step Method(s)
OPTIONAL {
?stepID wdt:P557 ?methodID.
?methodID wdt:P31 wd:Q127020.
?methodID rdfs:label ?methodLabel.
FILTER (lang(?methodLabel) = 'en')
BIND(replace( xsd:string(?methodID),
'https://portal.mardi4nfdi.de/entity/',
) as ?methodQID)
BIND (CONCAT('<a href=\'/wiki/Item:',?methodQID,'\'>',?methodLabel,'</a>') as ?methodLink)
}
# Get Step Environment(s)
OPTIONAL {
?stepID wdt:P143 ?environmentID.
?environmentID rdfs:label ?environmentLabel.
FILTER (lang(?environmentLabel) = 'en')
BIND(replace( xsd:string(?environmentID),
'https://portal.mardi4nfdi.de/entity/',
) as ?environmentQID)
BIND (CONCAT('<a href=\'/wiki/Item:',?environmentQID,'\'>',?environmentLabel,'</a>') as ?environmentLink)
}
# Get Step Discipline
OPTIONAL {
?stepID wdt:P437 ?fieldID.
?fieldID rdfs:label ?fieldLabel.
FILTER (lang(?fieldLabel) = 'en')
BIND(replace( xsd:string(?fieldID),
'https://portal.mardi4nfdi.de/entity/',
) as ?fieldQID)
BIND (CONCAT('<a href=\'/wiki/Item:',?fieldQID,'\'>',?fieldLabel,'</a>') as ?fieldLink)
}
OPTIONAL {
?stepID wdt:P226 ?mscID.
}
BIND(COALESCE(?fieldLink, ?mscID) AS ?disciplineLink)
} GROUP BY ?Name ?Description ?Number ORDER BY ASC(?Number) | chart=bordercloud.visualization.DataTable | options=width=100%! | endpoint=https://query.portal.mardi4nfdi.de/sparql }}
Methods
{{#sparql: SELECT ?Name
?Description
(GROUP_CONCAT(DISTINCT ?stepLink; separator=", ") AS ?Process_Step)
(GROUP_CONCAT(DISTINCT ?softwareLink; separator=", ") AS ?Implemented_By)
WHERE {
# Get Method Label and Description
wd: p:P557 ?mainStatement.
?mainStatement ps:P557 ?methodID.
?methodID wdt:P31 wd:Q127020.
?methodID rdfs:label ?NameLabel.
FILTER (lang(?NameLabel) = 'en')
BIND(replace( xsd:string(?methodID),
'https://portal.mardi4nfdi.de/entity/',
) as ?qid)
BIND (CONCAT('mardi:','<a href=\'/wiki/Item:',?qid,'\'>',?qid,'</a>') as ?ID)
BIND (CONCAT('<a href=\'/wiki/Item:',?qid,'\'>',?NameLabel,'</a>') as ?Name)
OPTIONAL {
?methodID schema:description ?Description.
FILTER (lang(?Description) = 'en')
}
# Get Software
OPTIONAL {
?mainStatement pq:P147 ?softwareID.
?softwareID rdfs:label ?softwareLabel.
FILTER (lang(?softwareLabel) = 'en')
BIND(replace( xsd:string(?softwareID),
'https://portal.mardi4nfdi.de/entity/',
) as ?softwareQID)
BIND (CONCAT('<a href=\'/wiki/Item:',?softwareQID,'\'>',?softwareLabel,'</a>') as ?softwareLink)
}
# Get Process Step
OPTIONAL {
?stepID wdt:P557 ?methodID.
?stepID rdfs:label ?stepLabel.
FILTER (lang(?stepLabel) = 'en')
BIND(replace( xsd:string(?stepID),
'https://portal.mardi4nfdi.de/entity/',
) as ?stepQID)
BIND (CONCAT('<a href=\'/wiki/Item:',?stepQID,'\'>',?stepLabel,'</a>') as ?stepLink)
}
} GROUP BY ?ID ?Name ?Description | chart=bordercloud.visualization.DataTable | options=width=100%! | endpoint=https://query.portal.mardi4nfdi.de/sparql }}
Software
{{#sparql: SELECT ?Name
?Description
?Version
(GROUP_CONCAT(DISTINCT ?plLink; separator=", ") AS ?Programming_Language)
(GROUP_CONCAT(DISTINCT ?dpLink; separator=", ") AS ?Dependencies)
?versioned
?published
?documented
WHERE {
# Get Software Label and Description
wd: p:P557 ?mainStatement.
?mainStatement ps:P557 ?softwareID.
?softwareID wdt:P1460 wd:Q5976450.
?softwareID rdfs:label ?NameLabel.
FILTER (lang(?NameLabel) = 'en')
BIND(replace( xsd:string(?softwareID),
'https://portal.mardi4nfdi.de/entity/',
) as ?qid)
BIND (CONCAT('mardi:','<a href=\'/wiki/Item:',?qid,'\'>',?qid,'</a>') as ?ID)
BIND (CONCAT('<a href=\'/wiki/Item:',?qid,'\'>',?NameLabel,'</a>') as ?Name)
OPTIONAL {
?softwareID schema:description ?Description.
FILTER (lang(?Description) = 'en')
}
# Get Software Version
OPTIONAL {
?mainStatement pq:P132 ?Version.
}
# Get Programming Language
OPTIONAL {
?softwareID wdt:P114 ?plID.
?plID rdfs:label ?plLabel.
FILTER (lang(?plLabel) = 'en')
BIND(replace( xsd:string(?plID),
'https://portal.mardi4nfdi.de/entity/',
) as ?plQID)
BIND (CONCAT('<a href=\'/wiki/Item:',?plQID,'\'>',?plLabel,'</a>') as ?plLink)
}
# Get Dependencies
OPTIONAL {
?softwareID wdt:P342 ?dpID.
?dpID rdfs:label ?dpLabel.
FILTER (lang(?dpLabel) = 'en')
BIND(replace( xsd:string(?dpID),
'https://portal.mardi4nfdi.de/entity/',
) as ?dpQID)
BIND (CONCAT('<a href=\'/wiki/Item:',?dpQID,'\'>',?dpLabel,'</a>') as ?dpLink)
}
# Versioned
BIND (IF(BOUND(?Version), "Yes", "No") AS ?versioned)
# Published
OPTIONAL {
?softwareID wdt:P339 ?srcREPO.
}
BIND (IF(BOUND(?srcREPO), CONCAT('<a href="', STR(?srcREPO), '">Yes</a>'), "No") AS ?published)
# Documented
OPTIONAL {
?softwareID wdt:P340 ?docu.
}
BIND (IF(BOUND(?docu), CONCAT('<a href="', STR(?docu), '">Yes</a>'), "No") AS ?documented)
}
GROUP BY ?ID ?Name ?Description ?Version ?versioned ?published ?documented | chart=bordercloud.visualization.DataTable | options=width=100%! | endpoint=https://query.portal.mardi4nfdi.de/sparql }}
Hardware
{{#sparql: SELECT ?Name
?Description
(GROUP_CONCAT(DISTINCT ?processorLink; separator=", ") AS ?Processor)
(GROUP_CONCAT(DISTINCT ?nodes; separator=", ") AS ?Node_Number)
(GROUP_CONCAT(DISTINCT ?cores; separator=", ") AS ?Core_Number)
(GROUP_CONCAT(DISTINCT ?softwareLink; separator=", ") AS ?Software)
WHERE {
# Get Hardware Label and Description
wd: p:P557 ?mainStatement.
?mainStatement ps:P557 ?hardwareID.
?hardwareID wdt:P31 wd:Q56583.
?hardwareID rdfs:label ?NameLabel.
FILTER (lang(?NameLabel) = 'en')
BIND(replace( xsd:string(?hardwareID),
'https://portal.mardi4nfdi.de/entity/',
) as ?qid)
BIND (CONCAT('mardi:','<a href=\'/wiki/Item:',?qid,'\'>',?qid,'</a>') as ?ID)
BIND (CONCAT('<a href=\'/wiki/Item:',?qid,'\'>',?NameLabel,'</a>') as ?Name)
OPTIONAL {
?hardwareID schema:description ?Description.
FILTER (lang(?Description) = 'en')
}
# Get Processors(s), Nodes and Cores
OPTIONAL {
?hardwareID p:P1540 ?mainStatement2.
?mainStatement2 ps:P1540 ?processorID.
?processorID rdfs:label ?processorLabel.
?processorID wdt:P1565 ?cores.
FILTER (lang(?processorLabel) = 'en')
BIND(replace( xsd:string(?processorID),
'https://portal.mardi4nfdi.de/entity/',
) as ?processorQID)
BIND (CONCAT('<a href=\'/wiki/Item:',?processorQID,'\'>',?processorLabel,'</a>') as ?processorLink)
# Get Number of Nodes
OPTIONAL {
?mainStatement2 pq:P149 ?nodes.
}
}
OPTIONAL {
wd: p:P557 ?softwareStatement.
?softwareStatement ps:P557 ?softwareID;
pq:P143 ?hardwareID.
?softwareID rdfs:label ?softwareLabel.
FILTER (lang(?softwareLabel) = 'en')
BIND(replace( xsd:string(?softwareID),
'https://portal.mardi4nfdi.de/entity/',
) as ?softwareQID)
BIND (CONCAT('<a href=\'/wiki/Item:',?softwareQID,'\'>',?softwareLabel,'</a>') as ?softwareLink)
}
} GROUP BY ?ID ?Name ?Description | chart=bordercloud.visualization.DataTable | options=width=100%! | endpoint=https://query.portal.mardi4nfdi.de/sparql }}
Data Sets
{{#sparql: SELECT ?Name
?Description
?Size
(?DataType AS ?Data_Type)
(?RepresentationFormat AS ?Representation_Format)
(?FileFormat AS ?File_Format)
(?BinaryOrText AS ?Binary_Text)
?Proprietary
(?toPublish AS ?to_Publish)
(?toArchive AS ?to_Archive)
WHERE {
# Get Step
wd: p:P557 ?mainStatement.
?mainStatement ps:P557 ?stepID.
?stepID wdt:P31 wd:Q6486603.
# Get Data
OPTIONAL {
{?stepID wdt:P1605 ?inputID.}
UNION
{?stepID wdt:P1606 ?inputID.}
?inputID rdfs:label ?NameLabel.
FILTER (lang(?NameLabel) = 'en')
BIND(replace( xsd:string(?inputID),
'https://portal.mardi4nfdi.de/entity/',
) as ?qid)
BIND(CONCAT('mardi:','<a href=\'/wiki/Item:',?qid,'\'>',?qid,'</a>') as ?ID)
BIND(CONCAT('<a href=\'/wiki/Item:',?qid,'\'>',?NameLabel,'</a>') as ?Name)
OPTIONAL {
?inputID schema:description ?Description.
FILTER (lang(?Description) = 'en')}
# Data Size (maps to Size if File etc size is provided)
OPTIONAL {
?inputID p:P1542 ?statementNode.
?statementNode psv:P1542 ?valueNode.
?valueNode wikibase:quantityAmount ?size;
wikibase:quantityUnit ?unit.
?unit rdfs:label ?unitlabel.
FILTER (lang(?unitlabel) = 'en')
BIND(CONCAT(STR(?size), ' ', STR(?unitlabel)) AS ?Size)
}
# Number of Records (maps to Size if Number of Entries in a Database etc is provided
OPTIONAL {
?inputID wdt:P139 ?Sizeraw
BIND(CONCAT(STR(?Sizeraw),' Items') as ?Size)
}
# Data Type
OPTIONAL {
?inputID p:P557 ?statement_dt.
?statement_dt ps:P557 ?datatypeID.
?statement_dt pq:P560 ?qualifier.
FILTER (?qualifier = wd:Q78802)
?datatypeID rdfs:label ?datatypeLabel.
FILTER (lang(?datatypeLabel) = 'en')
BIND(replace( xsd:string(?datatypeID),
'https://portal.mardi4nfdi.de/entity/',
) as ?datatypeQID)
BIND (CONCAT('<a href=\'/wiki/Item:',?datatypeQID,'\'>',?datatypeLabel,'</a>') as ?DataType)
}
# Representation Format
OPTIONAL {
?inputID p:P557 ?statement_rf.
?statement_rf ps:P557 ?representationID.
?statement_rf pq:P560 ?qualifier2.
FILTER (?qualifier2 = wd:Q6534222)
?representationID rdfs:label ?representationLabel.
FILTER (lang(?representationLabel) = 'en')
BIND(replace( xsd:string(?representationID),
'https://portal.mardi4nfdi.de/entity/',
) as ?representationQID)
BIND (CONCAT('<a href=\'/wiki/Item:',?representationQID,'\'>',?representationLabel,'</a>') as ?RepresentationFormat)
}
# File Format
OPTIONAL {
?inputID wdt:P921 ?FileFormat
}
# Binary or Text
BIND(IF(EXISTS { ?inputID wdt:P31 wd:Q6480276 }, "binary", IF(EXISTS { ?inputID wdt:P31 wd:Q6534207 }, "text", "" )) AS ?BinaryOrText)
# Proprietary
BIND(IF(EXISTS { ?inputID wdt:P31 wd:Q6480367 }, "yes", IF(EXISTS { ?inputID wdt:P31 wd:Q6480313 }, "no", "" )) AS ?Proprietary)
# Bind DOI and URL if they exist
OPTIONAL { ?inputID wdt:P23 ?doi. }
OPTIONAL { ?inputID wdt:P188 ?url. }
# Data Publishing
BIND(
IF(EXISTS { ?inputID wdt:P1563 wd:Q6480291 },
IF(EXISTS { ?inputID wdt:P27 ?doi },
CONCAT('<a href="', 'https://dx.doi.org', STR(?doi), '">yes</a>'),
IF(EXISTS { ?inputID wdt:P188 ?url },
CONCAT('<a href="', STR(?url), '">yes</a>'),
"yes"
)
),
"no"
) AS ?toPublish
)
- Data Archiving
OPTIONAL {
?inputID p:P1563 ?statementNode.
?statementNode ps:P1563 wd:Q6480370.
OPTIONAL {
?statementNode pq:P411 ?endTime.
}
}
BIND(
IF(BOUND(?statementNode),
IF(BOUND(?endTime),
SUBSTR(STR(?endTime), 1, 4),
"yes"
),
"no"
) AS ?toArchive
)
}
} GROUP BY ?ID ?Name ?Description ?Size ?DataType ?RepresentationFormat ?FileFormat ?BinaryOrText ?Proprietary ?toPublish ?toArchive
| chart=bordercloud.visualization.DataTable | options=width=100%! | endpoint=https://query.portal.mardi4nfdi.de/sparql }}
Reproducibility
{{#sparql: SELECT ?Mathematically
?Runtime
?Result
(?OriginalPlatform AS ?Original_Platform)
(?CrossPlatform AS ?Cross_Platform)
?Transferability
WHERE {
# Mathematical Reproducibility
OPTIONAL {
wd: p:P31 ?math_statement.
?math_statement ps:P31 wd:Q6534210.
BIND("Yes" AS ?math_hasTriple)
OPTIONAL {
?math_statement pq:P8 ?math_text.
BIND(CONCAT("Yes: ", STR(?math_text)) AS ?math_result)
}
}
BIND(IF(BOUND(?math_result), ?math_result, IF(BOUND(?math_hasTriple), "Yes", "No")) AS ?Mathematically)
# Runtime Reproducibility
OPTIONAL {
wd: p:P31 ?run_statement.
?run_statement ps:P31 wd:Q6534211.
BIND("Yes" AS ?run_hasTriple)
OPTIONAL {
?run_statement pq:P8 ?run_text.
BIND(CONCAT("Yes: ", STR(?run_text)) AS ?run_result)
}
}
BIND(IF(BOUND(?run_result), ?run_result, IF(BOUND(?run_hasTriple), "Yes", "No")) AS ?Runtime)
# Result Reproducibility
OPTIONAL {
wd: p:P31 ?res_statement.
?res_statement ps:P31 wd:Q6534212.
BIND("Yes" AS ?res_hasTriple)
OPTIONAL {
?res_statement pq:P8 ?res_text.
BIND(CONCAT("Yes: ", STR(?res_text)) AS ?res_result)
}
}
BIND(IF(BOUND(?res_result), ?res_result, IF(BOUND(?res_hasTriple), "Yes", "No")) AS ?Result)
# Original Platform Reproducibility
OPTIONAL {
wd: p:P31 ?plat_statement.
?plat_statement ps:P31 wd:Q6534213.
BIND("Yes" AS ?plat_hasTriple)
OPTIONAL {
?plat_statement pq:P8 ?plat_text.
BIND(CONCAT("Yes: ", STR(?plat_text)) AS ?plat_result)
}
}
BIND(IF(BOUND(?plat_result), ?plat_result, IF(BOUND(?plat_hasTriple), "Yes", "No")) AS ?OriginalPlatform)
# Cross Platform Reproducibility
OPTIONAL {
wd: p:P31 ?xplat_statement.
?xplat_statement ps:P31 wd:Q6534214.
BIND("Yes" AS ?xplat_hasTriple)
OPTIONAL {
?xplat_statement pq:P8 ?xplat_text.
BIND(CONCAT("Yes: ", STR(?xplat_text)) AS ?xplat_result)
}
}
BIND(IF(BOUND(?xplat_result), ?xplat_result, IF(BOUND(?xplat_hasTriple), "Yes", "No")) AS ?CrossPlatform)
# Transferability
OPTIONAL {
wd: p:P31 ?trans_statement.
?trans_statement ps:P31 wd:Q6534215.
BIND("Yes" AS ?trans_hasTriple)
OPTIONAL {
?trans_statement pq:P8 ?trans_text.
BIND(CONCAT("Yes: ", STR(?trans_text)) AS ?trans_result)
}
}
BIND(IF(BOUND(?trans_result), ?trans_result, IF(BOUND(?trans_hasTriple), "Yes", "No")) AS ?Transferability)
} GROUP BY ?Mathematically ?Runtime ?Result ?OriginalPlatform ?CrossPlatform ?Transferability
| chart=bordercloud.visualization.DataTable | options=width=100%! | endpoint=https://query.portal.mardi4nfdi.de/sparql }}