computational task (E11)

From MaRDI portal
EntitySchema:E11
language codelabeldescriptionaliasesedit
encomputational taskschema for computational taskedit
# Schema for computational tasks in the MaRDI portal (EntitySchema:E11)
PREFIX rdf:      <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX rdfs:     <http://www.w3.org/2000/01/rdf-schema#>
PREFIX owl:      <http://www.w3.org/2002/07/owl#>
PREFIX skos:     <http://www.w3.org/2004/02/skos/core#>
PREFIX schema:   <http://schema.org/>
PREFIX wikibase: <http://wikiba.se/ontology#>
PREFIX wd:       <https://portal.mardi4nfdi.de/entity/>
PREFIX wdt:      <https://portal.mardi4nfdi.de/prop/direct/>
PREFIX p:        <https://portal.mardi4nfdi.de/prop/>
PREFIX ps:       <https://portal.mardi4nfdi.de/prop/statement/>
PREFIX pq:       <https://portal.mardi4nfdi.de/prop/qualifier/>

# import formula
IMPORT <https://portal.mardi4nfdi.de/wiki/Special:EntitySchemaText/E5>
# import quantity
IMPORT <https://portal.mardi4nfdi.de/wiki/Special:EntitySchemaText/E12>
# import quantity kind
IMPORT <https://portal.mardi4nfdi.de/wiki/Special:EntitySchemaText/E17>

start = @<computationalTask>

# A computational task must be an instance of Q6534247 (computational task)
# AND belong to the MathModDB community (P1495 = Q6534265).
<computationalTask> EXTRA wdt:P31 wdt:P1495
                          rdfs:label skos:altLabel skos:prefLabel
                          schema:name schema:description
                          schema:version schema:dateModified
                          owl:sameAs wikibase:statements wikibase:sitelinks wikibase:identifiers {
  # instance of: computational task
  wdt:P31    [ wd:Q6534247] ;
  # community: MathModDB
  wdt:P1495  [ wd:Q6534265 ] ;
  # assumes: zero, one or more formulas, validated against E5 (optional)
  wdt:P1674  @<formula> * ;
  # contains: full statement node
  p:P1560    @<containsStatement> * ;
 # described by source (optional, with possible qualifier)
 p:P286     @<describedBySourceStatement> * ;
 # discretized by: another task (optional)
 p:P1656    @<discretizedByStatement> * ;
 # linearized by: another task (optional)
  p:P1657    @<linearizedByStatement> * ;
 # specialized by: another task (optional)
  p:P1684    @<specializedByStatement> * ;
  # approximated by: another task (optional)
  p:P1655    @<approximatedByStatement> * ;
}

# Statement node for P1655.
# Uses <computationalTaskRef> instead of <computationalTask> to avoid
# circular negative dependencies caused by mutual EXTRA recursion.
<approximatedByStatement> EXTRA ps:P1655 {
  # statement value: another computational task
  ps:P1655   @<computationalTaskRef> ;
}

# Entry point: statement node is either a model-ref or a formula-with-qualifiers
<containsStatement> (
  @<containsComputationalTaskStatement>
  OR
  @<containsFormulaStatement>
  OR
  @<containsQuantityStatement>
  OR
  @<containsQuantityKindStatement>
)

# Branch 1 — value is a computational task: qualifiers are allowed
<containsComputationalTaskStatement> EXTRA ps:P1560 {
  # statement value: a computational task
  ps:P1560  @<computationalTaskRef> ;
  # qualifier: order number = 1, 2, 3, 4, 5, 6, 7, 8, 9, 10
  pq:P1569  [ "1" "2" "3" "4" "5" "6" "7" "8" "9" "10" ] *
}

# Branch 2 — value is a formula: qualifiers are allowed
<containsFormulaStatement> EXTRA ps:P1560 {
  # statement value: a formula (validated against E5)
  ps:P1560  @<formulaRef> ;
  # qualifier: object has role = analytical solution, boundary condition,
  # computational domain, constitutive equation, constraint,
  # coupling condition, final condition, initial condition,
  # input, constant, parameter, objective function,
  # output, governing equation, strong formulation, weak formulation
  pq:P560   [ wd:Q6775641 wd:Q6534259 wd:Q6775579 wd:Q6775587
              wd:Q6534262 wd:Q6534266 wd:Q6534267 wd:Q6534264
              wd:Q6480299 wd:Q6480317 wd:Q6480341 wd:Q6534255
              wd:Q6480295 wd:Q7270342 wd:Q6775640 wd:Q6775618 ] * ;
  # qualifier: series ordinal — 1-based integer position of this formula, optional
  pq:P146   LITERAL ? ;
  # qualifier: corresponds to (optional, any item)
  pq:P1869   @<item> *
}

