Template:Workflow: Difference between revisions
From MaRDI portal
EloiFerrer (talk | contribs) No edit summary Tag: Manual revert |
EloiFerrer (talk | contribs) No edit summary Tag: Manual revert |
||
(98 intermediate revisions by 2 users not shown) | |||
Line 12: | Line 12: | ||
=== Involved disciplines === | === Involved disciplines === | ||
<ol>{{#invoke:wd|properties|P437|format=<li>%p</li>}}</ol> | <ol>{{#invoke:wd|properties|P437|format=<li>%p</li>}}</ol> | ||
== Model == | |||
<div class="no-pagination no-filter"> | |||
{{#sparql: | |||
PREFIX mdb: <https://mardi4nfdi.de/mathmoddb#> | |||
SELECT ?Label ?Description ?Time ?Space WHERE { | |||
wd:{{#invoke:Wd|label|raw|}} wdt:P557 ?item . | |||
?item wdt:P31 wd:Q68663; | |||
wdt:P188 ?url; | |||
rdfs:label ?Label. | |||
SERVICE <https://sparql.mtsr2024.m1.mardi.ovh/mathalgodb/query> { | |||
?url rdfs:comment ?Description; | |||
OPTIONAL {?url mdb:isTimeContinuous ?isTimeContinuous.} | |||
BIND( | |||
IF(BOUND(?isTimeContinuous), | |||
IF(?isTimeContinuous = true, "continuous", "discrete"), | |||
"independent") AS ?Time ) | |||
OPTIONAL {?url mdb:isSpaceContinuous ?isSpaceContinuous.} | |||
BIND( | |||
IF(BOUND(?isSpaceContinuous), | |||
IF(?isSpaceContinuous = true, "continuous", "discrete"), | |||
"independent") AS ?Space ) | |||
} | |||
} | |||
| chart=bordercloud.visualization.DataTable | |||
}} | |||
</div> | |||
=== Variables === | |||
{{#sparql: | |||
PREFIX mdb: <https://mardi4nfdi.de/mathmoddb#> | |||
SELECT ?Name ?Unit ?Symbol ?Task (?Type AS ?Dependency_Type) WHERE { | |||
# Starting from the central item | |||
wd:{{#invoke:Wd|label|raw|}} wdt:P557 ?centralItem . | |||
?centralItem wdt:P31 wd:Q68663; | |||
wdt:P188 ?url; | |||
rdfs:label ?Label. | |||
# Service query to get tasks and connect them to quantities | |||
SERVICE <https://sparql.mtsr2024.m1.mardi.ovh/mathalgodb/query> { | |||
?url mdb:appliedByTask ?task . | |||
?task rdfs:label ?Task . | |||
# Define type based on connection type (Input or Output) | |||
{ | |||
?task mdb:containsInput ?item . | |||
?item rdfs:label ?Name . | |||
BIND("independent" AS ?Type) | |||
} | |||
UNION | |||
{ | |||
?task mdb:containsOutput ?item . | |||
?item rdfs:label ?Name . | |||
BIND("dependent" AS ?Type) | |||
} | |||
# Filter results to only show defining statements that match the current quantity label | |||
OPTIONAL { | |||
?task mdb:containsFormulation ?formulation . | |||
?formulation mdb:inDefiningFormulation ?definingStatement . | |||
# Convert definingStatement to a plain string to strip off datatype markup | |||
BIND(STR(?definingStatement) AS ?plainStatement) | |||
# Clean up spaces around commas, making the format consistent | |||
BIND(REPLACE(?plainStatement, "\\s*,\\s*", ",") AS ?cleanedStatement) | |||
# Extract symbol and quantity label | |||
BIND(STRBEFORE(?cleanedStatement, ",") AS ?Symbolraw) | |||
BIND(STRAFTER(?cleanedStatement, ",") AS ?quantityLabel) | |||
BIND(REPLACE(?Symbolraw, "\\$", "") AS ?cleanSymbol) | |||
BIND(CONCAT("<math>", ?cleanSymbol, "</math>") AS ?Symbol) | |||
} | |||
BIND(STR(?Name) AS ?plainItemLabel) | |||
FILTER(?quantityLabel = ?plainItemLabel) | |||
} | |||
# Initialize the Unit variable as empty | |||
BIND("" AS ?Unit) | |||
} | |||
ORDER BY ?taskLabel ?itemLabel | |||
| chart=bordercloud.visualization.DataTable | |||
}} | |||
=== Parameters === | |||
{{#sparql: | |||
PREFIX mdb: <https://mardi4nfdi.de/mathmoddb#> | |||
SELECT ?Name ?Unit ?Symbol WHERE { | |||
# Starting from the central item | |||
wd:{{#invoke:Wd|label|raw|}} wdt:P557 ?centralItem . | |||
?centralItem wdt:P31 wd:Q68663; | |||
wdt:P188 ?url; | |||
rdfs:label ?Label. | |||
# Service query to get tasks and connect them to parameters | |||
SERVICE <https://sparql.mtsr2024.m1.mardi.ovh/mathalgodb/query> { | |||
?url mdb:appliedByTask ?task . | |||
?task rdfs:label ?Task . | |||
# Retrieve parameters associated with the task | |||
?task mdb:containsParameter ?item . | |||
?item rdfs:label ?Name . | |||
# Filter results to only show defining statements that match the current quantity label | |||
OPTIONAL { | |||
?task mdb:containsFormulation ?formulation . | |||
?formulation mdb:inDefiningFormulation ?definingStatement . | |||
# Convert definingStatement to a plain string to strip off datatype markup | |||
BIND(STR(?definingStatement) AS ?plainStatement) | |||
# Clean up spaces around commas, making the format consistent | |||
BIND(REPLACE(?plainStatement, "\\s*,\\s*", ",") AS ?cleanedStatement) | |||
# Extract symbol and quantity label | |||
BIND(STRBEFORE(?cleanedStatement, ",") AS ?Symbolraw) | |||
BIND(STRAFTER(?cleanedStatement, ",") AS ?quantityLabel) | |||
BIND(REPLACE(?Symbolraw, "\\$", "") AS ?cleanSymbol) | |||
BIND(CONCAT("<math>", ?cleanSymbol, "</math>") AS ?Symbol) | |||
} | |||
# Initialize the Unit variable as empty | |||
BIND("" AS ?Unit) | |||
} | |||
} | |||
ORDER BY ?Name | |||
| chart=bordercloud.visualization.DataTable | |||
}} | |||
== Process information == | == Process information == | ||
=== Process steps === | === Process steps === | ||
<div class="no-pagination no-filter"> | |||
{{#sparql: | {{#sparql: | ||
SELECT ?Number | SELECT ?Number | ||
Line 107: | Line 240: | ||
| options=width=100%! | | options=width=100%! | ||
}} | }} | ||
</div> | |||
=== Applied methods === | === Applied methods === | ||
<div class='no-pagination no-filter'> | |||
{{#sparql: | {{#sparql: | ||
SELECT ?ID | SELECT ?ID | ||
Line 119: | Line 253: | ||
# Get Method Label and Description | # Get Method Label and Description | ||
wd: | wd:{{#invoke:Wd|label|raw|}} p:P557 ?mainStatement. | ||
?mainStatement ps:P557 ?methodID. | ?mainStatement ps:P557 ?methodID. | ||
?methodID wdt:P31 wd:Q68669. | ?methodID wdt:P31 wd:Q68669. | ||
Line 163: | Line 297: | ||
| options=width=100%! | | options=width=100%! | ||
}} | }} | ||
</div> | |||
=== Software used === | === Software used === | ||
<div class='no-pagination no-filter'> | |||
{{#sparql: | |||
SELECT ?ID | |||
?Name | |||
?Description | |||
?Version | |||
(GROUP_CONCAT(DISTINCT ?plLink; separator=", ") AS ?ProgrammingLanguage) | |||
WHERE { | |||
# Get Software Label and Description | |||
wd:{{#invoke:Wd|label|raw|}} 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) | |||
} | |||
} | |||
GROUP BY ?ID ?Name ?Description ?Version | |||
| chart=bordercloud.visualization.DataTable | |||
| options=width=100%! | |||
}} | |||
</div> | |||
=== Hardware === | === Hardware === | ||
<div class='no-pagination no-filter'> | |||
{{#sparql: | |||
SELECT ?ID | |||
?Name | |||
?Description | |||
(GROUP_CONCAT(DISTINCT ?processorLink; separator=", ") AS ?Processor) | |||
(GROUP_CONCAT(DISTINCT ?nodes; separator=", ") AS ?NumberOfNodes) | |||
(GROUP_CONCAT(DISTINCT ?cores; separator=", ") AS ?NumberOfCores) | |||
WHERE { | |||
# Get Hardware Label and Description | |||
wd:{{#invoke:Wd|label|raw|}} 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. | |||
} | |||
} | |||
} | |||
GROUP BY ?ID ?Name ?Description | |||
| chart=bordercloud.visualization.DataTable | |||
| options=width=100%! | |||
}} | |||
</div> | |||
=== Input data === | === Input data === | ||
=== Output data === | === Output data === |
Latest revision as of 12:02, 31 October 2024