# Branch 2 — value is a quantity: qualifiers are allowed
<containsQuantityStatement> EXTRA ps:P1560 {
  # statement value: a quantity (validated against E12)
  ps:P1560  @<quantityRef> ;
  # qualifier: object has role = analytical solution, constant, input, objective function, output, parameter (optional)
  pq:P560   [ wd:Q6775641 wd:Q6480317 wd:Q6480299 wd:Q6534255 wd:Q6480295 wd:Q6480341 ] * ;
  # qualifier: corresponds to (optional, any item)
  pq:P1869   @<item> *
}

# Branch 3 — value is a quantity kind: qualifiers are allowed
<containsQuantityKindStatement> EXTRA ps:P1560 {
  # statement value: a quantity kind (validated against E17)
  ps:P1560  @<quantityKindRef> ;
 # qualifier: object has role = analytical solution, constant, input, objective function, output, parameter (optional)
  pq:P560   [ wd:Q6775641 wd:Q6480317 wd:Q6480299 wd:Q6534255 wd:Q6480295 wd:Q6480341 ] *  ;
  # qualifier: corresponds to (optional, any item)
  pq:P1869   @<item> *
}

<describedBySourceStatement> EXTRA ps:P286 pq:P560 {
  ps:P286    @<publication> ;
  # qualifier: object has role = review, use, invention, documentation, or science project, analysis, application (optional)
  pq:P560    [ wd:Q6672366 wd:Q6480405 wd:Q6672344 wd:Q6672349 wd:Q6775621 wd:Q6825292 wd:Q6825298 ] *
}

<publication> EXTRA wdt:P31
                    rdfs:label skos:altLabel schema:description
                    schema:version schema:dateModified owl:sameAs
                    wikibase:statements wikibase:sitelinks wikibase:identifiers {
  # instance of: scholarly article, conference paper, chapter, monograph, thesis, dissertation,
  # book, report, scientific journal, (version, edition, or translation), ISO standard edition, YouTube channel
  # written work, volume, reference work, encyclopedic dictionary, Jewish encyclopedia, universal encyclopedia
  # literary work, controlled vocabulary, explanatory dictionary
  wdt:P31    [ wd:Q56887 wd:Q56888 wd:Q56552 wd:Q56763  wd:Q57010 wd:Q56927
                     wd:Q56401 wd:Q57006 wd:Q56973 wd:Q56536 wd:Q7268923 wd:Q7270076
                     wd:Q56538 wd:Q56449 wd:Q7274954 wd:Q7284804  wd:Q7284810 wd:Q7284813
                     wd:Q56811 wd:Q7284835 wd:Q7284945] ;
}

<discretizedByStatement> EXTRA ps:P1656 {
  # statement value: another computational task
  ps:P1656   @<computationalTaskRef> ;
}

<linearizedByStatement> EXTRA ps:P1657 {
  # statement value: another computational task
  ps:P1657   @<computationalTaskRef> ;
}

<specializedByStatement> EXTRA ps:P1684 {
  # statement value: another computational task
  ps:P1684   @<computationalTaskRef> ;
}

# Lightweight reference shape for computational tasks — no recursion beyond
# instance-of + community.
<computationalTaskRef> EXTRA wdt:P31 wdt:P1495 {
  # instance of: computational task
  wdt:P31    [ wd:Q6534247 ] ;
  # community: MathModDB
  wdt:P1495  [ wd:Q6534265 ]
}

# Lightweight reference shape for formulas — no recursion beyond
# instance-of + community.
<formulaRef> EXTRA wdt:P31 wdt:P1495 {
  # instance of: formula (or a formula subtype)
  wdt:P31    [ wd:Q96183 wd:Q6672081 wd:Q6822213 wd:Q6672083 ] + ;
  # community: MathModDB
  wdt:P1495  [ wd:Q6534265 ]
}

# Lightweight reference shape for quantities — no recursion beyond
# instance-of + community. Full validation is handled by the imported E12 schema.
<quantityRef> EXTRA wdt:P31 wdt:P1495 {
  # instance of: quantity
  wdt:P31    [ wd:Q6534237 ] ;
  # community: MathModDB
  wdt:P1495  [ wd:Q6534265 ]
}

# Lightweight reference shape for quantity kinds — no recursion beyond
# instance-of + community. Full validation is handled by the imported E17 schema.
<quantityKindRef> EXTRA wdt:P31 wdt:P1495 {
  # instance of: quantity kind
  wdt:P31    [ wd:Q6534245 ] ;
  # community: MathModDB
  wdt:P1495  [ wd:Q6534265 ]
}

<item> EXTRA wdt:P31
             rdfs:label skos:altLabel skos:prefLabel
             schema:name schema:description
             schema:version schema:dateModified
             owl:sameAs wikibase:statements wikibase:sitelinks wikibase:identifiers {
}