From 5d2799e777b9565a1bc5556c61c74d5c105baaec Mon Sep 17 00:00:00 2001 From: Richard Bruskiewich Date: Thu, 25 Apr 2024 12:30:29 -0700 Subject: [PATCH 1/5] test_metadata made "Optional" --- project/excel/translator_testing_model.xlsx | Bin 18434 -> 18435 bytes .../graphql/translator_testing_model.graphql | 14 +- .../translator_testing_model.context.jsonld | 2 +- .../jsonld/translator_testing_model.jsonld | 7 +- .../translator_testing_model.schema.json | 7 - project/owl/translator_testing_model.owl.ttl | 628 ++++----- .../shacl/translator_testing_model.shacl.ttl | 1219 ++++++++--------- project/shex/translator_testing_model.shex | 4 +- .../sqlschema/translator_testing_model.sql | 14 +- .../datamodel/pydanticmodel.py | 14 +- .../datamodel/translator_testing_model.py | 25 +- .../schema/translator_testing_model.yaml | 2 +- 12 files changed, 956 insertions(+), 980 deletions(-) diff --git a/project/excel/translator_testing_model.xlsx b/project/excel/translator_testing_model.xlsx index b39b191f2aef7a49570a683a3a96a027f4cce347..e99fbabcca7173164dd5cefe03e712a0c1afdda4 100644 GIT binary patch delta 1264 zcmZpgz}P&2kvG7bnMH(wfq{cza?;F+yld-$RK$&)nycOe1y3_FFbD$al>Fp?qWpql z{p9?jRK1GaoT(EJ`W-glX^T%iwYPLuALpWV;sWXuCd^=YB&K>#?BbHZq$}^)MUAd(TDOi<9tg+SO$L zKdhb^C73qfVzgsp1_sn-X^v_}5M#15hsx%?oZ(>3W^wL*Cb0BM-j5K*T!G`vV09~b zRW^5voP~%+i_eDWj*?N?EGuaRR$p>s}x3Ltlj8%79urI~D0!9t}-LJjI*p*>Kc3og=3M>N4g%&rKHJlbF( zFC?J=U67E08MYA9KI`cE3+U@I7IY_0nS9U{;>0&V_Z&3@8!PVy39N@(*7H{awfO^m zhw3vG6R^TGH;9v}+@zVVm;ysZZ1P&D&_Oq8#_f~uy2*h3|Hn<*%EXF+A-*Uzr&wPP zM54#)#@nJ&Ho#a}#LmFLj~tAQvXcYd<-oC*?wFaO2z1a(9tH*}6g6$OlNZ{`OkV8{ ViMd_w(v0^fUvpPuD{=s-0|40$u_XWi delta 1324 zcmZpkz}Pf_kvG7bnMH(wfq{b|FnIDr-nI2WDxyMu>#TP`!PATk41z#9B|kZ!D8Has zKRLfBRj(p9XX->>|HB46ZU0YAseZjo*4ZUiPr*+?(U9|quGgNmi+%O(thb#_3?5beVM}Wi?g-@7Zs}@EzvCEC z|10>dz^O$Mjjlm%6Pp5OwB9_?=e0OJ^+(rR6$7aauHAh?ALbmMsoG=q_qKtm@y+FF z%XY0hy*uksTd&0)d;7h9r_+1Am&|cf%U;~tx8j7mWt<3KZS-N+jdth$X)cK55oVEP zT6a^ka`iiTvwojxt~<|kr5<~4_9twLcA%*I;@3*y|06T@W^Ow>_1J9g$DRt=KR)Mw zl12%o&9@ot*qDLgv{{Cuni0g9EW@F)c^_vun6p`eyPpXxy^8lEgfUOxI5Sw?DqfYz z=bczLU*qtO3?AxmR6vbDpXUM0c;c zBZP5L(-mS2NZL*tDjll}m0qZ?2T^y)Fb2XfG+7IA>_gKB5XKSnDzMaKN2_OG*K1j) zLDWvR4TC6oV>bz6OQVA|Cp?`@KI&iw_S`=QX~wgYr5u&OJbOoJCO(eI4-LhHK`AD{ zn~_O`8J^N61Em>zCNFeU2P-}eRLsQ70 zZ0aAN5dz9UBg7`_yFg5hca>(cRs{={Aqmy1gN61&g)X{CGac3h3$eH&G;(W$g}jl3 z{B=P>hGtkoJVN`dqw6nV2$Zp)J8`l;*r1zGgWduib;J-TB#q(Chg;V3R|3uO2YMCN zo63^|+#uepc9UkhYzovaI(e;|kUS{jF0p=e3jzkbI~M~3Fz(=>fpOd9du}q|(D~~o zU2kl~zz|=Qnp3Q=2O`k}dE;$SDI1_Mi`W?$_~C{C1DR3Ant`DrN54G3C_5=XKO39( u(;YK26oF2E$-}@Pg`&CD7OXkGX!3M-MX+0TyGt|Pn|$3}jjhlDq!a+&MW;Lf diff --git a/project/graphql/translator_testing_model.graphql b/project/graphql/translator_testing_model.graphql index cbbb48b..a6b5150 100644 --- a/project/graphql/translator_testing_model.graphql +++ b/project/graphql/translator_testing_model.graphql @@ -18,7 +18,7 @@ type AcceptanceTestAsset inV1: Boolean wellKnown: Boolean testReference: Uriorcurie - testMetadata: TestMetadata! + testMetadata: TestMetadata id: Uriorcurie! tags: [String] testRunnerSettings: [String] @@ -64,7 +64,7 @@ type AcceptanceTestSuite description: String tags: [String] testRunnerSettings: [String] - testMetadata: TestMetadata! + testMetadata: TestMetadata testPersona: TestPersonaEnum testCases: [TestCase] testSuiteSpecification: TestSuiteSpecification @@ -81,7 +81,7 @@ type OneHopTestSuite description: String tags: [String] testRunnerSettings: [String] - testMetadata: TestMetadata! + testMetadata: TestMetadata testPersona: TestPersonaEnum testCases: [TestCase] testSuiteSpecification: TestSuiteSpecification @@ -132,7 +132,7 @@ type StandardsComplianceTestSuite description: String tags: [String] testRunnerSettings: [String] - testMetadata: TestMetadata! + testMetadata: TestMetadata testPersona: TestPersonaEnum testCases: [TestCase] testSuiteSpecification: TestSuiteSpecification @@ -158,7 +158,7 @@ type TestAsset inV1: Boolean wellKnown: Boolean testReference: Uriorcurie - testMetadata: TestMetadata! + testMetadata: TestMetadata id: Uriorcurie! tags: [String] testRunnerSettings: [String] @@ -219,7 +219,7 @@ type TestEdgeData inV1: Boolean wellKnown: Boolean testReference: Uriorcurie - testMetadata: TestMetadata! + testMetadata: TestMetadata id: Uriorcurie! tags: [String] testRunnerSettings: [String] @@ -303,7 +303,7 @@ type TestSuite description: String tags: [String] testRunnerSettings: [String] - testMetadata: TestMetadata! + testMetadata: TestMetadata testPersona: TestPersonaEnum testCases: [TestCase] testSuiteSpecification: TestSuiteSpecification diff --git a/project/jsonld/translator_testing_model.context.jsonld b/project/jsonld/translator_testing_model.context.jsonld index 81d2d1f..fe0ce81 100644 --- a/project/jsonld/translator_testing_model.context.jsonld +++ b/project/jsonld/translator_testing_model.context.jsonld @@ -1,7 +1,7 @@ { "comments": { "description": "Auto generated by LinkML jsonld context generator", - "generation_date": "2024-04-19T10:26:20", + "generation_date": "2024-04-25T12:19:45", "source": "translator_testing_model.yaml" }, "@context": { diff --git a/project/jsonld/translator_testing_model.jsonld b/project/jsonld/translator_testing_model.jsonld index 9a0bdf0..ba14591 100644 --- a/project/jsonld/translator_testing_model.jsonld +++ b/project/jsonld/translator_testing_model.jsonld @@ -1702,7 +1702,6 @@ "TestSuite" ], "range": "TestMetadata", - "required": true, "inlined": true, "@type": "SlotDefinition" }, @@ -2554,9 +2553,9 @@ ], "metamodel_version": "1.7.0", "source_file": "translator_testing_model.yaml", - "source_file_date": "2024-04-18T22:29:50", - "source_file_size": 27247, - "generation_date": "2024-04-19T10:26:20", + "source_file_date": "2024-04-25T12:16:22", + "source_file_size": 28237, + "generation_date": "2024-04-25T12:19:45", "@type": "SchemaDefinition", "@context": [ "project/jsonld/translator_testing_model.context.jsonld", diff --git a/project/jsonschema/translator_testing_model.schema.json b/project/jsonschema/translator_testing_model.schema.json index af8337d..4931abd 100644 --- a/project/jsonschema/translator_testing_model.schema.json +++ b/project/jsonschema/translator_testing_model.schema.json @@ -131,7 +131,6 @@ } }, "required": [ - "test_metadata", "id" ], "title": "AcceptanceTestAsset", @@ -299,7 +298,6 @@ } }, "required": [ - "test_metadata", "id" ], "title": "AcceptanceTestSuite", @@ -427,7 +425,6 @@ } }, "required": [ - "test_metadata", "id" ], "title": "OneHopTestSuite", @@ -666,7 +663,6 @@ } }, "required": [ - "test_metadata", "id" ], "title": "StandardsComplianceTestSuite", @@ -762,7 +758,6 @@ } }, "required": [ - "test_metadata", "id" ], "title": "TestAsset", @@ -1163,7 +1158,6 @@ } }, "required": [ - "test_metadata", "id" ], "title": "TestEdgeData", @@ -1562,7 +1556,6 @@ } }, "required": [ - "test_metadata", "id" ], "title": "TestSuite", diff --git a/project/owl/translator_testing_model.owl.ttl b/project/owl/translator_testing_model.owl.ttl index e93be4c..cb9798a 100644 --- a/project/owl/translator_testing_model.owl.ttl +++ b/project/owl/translator_testing_model.owl.ttl @@ -66,58 +66,58 @@ ttm:TestRunSession a owl:Class, rdfs:label "TestRunSession" ; rdfs:subClassOf [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty ttm:test_env ], + owl:onProperty ttm:timestamp ], [ a owl:Restriction ; - owl:minCardinality 0 ; + owl:allValuesFrom linkml:Datetime ; + owl:onProperty ttm:timestamp ], + [ a owl:Restriction ; + owl:allValuesFrom ttm:ComponentEnum ; owl:onProperty ttm:components ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty ttm:test_env ], + owl:onProperty ttm:test_case_results ], [ a owl:Restriction ; - owl:allValuesFrom ttm:TestEnvEnum ; + owl:allValuesFrom linkml:String ; + owl:onProperty ttm:test_runner_name ], + [ a owl:Restriction ; + owl:minCardinality 0 ; owl:onProperty ttm:test_env ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty ttm:test_case_results ], + owl:onProperty ttm:timestamp ], [ a owl:Restriction ; owl:allValuesFrom linkml:String ; owl:onProperty ttm:test_run_parameters ], + [ a owl:Restriction ; + owl:minCardinality 0 ; + owl:onProperty ttm:components ], + [ a owl:Restriction ; + owl:allValuesFrom ttm:TestEntity ; + owl:onProperty ttm:test_entities ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty ttm:timestamp ], + owl:onProperty ttm:test_env ], + [ a owl:Restriction ; + owl:allValuesFrom ttm:TestEnvEnum ; + owl:onProperty ttm:test_env ], [ a owl:Restriction ; owl:allValuesFrom ttm:TestCaseResult ; owl:onProperty ttm:test_case_results ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty ttm:test_run_parameters ], - [ a owl:Restriction ; - owl:allValuesFrom linkml:Datetime ; - owl:onProperty ttm:timestamp ], - [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty ttm:test_runner_name ], + owl:onProperty ttm:test_entities ], [ a owl:Restriction ; owl:maxCardinality 1 ; owl:onProperty ttm:test_runner_name ], - [ a owl:Restriction ; - owl:allValuesFrom ttm:TestEntity ; - owl:onProperty ttm:test_entities ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty ttm:timestamp ], - [ a owl:Restriction ; - owl:allValuesFrom linkml:String ; owl:onProperty ttm:test_runner_name ], - [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty ttm:test_entities ], [ a owl:Restriction ; owl:maxCardinality 1 ; owl:onProperty ttm:test_run_parameters ], [ a owl:Restriction ; - owl:allValuesFrom ttm:ComponentEnum ; - owl:onProperty ttm:components ], + owl:minCardinality 0 ; + owl:onProperty ttm:test_run_parameters ], ttm:TestEntity ; skos:definition "Single run of a TestRunner in a given environment, with a specified set of test_entities (generally, one or more instances of TestSuite)." ; skos:inScheme . @@ -183,95 +183,95 @@ ttm:AcceptanceTestAsset a owl:Class, linkml:ClassDefinition ; rdfs:label "AcceptanceTestAsset" ; rdfs:subClassOf [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty ttm:must_pass_date ], + owl:maxCardinality 1 ; + owl:onProperty ttm:scientific_question ], [ a owl:Restriction ; - owl:allValuesFrom linkml:Date ; + owl:maxCardinality 1 ; owl:onProperty ttm:must_pass_date ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty ttm:scientific_question ], + owl:onProperty ttm:expected_result ], [ a owl:Restriction ; - owl:maxCardinality 1 ; + owl:minCardinality 0 ; owl:onProperty ttm:must_pass_environment ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty ttm:must_pass_date ], + owl:onProperty ttm:expected_result ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty ttm:must_pass_environment ], + owl:onProperty ttm:direction ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty ttm:notes ], + owl:onProperty ttm:direction ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty ttm:top_level ], + owl:onProperty ttm:string_entry ], [ a owl:Restriction ; - owl:allValuesFrom linkml:String ; + owl:maxCardinality 1 ; owl:onProperty ttm:answer_informal_concept ], [ a owl:Restriction ; owl:allValuesFrom linkml:String ; - owl:onProperty ttm:scientific_question ], + owl:onProperty ttm:notes ], [ a owl:Restriction ; - owl:minCardinality 0 ; + owl:maxCardinality 1 ; owl:onProperty ttm:notes ], [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty ttm:expected_result ], + owl:allValuesFrom linkml:Integer ; + owl:onProperty ttm:top_level ], + [ a owl:Restriction ; + owl:allValuesFrom linkml:String ; + owl:onProperty ttm:answer_informal_concept ], [ a owl:Restriction ; owl:allValuesFrom ttm:ExpectedResultsEnum ; owl:onProperty ttm:expected_result ], [ a owl:Restriction ; - owl:allValuesFrom linkml:String ; - owl:onProperty ttm:string_entry ], + owl:minCardinality 0 ; + owl:onProperty ttm:notes ], [ a owl:Restriction ; - owl:maxCardinality 1 ; + owl:minCardinality 0 ; owl:onProperty ttm:scientific_question ], [ a owl:Restriction ; - owl:allValuesFrom ttm:NodeEnum ; - owl:onProperty ttm:query_node ], - [ a owl:Restriction ; - owl:allValuesFrom ttm:DirectionEnum ; - owl:onProperty ttm:direction ], + owl:minCardinality 0 ; + owl:onProperty ttm:must_pass_date ], [ a owl:Restriction ; owl:allValuesFrom linkml:String ; - owl:onProperty ttm:notes ], - [ a owl:Restriction ; - owl:maxCardinality 1 ; owl:onProperty ttm:string_entry ], - [ a owl:Restriction ; - owl:allValuesFrom ttm:TestEnvEnum ; - owl:onProperty ttm:must_pass_environment ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty ttm:direction ], - [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty ttm:direction ], + owl:onProperty ttm:query_node ], [ a owl:Restriction ; owl:minCardinality 0 ; owl:onProperty ttm:answer_informal_concept ], [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty ttm:query_node ], - [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty ttm:query_node ], + owl:allValuesFrom linkml:Date ; + owl:onProperty ttm:must_pass_date ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty ttm:expected_result ], + owl:onProperty ttm:must_pass_environment ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty ttm:string_entry ], + owl:onProperty ttm:top_level ], [ a owl:Restriction ; owl:maxCardinality 1 ; owl:onProperty ttm:top_level ], [ a owl:Restriction ; - owl:allValuesFrom linkml:Integer ; - owl:onProperty ttm:top_level ], + owl:maxCardinality 1 ; + owl:onProperty ttm:string_entry ], + [ a owl:Restriction ; + owl:allValuesFrom ttm:DirectionEnum ; + owl:onProperty ttm:direction ], + [ a owl:Restriction ; + owl:allValuesFrom linkml:String ; + owl:onProperty ttm:scientific_question ], + [ a owl:Restriction ; + owl:allValuesFrom ttm:TestEnvEnum ; + owl:onProperty ttm:must_pass_environment ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty ttm:answer_informal_concept ], + owl:onProperty ttm:query_node ], + [ a owl:Restriction ; + owl:allValuesFrom ttm:NodeEnum ; + owl:onProperty ttm:query_node ], ttm:TestAsset ; skos:definition "Model derived from Jenn's test asset design and Shervin's runner JSON here as an example." ; skos:inScheme . @@ -291,10 +291,10 @@ ttm:TestOutput a owl:Class, owl:allValuesFrom ttm:TestResultPKSet ; owl:onProperty ttm:pks ], [ a owl:Restriction ; - owl:allValuesFrom linkml:String ; + owl:maxCardinality 1 ; owl:onProperty ttm:test_case_id ], [ a owl:Restriction ; - owl:maxCardinality 1 ; + owl:allValuesFrom linkml:String ; owl:onProperty ttm:test_case_id ], [ a owl:Restriction ; owl:minCardinality 0 ; @@ -399,32 +399,32 @@ ttm:TestCaseResult a owl:Class, linkml:ClassDefinition ; rdfs:label "TestCaseResult" ; rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom linkml:Uriorcurie ; - owl:onProperty ttm:test_suite_id ], - [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty ttm:test_suite_id ], + owl:allValuesFrom ttm:TestCaseResultEnum ; + owl:onProperty ttm:test_case_result ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty ttm:test_case_result ], + owl:onProperty ttm:test_suite_id ], [ a owl:Restriction ; - owl:minCardinality 0 ; + owl:allValuesFrom ttm:TestCase ; owl:onProperty ttm:test_case ], [ a owl:Restriction ; owl:minCardinality 0 ; owl:onProperty ttm:test_case_result ], [ a owl:Restriction ; - owl:maxCardinality 1 ; + owl:allValuesFrom linkml:Uriorcurie ; + owl:onProperty ttm:test_suite_id ], + [ a owl:Restriction ; + owl:minCardinality 0 ; owl:onProperty ttm:test_case ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty ttm:test_suite_id ], + owl:onProperty ttm:test_case_result ], [ a owl:Restriction ; - owl:allValuesFrom ttm:TestCase ; + owl:maxCardinality 1 ; owl:onProperty ttm:test_case ], [ a owl:Restriction ; - owl:allValuesFrom ttm:TestCaseResultEnum ; - owl:onProperty ttm:test_case_result ], + owl:minCardinality 0 ; + owl:onProperty ttm:test_suite_id ], ttm:TestEntity ; skos:definition "The outcome of a TestRunner run of one specific TestCase." ; skos:inScheme . @@ -448,22 +448,22 @@ ttm:TestEntityParameter a owl:Class, linkml:ClassDefinition ; rdfs:label "TestEntityParameter" ; rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom linkml:String ; - owl:onProperty ttm:parameter ], - [ a owl:Restriction ; - owl:minCardinality 0 ; + owl:maxCardinality 1 ; owl:onProperty ttm:value ], + [ a owl:Restriction ; + owl:maxCardinality 1 ; + owl:onProperty ttm:parameter ], [ a owl:Restriction ; owl:allValuesFrom linkml:String ; owl:onProperty ttm:value ], [ a owl:Restriction ; - owl:minCardinality 0 ; + owl:allValuesFrom linkml:String ; owl:onProperty ttm:parameter ], [ a owl:Restriction ; - owl:maxCardinality 1 ; + owl:minCardinality 0 ; owl:onProperty ttm:parameter ], [ a owl:Restriction ; - owl:maxCardinality 1 ; + owl:minCardinality 0 ; owl:onProperty ttm:value ] ; skos:definition "A single 'tag = value' pair (where 'value' is a simple string)." ; skos:inScheme . @@ -567,68 +567,68 @@ ttm:TestResultPKSet a owl:Class, linkml:ClassDefinition ; rdfs:label "TestResultPKSet" ; rdfs:subClassOf [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty ttm:parent_pk ], + owl:allValuesFrom linkml:String ; + owl:onProperty ttm:improving ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty ttm:aragorn ], + owl:onProperty ttm:improving ], [ a owl:Restriction ; - owl:allValuesFrom linkml:String ; + owl:maxCardinality 1 ; + owl:onProperty ttm:arax ], + [ a owl:Restriction ; + owl:maxCardinality 1 ; owl:onProperty ttm:parent_pk ], [ a owl:Restriction ; owl:allValuesFrom linkml:String ; - owl:onProperty ttm:bte ], + owl:onProperty ttm:merged_pk ], [ a owl:Restriction ; owl:allValuesFrom linkml:String ; - owl:onProperty ttm:unsecret ], - [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty ttm:parent_pk ], - [ a owl:Restriction ; - owl:maxCardinality 1 ; owl:onProperty ttm:bte ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty ttm:bte ], - [ a owl:Restriction ; - owl:allValuesFrom linkml:String ; - owl:onProperty ttm:aragorn ], - [ a owl:Restriction ; - owl:allValuesFrom linkml:String ; owl:onProperty ttm:merged_pk ], [ a owl:Restriction ; owl:allValuesFrom linkml:String ; - owl:onProperty ttm:improving ], + owl:onProperty ttm:unsecret ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty ttm:aragorn ], + owl:onProperty ttm:unsecret ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty ttm:improving ], - [ a owl:Restriction ; - owl:minCardinality 0 ; owl:onProperty ttm:merged_pk ], + [ a owl:Restriction ; + owl:allValuesFrom linkml:String ; + owl:onProperty ttm:aragorn ], [ a owl:Restriction ; owl:minCardinality 0 ; owl:onProperty ttm:unsecret ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty ttm:unsecret ], + owl:onProperty ttm:bte ], [ a owl:Restriction ; owl:minCardinality 0 ; owl:onProperty ttm:arax ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty ttm:improving ], + owl:onProperty ttm:aragorn ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty ttm:arax ], + owl:onProperty ttm:aragorn ], [ a owl:Restriction ; owl:allValuesFrom linkml:String ; owl:onProperty ttm:arax ], + [ a owl:Restriction ; + owl:minCardinality 0 ; + owl:onProperty ttm:bte ], + [ a owl:Restriction ; + owl:minCardinality 0 ; + owl:onProperty ttm:parent_pk ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty ttm:merged_pk ], + owl:onProperty ttm:improving ], + [ a owl:Restriction ; + owl:allValuesFrom linkml:String ; + owl:onProperty ttm:parent_pk ], ttm:TestEntity ; skos:definition "Primary keys for a given ARA result set from a SmokeTest result for a given TestCase." ; skos:inScheme . @@ -668,23 +668,23 @@ ttm:TestSuiteSpecification a owl:Class, linkml:ClassDefinition ; rdfs:label "TestSuiteSpecification" ; rdfs:subClassOf [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty ttm:test_data_file_format ], + owl:allValuesFrom linkml:Uriorcurie ; + owl:onProperty ttm:test_data_file_locator ], [ a owl:Restriction ; - owl:maxCardinality 1 ; + owl:minCardinality 0 ; owl:onProperty ttm:test_data_file_format ], [ a owl:Restriction ; owl:allValuesFrom ttm:FileFormatEnum ; owl:onProperty ttm:test_data_file_format ], [ a owl:Restriction ; - owl:allValuesFrom linkml:Uriorcurie ; + owl:minCardinality 0 ; owl:onProperty ttm:test_data_file_locator ], [ a owl:Restriction ; owl:maxCardinality 1 ; owl:onProperty ttm:test_data_file_locator ], [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty ttm:test_data_file_locator ], + owl:maxCardinality 1 ; + owl:onProperty ttm:test_data_file_format ], ttm:TestEntity ; skos:definition "Parameters for a Test Case instances either dynamically generated from some external source of Test Assets." ; skos:inScheme . @@ -775,22 +775,22 @@ ttm:Qualifier a owl:Class, rdfs:label "Qualifier" ; rdfs:subClassOf [ a owl:Restriction ; owl:allValuesFrom linkml:String ; + owl:onProperty ttm:value ], + [ a owl:Restriction ; + owl:minCardinality 0 ; owl:onProperty ttm:parameter ], [ a owl:Restriction ; owl:maxCardinality 1 ; owl:onProperty ttm:parameter ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty ttm:parameter ], - [ a owl:Restriction ; - owl:maxCardinality 1 ; owl:onProperty ttm:value ], [ a owl:Restriction ; - owl:minCardinality 0 ; + owl:maxCardinality 1 ; owl:onProperty ttm:value ], [ a owl:Restriction ; owl:allValuesFrom linkml:String ; - owl:onProperty ttm:value ], + owl:onProperty ttm:parameter ], ttm:TestEntityParameter ; skos:inScheme . @@ -799,18 +799,18 @@ ttm:TestMetadata a owl:Class, rdfs:label "TestMetadata" ; rdfs:subClassOf [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty ttm:test_source ], - [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty ttm:test_objective ], - [ a owl:Restriction ; - owl:maxCardinality 1 ; owl:onProperty ttm:test_annotations ], [ a owl:Restriction ; - owl:maxCardinality 1 ; + owl:allValuesFrom ttm:TestSourceEnum ; owl:onProperty ttm:test_source ], [ a owl:Restriction ; owl:maxCardinality 1 ; + owl:onProperty ttm:test_source ], + [ a owl:Restriction ; + owl:minCardinality 0 ; + owl:onProperty ttm:test_objective ], + [ a owl:Restriction ; + owl:minCardinality 0 ; owl:onProperty ttm:test_reference ], [ a owl:Restriction ; owl:allValuesFrom linkml:String ; @@ -820,18 +820,18 @@ ttm:TestMetadata a owl:Class, owl:onProperty ttm:test_reference ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty ttm:test_objective ], + owl:onProperty ttm:test_annotations ], [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty ttm:test_reference ], + owl:allValuesFrom ttm:TestObjectiveEnum ; + owl:onProperty ttm:test_objective ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty ttm:test_annotations ], - [ a owl:Restriction ; - owl:allValuesFrom ttm:TestSourceEnum ; owl:onProperty ttm:test_source ], [ a owl:Restriction ; - owl:allValuesFrom ttm:TestObjectiveEnum ; + owl:maxCardinality 1 ; + owl:onProperty ttm:test_reference ], + [ a owl:Restriction ; + owl:maxCardinality 1 ; owl:onProperty ttm:test_objective ], ttm:TestEntity ; skos:definition "Represents metadata related to (external SME, SMURF, Translator feedback, large scale batch, etc.) like the provenance of test assets, cases and/or suites." ; @@ -847,37 +847,37 @@ ttm:TestSuite a owl:Class, rdfs:label "TestSuite" ; rdfs:subClassOf [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty ttm:test_cases ], + owl:onProperty ttm:test_persona ], [ a owl:Restriction ; - owl:minCardinality 1 ; + owl:maxCardinality 1 ; owl:onProperty ttm:test_metadata ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty ttm:test_suite_specification ], - [ a owl:Restriction ; - owl:maxCardinality 1 ; owl:onProperty ttm:test_metadata ], [ a owl:Restriction ; - owl:allValuesFrom ttm:TestSuiteSpecification ; - owl:onProperty ttm:test_suite_specification ], + owl:maxCardinality 1 ; + owl:onProperty ttm:test_persona ], [ a owl:Restriction ; - owl:minCardinality 0 ; + owl:allValuesFrom ttm:TestPersonaEnum ; owl:onProperty ttm:test_persona ], [ a owl:Restriction ; - owl:maxCardinality 1 ; + owl:minCardinality 0 ; owl:onProperty ttm:test_suite_specification ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty ttm:test_persona ], + owl:onProperty ttm:test_suite_specification ], [ a owl:Restriction ; owl:allValuesFrom ttm:TestCase ; owl:onProperty ttm:test_cases ], + [ a owl:Restriction ; + owl:allValuesFrom ttm:TestSuiteSpecification ; + owl:onProperty ttm:test_suite_specification ], [ a owl:Restriction ; owl:allValuesFrom ttm:TestMetadata ; owl:onProperty ttm:test_metadata ], [ a owl:Restriction ; - owl:allValuesFrom ttm:TestPersonaEnum ; - owl:onProperty ttm:test_persona ], + owl:minCardinality 0 ; + owl:onProperty ttm:test_cases ], ttm:TestEntity ; skos:definition "Specification of a set of Test Cases, one of either with a static list of 'test_cases' or a dynamic 'test_suite_specification' slot values. Note: at least one slot or the other, but generally not both(?) needs to be present." ; skos:inScheme . @@ -1239,176 +1239,176 @@ ttm:TestAsset a owl:Class, linkml:ClassDefinition ; rdfs:label "TestAsset" ; rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom linkml:String ; - owl:onProperty ttm:predicate_name ], - [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty ttm:test_issue ], - [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty ttm:predicate_name ], + owl:onProperty ttm:predicate_id ], [ a owl:Restriction ; - owl:allValuesFrom ttm:concept_category ; - owl:onProperty ttm:input_category ], + owl:maxCardinality 1 ; + owl:onProperty ttm:test_reference ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty ttm:in_v1 ], + owl:onProperty ttm:output_category ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty ttm:output_name ], - [ a owl:Restriction ; - owl:allValuesFrom linkml:Boolean ; - owl:onProperty ttm:in_v1 ], + owl:onProperty ttm:output_category ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty ttm:test_reference ], - [ a owl:Restriction ; - owl:allValuesFrom ttm:TestIssueEnum ; - owl:onProperty ttm:test_issue ], + owl:onProperty ttm:tags ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty ttm:output_category ], + owl:onProperty ttm:association ], [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty ttm:semantic_severity ], + owl:allValuesFrom linkml:String ; + owl:onProperty ttm:tags ], [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty ttm:input_name ], + owl:allValuesFrom ttm:Qualifier ; + owl:onProperty ttm:qualifiers ], [ a owl:Restriction ; - owl:minCardinality 0 ; + owl:maxCardinality 1 ; owl:onProperty ttm:input_category ], [ a owl:Restriction ; - owl:minCardinality 1 ; - owl:onProperty ttm:test_metadata ], + owl:allValuesFrom linkml:Boolean ; + owl:onProperty ttm:well_known ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty ttm:output_id ], + owl:onProperty ttm:id ], [ a owl:Restriction ; - owl:allValuesFrom linkml:String ; - owl:onProperty ttm:input_name ], + owl:minCardinality 0 ; + owl:onProperty ttm:predicate_id ], [ a owl:Restriction ; owl:minCardinality 0 ; + owl:onProperty ttm:test_runner_settings ], + [ a owl:Restriction ; + owl:allValuesFrom ttm:TestIssueEnum ; owl:onProperty ttm:test_issue ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty ttm:expected_output ], - [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty ttm:input_category ], + owl:onProperty ttm:in_v1 ], [ a owl:Restriction ; owl:minCardinality 0 ; owl:onProperty ttm:input_id ], [ a owl:Restriction ; - owl:allValuesFrom linkml:Uriorcurie ; - owl:onProperty ttm:test_reference ], + owl:maxCardinality 1 ; + owl:onProperty ttm:input_id ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty ttm:predicate_id ], + owl:onProperty ttm:test_issue ], [ a owl:Restriction ; - owl:allValuesFrom ttm:association_category ; - owl:onProperty ttm:association ], + owl:minCardinality 0 ; + owl:onProperty ttm:semantic_severity ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty ttm:test_metadata ], + owl:onProperty ttm:semantic_severity ], [ a owl:Restriction ; - owl:allValuesFrom ttm:TestMetadata ; - owl:onProperty ttm:test_metadata ], + owl:minCardinality 0 ; + owl:onProperty ttm:well_known ], [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty ttm:test_reference ], + owl:minCardinality 0 ; + owl:onProperty ttm:input_name ], + [ a owl:Restriction ; + owl:minCardinality 0 ; + owl:onProperty ttm:output_name ], [ a owl:Restriction ; owl:minCardinality 1 ; owl:onProperty ttm:id ], + [ a owl:Restriction ; + owl:allValuesFrom linkml:String ; + owl:onProperty ttm:predicate_name ], + [ a owl:Restriction ; + owl:allValuesFrom ttm:predicate_type ; + owl:onProperty ttm:predicate_id ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty ttm:input_id ], + owl:onProperty ttm:association ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty ttm:well_known ], + owl:onProperty ttm:qualifiers ], [ a owl:Restriction ; - owl:allValuesFrom linkml:String ; - owl:onProperty ttm:test_runner_settings ], + owl:maxCardinality 1 ; + owl:onProperty ttm:in_v1 ], [ a owl:Restriction ; - owl:allValuesFrom linkml:String ; - owl:onProperty ttm:output_name ], + owl:minCardinality 0 ; + owl:onProperty ttm:input_category ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty ttm:qualifiers ], + owl:onProperty ttm:test_metadata ], [ a owl:Restriction ; - owl:allValuesFrom ttm:concept_category ; - owl:onProperty ttm:output_category ], + owl:allValuesFrom linkml:String ; + owl:onProperty ttm:output_name ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty ttm:output_id ], - [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty ttm:well_known ], + owl:onProperty ttm:test_reference ], [ a owl:Restriction ; owl:maxCardinality 1 ; owl:onProperty ttm:predicate_name ], [ a owl:Restriction ; - owl:allValuesFrom linkml:Uriorcurie ; - owl:onProperty ttm:id ], + owl:minCardinality 0 ; + owl:onProperty ttm:expected_output ], [ a owl:Restriction ; - owl:maxCardinality 1 ; + owl:allValuesFrom linkml:String ; owl:onProperty ttm:expected_output ], + [ a owl:Restriction ; + owl:allValuesFrom ttm:SemanticSeverityEnum ; + owl:onProperty ttm:semantic_severity ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty ttm:id ], + owl:onProperty ttm:expected_output ], [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty ttm:tags ], + owl:allValuesFrom ttm:TestMetadata ; + owl:onProperty ttm:test_metadata ], [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty ttm:input_name ], + owl:allValuesFrom ttm:concept_category ; + owl:onProperty ttm:input_category ], [ a owl:Restriction ; owl:allValuesFrom linkml:Uriorcurie ; - owl:onProperty ttm:input_id ], - [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty ttm:output_name ], - [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty ttm:semantic_severity ], + owl:onProperty ttm:id ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty ttm:output_category ], + owl:onProperty ttm:output_id ], [ a owl:Restriction ; - owl:maxCardinality 1 ; + owl:allValuesFrom linkml:String ; + owl:onProperty ttm:input_name ], + [ a owl:Restriction ; + owl:allValuesFrom ttm:association_category ; owl:onProperty ttm:association ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty ttm:predicate_id ], + owl:onProperty ttm:output_id ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty ttm:test_runner_settings ], - [ a owl:Restriction ; - owl:allValuesFrom linkml:String ; - owl:onProperty ttm:expected_output ], - [ a owl:Restriction ; - owl:allValuesFrom ttm:Qualifier ; - owl:onProperty ttm:qualifiers ], + owl:onProperty ttm:predicate_name ], [ a owl:Restriction ; owl:allValuesFrom linkml:Boolean ; - owl:onProperty ttm:well_known ], + owl:onProperty ttm:in_v1 ], + [ a owl:Restriction ; + owl:allValuesFrom linkml:Uriorcurie ; + owl:onProperty ttm:input_id ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty ttm:association ], + owl:onProperty ttm:test_issue ], [ a owl:Restriction ; - owl:allValuesFrom ttm:SemanticSeverityEnum ; - owl:onProperty ttm:semantic_severity ], + owl:maxCardinality 1 ; + owl:onProperty ttm:well_known ], + [ a owl:Restriction ; + owl:maxCardinality 1 ; + owl:onProperty ttm:input_name ], [ a owl:Restriction ; owl:allValuesFrom linkml:String ; - owl:onProperty ttm:tags ], + owl:onProperty ttm:test_runner_settings ], [ a owl:Restriction ; owl:allValuesFrom linkml:Uriorcurie ; owl:onProperty ttm:output_id ], [ a owl:Restriction ; - owl:allValuesFrom ttm:predicate_type ; - owl:onProperty ttm:predicate_id ], + owl:allValuesFrom linkml:Uriorcurie ; + owl:onProperty ttm:test_reference ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty ttm:in_v1 ], + owl:onProperty ttm:test_metadata ], + [ a owl:Restriction ; + owl:allValuesFrom ttm:concept_category ; + owl:onProperty ttm:output_category ], + [ a owl:Restriction ; + owl:maxCardinality 1 ; + owl:onProperty ttm:output_name ], ttm:TestEntity ; skos:definition "Represents a Test Asset, which is a single specific instance of TestCase-agnostic semantic parameters representing the specification of a Translator test target with inputs and (expected) outputs." ; skos:inScheme . @@ -1464,125 +1464,125 @@ ttm:TestCase a owl:Class, linkml:ClassDefinition ; rdfs:label "TestCase" ; rdfs:subClassOf [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty ttm:test_case_input_id ], - [ a owl:Restriction ; - owl:allValuesFrom ttm:QueryTypeEnum ; - owl:onProperty ttm:query_type ], - [ a owl:Restriction ; - owl:allValuesFrom ttm:TestAsset ; - owl:onProperty ttm:test_assets ], + owl:minCardinality 0 ; + owl:onProperty ttm:tags ], [ a owl:Restriction ; owl:maxCardinality 1 ; owl:onProperty ttm:query_type ], [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty ttm:test_case_predicate_name ], + owl:minCardinality 0 ; + owl:onProperty ttm:test_case_input_id ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty ttm:tags ], + owl:onProperty ttm:qualifiers ], [ a owl:Restriction ; - owl:allValuesFrom ttm:TestObjectiveEnum ; - owl:onProperty ttm:test_case_objective ], + owl:allValuesFrom ttm:Qualifier ; + owl:onProperty ttm:qualifiers ], [ a owl:Restriction ; owl:allValuesFrom linkml:String ; - owl:onProperty ttm:tags ], + owl:onProperty ttm:test_case_predicate_name ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty ttm:query_type ], + owl:onProperty ttm:test_case_predicate_id ], [ a owl:Restriction ; - owl:allValuesFrom ttm:ComponentEnum ; + owl:minCardinality 0 ; owl:onProperty ttm:components ], [ a owl:Restriction ; - owl:allValuesFrom ttm:concept_category ; - owl:onProperty ttm:output_category ], - [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty ttm:trapi_template ], - [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty ttm:test_case_predicate_name ], + owl:allValuesFrom ttm:TestSourceEnum ; + owl:onProperty ttm:test_case_source ], [ a owl:Restriction ; owl:allValuesFrom linkml:String ; - owl:onProperty ttm:test_case_predicate_name ], + owl:onProperty ttm:tags ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty ttm:test_case_objective ], + owl:onProperty ttm:test_case_input_id ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty ttm:components ], + owl:onProperty ttm:test_case_source ], [ a owl:Restriction ; - owl:allValuesFrom ttm:TestEnvEnum ; - owl:onProperty ttm:test_env ], + owl:minCardinality 0 ; + owl:onProperty ttm:trapi_template ], [ a owl:Restriction ; - owl:allValuesFrom ttm:Qualifier ; - owl:onProperty ttm:qualifiers ], + owl:allValuesFrom linkml:Uriorcurie ; + owl:onProperty ttm:test_case_input_id ], [ a owl:Restriction ; - owl:minCardinality 0 ; + owl:allValuesFrom ttm:Precondition ; owl:onProperty ttm:preconditions ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty ttm:test_case_predicate_id ], - [ a owl:Restriction ; - owl:minCardinality 0 ; owl:onProperty ttm:output_category ], [ a owl:Restriction ; - owl:allValuesFrom ttm:TestSourceEnum ; - owl:onProperty ttm:test_case_source ], + owl:allValuesFrom ttm:TestEnvEnum ; + owl:onProperty ttm:test_env ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty ttm:test_case_source ], + owl:onProperty ttm:input_category ], [ a owl:Restriction ; - owl:minCardinality 1 ; - owl:onProperty ttm:test_assets ], + owl:minCardinality 0 ; + owl:onProperty ttm:test_case_objective ], [ a owl:Restriction ; owl:allValuesFrom ttm:concept_category ; + owl:onProperty ttm:output_category ], + [ a owl:Restriction ; + owl:allValuesFrom ttm:QueryTypeEnum ; + owl:onProperty ttm:query_type ], + [ a owl:Restriction ; + owl:minCardinality 0 ; owl:onProperty ttm:input_category ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty ttm:qualifiers ], + owl:onProperty ttm:test_env ], [ a owl:Restriction ; - owl:allValuesFrom ttm:TrapiTemplateEnum ; - owl:onProperty ttm:trapi_template ], + owl:minCardinality 1 ; + owl:onProperty ttm:test_assets ], [ a owl:Restriction ; owl:minCardinality 0 ; + owl:onProperty ttm:output_category ], + [ a owl:Restriction ; + owl:maxCardinality 1 ; owl:onProperty ttm:test_case_source ], [ a owl:Restriction ; - owl:minCardinality 0 ; + owl:allValuesFrom linkml:String ; owl:onProperty ttm:test_case_predicate_id ], [ a owl:Restriction ; - owl:allValuesFrom ttm:Precondition ; - owl:onProperty ttm:preconditions ], + owl:maxCardinality 1 ; + owl:onProperty ttm:test_case_predicate_id ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty ttm:output_category ], + owl:onProperty ttm:test_case_predicate_name ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty ttm:test_env ], + owl:onProperty ttm:test_case_predicate_name ], [ a owl:Restriction ; - owl:minCardinality 0 ; + owl:allValuesFrom ttm:ComponentEnum ; + owl:onProperty ttm:components ], + [ a owl:Restriction ; + owl:maxCardinality 1 ; owl:onProperty ttm:test_case_objective ], [ a owl:Restriction ; owl:minCardinality 0 ; + owl:onProperty ttm:query_type ], + [ a owl:Restriction ; + owl:maxCardinality 1 ; owl:onProperty ttm:trapi_template ], [ a owl:Restriction ; owl:maxCardinality 1 ; owl:onProperty ttm:test_env ], [ a owl:Restriction ; - owl:allValuesFrom linkml:String ; - owl:onProperty ttm:test_case_predicate_id ], - [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty ttm:input_category ], + owl:allValuesFrom ttm:TestObjectiveEnum ; + owl:onProperty ttm:test_case_objective ], [ a owl:Restriction ; - owl:allValuesFrom linkml:Uriorcurie ; - owl:onProperty ttm:test_case_input_id ], + owl:allValuesFrom ttm:TestAsset ; + owl:onProperty ttm:test_assets ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty ttm:test_case_input_id ], + owl:onProperty ttm:preconditions ], [ a owl:Restriction ; - owl:minCardinality 0 ; + owl:allValuesFrom ttm:concept_category ; owl:onProperty ttm:input_category ], + [ a owl:Restriction ; + owl:allValuesFrom ttm:TrapiTemplateEnum ; + owl:onProperty ttm:trapi_template ], ttm:TestEntity ; skos:definition "Represents a single enumerated instance of Test Case, derived from a given collection of one or more TestAsset instances (the value of the 'test_assets' slot) which define the 'inputs' and 'outputs' of the TestCase, used to probe a particular test condition." ; skos:inScheme . @@ -1695,39 +1695,39 @@ ttm:TestEntity a owl:Class, rdfs:label "TestEntity" ; rdfs:subClassOf [ a owl:Restriction ; owl:allValuesFrom linkml:String ; - owl:onProperty ttm:name ], - [ a owl:Restriction ; - owl:allValuesFrom linkml:String ; - owl:onProperty ttm:description ], - [ a owl:Restriction ; - owl:minCardinality 0 ; owl:onProperty ttm:tags ], [ a owl:Restriction ; - owl:minCardinality 0 ; + owl:allValuesFrom linkml:String ; owl:onProperty ttm:test_runner_settings ], [ a owl:Restriction ; - owl:allValuesFrom linkml:Uriorcurie ; - owl:onProperty ttm:id ], + owl:maxCardinality 1 ; + owl:onProperty ttm:description ], [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty ttm:name ], + owl:maxCardinality 1 ; + owl:onProperty ttm:id ], [ a owl:Restriction ; owl:minCardinality 1 ; owl:onProperty ttm:id ], - [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty ttm:description ], [ a owl:Restriction ; owl:allValuesFrom linkml:String ; - owl:onProperty ttm:test_runner_settings ], + owl:onProperty ttm:name ], [ a owl:Restriction ; - owl:allValuesFrom linkml:String ; + owl:minCardinality 0 ; + owl:onProperty ttm:name ], + [ a owl:Restriction ; + owl:minCardinality 0 ; owl:onProperty ttm:tags ], + [ a owl:Restriction ; + owl:allValuesFrom linkml:String ; + owl:onProperty ttm:description ], [ a owl:Restriction ; owl:maxCardinality 1 ; owl:onProperty ttm:name ], [ a owl:Restriction ; - owl:maxCardinality 1 ; + owl:minCardinality 0 ; + owl:onProperty ttm:test_runner_settings ], + [ a owl:Restriction ; + owl:allValuesFrom linkml:Uriorcurie ; owl:onProperty ttm:id ], [ a owl:Restriction ; owl:minCardinality 0 ; diff --git a/project/shacl/translator_testing_model.shacl.ttl b/project/shacl/translator_testing_model.shacl.ttl index d382e1e..fe2e0c4 100644 --- a/project/shacl/translator_testing_model.shacl.ttl +++ b/project/shacl/translator_testing_model.shacl.ttl @@ -8,141 +8,140 @@ ttm:AcceptanceTestCase a sh:NodeShape ; sh:closed true ; sh:description "See AcceptanceTestAsset above for more details." ; sh:ignoredProperties ( rdf:type ) ; - sh:property [ sh:datatype xsd:string ; - sh:description "A human-readable description for a Test Entity" ; + sh:property [ sh:maxCount 1 ; + sh:order 11 ; + sh:path ttm:output_category ], + [ sh:description "Testing objective behind specified set of test particulars (e.g. acceptance pass/fail; benchmark; quantitative; standards compliance; graph navigation integrity)" ; + sh:in ( "AcceptanceTest" "BenchmarkTest" "QuantitativeTest" "StandardsValidationTest" "OneHopTest" ) ; sh:maxCount 1 ; - sh:order 16 ; - sh:path schema1:description ], - [ sh:datatype xsd:string ; + sh:order 4 ; + sh:path ttm:test_case_objective ], + [ sh:description "A unique identifier for a Test Entity" ; sh:maxCount 1 ; - sh:order 6 ; - sh:path ttm:test_case_predicate_name ], + sh:minCount 1 ; + sh:order 14 ; + sh:path schema1:identifier ], [ sh:class ttm:Precondition ; sh:nodeKind sh:IRI ; sh:order 2 ; sh:path ttm:preconditions ], - [ sh:datatype xsd:string ; - sh:maxCount 1 ; - sh:order 7 ; - sh:path ttm:test_case_predicate_id ], - [ sh:class ttm:AcceptanceTestAsset ; - sh:description "One or more 'tags' slot values (inherited from TestEntity) should generally be defined as filters to specify TestAsset membership in 'test_assets' slot (\"Block List\") collection." ; - sh:minCount 1 ; - sh:nodeKind sh:IRI ; - sh:order 1 ; - sh:path ttm:test_assets ], [ sh:datatype xsd:string ; sh:description "One or more 'tags' slot values (slot inherited from TestEntity) should generally be defined as filters to specify TestAsset membership in a \"Block List\" collection." ; sh:order 17 ; sh:path schema1:additionalType ], - [ sh:maxCount 1 ; - sh:order 11 ; - sh:path ttm:output_category ], - [ sh:description "Testing objective behind specified set of test particulars (e.g. acceptance pass/fail; benchmark; quantitative; standards compliance; graph navigation integrity)" ; - sh:in ( "AcceptanceTest" "BenchmarkTest" "QuantitativeTest" "StandardsValidationTest" "OneHopTest" ) ; - sh:maxCount 1 ; - sh:order 4 ; - sh:path ttm:test_case_objective ], [ sh:datatype xsd:string ; - sh:description "Scalar parameters for the TestRunner processing a given TestEntity." ; - sh:order 18 ; - sh:path ttm:test_runner_settings ], + sh:maxCount 1 ; + sh:order 6 ; + sh:path ttm:test_case_predicate_name ], + [ sh:class ttm:Qualifier ; + sh:description "Optional qualifiers which constrain to the test asset defined knowledge statement. Note that this field records such qualifier slots and values as tag=value pairs, where the tag is the Biolink Model qualifier slot named and the value is an acceptable (Biolink Model enum?) value of the said qualifier slot." ; + sh:nodeKind sh:BlankNodeOrIRI ; + sh:order 9 ; + sh:path ttm:qualifiers ], [ sh:description "Type of TestCase query." ; sh:in ( "treats" ) ; sh:maxCount 1 ; sh:order 0 ; sh:path ttm:query_type ], - [ sh:description "Provenance of a specific set of test assets, cases and/or suites. Or, the person who cares about this, know about this. We would like this to be an ORCID eventually, but currently it is just a string." ; - sh:in ( "SME" "SMURF" "GitHubUserFeedback" "TACT" "BenchMark" "TranslatorTeam" "TestDataLocation" ) ; + [ sh:datatype xsd:string ; + sh:description "Scalar parameters for the TestRunner processing a given TestEntity." ; + sh:order 18 ; + sh:path ttm:test_runner_settings ], + [ sh:datatype xsd:string ; sh:maxCount 1 ; - sh:order 5 ; - sh:path ttm:test_case_source ], - [ sh:description "A template for a query, which can be used to generate a query for a test case. note: the current enumerated values for this slot come from the Benchmarks repo config/benchmarks.json \"templates\" collection and refer to the \"name\" field of each template. Templates themselves are currently stored in the config/[source_name]/templates directory." ; - sh:in ( "ameliorates" "treats" "three_hop" "drug_treats_rare_disease" "drug-to-gene" ) ; + sh:order 7 ; + sh:path ttm:test_case_predicate_id ], + [ sh:datatype xsd:string ; + sh:description "A human-readable name for a Test Entity" ; sh:maxCount 1 ; - sh:order 3 ; - sh:path ttm:trapi_template ], + sh:order 15 ; + sh:path schema1:name ], + [ sh:description "The component that this test case is intended to run against. Most often this is the ARS for acceptance tests, but for the Benchmarks repo integration, this can also be individual components of the system like Aragorn, or ARAX." ; + sh:in [ rdf:rest () ] ; + sh:order 12 ; + sh:path ttm:components ], [ sh:maxCount 1 ; sh:order 10 ; sh:path ttm:input_category ], [ sh:maxCount 1 ; sh:order 8 ; sh:path ttm:test_case_input_id ], + [ sh:description "Provenance of a specific set of test assets, cases and/or suites. Or, the person who cares about this, know about this. We would like this to be an ORCID eventually, but currently it is just a string." ; + sh:in ( "SME" "SMURF" "GitHubUserFeedback" "TACT" "BenchMark" "TranslatorTeam" "TestDataLocation" ) ; + sh:maxCount 1 ; + sh:order 5 ; + sh:path ttm:test_case_source ], + [ sh:datatype xsd:string ; + sh:description "A human-readable description for a Test Entity" ; + sh:maxCount 1 ; + sh:order 16 ; + sh:path schema1:description ], + [ sh:class ttm:AcceptanceTestAsset ; + sh:description "One or more 'tags' slot values (inherited from TestEntity) should generally be defined as filters to specify TestAsset membership in 'test_assets' slot (\"Block List\") collection." ; + sh:minCount 1 ; + sh:nodeKind sh:IRI ; + sh:order 1 ; + sh:path ttm:test_assets ], [ sh:description "Deployment environment within which the associated TestSuite is run." ; sh:in ( "dev" "ci" "test" "prod" ) ; sh:maxCount 1 ; sh:order 13 ; sh:path ttm:test_env ], - [ sh:description "The component that this test case is intended to run against. Most often this is the ARS for acceptance tests, but for the Benchmarks repo integration, this can also be individual components of the system like Aragorn, or ARAX." ; - sh:in [ rdf:rest () ] ; - sh:order 12 ; - sh:path ttm:components ], - [ sh:class ttm:Qualifier ; - sh:description "Optional qualifiers which constrain to the test asset defined knowledge statement. Note that this field records such qualifier slots and values as tag=value pairs, where the tag is the Biolink Model qualifier slot named and the value is an acceptable (Biolink Model enum?) value of the said qualifier slot." ; - sh:nodeKind sh:BlankNodeOrIRI ; - sh:order 9 ; - sh:path ttm:qualifiers ], - [ sh:description "A unique identifier for a Test Entity" ; - sh:maxCount 1 ; - sh:minCount 1 ; - sh:order 14 ; - sh:path schema1:identifier ], - [ sh:datatype xsd:string ; - sh:description "A human-readable name for a Test Entity" ; + [ sh:description "A template for a query, which can be used to generate a query for a test case. note: the current enumerated values for this slot come from the Benchmarks repo config/benchmarks.json \"templates\" collection and refer to the \"name\" field of each template. Templates themselves are currently stored in the config/[source_name]/templates directory." ; + sh:in ( "ameliorates" "treats" "three_hop" "drug_treats_rare_disease" "drug-to-gene" ) ; sh:maxCount 1 ; - sh:order 15 ; - sh:path schema1:name ] ; + sh:order 3 ; + sh:path ttm:trapi_template ] ; sh:targetClass ttm:AcceptanceTestCase . ttm:AcceptanceTestSuite a sh:NodeShape ; sh:closed true ; sh:ignoredProperties ( rdf:type ) ; - sh:property [ sh:description "A unique identifier for a Test Entity" ; + sh:property [ sh:datatype xsd:string ; + sh:description "Scalar parameters for the TestRunner processing a given TestEntity." ; + sh:order 8 ; + sh:path ttm:test_runner_settings ], + [ sh:description "A unique identifier for a Test Entity" ; sh:maxCount 1 ; sh:minCount 1 ; sh:order 4 ; sh:path schema1:identifier ], - [ sh:description "A Test persona describes the user or operational context of a given test." ; - sh:in ( "All" "Clinical" "LookUp" "Mechanistic" ) ; - sh:maxCount 1 ; - sh:order 1 ; - sh:path ttm:test_persona ], - [ sh:datatype xsd:string ; - sh:description "A human-readable description for a Test Entity" ; - sh:maxCount 1 ; - sh:order 6 ; - sh:path schema1:description ], [ sh:class ttm:TestCase ; sh:description "List of explicitly enumerated Test Cases." ; sh:nodeKind sh:IRI ; sh:order 2 ; sh:path ttm:test_cases ], - [ sh:datatype xsd:string ; - sh:description "A human-readable tags for categorical memberships of a TestEntity (preferably a URI or CURIE). Typically used to aggregate instances of TestEntity into formally typed or ad hoc lists." ; - sh:order 7 ; - sh:path schema1:additionalType ], [ sh:class ttm:TestMetadata ; sh:description "Test metadata describes the external provenance, cross-references and objectives for a given test." ; sh:maxCount 1 ; - sh:minCount 1 ; sh:nodeKind sh:IRI ; sh:order 0 ; sh:path ttm:test_metadata ], [ sh:datatype xsd:string ; - sh:description "A human-readable name for a Test Entity" ; - sh:maxCount 1 ; - sh:order 5 ; - sh:path schema1:name ], - [ sh:datatype xsd:string ; - sh:description "Scalar parameters for the TestRunner processing a given TestEntity." ; - sh:order 8 ; - sh:path ttm:test_runner_settings ], + sh:description "A human-readable tags for categorical memberships of a TestEntity (preferably a URI or CURIE). Typically used to aggregate instances of TestEntity into formally typed or ad hoc lists." ; + sh:order 7 ; + sh:path schema1:additionalType ], [ sh:class ttm:TestSuiteSpecification ; sh:description "Declarative specification of a Test Suite of Test Cases whose generation is deferred, (i.e. within a Test Runner) or whose creation is achieved by stream processing of an external data source." ; sh:maxCount 1 ; sh:nodeKind sh:IRI ; sh:order 3 ; - sh:path ttm:test_suite_specification ] ; + sh:path ttm:test_suite_specification ], + [ sh:datatype xsd:string ; + sh:description "A human-readable description for a Test Entity" ; + sh:maxCount 1 ; + sh:order 6 ; + sh:path schema1:description ], + [ sh:description "A Test persona describes the user or operational context of a given test." ; + sh:in ( "All" "Clinical" "LookUp" "Mechanistic" ) ; + sh:maxCount 1 ; + sh:order 1 ; + sh:path ttm:test_persona ], + [ sh:datatype xsd:string ; + sh:description "A human-readable name for a Test Entity" ; + sh:maxCount 1 ; + sh:order 5 ; + sh:path schema1:name ] ; sh:targetClass ttm:AcceptanceTestSuite . ttm:BenchmarkTestSuite a sh:NodeShape ; @@ -155,47 +154,46 @@ ttm:OneHopTestSuite a sh:NodeShape ; sh:closed true ; sh:description "Test case for testing the integrity of \"One Hop\" knowledge graph retrievals sensa legacy SRI_Testing harness." ; sh:ignoredProperties ( rdf:type ) ; - sh:property [ sh:description "A unique identifier for a Test Entity" ; + sh:property [ sh:datatype xsd:string ; + sh:description "Scalar parameters for the TestRunner processing a given TestEntity." ; + sh:order 8 ; + sh:path ttm:test_runner_settings ], + [ sh:datatype xsd:string ; + sh:description "A human-readable name for a Test Entity" ; sh:maxCount 1 ; - sh:minCount 1 ; - sh:order 4 ; - sh:path schema1:identifier ], + sh:order 5 ; + sh:path schema1:name ], [ sh:class ttm:TestMetadata ; sh:description "Test metadata describes the external provenance, cross-references and objectives for a given test." ; sh:maxCount 1 ; - sh:minCount 1 ; sh:nodeKind sh:IRI ; sh:order 0 ; sh:path ttm:test_metadata ], - [ sh:datatype xsd:string ; - sh:description "Scalar parameters for the TestRunner processing a given TestEntity." ; - sh:order 8 ; - sh:path ttm:test_runner_settings ], - [ sh:class ttm:TestSuiteSpecification ; - sh:description "Declarative specification of a Test Suite of Test Cases whose generation is deferred, (i.e. within a Test Runner) or whose creation is achieved by stream processing of an external data source." ; - sh:maxCount 1 ; - sh:nodeKind sh:IRI ; - sh:order 3 ; - sh:path ttm:test_suite_specification ], [ sh:class ttm:TestCase ; sh:description "List of explicitly enumerated Test Cases." ; sh:nodeKind sh:IRI ; sh:order 2 ; sh:path ttm:test_cases ], - [ sh:datatype xsd:string ; - sh:description "A human-readable name for a Test Entity" ; + [ sh:description "A unique identifier for a Test Entity" ; sh:maxCount 1 ; - sh:order 5 ; - sh:path schema1:name ], - [ sh:datatype xsd:string ; - sh:description "A human-readable tags for categorical memberships of a TestEntity (preferably a URI or CURIE). Typically used to aggregate instances of TestEntity into formally typed or ad hoc lists." ; - sh:order 7 ; - sh:path schema1:additionalType ], + sh:minCount 1 ; + sh:order 4 ; + sh:path schema1:identifier ], [ sh:datatype xsd:string ; sh:description "A human-readable description for a Test Entity" ; sh:maxCount 1 ; sh:order 6 ; sh:path schema1:description ], + [ sh:class ttm:TestSuiteSpecification ; + sh:description "Declarative specification of a Test Suite of Test Cases whose generation is deferred, (i.e. within a Test Runner) or whose creation is achieved by stream processing of an external data source." ; + sh:maxCount 1 ; + sh:nodeKind sh:IRI ; + sh:order 3 ; + sh:path ttm:test_suite_specification ], + [ sh:datatype xsd:string ; + sh:description "A human-readable tags for categorical memberships of a TestEntity (preferably a URI or CURIE). Typically used to aggregate instances of TestEntity into formally typed or ad hoc lists." ; + sh:order 7 ; + sh:path schema1:additionalType ], [ sh:description "A Test persona describes the user or operational context of a given test." ; sh:in ( "All" "Clinical" "LookUp" "Mechanistic" ) ; sh:maxCount 1 ; @@ -207,97 +205,123 @@ ttm:QuantitativeTestCase a sh:NodeShape ; sh:closed true ; sh:description "Assumed additional model from Shervin's runner JSON here as an example. This schema is not yet complete." ; sh:ignoredProperties ( rdf:type ) ; - sh:property [ sh:description "A unique identifier for a Test Entity" ; + sh:property [ sh:datatype xsd:string ; sh:maxCount 1 ; - sh:minCount 1 ; - sh:order 14 ; - sh:path schema1:identifier ], - [ sh:datatype xsd:string ; - sh:description "Scalar parameters for the TestRunner processing a given TestEntity." ; - sh:order 18 ; - sh:path ttm:test_runner_settings ], - [ sh:maxCount 1 ; - sh:order 8 ; - sh:path ttm:test_case_input_id ], - [ sh:datatype xsd:string ; + sh:order 7 ; + sh:path ttm:test_case_predicate_id ], + [ sh:description "Provenance of a specific set of test assets, cases and/or suites. Or, the person who cares about this, know about this. We would like this to be an ORCID eventually, but currently it is just a string." ; + sh:in ( "SME" "SMURF" "GitHubUserFeedback" "TACT" "BenchMark" "TranslatorTeam" "TestDataLocation" ) ; sh:maxCount 1 ; - sh:order 6 ; - sh:path ttm:test_case_predicate_name ], - [ sh:maxCount 1 ; - sh:order 10 ; - sh:path ttm:input_category ], - [ sh:class ttm:Qualifier ; - sh:description "Optional qualifiers which constrain to the test asset defined knowledge statement. Note that this field records such qualifier slots and values as tag=value pairs, where the tag is the Biolink Model qualifier slot named and the value is an acceptable (Biolink Model enum?) value of the said qualifier slot." ; - sh:nodeKind sh:BlankNodeOrIRI ; - sh:order 9 ; - sh:path ttm:qualifiers ], + sh:order 5 ; + sh:path ttm:test_case_source ], [ sh:datatype xsd:string ; sh:description "One or more 'tags' slot values (slot inherited from TestEntity) should generally be defined as filters to specify TestAsset membership in a \"Block List\" collection." ; sh:order 17 ; sh:path schema1:additionalType ], - [ sh:class ttm:Precondition ; - sh:nodeKind sh:IRI ; - sh:order 2 ; - sh:path ttm:preconditions ], [ sh:description "The component that this test case is intended to run against. Most often this is the ARS for acceptance tests, but for the Benchmarks repo integration, this can also be individual components of the system like Aragorn, or ARAX." ; sh:in [ rdf:rest () ] ; sh:order 12 ; sh:path ttm:components ], - [ sh:datatype xsd:string ; - sh:description "A human-readable name for a Test Entity" ; + [ sh:class ttm:TestAsset ; + sh:description "One or more 'tags' slot values (inherited from TestEntity) should generally be defined as filters to specify TestAsset membership in 'test_assets' slot (\"Block List\") collection." ; + sh:minCount 1 ; + sh:nodeKind sh:IRI ; + sh:order 1 ; + sh:path ttm:test_assets ], + [ sh:description "A unique identifier for a Test Entity" ; sh:maxCount 1 ; - sh:order 15 ; - sh:path schema1:name ], + sh:minCount 1 ; + sh:order 14 ; + sh:path schema1:identifier ], + [ sh:class ttm:Qualifier ; + sh:description "Optional qualifiers which constrain to the test asset defined knowledge statement. Note that this field records such qualifier slots and values as tag=value pairs, where the tag is the Biolink Model qualifier slot named and the value is an acceptable (Biolink Model enum?) value of the said qualifier slot." ; + sh:nodeKind sh:BlankNodeOrIRI ; + sh:order 9 ; + sh:path ttm:qualifiers ], + [ sh:description "Type of TestCase query." ; + sh:in ( "treats" ) ; + sh:maxCount 1 ; + sh:order 0 ; + sh:path ttm:query_type ], [ sh:description "Testing objective behind specified set of test particulars (e.g. acceptance pass/fail; benchmark; quantitative; standards compliance; graph navigation integrity)" ; sh:in ( "AcceptanceTest" "BenchmarkTest" "QuantitativeTest" "StandardsValidationTest" "OneHopTest" ) ; sh:maxCount 1 ; sh:order 4 ; sh:path ttm:test_case_objective ], + [ sh:maxCount 1 ; + sh:order 11 ; + sh:path ttm:output_category ], + [ sh:maxCount 1 ; + sh:order 10 ; + sh:path ttm:input_category ], + [ sh:datatype xsd:string ; + sh:description "A human-readable name for a Test Entity" ; + sh:maxCount 1 ; + sh:order 15 ; + sh:path schema1:name ], + [ sh:datatype xsd:string ; + sh:maxCount 1 ; + sh:order 6 ; + sh:path ttm:test_case_predicate_name ], [ sh:description "A template for a query, which can be used to generate a query for a test case. note: the current enumerated values for this slot come from the Benchmarks repo config/benchmarks.json \"templates\" collection and refer to the \"name\" field of each template. Templates themselves are currently stored in the config/[source_name]/templates directory." ; sh:in ( "ameliorates" "treats" "three_hop" "drug_treats_rare_disease" "drug-to-gene" ) ; sh:maxCount 1 ; sh:order 3 ; sh:path ttm:trapi_template ], - [ sh:description "Type of TestCase query." ; - sh:in ( "treats" ) ; - sh:maxCount 1 ; - sh:order 0 ; - sh:path ttm:query_type ], - [ sh:maxCount 1 ; - sh:order 11 ; - sh:path ttm:output_category ], + [ sh:class ttm:Precondition ; + sh:nodeKind sh:IRI ; + sh:order 2 ; + sh:path ttm:preconditions ], [ sh:description "Deployment environment within which the associated TestSuite is run." ; sh:in ( "dev" "ci" "test" "prod" ) ; sh:maxCount 1 ; sh:order 13 ; sh:path ttm:test_env ], - [ sh:datatype xsd:string ; - sh:maxCount 1 ; - sh:order 7 ; - sh:path ttm:test_case_predicate_id ], - [ sh:description "Provenance of a specific set of test assets, cases and/or suites. Or, the person who cares about this, know about this. We would like this to be an ORCID eventually, but currently it is just a string." ; - sh:in ( "SME" "SMURF" "GitHubUserFeedback" "TACT" "BenchMark" "TranslatorTeam" "TestDataLocation" ) ; - sh:maxCount 1 ; - sh:order 5 ; - sh:path ttm:test_case_source ], - [ sh:class ttm:TestAsset ; - sh:description "One or more 'tags' slot values (inherited from TestEntity) should generally be defined as filters to specify TestAsset membership in 'test_assets' slot (\"Block List\") collection." ; - sh:minCount 1 ; - sh:nodeKind sh:IRI ; - sh:order 1 ; - sh:path ttm:test_assets ], + [ sh:maxCount 1 ; + sh:order 8 ; + sh:path ttm:test_case_input_id ], [ sh:datatype xsd:string ; sh:description "A human-readable description for a Test Entity" ; sh:maxCount 1 ; sh:order 16 ; - sh:path schema1:description ] ; + sh:path schema1:description ], + [ sh:datatype xsd:string ; + sh:description "Scalar parameters for the TestRunner processing a given TestEntity." ; + sh:order 18 ; + sh:path ttm:test_runner_settings ] ; sh:targetClass ttm:QuantitativeTestCase . ttm:StandardsComplianceTestSuite a sh:NodeShape ; sh:closed true ; sh:description "Test suite for testing Translator components against releases of standards like TRAPI and the Biolink Model." ; sh:ignoredProperties ( rdf:type ) ; - sh:property [ sh:class ttm:TestSuiteSpecification ; + sh:property [ sh:class ttm:TestMetadata ; + sh:description "Test metadata describes the external provenance, cross-references and objectives for a given test." ; + sh:maxCount 1 ; + sh:nodeKind sh:IRI ; + sh:order 0 ; + sh:path ttm:test_metadata ], + [ sh:description "A unique identifier for a Test Entity" ; + sh:maxCount 1 ; + sh:minCount 1 ; + sh:order 4 ; + sh:path schema1:identifier ], + [ sh:datatype xsd:string ; + sh:description "A human-readable name for a Test Entity" ; + sh:maxCount 1 ; + sh:order 5 ; + sh:path schema1:name ], + [ sh:datatype xsd:string ; + sh:description "A human-readable description for a Test Entity" ; + sh:maxCount 1 ; + sh:order 6 ; + sh:path schema1:description ], + [ sh:description "A Test persona describes the user or operational context of a given test." ; + sh:in ( "All" "Clinical" "LookUp" "Mechanistic" ) ; + sh:maxCount 1 ; + sh:order 1 ; + sh:path ttm:test_persona ], + [ sh:class ttm:TestSuiteSpecification ; sh:description "Declarative specification of a Test Suite of Test Cases whose generation is deferred, (i.e. within a Test Runner) or whose creation is achieved by stream processing of an external data source." ; sh:maxCount 1 ; sh:nodeKind sh:IRI ; @@ -312,188 +336,178 @@ ttm:StandardsComplianceTestSuite a sh:NodeShape ; sh:description "Scalar parameters for the TestRunner processing a given TestEntity." ; sh:order 8 ; sh:path ttm:test_runner_settings ], - [ sh:datatype xsd:string ; - sh:description "A human-readable description for a Test Entity" ; - sh:maxCount 1 ; - sh:order 6 ; - sh:path schema1:description ], [ sh:datatype xsd:string ; sh:description "A human-readable tags for categorical memberships of a TestEntity (preferably a URI or CURIE). Typically used to aggregate instances of TestEntity into formally typed or ad hoc lists." ; sh:order 7 ; - sh:path schema1:additionalType ], - [ sh:description "A Test persona describes the user or operational context of a given test." ; - sh:in ( "All" "Clinical" "LookUp" "Mechanistic" ) ; - sh:maxCount 1 ; - sh:order 1 ; - sh:path ttm:test_persona ], - [ sh:description "A unique identifier for a Test Entity" ; - sh:maxCount 1 ; - sh:minCount 1 ; - sh:order 4 ; - sh:path schema1:identifier ], - [ sh:datatype xsd:string ; - sh:description "A human-readable name for a Test Entity" ; - sh:maxCount 1 ; - sh:order 5 ; - sh:path schema1:name ], - [ sh:class ttm:TestMetadata ; - sh:description "Test metadata describes the external provenance, cross-references and objectives for a given test." ; - sh:maxCount 1 ; - sh:minCount 1 ; - sh:nodeKind sh:IRI ; - sh:order 0 ; - sh:path ttm:test_metadata ] ; + sh:path schema1:additionalType ] ; sh:targetClass ttm:StandardsComplianceTestSuite . ttm:TestEdgeData a sh:NodeShape ; sh:closed true ; sh:description "Represents a single Biolink Model compliant instance of a subject-predicate-object edge that can be used for testing." ; sh:ignoredProperties ( rdf:type ) ; - sh:property [ sh:datatype xsd:boolean ; - sh:maxCount 1 ; - sh:order 13 ; - sh:path ttm:in_v1 ], - [ sh:description "A unique identifier for a Test Entity" ; + sh:property [ sh:datatype xsd:string ; sh:maxCount 1 ; - sh:minCount 1 ; - sh:order 17 ; - sh:path schema1:identifier ], + sh:order 4 ; + sh:path ttm:predicate_name ], [ sh:maxCount 1 ; sh:order 0 ; sh:path ttm:input_id ], [ sh:description "Specific Biolink Model association 'category' which applies to the test asset defined knowledge statement" ; sh:maxCount 1 ; - sh:order 8 ; - sh:path ttm:association ], - [ sh:datatype xsd:string ; - sh:maxCount 1 ; - sh:order 1 ; - sh:path ttm:input_name ], - [ sh:description "Document URL where original test source particulars are registered (e.g. Github repo)" ; - sh:maxCount 1 ; - sh:order 15 ; - sh:path ttm:test_reference ], - [ sh:maxCount 1 ; - sh:order 3 ; - sh:path ttm:predicate_id ], - [ sh:maxCount 1 ; - sh:order 2 ; - sh:path ttm:input_category ], - [ sh:datatype xsd:string ; - sh:description "Scalar settings for the TestRunner, e.g. \"inferred\"" ; - sh:order 21 ; - sh:path ttm:test_runner_settings ], - [ sh:class ttm:Qualifier ; - sh:description "Optional qualifiers which constrain to the test asset defined knowledge statement. Note that this field records such qualifier slots and values as tag=value pairs, where the tag is the Biolink Model qualifier slot named and the value is an acceptable (Biolink Model enum?) value of the said qualifier slot." ; - sh:nodeKind sh:BlankNodeOrIRI ; - sh:order 9 ; - sh:path ttm:qualifiers ], - [ sh:in ( "causes not treats" "TMKP" "category too generic" "contraindications" "chemical roles" "test_issue" ) ; - sh:maxCount 1 ; - sh:order 11 ; - sh:path ttm:test_issue ], - [ sh:datatype xsd:string ; - sh:description "A human-readable name for a Test Entity" ; - sh:maxCount 1 ; - sh:order 18 ; - sh:path schema1:name ], - [ sh:class ttm:TestMetadata ; - sh:description "Test metadata describes the external provenance, cross-references and objectives for a given test." ; - sh:maxCount 1 ; - sh:minCount 1 ; - sh:nodeKind sh:IRI ; - sh:order 16 ; - sh:path ttm:test_metadata ], - [ sh:datatype xsd:string ; - sh:maxCount 1 ; - sh:order 10 ; - sh:path ttm:expected_output ], - [ sh:in ( "High" "Low" "NotApplicable" ) ; - sh:maxCount 1 ; - sh:order 12 ; - sh:path ttm:semantic_severity ], + sh:order 8 ; + sh:path ttm:association ], [ sh:datatype xsd:string ; sh:description "One or more 'tags' slot values (inherited from TestEntity) should generally be defined to specify TestAsset membership in a \"Block List\" collection" ; sh:order 20 ; sh:path schema1:additionalType ], + [ sh:datatype xsd:boolean ; + sh:maxCount 1 ; + sh:order 13 ; + sh:path ttm:in_v1 ], + [ sh:maxCount 1 ; + sh:order 7 ; + sh:path ttm:output_category ], + [ sh:datatype xsd:string ; + sh:maxCount 1 ; + sh:order 6 ; + sh:path ttm:output_name ], + [ sh:class ttm:Qualifier ; + sh:description "Optional qualifiers which constrain to the test asset defined knowledge statement. Note that this field records such qualifier slots and values as tag=value pairs, where the tag is the Biolink Model qualifier slot named and the value is an acceptable (Biolink Model enum?) value of the said qualifier slot." ; + sh:nodeKind sh:BlankNodeOrIRI ; + sh:order 9 ; + sh:path ttm:qualifiers ], + [ sh:datatype xsd:string ; + sh:description "Scalar settings for the TestRunner, e.g. \"inferred\"" ; + sh:order 21 ; + sh:path ttm:test_runner_settings ], + [ sh:maxCount 1 ; + sh:order 2 ; + sh:path ttm:input_category ], + [ sh:datatype xsd:string ; + sh:maxCount 1 ; + sh:order 1 ; + sh:path ttm:input_name ], + [ sh:description "Document URL where original test source particulars are registered (e.g. Github repo)" ; + sh:maxCount 1 ; + sh:order 15 ; + sh:path ttm:test_reference ], [ sh:datatype xsd:boolean ; sh:maxCount 1 ; sh:order 14 ; sh:path ttm:well_known ], + [ sh:maxCount 1 ; + sh:order 5 ; + sh:path ttm:output_id ], + [ sh:in ( "High" "Low" "NotApplicable" ) ; + sh:maxCount 1 ; + sh:order 12 ; + sh:path ttm:semantic_severity ], [ sh:datatype xsd:string ; sh:description "A human-readable description for a Test Entity" ; sh:maxCount 1 ; sh:order 19 ; sh:path schema1:description ], + [ sh:class ttm:TestMetadata ; + sh:description "Test metadata describes the external provenance, cross-references and objectives for a given test." ; + sh:maxCount 1 ; + sh:nodeKind sh:IRI ; + sh:order 16 ; + sh:path ttm:test_metadata ], [ sh:maxCount 1 ; - sh:order 7 ; - sh:path ttm:output_category ], + sh:order 3 ; + sh:path ttm:predicate_id ], + [ sh:in ( "causes not treats" "TMKP" "category too generic" "contraindications" "chemical roles" "test_issue" ) ; + sh:maxCount 1 ; + sh:order 11 ; + sh:path ttm:test_issue ], + [ sh:description "A unique identifier for a Test Entity" ; + sh:maxCount 1 ; + sh:minCount 1 ; + sh:order 17 ; + sh:path schema1:identifier ], [ sh:datatype xsd:string ; + sh:description "A human-readable name for a Test Entity" ; sh:maxCount 1 ; - sh:order 4 ; - sh:path ttm:predicate_name ], - [ sh:maxCount 1 ; - sh:order 5 ; - sh:path ttm:output_id ], + sh:order 18 ; + sh:path schema1:name ], [ sh:datatype xsd:string ; sh:maxCount 1 ; - sh:order 6 ; - sh:path ttm:output_name ] ; + sh:order 10 ; + sh:path ttm:expected_output ] ; sh:targetClass ttm:TestEdgeData . ttm:TestOutput a sh:NodeShape ; sh:closed true ; sh:description "The output of a TestRunner run of one specific TestCase." ; sh:ignoredProperties ( rdf:type ) ; - sh:property [ sh:datatype xsd:string ; - sh:description "A human-readable description for a Test Entity" ; - sh:maxCount 1 ; - sh:order 4 ; - sh:path schema1:description ], - [ sh:datatype xsd:string ; - sh:description "A human-readable name for a Test Entity" ; + sh:property [ sh:class ttm:TestResultPKSet ; + sh:description "Primary keys for a given ARA result set from a SmokeTest result for a given TestCase." ; + sh:nodeKind sh:IRI ; + sh:order 1 ; + sh:path ttm:pks ], + [ sh:description "A unique identifier for a Test Entity" ; sh:maxCount 1 ; - sh:order 3 ; - sh:path schema1:name ], + sh:minCount 1 ; + sh:order 2 ; + sh:path schema1:identifier ], [ sh:datatype xsd:string ; sh:description "Scalar parameters for the TestRunner processing a given TestEntity." ; sh:order 6 ; sh:path ttm:test_runner_settings ], + [ sh:datatype xsd:string ; + sh:description "CURIE id of a TestCase registered in the system." ; + sh:maxCount 1 ; + sh:order 0 ; + sh:path ttm:test_case_id ], [ sh:datatype xsd:string ; sh:description "A human-readable tags for categorical memberships of a TestEntity (preferably a URI or CURIE). Typically used to aggregate instances of TestEntity into formally typed or ad hoc lists." ; sh:order 5 ; sh:path schema1:additionalType ], [ sh:datatype xsd:string ; - sh:description "CURIE id of a TestCase registered in the system." ; + sh:description "A human-readable name for a Test Entity" ; sh:maxCount 1 ; - sh:order 0 ; - sh:path ttm:test_case_id ], - [ sh:description "A unique identifier for a Test Entity" ; + sh:order 3 ; + sh:path schema1:name ], + [ sh:datatype xsd:string ; + sh:description "A human-readable description for a Test Entity" ; sh:maxCount 1 ; - sh:minCount 1 ; - sh:order 2 ; - sh:path schema1:identifier ], - [ sh:class ttm:TestResultPKSet ; - sh:description "Primary keys for a given ARA result set from a SmokeTest result for a given TestCase." ; - sh:nodeKind sh:IRI ; - sh:order 1 ; - sh:path ttm:pks ] ; + sh:order 4 ; + sh:path schema1:description ] ; sh:targetClass ttm:TestOutput . ttm:TestRunSession a sh:NodeShape ; sh:closed true ; sh:description "Single run of a TestRunner in a given environment, with a specified set of test_entities (generally, one or more instances of TestSuite)." ; sh:ignoredProperties ( rdf:type ) ; - sh:property [ sh:description "Deployment environment within which the associated TestSuite is run." ; + sh:property [ sh:datatype xsd:string ; + sh:description "A human-readable tags for categorical memberships of a TestEntity (preferably a URI or CURIE). Typically used to aggregate instances of TestEntity into formally typed or ad hoc lists." ; + sh:order 10 ; + sh:path schema1:additionalType ], + [ sh:description "Deployment environment within which the associated TestSuite is run." ; sh:in ( "dev" "ci" "test" "prod" ) ; sh:maxCount 1 ; sh:order 1 ; sh:path ttm:test_env ], + [ sh:datatype xsd:string ; + sh:description "Global system name of a TestRunner." ; + sh:maxCount 1 ; + sh:order 2 ; + sh:path ttm:test_runner_name ], + [ sh:datatype xsd:string ; + sh:description "Scalar parameters for the TestRunner processing a given TestEntity." ; + sh:order 11 ; + sh:path ttm:test_runner_settings ], [ sh:description "A unique identifier for a Test Entity" ; sh:maxCount 1 ; sh:minCount 1 ; sh:order 7 ; sh:path schema1:identifier ], + [ sh:class ttm:TestEntity ; + sh:description "Different TestRunners could expect specific kinds of TestEntity as an input. These 'test_entities' are one or more instances of TestAsset, TestCase or (preferably?) TestSuite." ; + sh:nodeKind sh:IRI ; + sh:order 4 ; + sh:path ttm:test_entities ], [ sh:class ttm:TestCaseResult ; sh:description "One or more instances of TestCaseResult." ; sh:nodeKind sh:IRI ; @@ -503,25 +517,11 @@ ttm:TestRunSession a sh:NodeShape ; sh:in [ rdf:rest () ] ; sh:order 0 ; sh:path ttm:components ], - [ sh:datatype xsd:string ; - sh:description "A human-readable tags for categorical memberships of a TestEntity (preferably a URI or CURIE). Typically used to aggregate instances of TestEntity into formally typed or ad hoc lists." ; - sh:order 10 ; - sh:path schema1:additionalType ], - [ sh:class ttm:TestEntity ; - sh:description "Different TestRunners could expect specific kinds of TestEntity as an input. These 'test_entities' are one or more instances of TestAsset, TestCase or (preferably?) TestSuite." ; - sh:nodeKind sh:IRI ; - sh:order 4 ; - sh:path ttm:test_entities ], [ sh:datatype xsd:dateTime ; sh:description "Date time when a given entity was created." ; sh:maxCount 1 ; sh:order 6 ; sh:path ttm:timestamp ], - [ sh:datatype xsd:string ; - sh:description "A human-readable name for a Test Entity" ; - sh:maxCount 1 ; - sh:order 8 ; - sh:path schema1:name ], [ sh:class ttm:TestEntityParameter ; sh:description "Different TestRunners could expect additional global test configuration parameters, like the applicable TRAPI version (\"trapi_version\") or Biolink Model versions (\"biolink_version\")." ; sh:nodeKind sh:BlankNodeOrIRI ; @@ -533,14 +533,10 @@ ttm:TestRunSession a sh:NodeShape ; sh:order 9 ; sh:path schema1:description ], [ sh:datatype xsd:string ; - sh:description "Global system name of a TestRunner." ; + sh:description "A human-readable name for a Test Entity" ; sh:maxCount 1 ; - sh:order 2 ; - sh:path ttm:test_runner_name ], - [ sh:datatype xsd:string ; - sh:description "Scalar parameters for the TestRunner processing a given TestEntity." ; - sh:order 11 ; - sh:path ttm:test_runner_settings ] ; + sh:order 8 ; + sh:path schema1:name ] ; sh:targetClass ttm:TestRunSession . ttm:TestSuite a sh:NodeShape ; @@ -552,11 +548,16 @@ ttm:TestSuite a sh:NodeShape ; sh:maxCount 1 ; sh:order 5 ; sh:path schema1:name ], - [ sh:description "A unique identifier for a Test Entity" ; + [ sh:datatype xsd:string ; + sh:description "A human-readable tags for categorical memberships of a TestEntity (preferably a URI or CURIE). Typically used to aggregate instances of TestEntity into formally typed or ad hoc lists." ; + sh:order 7 ; + sh:path schema1:additionalType ], + [ sh:class ttm:TestMetadata ; + sh:description "Test metadata describes the external provenance, cross-references and objectives for a given test." ; sh:maxCount 1 ; - sh:minCount 1 ; - sh:order 4 ; - sh:path schema1:identifier ], + sh:nodeKind sh:IRI ; + sh:order 0 ; + sh:path ttm:test_metadata ], [ sh:description "A Test persona describes the user or operational context of a given test." ; sh:in ( "All" "Clinical" "LookUp" "Mechanistic" ) ; sh:maxCount 1 ; @@ -566,179 +567,172 @@ ttm:TestSuite a sh:NodeShape ; sh:description "Scalar parameters for the TestRunner processing a given TestEntity." ; sh:order 8 ; sh:path ttm:test_runner_settings ], - [ sh:class ttm:TestMetadata ; - sh:description "Test metadata describes the external provenance, cross-references and objectives for a given test." ; + [ sh:description "A unique identifier for a Test Entity" ; sh:maxCount 1 ; sh:minCount 1 ; - sh:nodeKind sh:IRI ; - sh:order 0 ; - sh:path ttm:test_metadata ], + sh:order 4 ; + sh:path schema1:identifier ], + [ sh:datatype xsd:string ; + sh:description "A human-readable description for a Test Entity" ; + sh:maxCount 1 ; + sh:order 6 ; + sh:path schema1:description ], [ sh:class ttm:TestSuiteSpecification ; sh:description "Declarative specification of a Test Suite of Test Cases whose generation is deferred, (i.e. within a Test Runner) or whose creation is achieved by stream processing of an external data source." ; sh:maxCount 1 ; sh:nodeKind sh:IRI ; sh:order 3 ; sh:path ttm:test_suite_specification ], - [ sh:datatype xsd:string ; - sh:description "A human-readable tags for categorical memberships of a TestEntity (preferably a URI or CURIE). Typically used to aggregate instances of TestEntity into formally typed or ad hoc lists." ; - sh:order 7 ; - sh:path schema1:additionalType ], [ sh:class ttm:TestCase ; sh:description "List of explicitly enumerated Test Cases." ; sh:nodeKind sh:IRI ; sh:order 2 ; - sh:path ttm:test_cases ], - [ sh:datatype xsd:string ; - sh:description "A human-readable description for a Test Entity" ; - sh:maxCount 1 ; - sh:order 6 ; - sh:path schema1:description ] ; + sh:path ttm:test_cases ] ; sh:targetClass ttm:TestSuite . ttm:AcceptanceTestAsset a sh:NodeShape ; sh:closed true ; sh:description "Model derived from Jenn's test asset design and Shervin's runner JSON here as an example." ; sh:ignoredProperties ( rdf:type ) ; - sh:property [ sh:datatype xsd:string ; - sh:description "A human-readable description for a Test Entity" ; + sh:property [ sh:in ( "High" "Low" "NotApplicable" ) ; sh:maxCount 1 ; - sh:order 29 ; - sh:path schema1:description ], - [ sh:in ( "High" "Low" "NotApplicable" ) ; + sh:order 22 ; + sh:path ttm:semantic_severity ], + [ sh:maxCount 1 ; + sh:order 10 ; + sh:path ttm:input_id ], + [ sh:datatype xsd:boolean ; + sh:maxCount 1 ; + sh:order 24 ; + sh:path ttm:well_known ], + [ sh:datatype xsd:string ; + sh:description "The full human-readable scientific question a SME would ask, which is encoded into the test asset." ; + sh:maxCount 1 ; + sh:order 2 ; + sh:path ttm:scientific_question ], + [ sh:maxCount 1 ; + sh:order 17 ; + sh:path ttm:output_category ], + [ sh:in ( "causes not treats" "TMKP" "category too generic" "contraindications" "chemical roles" "test_issue" ) ; + sh:maxCount 1 ; + sh:order 21 ; + sh:path ttm:test_issue ], + [ sh:datatype xsd:string ; + sh:description "A human-readable name for a Test Entity" ; + sh:maxCount 1 ; + sh:order 28 ; + sh:path schema1:name ], + [ sh:datatype xsd:string ; + sh:maxCount 1 ; + sh:order 11 ; + sh:path ttm:input_name ], + [ sh:maxCount 1 ; + sh:order 13 ; + sh:path ttm:predicate_id ], + [ sh:datatype xsd:integer ; + sh:description "The answer must return in these many results" ; + sh:maxCount 1 ; + sh:order 7 ; + sh:path ttm:top_level ], + [ sh:datatype xsd:string ; + sh:maxCount 1 ; + sh:order 16 ; + sh:path ttm:output_name ], + [ sh:description "A unique identifier for a Test Entity" ; + sh:maxCount 1 ; + sh:minCount 1 ; + sh:order 27 ; + sh:path schema1:identifier ], + [ sh:class ttm:Qualifier ; + sh:description "Optional qualifiers which constrain to the test asset defined knowledge statement. Note that this field records such qualifier slots and values as tag=value pairs, where the tag is the Biolink Model qualifier slot named and the value is an acceptable (Biolink Model enum?) value of the said qualifier slot." ; + sh:nodeKind sh:BlankNodeOrIRI ; + sh:order 19 ; + sh:path ttm:qualifiers ], + [ sh:description "The expected result of the query" ; + sh:in ( "include_good" "exclude_bad" ) ; + sh:maxCount 1 ; + sh:order 6 ; + sh:path ttm:expected_result ], + [ sh:description "The deployment environment within which this test must pass." ; + sh:in ( "dev" "ci" "test" "prod" ) ; + sh:maxCount 1 ; + sh:order 1 ; + sh:path ttm:must_pass_environment ], + [ sh:datatype xsd:string ; + sh:description "One or more 'tags' slot values (inherited from TestEntity) should generally be defined to specify TestAsset membership in a \"Block List\" collection" ; + sh:order 30 ; + sh:path schema1:additionalType ], + [ sh:datatype xsd:string ; + sh:description "An answer that is returned from the test case, note: this must be combined with the expected_result to form a complete answer. It might make sense to couple these in their own object instead of strictly sticking to the flat schema introduced by the spreadsheet here: https://docs.google.com/spreadsheets/d/1yj7zIchFeVl1OHqL_kE_pqvzNLmGml_FLbHDs-8Yvig/edit#gid=0" ; sh:maxCount 1 ; - sh:order 22 ; - sh:path ttm:semantic_severity ], - [ sh:maxCount 1 ; - sh:order 17 ; - sh:path ttm:output_category ], + sh:order 5 ; + sh:path ttm:answer_informal_concept ], [ sh:class ttm:TestMetadata ; sh:description "Test metadata describes the external provenance, cross-references and objectives for a given test." ; sh:maxCount 1 ; - sh:minCount 1 ; sh:nodeKind sh:IRI ; sh:order 26 ; sh:path ttm:test_metadata ], - [ sh:datatype xsd:string ; - sh:maxCount 1 ; - sh:order 20 ; - sh:path ttm:expected_output ], - [ sh:maxCount 1 ; - sh:order 15 ; - sh:path ttm:output_id ], - [ sh:datatype xsd:string ; - sh:maxCount 1 ; - sh:order 14 ; - sh:path ttm:predicate_name ], - [ sh:description "The node of the (templated) TRAPI query to replace" ; - sh:in ( "subject" "object" ) ; - sh:maxCount 1 ; - sh:order 8 ; - sh:path ttm:query_node ], - [ sh:description "The direction of the expected query result triple" ; - sh:in ( "increased" "decreased" ) ; - sh:maxCount 1 ; - sh:order 4 ; - sh:path ttm:direction ], [ sh:maxCount 1 ; sh:order 12 ; sh:path ttm:input_category ], - [ sh:datatype xsd:string ; - sh:maxCount 1 ; - sh:order 11 ; - sh:path ttm:input_name ], [ sh:description "Document URL where original test source particulars are registered (e.g. Github repo)" ; sh:maxCount 1 ; sh:order 25 ; sh:path ttm:test_reference ], [ sh:datatype xsd:string ; - sh:description "One or more 'tags' slot values (inherited from TestEntity) should generally be defined to specify TestAsset membership in a \"Block List\" collection" ; - sh:order 30 ; - sh:path schema1:additionalType ], - [ sh:datatype xsd:boolean ; - sh:maxCount 1 ; - sh:order 23 ; - sh:path ttm:in_v1 ], - [ sh:maxCount 1 ; - sh:order 10 ; - sh:path ttm:input_id ], - [ sh:datatype xsd:string ; - sh:description "The full human-readable scientific question a SME would ask, which is encoded into the test asset." ; sh:maxCount 1 ; - sh:order 2 ; - sh:path ttm:scientific_question ], - [ sh:maxCount 1 ; - sh:order 13 ; - sh:path ttm:predicate_id ], + sh:order 20 ; + sh:path ttm:expected_output ], [ sh:datatype xsd:string ; sh:description "The object of the core triple to be tested" ; sh:maxCount 1 ; sh:order 3 ; sh:path ttm:string_entry ], - [ sh:in ( "causes not treats" "TMKP" "category too generic" "contraindications" "chemical roles" "test_issue" ) ; - sh:maxCount 1 ; - sh:order 21 ; - sh:path ttm:test_issue ], - [ sh:description "A unique identifier for a Test Entity" ; - sh:maxCount 1 ; - sh:minCount 1 ; - sh:order 27 ; - sh:path schema1:identifier ], [ sh:datatype xsd:date ; sh:description "The date by which this test must pass" ; sh:maxCount 1 ; sh:order 0 ; sh:path ttm:must_pass_date ], - [ sh:datatype xsd:boolean ; - sh:maxCount 1 ; - sh:order 24 ; - sh:path ttm:well_known ], - [ sh:datatype xsd:string ; - sh:description "A human-readable name for a Test Entity" ; - sh:maxCount 1 ; - sh:order 28 ; - sh:path schema1:name ], - [ sh:description "The expected result of the query" ; - sh:in ( "include_good" "exclude_bad" ) ; - sh:maxCount 1 ; - sh:order 6 ; - sh:path ttm:expected_result ], [ sh:datatype xsd:string ; + sh:description "A human-readable description for a Test Entity" ; sh:maxCount 1 ; - sh:order 16 ; - sh:path ttm:output_name ], - [ sh:datatype xsd:string ; - sh:description "Scalar settings for the TestRunner, e.g. \"inferred\"" ; - sh:order 31 ; - sh:path ttm:test_runner_settings ], + sh:order 29 ; + sh:path schema1:description ], + [ sh:maxCount 1 ; + sh:order 15 ; + sh:path ttm:output_id ], [ sh:datatype xsd:string ; sh:description "The notes of the query" ; sh:maxCount 1 ; sh:order 9 ; sh:path ttm:notes ], - [ sh:class ttm:Qualifier ; - sh:description "Optional qualifiers which constrain to the test asset defined knowledge statement. Note that this field records such qualifier slots and values as tag=value pairs, where the tag is the Biolink Model qualifier slot named and the value is an acceptable (Biolink Model enum?) value of the said qualifier slot." ; - sh:nodeKind sh:BlankNodeOrIRI ; - sh:order 19 ; - sh:path ttm:qualifiers ], [ sh:datatype xsd:string ; - sh:description "An answer that is returned from the test case, note: this must be combined with the expected_result to form a complete answer. It might make sense to couple these in their own object instead of strictly sticking to the flat schema introduced by the spreadsheet here: https://docs.google.com/spreadsheets/d/1yj7zIchFeVl1OHqL_kE_pqvzNLmGml_FLbHDs-8Yvig/edit#gid=0" ; sh:maxCount 1 ; - sh:order 5 ; - sh:path ttm:answer_informal_concept ], - [ sh:description "The deployment environment within which this test must pass." ; - sh:in ( "dev" "ci" "test" "prod" ) ; + sh:order 14 ; + sh:path ttm:predicate_name ], + [ sh:description "The direction of the expected query result triple" ; + sh:in ( "increased" "decreased" ) ; sh:maxCount 1 ; - sh:order 1 ; - sh:path ttm:must_pass_environment ], - [ sh:datatype xsd:integer ; - sh:description "The answer must return in these many results" ; + sh:order 4 ; + sh:path ttm:direction ], + [ sh:datatype xsd:string ; + sh:description "Scalar settings for the TestRunner, e.g. \"inferred\"" ; + sh:order 31 ; + sh:path ttm:test_runner_settings ], + [ sh:datatype xsd:boolean ; sh:maxCount 1 ; - sh:order 7 ; - sh:path ttm:top_level ], + sh:order 23 ; + sh:path ttm:in_v1 ], [ sh:description "Specific Biolink Model association 'category' which applies to the test asset defined knowledge statement" ; sh:maxCount 1 ; sh:order 18 ; - sh:path ttm:association ] ; + sh:path ttm:association ], + [ sh:description "The node of the (templated) TRAPI query to replace" ; + sh:in ( "subject" "object" ) ; + sh:maxCount 1 ; + sh:order 8 ; + sh:path ttm:query_node ] ; sh:targetClass ttm:AcceptanceTestAsset . ttm:TestCaseResult a sh:NodeShape ; @@ -749,25 +743,20 @@ ttm:TestCaseResult a sh:NodeShape ; sh:description "A human-readable tags for categorical memberships of a TestEntity (preferably a URI or CURIE). Typically used to aggregate instances of TestEntity into formally typed or ad hoc lists." ; sh:order 6 ; sh:path schema1:additionalType ], - [ sh:datatype xsd:string ; - sh:description "A human-readable description for a Test Entity" ; - sh:maxCount 1 ; - sh:order 5 ; - sh:path schema1:description ], - [ sh:datatype xsd:string ; - sh:description "A human-readable name for a Test Entity" ; + [ sh:description "Encoded result of a single test run of a given test case" ; + sh:in ( "PASSED" "FAILED" "SKIPPED" ) ; sh:maxCount 1 ; - sh:order 4 ; - sh:path schema1:name ], + sh:order 2 ; + sh:path ttm:test_case_result ], [ sh:description "CURIE id of a TestSuite registered in the system." ; sh:maxCount 1 ; sh:order 0 ; sh:path ttm:test_suite_id ], - [ sh:description "Encoded result of a single test run of a given test case" ; - sh:in ( "PASSED" "FAILED" "SKIPPED" ) ; + [ sh:datatype xsd:string ; + sh:description "A human-readable name for a Test Entity" ; sh:maxCount 1 ; - sh:order 2 ; - sh:path ttm:test_case_result ], + sh:order 4 ; + sh:path schema1:name ], [ sh:class ttm:TestCase ; sh:description "Slot referencing a single TestCase." ; sh:maxCount 1 ; @@ -779,6 +768,11 @@ ttm:TestCaseResult a sh:NodeShape ; sh:minCount 1 ; sh:order 3 ; sh:path schema1:identifier ], + [ sh:datatype xsd:string ; + sh:description "A human-readable description for a Test Entity" ; + sh:maxCount 1 ; + sh:order 5 ; + sh:path schema1:description ], [ sh:datatype xsd:string ; sh:description "Scalar parameters for the TestRunner processing a given TestEntity." ; sh:order 7 ; @@ -789,11 +783,7 @@ ttm:TestEntity a sh:NodeShape ; sh:closed false ; sh:description "Abstract global 'identification' class shared as a parent with all major model classes within the data model for Translator testing." ; sh:ignoredProperties ( rdf:type ) ; - sh:property [ sh:description "A unique identifier for a Test Entity" ; - sh:maxCount 1 ; - sh:order 0 ; - sh:path schema1:identifier ], - [ sh:datatype xsd:string ; + sh:property [ sh:datatype xsd:string ; sh:description "A human-readable description for a Test Entity" ; sh:maxCount 1 ; sh:order 2 ; @@ -803,6 +793,10 @@ ttm:TestEntity a sh:NodeShape ; sh:maxCount 1 ; sh:order 1 ; sh:path schema1:name ], + [ sh:description "A unique identifier for a Test Entity" ; + sh:maxCount 1 ; + sh:order 0 ; + sh:path schema1:identifier ], [ sh:datatype xsd:string ; sh:description "A human-readable tags for categorical memberships of a TestEntity (preferably a URI or CURIE). Typically used to aggregate instances of TestEntity into formally typed or ad hoc lists." ; sh:order 3 ; @@ -818,112 +812,118 @@ ttm:TestResultPKSet a sh:NodeShape ; sh:description "Primary keys for a given ARA result set from a SmokeTest result for a given TestCase." ; sh:ignoredProperties ( rdf:type ) ; sh:property [ sh:datatype xsd:string ; - sh:maxCount 1 ; - sh:order 1 ; - sh:path ttm:merged_pk ], - [ sh:datatype xsd:string ; sh:maxCount 1 ; sh:order 0 ; sh:path ttm:parent_pk ], - [ sh:datatype xsd:string ; - sh:description "Scalar parameters for the TestRunner processing a given TestEntity." ; - sh:order 11 ; - sh:path ttm:test_runner_settings ], [ sh:datatype xsd:string ; sh:maxCount 1 ; - sh:order 2 ; - sh:path ttm:aragorn ], + sh:order 3 ; + sh:path ttm:arax ], [ sh:datatype xsd:string ; sh:maxCount 1 ; - sh:order 6 ; - sh:path ttm:improving ], + sh:order 1 ; + sh:path ttm:merged_pk ], [ sh:datatype xsd:string ; sh:description "A human-readable tags for categorical memberships of a TestEntity (preferably a URI or CURIE). Typically used to aggregate instances of TestEntity into formally typed or ad hoc lists." ; sh:order 10 ; sh:path schema1:additionalType ], + [ sh:datatype xsd:string ; + sh:maxCount 1 ; + sh:order 5 ; + sh:path ttm:bte ], + [ sh:datatype xsd:string ; + sh:maxCount 1 ; + sh:order 2 ; + sh:path ttm:aragorn ], [ sh:datatype xsd:string ; sh:description "A human-readable name for a Test Entity" ; sh:maxCount 1 ; sh:order 8 ; sh:path schema1:name ], - [ sh:description "A unique identifier for a Test Entity" ; - sh:maxCount 1 ; - sh:minCount 1 ; - sh:order 7 ; - sh:path schema1:identifier ], [ sh:datatype xsd:string ; sh:maxCount 1 ; sh:order 4 ; sh:path ttm:unsecret ], [ sh:datatype xsd:string ; sh:maxCount 1 ; - sh:order 3 ; - sh:path ttm:arax ], + sh:order 6 ; + sh:path ttm:improving ], + [ sh:description "A unique identifier for a Test Entity" ; + sh:maxCount 1 ; + sh:minCount 1 ; + sh:order 7 ; + sh:path schema1:identifier ], + [ sh:datatype xsd:string ; + sh:description "Scalar parameters for the TestRunner processing a given TestEntity." ; + sh:order 11 ; + sh:path ttm:test_runner_settings ], [ sh:datatype xsd:string ; sh:description "A human-readable description for a Test Entity" ; sh:maxCount 1 ; sh:order 9 ; - sh:path schema1:description ], - [ sh:datatype xsd:string ; - sh:maxCount 1 ; - sh:order 5 ; - sh:path ttm:bte ] ; + sh:path schema1:description ] ; sh:targetClass ttm:TestResultPKSet . ttm:TestAsset a sh:NodeShape ; sh:closed true ; sh:description "Represents a Test Asset, which is a single specific instance of TestCase-agnostic semantic parameters representing the specification of a Translator test target with inputs and (expected) outputs." ; sh:ignoredProperties ( rdf:type ) ; - sh:property [ sh:class ttm:Qualifier ; - sh:description "Optional qualifiers which constrain to the test asset defined knowledge statement. Note that this field records such qualifier slots and values as tag=value pairs, where the tag is the Biolink Model qualifier slot named and the value is an acceptable (Biolink Model enum?) value of the said qualifier slot." ; - sh:nodeKind sh:BlankNodeOrIRI ; - sh:order 9 ; - sh:path ttm:qualifiers ], - [ sh:datatype xsd:string ; - sh:description "A human-readable description for a Test Entity" ; + sh:property [ sh:in ( "causes not treats" "TMKP" "category too generic" "contraindications" "chemical roles" "test_issue" ) ; sh:maxCount 1 ; - sh:order 19 ; - sh:path schema1:description ], - [ sh:maxCount 1 ; - sh:order 3 ; - sh:path ttm:predicate_id ], + sh:order 11 ; + sh:path ttm:test_issue ], [ sh:datatype xsd:string ; sh:description "A human-readable name for a Test Entity" ; sh:maxCount 1 ; sh:order 18 ; sh:path schema1:name ], - [ sh:description "Specific Biolink Model association 'category' which applies to the test asset defined knowledge statement" ; + [ sh:datatype xsd:boolean ; sh:maxCount 1 ; - sh:order 8 ; - sh:path ttm:association ], - [ sh:maxCount 1 ; - sh:order 5 ; - sh:path ttm:output_id ], + sh:order 13 ; + sh:path ttm:in_v1 ], [ sh:datatype xsd:string ; + sh:description "A human-readable description for a Test Entity" ; sh:maxCount 1 ; - sh:order 10 ; - sh:path ttm:expected_output ], - [ sh:description "Document URL where original test source particulars are registered (e.g. Github repo)" ; - sh:maxCount 1 ; - sh:order 15 ; - sh:path ttm:test_reference ], + sh:order 19 ; + sh:path schema1:description ], [ sh:class ttm:TestMetadata ; sh:description "Test metadata describes the external provenance, cross-references and objectives for a given test." ; sh:maxCount 1 ; - sh:minCount 1 ; sh:nodeKind sh:IRI ; sh:order 16 ; sh:path ttm:test_metadata ], [ sh:maxCount 1 ; - sh:order 0 ; - sh:path ttm:input_id ], + sh:order 5 ; + sh:path ttm:output_id ], + [ sh:description "Document URL where original test source particulars are registered (e.g. Github repo)" ; + sh:maxCount 1 ; + sh:order 15 ; + sh:path ttm:test_reference ], + [ sh:in ( "High" "Low" "NotApplicable" ) ; + sh:maxCount 1 ; + sh:order 12 ; + sh:path ttm:semantic_severity ], + [ sh:datatype xsd:string ; + sh:maxCount 1 ; + sh:order 10 ; + sh:path ttm:expected_output ], + [ sh:class ttm:Qualifier ; + sh:description "Optional qualifiers which constrain to the test asset defined knowledge statement. Note that this field records such qualifier slots and values as tag=value pairs, where the tag is the Biolink Model qualifier slot named and the value is an acceptable (Biolink Model enum?) value of the said qualifier slot." ; + sh:nodeKind sh:BlankNodeOrIRI ; + sh:order 9 ; + sh:path ttm:qualifiers ], + [ sh:datatype xsd:string ; + sh:maxCount 1 ; + sh:order 1 ; + sh:path ttm:input_name ], + [ sh:datatype xsd:string ; + sh:description "One or more 'tags' slot values (inherited from TestEntity) should generally be defined to specify TestAsset membership in a \"Block List\" collection" ; + sh:order 20 ; + sh:path schema1:additionalType ], [ sh:datatype xsd:string ; sh:maxCount 1 ; sh:order 4 ; sh:path ttm:predicate_name ], - [ sh:maxCount 1 ; - sh:order 7 ; - sh:path ttm:output_category ], [ sh:description "A unique identifier for a Test Entity" ; sh:maxCount 1 ; sh:minCount 1 ; @@ -933,37 +933,30 @@ ttm:TestAsset a sh:NodeShape ; sh:description "Scalar settings for the TestRunner, e.g. \"inferred\"" ; sh:order 21 ; sh:path ttm:test_runner_settings ], - [ sh:datatype xsd:string ; - sh:description "One or more 'tags' slot values (inherited from TestEntity) should generally be defined to specify TestAsset membership in a \"Block List\" collection" ; - sh:order 20 ; - sh:path schema1:additionalType ], - [ sh:datatype xsd:string ; + [ sh:description "Specific Biolink Model association 'category' which applies to the test asset defined knowledge statement" ; sh:maxCount 1 ; - sh:order 1 ; - sh:path ttm:input_name ], + sh:order 8 ; + sh:path ttm:association ], [ sh:maxCount 1 ; sh:order 2 ; sh:path ttm:input_category ], - [ sh:datatype xsd:boolean ; - sh:maxCount 1 ; - sh:order 13 ; - sh:path ttm:in_v1 ], [ sh:datatype xsd:string ; sh:maxCount 1 ; sh:order 6 ; sh:path ttm:output_name ], - [ sh:in ( "causes not treats" "TMKP" "category too generic" "contraindications" "chemical roles" "test_issue" ) ; - sh:maxCount 1 ; - sh:order 11 ; - sh:path ttm:test_issue ], - [ sh:in ( "High" "Low" "NotApplicable" ) ; - sh:maxCount 1 ; - sh:order 12 ; - sh:path ttm:semantic_severity ], + [ sh:maxCount 1 ; + sh:order 7 ; + sh:path ttm:output_category ], [ sh:datatype xsd:boolean ; sh:maxCount 1 ; sh:order 14 ; - sh:path ttm:well_known ] ; + sh:path ttm:well_known ], + [ sh:maxCount 1 ; + sh:order 0 ; + sh:path ttm:input_id ], + [ sh:maxCount 1 ; + sh:order 3 ; + sh:path ttm:predicate_id ] ; sh:targetClass ttm:TestAsset . ttm:TestEntityParameter a sh:NodeShape ; @@ -971,15 +964,15 @@ ttm:TestEntityParameter a sh:NodeShape ; sh:description "A single 'tag = value' pair (where 'value' is a simple string)." ; sh:ignoredProperties ( rdf:type ) ; sh:property [ sh:datatype xsd:string ; - sh:description "Name of a TestParameter." ; - sh:maxCount 1 ; - sh:order 0 ; - sh:path ttm:parameter ], - [ sh:datatype xsd:string ; sh:description "(String) value of a TestParameter." ; sh:maxCount 1 ; sh:order 1 ; - sh:path ttm:value ] ; + sh:path ttm:value ], + [ sh:datatype xsd:string ; + sh:description "Name of a TestParameter." ; + sh:maxCount 1 ; + sh:order 0 ; + sh:path ttm:parameter ] ; sh:targetClass ttm:TestEntityParameter . ttm:Precondition a sh:NodeShape ; @@ -987,23 +980,23 @@ ttm:Precondition a sh:NodeShape ; sh:description "Represents a precondition for a TestCase" ; sh:ignoredProperties ( rdf:type ) ; sh:property [ sh:datatype xsd:string ; - sh:description "A human-readable tags for categorical memberships of a TestEntity (preferably a URI or CURIE). Typically used to aggregate instances of TestEntity into formally typed or ad hoc lists." ; - sh:order 3 ; - sh:path schema1:additionalType ], - [ sh:datatype xsd:string ; sh:description "Scalar parameters for the TestRunner processing a given TestEntity." ; sh:order 4 ; sh:path ttm:test_runner_settings ], - [ sh:datatype xsd:string ; - sh:description "A human-readable description for a Test Entity" ; - sh:maxCount 1 ; - sh:order 2 ; - sh:path schema1:description ], [ sh:description "A unique identifier for a Test Entity" ; sh:maxCount 1 ; sh:minCount 1 ; sh:order 0 ; sh:path schema1:identifier ], + [ sh:datatype xsd:string ; + sh:description "A human-readable description for a Test Entity" ; + sh:maxCount 1 ; + sh:order 2 ; + sh:path schema1:description ], + [ sh:datatype xsd:string ; + sh:description "A human-readable tags for categorical memberships of a TestEntity (preferably a URI or CURIE). Typically used to aggregate instances of TestEntity into formally typed or ad hoc lists." ; + sh:order 3 ; + sh:path schema1:additionalType ], [ sh:datatype xsd:string ; sh:description "A human-readable name for a Test Entity" ; sh:maxCount 1 ; @@ -1015,11 +1008,20 @@ ttm:TestSuiteSpecification a sh:NodeShape ; sh:closed true ; sh:description "Parameters for a Test Case instances either dynamically generated from some external source of Test Assets." ; sh:ignoredProperties ( rdf:type ) ; - sh:property [ sh:description "A unique identifier for a Test Entity" ; + sh:property [ sh:description "An web accessible file resource link to test entity data (e.g. a web accessible text file of Test Asset entries)" ; + sh:maxCount 1 ; + sh:order 0 ; + sh:path ttm:test_data_file_locator ], + [ sh:description "A unique identifier for a Test Entity" ; sh:maxCount 1 ; sh:minCount 1 ; sh:order 2 ; sh:path schema1:identifier ], + [ sh:datatype xsd:string ; + sh:description "A human-readable name for a Test Entity" ; + sh:maxCount 1 ; + sh:order 3 ; + sh:path schema1:name ], [ sh:datatype xsd:string ; sh:description "Scalar parameters for the TestRunner processing a given TestEntity." ; sh:order 6 ; @@ -1029,10 +1031,6 @@ ttm:TestSuiteSpecification a sh:NodeShape ; sh:maxCount 1 ; sh:order 1 ; sh:path ttm:test_data_file_format ], - [ sh:description "An web accessible file resource link to test entity data (e.g. a web accessible text file of Test Asset entries)" ; - sh:maxCount 1 ; - sh:order 0 ; - sh:path ttm:test_data_file_locator ], [ sh:datatype xsd:string ; sh:description "A human-readable tags for categorical memberships of a TestEntity (preferably a URI or CURIE). Typically used to aggregate instances of TestEntity into formally typed or ad hoc lists." ; sh:order 5 ; @@ -1041,65 +1039,48 @@ ttm:TestSuiteSpecification a sh:NodeShape ; sh:description "A human-readable description for a Test Entity" ; sh:maxCount 1 ; sh:order 4 ; - sh:path schema1:description ], - [ sh:datatype xsd:string ; - sh:description "A human-readable name for a Test Entity" ; - sh:maxCount 1 ; - sh:order 3 ; - sh:path schema1:name ] ; + sh:path schema1:description ] ; sh:targetClass ttm:TestSuiteSpecification . ttm:TestCase a sh:NodeShape ; sh:closed true ; sh:description "Represents a single enumerated instance of Test Case, derived from a given collection of one or more TestAsset instances (the value of the 'test_assets' slot) which define the 'inputs' and 'outputs' of the TestCase, used to probe a particular test condition." ; sh:ignoredProperties ( rdf:type ) ; - sh:property [ sh:description "The component that this test case is intended to run against. Most often this is the ARS for acceptance tests, but for the Benchmarks repo integration, this can also be individual components of the system like Aragorn, or ARAX." ; - sh:in [ rdf:rest () ] ; - sh:order 12 ; - sh:path ttm:components ], - [ sh:description "Type of TestCase query." ; - sh:in ( "treats" ) ; - sh:maxCount 1 ; - sh:order 0 ; - sh:path ttm:query_type ], - [ sh:description "A template for a query, which can be used to generate a query for a test case. note: the current enumerated values for this slot come from the Benchmarks repo config/benchmarks.json \"templates\" collection and refer to the \"name\" field of each template. Templates themselves are currently stored in the config/[source_name]/templates directory." ; - sh:in ( "ameliorates" "treats" "three_hop" "drug_treats_rare_disease" "drug-to-gene" ) ; + sh:property [ sh:description "A unique identifier for a Test Entity" ; sh:maxCount 1 ; - sh:order 3 ; - sh:path ttm:trapi_template ], - [ sh:maxCount 1 ; - sh:order 10 ; - sh:path ttm:input_category ], - [ sh:datatype xsd:string ; - sh:description "Scalar parameters for the TestRunner processing a given TestEntity." ; - sh:order 18 ; - sh:path ttm:test_runner_settings ], + sh:minCount 1 ; + sh:order 14 ; + sh:path schema1:identifier ], [ sh:datatype xsd:string ; sh:maxCount 1 ; sh:order 7 ; sh:path ttm:test_case_predicate_id ], - [ sh:description "Provenance of a specific set of test assets, cases and/or suites. Or, the person who cares about this, know about this. We would like this to be an ORCID eventually, but currently it is just a string." ; - sh:in ( "SME" "SMURF" "GitHubUserFeedback" "TACT" "BenchMark" "TranslatorTeam" "TestDataLocation" ) ; + [ sh:datatype xsd:string ; + sh:description "A human-readable description for a Test Entity" ; sh:maxCount 1 ; - sh:order 5 ; - sh:path ttm:test_case_source ], + sh:order 16 ; + sh:path schema1:description ], + [ sh:maxCount 1 ; + sh:order 11 ; + sh:path ttm:output_category ], + [ sh:description "A template for a query, which can be used to generate a query for a test case. note: the current enumerated values for this slot come from the Benchmarks repo config/benchmarks.json \"templates\" collection and refer to the \"name\" field of each template. Templates themselves are currently stored in the config/[source_name]/templates directory." ; + sh:in ( "ameliorates" "treats" "three_hop" "drug_treats_rare_disease" "drug-to-gene" ) ; + sh:maxCount 1 ; + sh:order 3 ; + sh:path ttm:trapi_template ], [ sh:description "Testing objective behind specified set of test particulars (e.g. acceptance pass/fail; benchmark; quantitative; standards compliance; graph navigation integrity)" ; sh:in ( "AcceptanceTest" "BenchmarkTest" "QuantitativeTest" "StandardsValidationTest" "OneHopTest" ) ; sh:maxCount 1 ; sh:order 4 ; sh:path ttm:test_case_objective ], - [ sh:class ttm:Precondition ; - sh:nodeKind sh:IRI ; - sh:order 2 ; - sh:path ttm:preconditions ], - [ sh:maxCount 1 ; - sh:order 8 ; - sh:path ttm:test_case_input_id ], - [ sh:description "Deployment environment within which the associated TestSuite is run." ; - sh:in ( "dev" "ci" "test" "prod" ) ; - sh:maxCount 1 ; - sh:order 13 ; - sh:path ttm:test_env ], + [ sh:datatype xsd:string ; + sh:description "Scalar parameters for the TestRunner processing a given TestEntity." ; + sh:order 18 ; + sh:path ttm:test_runner_settings ], + [ sh:description "The component that this test case is intended to run against. Most often this is the ARS for acceptance tests, but for the Benchmarks repo integration, this can also be individual components of the system like Aragorn, or ARAX." ; + sh:in [ rdf:rest () ] ; + sh:order 12 ; + sh:path ttm:components ], [ sh:datatype xsd:string ; sh:description "A human-readable name for a Test Entity" ; sh:maxCount 1 ; @@ -1109,49 +1090,61 @@ ttm:TestCase a sh:NodeShape ; sh:description "One or more 'tags' slot values (slot inherited from TestEntity) should generally be defined as filters to specify TestAsset membership in a \"Block List\" collection." ; sh:order 17 ; sh:path schema1:additionalType ], - [ sh:class ttm:TestAsset ; - sh:description "One or more 'tags' slot values (inherited from TestEntity) should generally be defined as filters to specify TestAsset membership in 'test_assets' slot (\"Block List\") collection." ; - sh:minCount 1 ; - sh:nodeKind sh:IRI ; - sh:order 1 ; - sh:path ttm:test_assets ], [ sh:maxCount 1 ; - sh:order 11 ; - sh:path ttm:output_category ], - [ sh:description "A unique identifier for a Test Entity" ; + sh:order 10 ; + sh:path ttm:input_category ], + [ sh:datatype xsd:string ; sh:maxCount 1 ; - sh:minCount 1 ; - sh:order 14 ; - sh:path schema1:identifier ], + sh:order 6 ; + sh:path ttm:test_case_predicate_name ], + [ sh:description "Type of TestCase query." ; + sh:in ( "treats" ) ; + sh:maxCount 1 ; + sh:order 0 ; + sh:path ttm:query_type ], + [ sh:description "Deployment environment within which the associated TestSuite is run." ; + sh:in ( "dev" "ci" "test" "prod" ) ; + sh:maxCount 1 ; + sh:order 13 ; + sh:path ttm:test_env ], + [ sh:maxCount 1 ; + sh:order 8 ; + sh:path ttm:test_case_input_id ], [ sh:class ttm:Qualifier ; sh:description "Optional qualifiers which constrain to the test asset defined knowledge statement. Note that this field records such qualifier slots and values as tag=value pairs, where the tag is the Biolink Model qualifier slot named and the value is an acceptable (Biolink Model enum?) value of the said qualifier slot." ; sh:nodeKind sh:BlankNodeOrIRI ; sh:order 9 ; sh:path ttm:qualifiers ], - [ sh:datatype xsd:string ; - sh:maxCount 1 ; - sh:order 6 ; - sh:path ttm:test_case_predicate_name ], - [ sh:datatype xsd:string ; - sh:description "A human-readable description for a Test Entity" ; + [ sh:description "Provenance of a specific set of test assets, cases and/or suites. Or, the person who cares about this, know about this. We would like this to be an ORCID eventually, but currently it is just a string." ; + sh:in ( "SME" "SMURF" "GitHubUserFeedback" "TACT" "BenchMark" "TranslatorTeam" "TestDataLocation" ) ; sh:maxCount 1 ; - sh:order 16 ; - sh:path schema1:description ] ; + sh:order 5 ; + sh:path ttm:test_case_source ], + [ sh:class ttm:TestAsset ; + sh:description "One or more 'tags' slot values (inherited from TestEntity) should generally be defined as filters to specify TestAsset membership in 'test_assets' slot (\"Block List\") collection." ; + sh:minCount 1 ; + sh:nodeKind sh:IRI ; + sh:order 1 ; + sh:path ttm:test_assets ], + [ sh:class ttm:Precondition ; + sh:nodeKind sh:IRI ; + sh:order 2 ; + sh:path ttm:preconditions ] ; sh:targetClass ttm:TestCase . ttm:Qualifier a sh:NodeShape ; sh:closed true ; sh:ignoredProperties ( rdf:type ) ; sh:property [ sh:datatype xsd:string ; - sh:description "The 'value' of should be a suitable value generally drawn from an applicable Biolink Model (\"Enum\") value set of the specified Qualifier." ; - sh:maxCount 1 ; - sh:order 1 ; - sh:path ttm:value ], - [ sh:datatype xsd:string ; sh:description "The 'parameter' of a Qualifier should be a `qualifier` slot name from the Biolink Model ('biolink' namespace) 'biolink:qualifier' hierarchy." ; sh:maxCount 1 ; sh:order 0 ; - sh:path ttm:parameter ] ; + sh:path ttm:parameter ], + [ sh:datatype xsd:string ; + sh:description "The 'value' of should be a suitable value generally drawn from an applicable Biolink Model (\"Enum\") value set of the specified Qualifier." ; + sh:maxCount 1 ; + sh:order 1 ; + sh:path ttm:value ] ; sh:targetClass ttm:Qualifier . ttm:TestMetadata a sh:NodeShape ; @@ -1163,29 +1156,15 @@ ttm:TestMetadata a sh:NodeShape ; sh:maxCount 1 ; sh:order 0 ; sh:path ttm:test_source ], - [ sh:description "Document URL where original test source particulars are registered (e.g. Github repo)" ; - sh:maxCount 1 ; - sh:order 1 ; - sh:path ttm:test_reference ], - [ sh:description "A unique identifier for a Test Entity" ; - sh:maxCount 1 ; - sh:minCount 1 ; - sh:order 4 ; - sh:path schema1:identifier ], - [ sh:datatype xsd:string ; - sh:description "A human-readable tags for categorical memberships of a TestEntity (preferably a URI or CURIE). Typically used to aggregate instances of TestEntity into formally typed or ad hoc lists." ; - sh:order 7 ; - sh:path schema1:additionalType ], - [ sh:description "Testing objective behind specified set of test particulars (e.g. acceptance pass/fail; benchmark; quantitative; standards compliance; graph navigation integrity)" ; - sh:in ( "AcceptanceTest" "BenchmarkTest" "QuantitativeTest" "StandardsValidationTest" "OneHopTest" ) ; - sh:maxCount 1 ; - sh:order 2 ; - sh:path ttm:test_objective ], [ sh:class ttm:TestEntityParameter ; sh:description "Metadata annotation." ; sh:nodeKind sh:BlankNodeOrIRI ; sh:order 3 ; sh:path ttm:test_annotations ], + [ sh:datatype xsd:string ; + sh:description "Scalar parameters for the TestRunner processing a given TestEntity." ; + sh:order 8 ; + sh:path ttm:test_runner_settings ], [ sh:datatype xsd:string ; sh:description "A human-readable name for a Test Entity" ; sh:maxCount 1 ; @@ -1196,9 +1175,23 @@ ttm:TestMetadata a sh:NodeShape ; sh:maxCount 1 ; sh:order 6 ; sh:path schema1:description ], + [ sh:description "Document URL where original test source particulars are registered (e.g. Github repo)" ; + sh:maxCount 1 ; + sh:order 1 ; + sh:path ttm:test_reference ], [ sh:datatype xsd:string ; - sh:description "Scalar parameters for the TestRunner processing a given TestEntity." ; - sh:order 8 ; - sh:path ttm:test_runner_settings ] ; + sh:description "A human-readable tags for categorical memberships of a TestEntity (preferably a URI or CURIE). Typically used to aggregate instances of TestEntity into formally typed or ad hoc lists." ; + sh:order 7 ; + sh:path schema1:additionalType ], + [ sh:description "A unique identifier for a Test Entity" ; + sh:maxCount 1 ; + sh:minCount 1 ; + sh:order 4 ; + sh:path schema1:identifier ], + [ sh:description "Testing objective behind specified set of test particulars (e.g. acceptance pass/fail; benchmark; quantitative; standards compliance; graph navigation integrity)" ; + sh:in ( "AcceptanceTest" "BenchmarkTest" "QuantitativeTest" "StandardsValidationTest" "OneHopTest" ) ; + sh:maxCount 1 ; + sh:order 2 ; + sh:path ttm:test_objective ] ; sh:targetClass ttm:TestMetadata . diff --git a/project/shex/translator_testing_model.shex b/project/shex/translator_testing_model.shex index 4c5ec7b..5397e73 100644 --- a/project/shex/translator_testing_model.shex +++ b/project/shex/translator_testing_model.shex @@ -167,7 +167,7 @@ linkml:Sparqlpath xsd:string @linkml:Boolean ? ; @linkml:Boolean ? ; @linkml:Uriorcurie ? ; - @ ; + @ ? ; schema1:additionalType @linkml:String * ; @linkml:String * ) ; @@ -333,7 +333,7 @@ linkml:Sparqlpath xsd:string CLOSED { ( $ ( & ; rdf:type [ ] ? ; - @ ; + @ ? ; [ diff --git a/project/sqlschema/translator_testing_model.sql b/project/sqlschema/translator_testing_model.sql index 9344fdc..66b59f3 100644 --- a/project/sqlschema/translator_testing_model.sql +++ b/project/sqlschema/translator_testing_model.sql @@ -485,7 +485,7 @@ CREATE TABLE "AcceptanceTestAsset" ( name TEXT, description TEXT, "AcceptanceTestCase_id" TEXT, - test_metadata_id TEXT NOT NULL, + test_metadata_id TEXT, PRIMARY KEY (id), FOREIGN KEY("AcceptanceTestCase_id") REFERENCES "AcceptanceTestCase" (id), FOREIGN KEY(test_metadata_id) REFERENCES "TestMetadata" (id) @@ -509,7 +509,7 @@ CREATE TABLE "TestEdgeData" ( id TEXT NOT NULL, name TEXT, description TEXT, - test_metadata_id TEXT NOT NULL, + test_metadata_id TEXT, PRIMARY KEY (id), FOREIGN KEY(test_metadata_id) REFERENCES "TestMetadata" (id) ); @@ -518,7 +518,7 @@ CREATE TABLE "TestSuite" ( id TEXT NOT NULL, name TEXT, description TEXT, - test_metadata_id TEXT NOT NULL, + test_metadata_id TEXT, test_suite_specification_id TEXT, PRIMARY KEY (id), FOREIGN KEY(test_metadata_id) REFERENCES "TestMetadata" (id), @@ -529,7 +529,7 @@ CREATE TABLE "AcceptanceTestSuite" ( id TEXT NOT NULL, name TEXT, description TEXT, - test_metadata_id TEXT NOT NULL, + test_metadata_id TEXT, test_suite_specification_id TEXT, PRIMARY KEY (id), FOREIGN KEY(test_metadata_id) REFERENCES "TestMetadata" (id), @@ -540,7 +540,7 @@ CREATE TABLE "StandardsComplianceTestSuite" ( id TEXT NOT NULL, name TEXT, description TEXT, - test_metadata_id TEXT NOT NULL, + test_metadata_id TEXT, test_suite_specification_id TEXT, PRIMARY KEY (id), FOREIGN KEY(test_metadata_id) REFERENCES "TestMetadata" (id), @@ -551,7 +551,7 @@ CREATE TABLE "OneHopTestSuite" ( id TEXT NOT NULL, name TEXT, description TEXT, - test_metadata_id TEXT NOT NULL, + test_metadata_id TEXT, test_suite_specification_id TEXT, PRIMARY KEY (id), FOREIGN KEY(test_metadata_id) REFERENCES "TestMetadata" (id), @@ -821,7 +821,7 @@ CREATE TABLE "TestAsset" ( description TEXT, "TestCase_id" TEXT, "QuantitativeTestCase_id" TEXT, - test_metadata_id TEXT NOT NULL, + test_metadata_id TEXT, PRIMARY KEY (id), FOREIGN KEY("TestCase_id") REFERENCES "TestCase" (id), FOREIGN KEY("QuantitativeTestCase_id") REFERENCES "QuantitativeTestCase" (id), diff --git a/src/translator_testing_model/datamodel/pydanticmodel.py b/src/translator_testing_model/datamodel/pydanticmodel.py index 032f917..3c06335 100644 --- a/src/translator_testing_model/datamodel/pydanticmodel.py +++ b/src/translator_testing_model/datamodel/pydanticmodel.py @@ -255,7 +255,7 @@ class TestAsset(TestEntity): in_v1: Optional[bool] = Field(None) well_known: Optional[bool] = Field(None) test_reference: Optional[str] = Field(None, description="""Document URL where original test source particulars are registered (e.g. Github repo)""") - test_metadata: TestMetadata = Field(..., description="""Test metadata describes the external provenance, cross-references and objectives for a given test.""") + test_metadata: Optional[TestMetadata] = Field(None, description="""Test metadata describes the external provenance, cross-references and objectives for a given test.""") id: str = Field(..., description="""A unique identifier for a Test Entity""") name: Optional[str] = Field(None, description="""A human-readable name for a Test Entity""") description: Optional[str] = Field(None, description="""A human-readable description for a Test Entity""") @@ -293,7 +293,7 @@ class AcceptanceTestAsset(TestAsset): in_v1: Optional[bool] = Field(None) well_known: Optional[bool] = Field(None) test_reference: Optional[str] = Field(None, description="""Document URL where original test source particulars are registered (e.g. Github repo)""") - test_metadata: TestMetadata = Field(..., description="""Test metadata describes the external provenance, cross-references and objectives for a given test.""") + test_metadata: Optional[TestMetadata] = Field(None, description="""Test metadata describes the external provenance, cross-references and objectives for a given test.""") id: str = Field(..., description="""A unique identifier for a Test Entity""") name: Optional[str] = Field(None, description="""A human-readable name for a Test Entity""") description: Optional[str] = Field(None, description="""A human-readable description for a Test Entity""") @@ -321,7 +321,7 @@ class TestEdgeData(TestAsset): in_v1: Optional[bool] = Field(None) well_known: Optional[bool] = Field(None) test_reference: Optional[str] = Field(None, description="""Document URL where original test source particulars are registered (e.g. Github repo)""") - test_metadata: TestMetadata = Field(..., description="""Test metadata describes the external provenance, cross-references and objectives for a given test.""") + test_metadata: Optional[TestMetadata] = Field(None, description="""Test metadata describes the external provenance, cross-references and objectives for a given test.""") id: str = Field(..., description="""A unique identifier for a Test Entity""") name: Optional[str] = Field(None, description="""A human-readable name for a Test Entity""") description: Optional[str] = Field(None, description="""A human-readable description for a Test Entity""") @@ -432,7 +432,7 @@ class TestSuite(TestEntity): """ Specification of a set of Test Cases, one of either with a static list of 'test_cases' or a dynamic 'test_suite_specification' slot values. Note: at least one slot or the other, but generally not both(?) needs to be present. """ - test_metadata: TestMetadata = Field(..., description="""Test metadata describes the external provenance, cross-references and objectives for a given test.""") + test_metadata: Optional[TestMetadata] = Field(None, description="""Test metadata describes the external provenance, cross-references and objectives for a given test.""") test_persona: Optional[TestPersonaEnum] = Field(None, description="""A Test persona describes the user or operational context of a given test.""") test_cases: Optional[Dict[str, TestCase]] = Field(default_factory=dict, description="""List of explicitly enumerated Test Cases.""") test_suite_specification: Optional[TestSuiteSpecification] = Field(None, description="""Declarative specification of a Test Suite of Test Cases whose generation is deferred, (i.e. within a Test Runner) or whose creation is achieved by stream processing of an external data source.""") @@ -444,7 +444,7 @@ class TestSuite(TestEntity): class AcceptanceTestSuite(TestSuite): - test_metadata: TestMetadata = Field(..., description="""Test metadata describes the external provenance, cross-references and objectives for a given test.""") + test_metadata: Optional[TestMetadata] = Field(None, description="""Test metadata describes the external provenance, cross-references and objectives for a given test.""") test_persona: Optional[TestPersonaEnum] = Field(None, description="""A Test persona describes the user or operational context of a given test.""") test_cases: Optional[Dict[str, TestCase]] = Field(default_factory=dict, description="""List of explicitly enumerated Test Cases.""") test_suite_specification: Optional[TestSuiteSpecification] = Field(None, description="""Declarative specification of a Test Suite of Test Cases whose generation is deferred, (i.e. within a Test Runner) or whose creation is achieved by stream processing of an external data source.""") @@ -466,7 +466,7 @@ class StandardsComplianceTestSuite(TestSuite): """ Test suite for testing Translator components against releases of standards like TRAPI and the Biolink Model. """ - test_metadata: TestMetadata = Field(..., description="""Test metadata describes the external provenance, cross-references and objectives for a given test.""") + test_metadata: Optional[TestMetadata] = Field(None, description="""Test metadata describes the external provenance, cross-references and objectives for a given test.""") test_persona: Optional[TestPersonaEnum] = Field(None, description="""A Test persona describes the user or operational context of a given test.""") test_cases: Optional[Dict[str, TestCase]] = Field(default_factory=dict, description="""List of explicitly enumerated Test Cases.""") test_suite_specification: Optional[TestSuiteSpecification] = Field(None, description="""Declarative specification of a Test Suite of Test Cases whose generation is deferred, (i.e. within a Test Runner) or whose creation is achieved by stream processing of an external data source.""") @@ -481,7 +481,7 @@ class OneHopTestSuite(TestSuite): """ Test case for testing the integrity of \"One Hop\" knowledge graph retrievals sensa legacy SRI_Testing harness. """ - test_metadata: TestMetadata = Field(..., description="""Test metadata describes the external provenance, cross-references and objectives for a given test.""") + test_metadata: Optional[TestMetadata] = Field(None, description="""Test metadata describes the external provenance, cross-references and objectives for a given test.""") test_persona: Optional[TestPersonaEnum] = Field(None, description="""A Test persona describes the user or operational context of a given test.""") test_cases: Optional[Dict[str, TestCase]] = Field(default_factory=dict, description="""List of explicitly enumerated Test Cases.""") test_suite_specification: Optional[TestSuiteSpecification] = Field(None, description="""Declarative specification of a Test Suite of Test Cases whose generation is deferred, (i.e. within a Test Runner) or whose creation is achieved by stream processing of an external data source.""") diff --git a/src/translator_testing_model/datamodel/translator_testing_model.py b/src/translator_testing_model/datamodel/translator_testing_model.py index c04dc5b..7cb684b 100644 --- a/src/translator_testing_model/datamodel/translator_testing_model.py +++ b/src/translator_testing_model/datamodel/translator_testing_model.py @@ -1,5 +1,5 @@ # Auto generated from translator_testing_model.yaml by pythongen.py version: 0.0.1 -# Generation date: 2024-04-19T10:26:22 +# Generation date: 2024-04-25T12:19:51 # Schema: Translator-Testing-Model # # id: https://w3id.org/TranslatorSRI/TranslatorTestingModel @@ -292,7 +292,6 @@ class TestAsset(TestEntity): class_model_uri: ClassVar[URIRef] = TTM.TestAsset id: Union[str, TestAssetId] = None - test_metadata: Union[dict, TestMetadata] = None input_id: Optional[Union[str, URIorCURIE]] = None input_name: Optional[str] = None input_category: Optional[Union[str, ConceptCategory]] = None @@ -309,6 +308,7 @@ class TestAsset(TestEntity): in_v1: Optional[Union[bool, Bool]] = None well_known: Optional[Union[bool, Bool]] = None test_reference: Optional[Union[str, URIorCURIE]] = None + test_metadata: Optional[Union[dict, TestMetadata]] = None tags: Optional[Union[str, List[str]]] = empty_list() test_runner_settings: Optional[Union[str, List[str]]] = empty_list() @@ -318,11 +318,6 @@ def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]): if not isinstance(self.id, TestAssetId): self.id = TestAssetId(self.id) - if self._is_empty(self.test_metadata): - self.MissingRequiredField("test_metadata") - if not isinstance(self.test_metadata, TestMetadata): - self.test_metadata = TestMetadata(**as_dict(self.test_metadata)) - if self.input_id is not None and not isinstance(self.input_id, URIorCURIE): self.input_id = URIorCURIE(self.input_id) @@ -372,6 +367,9 @@ def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]): if self.test_reference is not None and not isinstance(self.test_reference, URIorCURIE): self.test_reference = URIorCURIE(self.test_reference) + if self.test_metadata is not None and not isinstance(self.test_metadata, TestMetadata): + self.test_metadata = TestMetadata(**as_dict(self.test_metadata)) + if not isinstance(self.tags, list): self.tags = [self.tags] if self.tags is not None else [] self.tags = [v if isinstance(v, str) else str(v) for v in self.tags] @@ -396,7 +394,6 @@ class AcceptanceTestAsset(TestAsset): class_model_uri: ClassVar[URIRef] = TTM.AcceptanceTestAsset id: Union[str, AcceptanceTestAssetId] = None - test_metadata: Union[dict, TestMetadata] = None must_pass_date: Optional[Union[str, XSDDate]] = None must_pass_environment: Optional[Union[str, "TestEnvEnum"]] = None scientific_question: Optional[str] = None @@ -461,7 +458,6 @@ class TestEdgeData(TestAsset): class_model_uri: ClassVar[URIRef] = TTM.TestEdgeData id: Union[str, TestEdgeDataId] = None - test_metadata: Union[dict, TestMetadata] = None def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]): if self._is_empty(self.id): @@ -679,7 +675,7 @@ class TestSuite(TestEntity): class_model_uri: ClassVar[URIRef] = TTM.TestSuite id: Union[str, TestSuiteId] = None - test_metadata: Union[dict, TestMetadata] = None + test_metadata: Optional[Union[dict, TestMetadata]] = None test_persona: Optional[Union[str, "TestPersonaEnum"]] = None test_cases: Optional[Union[Dict[Union[str, TestCaseId], Union[dict, TestCase]], List[Union[dict, TestCase]]]] = empty_dict() test_suite_specification: Optional[Union[dict, TestSuiteSpecification]] = None @@ -690,9 +686,7 @@ def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]): if not isinstance(self.id, TestSuiteId): self.id = TestSuiteId(self.id) - if self._is_empty(self.test_metadata): - self.MissingRequiredField("test_metadata") - if not isinstance(self.test_metadata, TestMetadata): + if self.test_metadata is not None and not isinstance(self.test_metadata, TestMetadata): self.test_metadata = TestMetadata(**as_dict(self.test_metadata)) if self.test_persona is not None and not isinstance(self.test_persona, TestPersonaEnum): @@ -716,7 +710,6 @@ class AcceptanceTestSuite(TestSuite): class_model_uri: ClassVar[URIRef] = TTM.AcceptanceTestSuite id: Union[str, AcceptanceTestSuiteId] = None - test_metadata: Union[dict, TestMetadata] = None def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]): if self._is_empty(self.id): @@ -752,7 +745,6 @@ class StandardsComplianceTestSuite(TestSuite): class_model_uri: ClassVar[URIRef] = TTM.StandardsComplianceTestSuite id: Union[str, StandardsComplianceTestSuiteId] = None - test_metadata: Union[dict, TestMetadata] = None def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]): if self._is_empty(self.id): @@ -776,7 +768,6 @@ class OneHopTestSuite(TestSuite): class_model_uri: ClassVar[URIRef] = TTM.OneHopTestSuite id: Union[str, OneHopTestSuiteId] = None - test_metadata: Union[dict, TestMetadata] = None def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]): if self._is_empty(self.id): @@ -1410,7 +1401,7 @@ class slots: model_uri=TTM.test_data_file_format, domain=None, range=Optional[Union[str, "FileFormatEnum"]]) slots.test_metadata = Slot(uri=TTM.test_metadata, name="test_metadata", curie=TTM.curie('test_metadata'), - model_uri=TTM.test_metadata, domain=None, range=Union[dict, TestMetadata]) + model_uri=TTM.test_metadata, domain=None, range=Optional[Union[dict, TestMetadata]]) slots.test_persona = Slot(uri=TTM.test_persona, name="test_persona", curie=TTM.curie('test_persona'), model_uri=TTM.test_persona, domain=None, range=Optional[Union[str, "TestPersonaEnum"]]) diff --git a/src/translator_testing_model/schema/translator_testing_model.yaml b/src/translator_testing_model/schema/translator_testing_model.yaml index 4c75403..1f1144c 100644 --- a/src/translator_testing_model/schema/translator_testing_model.yaml +++ b/src/translator_testing_model/schema/translator_testing_model.yaml @@ -713,7 +713,7 @@ slots: Test metadata describes the external provenance, cross-references and objectives for a given test. range: TestMetadata inlined: true - required: true + required: false test_persona: description: >- From 73b5ddaa306d1dcdac4d216eee6cf3eba575744e Mon Sep 17 00:00:00 2001 From: Richard Bruskiewich Date: Thu, 25 Apr 2024 12:44:33 -0700 Subject: [PATCH 2/5] regenerate examples --- examples/Bad-TestAsset-001.yaml | 41 ++++--------------- examples/Bad-TestAsset-002.yaml | 16 ++++++++ examples/Bad-TestAsset-003.yaml | 16 ++++++++ examples/Bad-TestAsset-004.yaml | 16 ++++++++ examples/Bad-TestAsset-005.yaml | 16 ++++++++ examples/Bad-TestAsset-006.yaml | 16 ++++++++ examples/Bad-TestEntity-001.yaml | 2 + ...2.yaml-uriorcurie_should_fail_but_does_not | 2 + examples/Good-AcceptanceTestAsset-001.yaml | 19 +++++---- examples/Good-AcceptanceTestCase-001.yaml | 20 ++++++--- examples/Good-TestAsset-001.json | 19 ++++----- examples/Good-TestAsset-001.yaml | 27 ++++++------ examples/Good-TestCase-001.json | 16 ++++++-- examples/Good-TestCase-001.yaml | 17 ++++++-- examples/Good-TestCaseSpecification-001.yaml | 4 ++ examples/Good-TestEntity-Complete.yaml | 2 + examples/Good-TestSuite-001.yaml | 3 ++ examples/SampleTestAssetList.json | 34 +++++++++------ 18 files changed, 199 insertions(+), 87 deletions(-) create mode 100644 examples/Bad-TestAsset-002.yaml create mode 100644 examples/Bad-TestAsset-003.yaml create mode 100644 examples/Bad-TestAsset-004.yaml create mode 100644 examples/Bad-TestAsset-005.yaml create mode 100644 examples/Bad-TestAsset-006.yaml diff --git a/examples/Bad-TestAsset-001.yaml b/examples/Bad-TestAsset-001.yaml index 783b421..171adc6 100644 --- a/examples/Bad-TestAsset-001.yaml +++ b/examples/Bad-TestAsset-001.yaml @@ -1,38 +1,15 @@ # Example TestAsset data object --- -# TODO: the TestAsset example data needs further elaboration -# -# TestAsset: -# description: >- -# Represents a Test Asset, which is a single specific instance of -# TestCase-agnostic semantic parameters representing the -# specification of a Translator test target with inputs and (expected) outputs. -# is_a: TestEntity -# slots: -# - input_id -# - input_name -# - predicate -# - output_id -# - output_name -# - expected_output -# - test_issue -# - semantic_severity -# - in_v1 -# - well_known -# - test_metadata -# slot_usage: -# id: -# aliases: ["AssetIdentifier"] -# range: uriorcurie -# tags: -# description: >- -# One or more 'tags' slot values (inherited from TestEntity) should generally -# be defined to specify TestAsset membership in a "Block List" collection -# # Bad Query 1 - Missing required identifier? # id: example:TestAsset001 -name: foo bar -description: This is a test asset -test_meta_data: { "foo": "bar" } \ No newline at end of file +name: TestAsset001 +description: Fingolimod treats multiple sclerosis +input_id: PUBCHEM.COMPOUND:107970 +predicate_name: treats +output_id: MONDO:0005301 +expected_output: Acceptable +test_runner_settings: + - "inferred" + - "test" diff --git a/examples/Bad-TestAsset-002.yaml b/examples/Bad-TestAsset-002.yaml new file mode 100644 index 0000000..bb16005 --- /dev/null +++ b/examples/Bad-TestAsset-002.yaml @@ -0,0 +1,16 @@ +# Example TestAsset data object +--- +# TODO: the TestAsset example data needs further elaboration + +# Bad Query 2 - Missing required input_id? + +id: example:TestAsset001 +name: TestAsset001 +description: Fingolimod treats multiple sclerosis +#input_id: PUBCHEM.COMPOUND:107970 +predicate_name: treats +output_id: MONDO:0005301 +expected_output: Acceptable +test_runner_settings: + - "inferred" + - "test" diff --git a/examples/Bad-TestAsset-003.yaml b/examples/Bad-TestAsset-003.yaml new file mode 100644 index 0000000..5a8f6dc --- /dev/null +++ b/examples/Bad-TestAsset-003.yaml @@ -0,0 +1,16 @@ +# Example TestAsset data object +--- +# TODO: the TestAsset example data needs further elaboration + +# Bad Query 3 - Missing required predicate? + +id: example:TestAsset001 +name: TestAsset001 +description: Fingolimod treats multiple sclerosis +input_id: PUBCHEM.COMPOUND:107970 +#predicate_name: treats +output_id: MONDO:0005301 +expected_output: Acceptable +test_runner_settings: + - "inferred" + - "test" diff --git a/examples/Bad-TestAsset-004.yaml b/examples/Bad-TestAsset-004.yaml new file mode 100644 index 0000000..7c1a41a --- /dev/null +++ b/examples/Bad-TestAsset-004.yaml @@ -0,0 +1,16 @@ +# Example TestAsset data object +--- +# TODO: the TestAsset example data needs further elaboration + +# Bad Query 4 - Missing required output_id? + +id: example:TestAsset001 +name: TestAsset001 +description: Fingolimod treats multiple sclerosis +input_id: PUBCHEM.COMPOUND:107970 +predicate_name: treats +#output_id: MONDO:0005301 +expected_output: Acceptable +test_runner_settings: + - "inferred" + - "test" diff --git a/examples/Bad-TestAsset-005.yaml b/examples/Bad-TestAsset-005.yaml new file mode 100644 index 0000000..a0d29b7 --- /dev/null +++ b/examples/Bad-TestAsset-005.yaml @@ -0,0 +1,16 @@ +# Example TestAsset data object +--- +# TODO: the TestAsset example data needs further elaboration + +# Bad Query 5 - Missing required output_id? + +id: example:TestAsset001 +name: TestAsset001 +description: Fingolimod treats multiple sclerosis +input_id: PUBCHEM.COMPOUND:107970 +predicate_name: treats +#output_id: MONDO:0005301 +expected_output: Acceptable +test_runner_settings: + - "inferred" + - "test" diff --git a/examples/Bad-TestAsset-006.yaml b/examples/Bad-TestAsset-006.yaml new file mode 100644 index 0000000..64aa600 --- /dev/null +++ b/examples/Bad-TestAsset-006.yaml @@ -0,0 +1,16 @@ +# Example TestAsset data object +--- +# TODO: the TestAsset example data needs further elaboration + +# Bad Query 6 - Missing required runner_settings? + +id: example:TestAsset001 +name: TestAsset001 +description: Fingolimod treats multiple sclerosis +input_id: PUBCHEM.COMPOUND:107970 +predicate_name: treats +output_id: MONDO:0005301 +expected_output: Acceptable +#test_runner_settings: +# - "inferred" +# - "test" diff --git a/examples/Bad-TestEntity-001.yaml b/examples/Bad-TestEntity-001.yaml index 9676668..dbe6245 100644 --- a/examples/Bad-TestEntity-001.yaml +++ b/examples/Bad-TestEntity-001.yaml @@ -11,6 +11,8 @@ # - id # - name # - description +# - tags +# - test_runner_settings # # where the slots are: # diff --git a/examples/Bad-TestEntity-002.yaml-uriorcurie_should_fail_but_does_not b/examples/Bad-TestEntity-002.yaml-uriorcurie_should_fail_but_does_not index f9357e2..3f8643b 100644 --- a/examples/Bad-TestEntity-002.yaml-uriorcurie_should_fail_but_does_not +++ b/examples/Bad-TestEntity-002.yaml-uriorcurie_should_fail_but_does_not @@ -11,6 +11,8 @@ # - id # - name # - description +# - tags +# - test_runner_settings # # where the slots are: # diff --git a/examples/Good-AcceptanceTestAsset-001.yaml b/examples/Good-AcceptanceTestAsset-001.yaml index 5dd07d3..2a48722 100644 --- a/examples/Good-AcceptanceTestAsset-001.yaml +++ b/examples/Good-AcceptanceTestAsset-001.yaml @@ -1,6 +1,7 @@ # Example AcceptanceTestAsset data object --- # TODO: the AcceptanceTestAsset example data needs further elaboration +# (there don't seem to be any required: true AcceptanceTestAsset-specific fields) # # AcceptanceTestAsset: @@ -21,14 +22,16 @@ # - notes # id: example:AcceptanceTestAsset001 -name: foo bar -description: This is a acceptance test case' -runner_settings: +name: AcceptanceTestAsset001 +description: Iron treats Aceruloplasminemia +input_id: MONDO:0011426 +predicate_name: treats +output_id: DRUGBANK:DB01592 +expected_output: NeverShow +test_metadata: + id: "test:1" + test_source: SMURF +test_runner_settings: - "inferred" - "test" -test_metadata: - id: 1 - test_source: SMURF, - test_reference: https://github.com/NCATSTranslator/Feedback/issues/506 - test_objective: AcceptanceTest diff --git a/examples/Good-AcceptanceTestCase-001.yaml b/examples/Good-AcceptanceTestCase-001.yaml index 8102b5c..ca6f646 100644 --- a/examples/Good-AcceptanceTestCase-001.yaml +++ b/examples/Good-AcceptanceTestCase-001.yaml @@ -13,10 +13,20 @@ id: example:AcceptanceTestCase001 name: foo bar description: This is an acceptance test case +test_runner_settings: + - "inferred" + - "test" test_assets: - - id: example:TestAsset001 - name: foo bar - description: This is a test asset - runner_settings: + - id: example:AcceptanceTestAsset001 + name: AcceptanceTestAsset001 + description: Iron treats Aceruloplasminemia + input_id: MONDO:0011426 + predicate_name: treats + output_id: DRUGBANK:DB01592 + expected_output: NeverShow + test_runner_settings: - "inferred" - - "test" \ No newline at end of file + - "test" + test_metadata: + id: "test:1" + test_source: SMURF \ No newline at end of file diff --git a/examples/Good-TestAsset-001.json b/examples/Good-TestAsset-001.json index 05aae30..f773550 100644 --- a/examples/Good-TestAsset-001.json +++ b/examples/Good-TestAsset-001.json @@ -1,16 +1,13 @@ { "id": "example:TestAsset001", - "name": "foo bar", - "description": "This is a test asset", - "runner_settings": ["inferred", "test"], + "name": "TestAsset001", + "description": "Fingolimod treats multiple sclerosis", + "input_id": "PUBCHEM.COMPOUND:107970", + "predicate_name": "treats", + "output_id": "MONDO:0005301", + "expected_output": "Acceptable", + "test_runner_settings": ["inferred", "test"], "test_metadata": { - "id": "1", - "name": null, - "description": null, - "tags": [], - "test_source": "SMURF", - "test_reference": "https://github.com/NCATSTranslator/Feedback/issues/506", - "test_objective": "AcceptanceTest", - "test_annotations": [] + "id": "example:TestAsset001" } } diff --git a/examples/Good-TestAsset-001.yaml b/examples/Good-TestAsset-001.yaml index cbfb640..31fd44d 100644 --- a/examples/Good-TestAsset-001.yaml +++ b/examples/Good-TestAsset-001.yaml @@ -1,7 +1,8 @@ # Example TestAsset data object --- -# TODO: the TestAsset example data needs further elaboration +# TODO: the TestAsset example data may need further elaboration +# # # TestAsset: # description: >- @@ -12,15 +13,20 @@ # slots: # - input_id # - input_name -# - predicate +# - input_category +# - predicate_id +# - predicate_name # - output_id # - output_name +# - output_category +# - association +# - qualifiers # - expected_output # - test_issue # - semantic_severity # - in_v1 # - well_known -# - runner_settings +# - test_reference # slot_usage: # id: # aliases: ["AssetIdentifier"] @@ -29,7 +35,7 @@ # description: >- # One or more 'tags' slot values (inherited from TestEntity) should generally # be defined to specify TestAsset membership in a "Block List" collection -# runner_settings: +# test_runner_settings: # description: >- # Settings for the test harness, e.g. "inferred" # @@ -38,7 +44,7 @@ name: TestAsset001 description: Iron treats Aceruloplasminemia input_id: MONDO:0011426 input_name: Aceruloplasminemia -predicate: Treats +predicate_name: treats output_id: DRUGBANK:DB01592 output_name: Iron (PUBCHEM) expected_output: NeverShow @@ -46,11 +52,8 @@ test_reference: https://github.com/NCATSTranslator/Feedback/issues/506 semantic_severity: NotApplicable in_v1: True well_known: False -runner_settings: - - "inferred" - - "test" test_metadata: - id: 1 - test_source: SMURF, - test_reference: https://github.com/NCATSTranslator/Feedback/issues/506 - test_objective: AcceptanceTest + id: "example:TestAsset001" +test_runner_settings: + - "inferred" + - "test" \ No newline at end of file diff --git a/examples/Good-TestCase-001.json b/examples/Good-TestCase-001.json index 1a006b7..d4763fe 100644 --- a/examples/Good-TestCase-001.json +++ b/examples/Good-TestCase-001.json @@ -5,9 +5,17 @@ "test_assets": [ { "id": "example:TestAsset001", - "name": "foo bar", - "description": "This is a test asset", - "runner_settings": ["inferred","test_setting"] + "name": "TestAsset001", + "description": "Fingolimod treats multiple sclerosis", + "input_id": "PUBCHEM.COMPOUND:107970", + "predicate_name": "treats", + "output_id": "MONDO:0005301", + "expected_output": "Acceptable", + "test_runner_settings": ["inferred", "test"], + "test_metadata": { + "id": "example:TestMetadata001" + } } - ] + ], + "test_runner_settings": ["inferred", "test"] } diff --git a/examples/Good-TestCase-001.yaml b/examples/Good-TestCase-001.yaml index 48cbafc..2af86e1 100644 --- a/examples/Good-TestCase-001.yaml +++ b/examples/Good-TestCase-001.yaml @@ -2,6 +2,7 @@ --- # TODO: the TestCase example data needs further elaboration # +# # TestCase: # description: >- # Represents a single enumerated instance of Test Case, derived from a @@ -34,10 +35,20 @@ id: example:TestCase001 name: foo bar description: This is a test case +# NOTE: we only provide the minimal set of TestAsset slots where required: true test_assets: - id: example:TestAsset001 - name: foo bar - description: This is a test asset - runner_settings: + name: TestAsset001 + input_id: MONDO:0011426 + predicate_name: treats + output_id: DRUGBANK:DB01592 + expected_output: NeverShow + test_runner_settings: - "inferred" - "test" + test_metadata: + id: test:1 + test_source: SMURF +test_runner_settings: + - "inferred" + - "test" \ No newline at end of file diff --git a/examples/Good-TestCaseSpecification-001.yaml b/examples/Good-TestCaseSpecification-001.yaml index 5c4f8cb..cf671f2 100644 --- a/examples/Good-TestCaseSpecification-001.yaml +++ b/examples/Good-TestCaseSpecification-001.yaml @@ -11,3 +11,7 @@ id: example:TestCaseSpecification001 name: foo bar description: This is a test case specification +test_case_specification_runner_settings: + - "inferred" + - "test" + diff --git a/examples/Good-TestEntity-Complete.yaml b/examples/Good-TestEntity-Complete.yaml index ad412a8..2671e65 100644 --- a/examples/Good-TestEntity-Complete.yaml +++ b/examples/Good-TestEntity-Complete.yaml @@ -11,6 +11,8 @@ # - id # - name # - description +# - tags +# - test_runner_settings # # where the slots are: # diff --git a/examples/Good-TestSuite-001.yaml b/examples/Good-TestSuite-001.yaml index c4d8a07..e579103 100644 --- a/examples/Good-TestSuite-001.yaml +++ b/examples/Good-TestSuite-001.yaml @@ -18,3 +18,6 @@ id: example:TestSuite001 name: foo bar description: This is a test suite +test_metadata: + id: test:1 + test_source: SMURF diff --git a/examples/SampleTestAssetList.json b/examples/SampleTestAssetList.json index 227e400..84bb0e0 100644 --- a/examples/SampleTestAssetList.json +++ b/examples/SampleTestAssetList.json @@ -1,20 +1,30 @@ [ { "id": "example:TestAsset001", - "name": "foo bar", - "description": "This is a test asset", - "runner_settings": ["inferred","test_setting"] + "name": "TestAsset001", + "description": "Fingolimod treats multiple sclerosis", + "input_id": "PUBCHEM.COMPOUND:107970", + "predicate_name": "treats", + "output_id": "MONDO:0005301", + "expected_output": "Acceptable", + "runner_settings": ["inferred", "test"], + "test_metadata": { + "id": "example:TestAsset001", + "source": "SMURF" + } }, { "id": "example:TestAsset002", - "name": "tweedle dee", - "description": "This is another test asset", - "runner_settings": ["inferred","test_setting"] - }, - { - "id": "example:TestAsset003", - "name": "tweedle dum", - "description": "This is yetanuder test asset", - "runner_settings": ["inferred","test_setting"] + "name": "TestAsset002", + "description": "Carbamazepine treats Cerebral palsy", + "input_id": "PUBCHEM.COMPOUND:2554", + "predicate_name": "treats", + "output_id": "MONDO:0006497", + "expected_output": "number_2_Acceptable", + "runner_settings": ["inferred", "test"], + "test_metadata": { + "id": "example:TestAsset001", + "source": "SMURF" + } } ] \ No newline at end of file From 916b7c7451ccf80dec15e0d5fc5f11f5a20face6 Mon Sep 17 00:00:00 2001 From: Richard Bruskiewich Date: Thu, 25 Apr 2024 12:48:37 -0700 Subject: [PATCH 3/5] Clean up obsolete example data --- examples/Bad-TestAsset-002.yaml | 16 ---------- examples/Bad-TestAsset-003.yaml | 16 ---------- examples/Bad-TestAsset-004.yaml | 16 ---------- examples/Bad-TestAsset-005.yaml | 16 ---------- examples/Bad-TestAsset-006.yaml | 16 ---------- examples/Bad-TestCase-001.yaml | 38 ------------------------ src/data/examples/Bad-TestAsset-002.yaml | 16 ---------- src/data/examples/Bad-TestAsset-003.yaml | 16 ---------- src/data/examples/Bad-TestAsset-004.yaml | 16 ---------- src/data/examples/Bad-TestAsset-005.yaml | 16 ---------- src/data/examples/Bad-TestAsset-006.yaml | 16 ---------- src/data/examples/Bad-TestCase-001.yaml | 38 ------------------------ 12 files changed, 236 deletions(-) delete mode 100644 examples/Bad-TestAsset-002.yaml delete mode 100644 examples/Bad-TestAsset-003.yaml delete mode 100644 examples/Bad-TestAsset-004.yaml delete mode 100644 examples/Bad-TestAsset-005.yaml delete mode 100644 examples/Bad-TestAsset-006.yaml delete mode 100644 examples/Bad-TestCase-001.yaml delete mode 100644 src/data/examples/Bad-TestAsset-002.yaml delete mode 100644 src/data/examples/Bad-TestAsset-003.yaml delete mode 100644 src/data/examples/Bad-TestAsset-004.yaml delete mode 100644 src/data/examples/Bad-TestAsset-005.yaml delete mode 100644 src/data/examples/Bad-TestAsset-006.yaml delete mode 100644 src/data/examples/Bad-TestCase-001.yaml diff --git a/examples/Bad-TestAsset-002.yaml b/examples/Bad-TestAsset-002.yaml deleted file mode 100644 index bb16005..0000000 --- a/examples/Bad-TestAsset-002.yaml +++ /dev/null @@ -1,16 +0,0 @@ -# Example TestAsset data object ---- -# TODO: the TestAsset example data needs further elaboration - -# Bad Query 2 - Missing required input_id? - -id: example:TestAsset001 -name: TestAsset001 -description: Fingolimod treats multiple sclerosis -#input_id: PUBCHEM.COMPOUND:107970 -predicate_name: treats -output_id: MONDO:0005301 -expected_output: Acceptable -test_runner_settings: - - "inferred" - - "test" diff --git a/examples/Bad-TestAsset-003.yaml b/examples/Bad-TestAsset-003.yaml deleted file mode 100644 index 5a8f6dc..0000000 --- a/examples/Bad-TestAsset-003.yaml +++ /dev/null @@ -1,16 +0,0 @@ -# Example TestAsset data object ---- -# TODO: the TestAsset example data needs further elaboration - -# Bad Query 3 - Missing required predicate? - -id: example:TestAsset001 -name: TestAsset001 -description: Fingolimod treats multiple sclerosis -input_id: PUBCHEM.COMPOUND:107970 -#predicate_name: treats -output_id: MONDO:0005301 -expected_output: Acceptable -test_runner_settings: - - "inferred" - - "test" diff --git a/examples/Bad-TestAsset-004.yaml b/examples/Bad-TestAsset-004.yaml deleted file mode 100644 index 7c1a41a..0000000 --- a/examples/Bad-TestAsset-004.yaml +++ /dev/null @@ -1,16 +0,0 @@ -# Example TestAsset data object ---- -# TODO: the TestAsset example data needs further elaboration - -# Bad Query 4 - Missing required output_id? - -id: example:TestAsset001 -name: TestAsset001 -description: Fingolimod treats multiple sclerosis -input_id: PUBCHEM.COMPOUND:107970 -predicate_name: treats -#output_id: MONDO:0005301 -expected_output: Acceptable -test_runner_settings: - - "inferred" - - "test" diff --git a/examples/Bad-TestAsset-005.yaml b/examples/Bad-TestAsset-005.yaml deleted file mode 100644 index a0d29b7..0000000 --- a/examples/Bad-TestAsset-005.yaml +++ /dev/null @@ -1,16 +0,0 @@ -# Example TestAsset data object ---- -# TODO: the TestAsset example data needs further elaboration - -# Bad Query 5 - Missing required output_id? - -id: example:TestAsset001 -name: TestAsset001 -description: Fingolimod treats multiple sclerosis -input_id: PUBCHEM.COMPOUND:107970 -predicate_name: treats -#output_id: MONDO:0005301 -expected_output: Acceptable -test_runner_settings: - - "inferred" - - "test" diff --git a/examples/Bad-TestAsset-006.yaml b/examples/Bad-TestAsset-006.yaml deleted file mode 100644 index 64aa600..0000000 --- a/examples/Bad-TestAsset-006.yaml +++ /dev/null @@ -1,16 +0,0 @@ -# Example TestAsset data object ---- -# TODO: the TestAsset example data needs further elaboration - -# Bad Query 6 - Missing required runner_settings? - -id: example:TestAsset001 -name: TestAsset001 -description: Fingolimod treats multiple sclerosis -input_id: PUBCHEM.COMPOUND:107970 -predicate_name: treats -output_id: MONDO:0005301 -expected_output: Acceptable -#test_runner_settings: -# - "inferred" -# - "test" diff --git a/examples/Bad-TestCase-001.yaml b/examples/Bad-TestCase-001.yaml deleted file mode 100644 index 11babb4..0000000 --- a/examples/Bad-TestCase-001.yaml +++ /dev/null @@ -1,38 +0,0 @@ -# Example TestCase data object ---- -# TODO: the TestCase example data needs further elaboration -# -# TestCase: -# description: >- -# Represents a single enumerated instance of Test Case, derived from a -# given collection of one or more TestAsset instances (the value of the -# 'test_assets' slot) which define the 'inputs' and 'outputs' of the -# TestCase, used to probe a particular test condition. -# is_a: TestEntity -# slots: -# - test_env -# - test_case_type -# - query_type -# - test_assets -# - preconditions -# slot_usage: -# test_case_type: -# description: >- -# Is this valid or even necessary with the class names already -# available from classes of 'test_assets' used (seems redundant?) -# test_assets: -# aliases: ["Block List"] -# description: >- -# One or more 'tags' slot values (inherited from TestEntity) -# should generally be defined as filters to specify TestAsset -# membership in 'test_assets' slot ("Block List") collection. -# tags: -# description: >- -# One or more 'tags' slot values (inherited from TestEntity) should generally -# be defined as filters to specify TestAsset membership in a "Block List" collection. -# -# Bad Query 1 - Missing required identifier? - -# id: id: example:TestCase001 -name: foo bar -description: This is a test case diff --git a/src/data/examples/Bad-TestAsset-002.yaml b/src/data/examples/Bad-TestAsset-002.yaml deleted file mode 100644 index bb16005..0000000 --- a/src/data/examples/Bad-TestAsset-002.yaml +++ /dev/null @@ -1,16 +0,0 @@ -# Example TestAsset data object ---- -# TODO: the TestAsset example data needs further elaboration - -# Bad Query 2 - Missing required input_id? - -id: example:TestAsset001 -name: TestAsset001 -description: Fingolimod treats multiple sclerosis -#input_id: PUBCHEM.COMPOUND:107970 -predicate_name: treats -output_id: MONDO:0005301 -expected_output: Acceptable -test_runner_settings: - - "inferred" - - "test" diff --git a/src/data/examples/Bad-TestAsset-003.yaml b/src/data/examples/Bad-TestAsset-003.yaml deleted file mode 100644 index 5a8f6dc..0000000 --- a/src/data/examples/Bad-TestAsset-003.yaml +++ /dev/null @@ -1,16 +0,0 @@ -# Example TestAsset data object ---- -# TODO: the TestAsset example data needs further elaboration - -# Bad Query 3 - Missing required predicate? - -id: example:TestAsset001 -name: TestAsset001 -description: Fingolimod treats multiple sclerosis -input_id: PUBCHEM.COMPOUND:107970 -#predicate_name: treats -output_id: MONDO:0005301 -expected_output: Acceptable -test_runner_settings: - - "inferred" - - "test" diff --git a/src/data/examples/Bad-TestAsset-004.yaml b/src/data/examples/Bad-TestAsset-004.yaml deleted file mode 100644 index 7c1a41a..0000000 --- a/src/data/examples/Bad-TestAsset-004.yaml +++ /dev/null @@ -1,16 +0,0 @@ -# Example TestAsset data object ---- -# TODO: the TestAsset example data needs further elaboration - -# Bad Query 4 - Missing required output_id? - -id: example:TestAsset001 -name: TestAsset001 -description: Fingolimod treats multiple sclerosis -input_id: PUBCHEM.COMPOUND:107970 -predicate_name: treats -#output_id: MONDO:0005301 -expected_output: Acceptable -test_runner_settings: - - "inferred" - - "test" diff --git a/src/data/examples/Bad-TestAsset-005.yaml b/src/data/examples/Bad-TestAsset-005.yaml deleted file mode 100644 index a0d29b7..0000000 --- a/src/data/examples/Bad-TestAsset-005.yaml +++ /dev/null @@ -1,16 +0,0 @@ -# Example TestAsset data object ---- -# TODO: the TestAsset example data needs further elaboration - -# Bad Query 5 - Missing required output_id? - -id: example:TestAsset001 -name: TestAsset001 -description: Fingolimod treats multiple sclerosis -input_id: PUBCHEM.COMPOUND:107970 -predicate_name: treats -#output_id: MONDO:0005301 -expected_output: Acceptable -test_runner_settings: - - "inferred" - - "test" diff --git a/src/data/examples/Bad-TestAsset-006.yaml b/src/data/examples/Bad-TestAsset-006.yaml deleted file mode 100644 index 64aa600..0000000 --- a/src/data/examples/Bad-TestAsset-006.yaml +++ /dev/null @@ -1,16 +0,0 @@ -# Example TestAsset data object ---- -# TODO: the TestAsset example data needs further elaboration - -# Bad Query 6 - Missing required runner_settings? - -id: example:TestAsset001 -name: TestAsset001 -description: Fingolimod treats multiple sclerosis -input_id: PUBCHEM.COMPOUND:107970 -predicate_name: treats -output_id: MONDO:0005301 -expected_output: Acceptable -#test_runner_settings: -# - "inferred" -# - "test" diff --git a/src/data/examples/Bad-TestCase-001.yaml b/src/data/examples/Bad-TestCase-001.yaml deleted file mode 100644 index 11babb4..0000000 --- a/src/data/examples/Bad-TestCase-001.yaml +++ /dev/null @@ -1,38 +0,0 @@ -# Example TestCase data object ---- -# TODO: the TestCase example data needs further elaboration -# -# TestCase: -# description: >- -# Represents a single enumerated instance of Test Case, derived from a -# given collection of one or more TestAsset instances (the value of the -# 'test_assets' slot) which define the 'inputs' and 'outputs' of the -# TestCase, used to probe a particular test condition. -# is_a: TestEntity -# slots: -# - test_env -# - test_case_type -# - query_type -# - test_assets -# - preconditions -# slot_usage: -# test_case_type: -# description: >- -# Is this valid or even necessary with the class names already -# available from classes of 'test_assets' used (seems redundant?) -# test_assets: -# aliases: ["Block List"] -# description: >- -# One or more 'tags' slot values (inherited from TestEntity) -# should generally be defined as filters to specify TestAsset -# membership in 'test_assets' slot ("Block List") collection. -# tags: -# description: >- -# One or more 'tags' slot values (inherited from TestEntity) should generally -# be defined as filters to specify TestAsset membership in a "Block List" collection. -# -# Bad Query 1 - Missing required identifier? - -# id: id: example:TestCase001 -name: foo bar -description: This is a test case From 1c7319e71c2b289dad4aa75967b7e20d845bba6f Mon Sep 17 00:00:00 2001 From: Richard Bruskiewich Date: Thu, 25 Apr 2024 12:52:36 -0700 Subject: [PATCH 4/5] regenerating the project artifacts for good measure --- project/excel/translator_testing_model.xlsx | Bin 18435 -> 18435 bytes .../translator_testing_model.context.jsonld | 2 +- .../jsonld/translator_testing_model.jsonld | 2 +- project/owl/translator_testing_model.owl.ttl | 624 ++++----- .../shacl/translator_testing_model.shacl.ttl | 1244 ++++++++--------- .../datamodel/translator_testing_model.py | 2 +- 6 files changed, 937 insertions(+), 937 deletions(-) diff --git a/project/excel/translator_testing_model.xlsx b/project/excel/translator_testing_model.xlsx index e99fbabcca7173164dd5cefe03e712a0c1afdda4..3e2dcadc74bee08292f4ee22841a7ce67ab85a61 100644 GIT binary patch delta 767 zcmZpkz}P&2kte{LnMH(wfq{d;Hfd0I+A;>&?!bbn4p| zxgt?w(!v=#Hw3cf`}gaA{#1CmGE6o|CA*hNR`cE5IeMFpZ(RFuRmA+XdU22Shgc4} zd(VC`XOCF<_uK6r&obkVWlBDOog3DgIi%;UM;AaqbCBAbKV5Conx%-~=;B%}QR? z$>*I|H(%yG0Tz!Ip99t#C8N4oPSOgbW^Hp*CoZ5qVZscSM`Eh?#4augOuF*!ZRY7~ zya!W{|M>ssW|)@jl04;oN6Zpbx-&2CKBm6%@T|9;O)MT&{eDYp6#fY0-F_j$dwxgr zg8DDZZz*z|3x6>Q-8x|Q&hpmGe3-k&1XOIyZ2ngy*LT~rd>_; z|HJB;kwam_YPO-cMk9uD}UqkeZde zs*}$v>|dax)8Yq`ubos7Y$>0}?TI rg-U`&mb!weHxSC$4a}>8PzT*CLB{-X13TQ*-5SIza(4q!yWBkie}*sD diff --git a/project/jsonld/translator_testing_model.context.jsonld b/project/jsonld/translator_testing_model.context.jsonld index fe0ce81..e8d8a11 100644 --- a/project/jsonld/translator_testing_model.context.jsonld +++ b/project/jsonld/translator_testing_model.context.jsonld @@ -1,7 +1,7 @@ { "comments": { "description": "Auto generated by LinkML jsonld context generator", - "generation_date": "2024-04-25T12:19:45", + "generation_date": "2024-04-25T12:49:11", "source": "translator_testing_model.yaml" }, "@context": { diff --git a/project/jsonld/translator_testing_model.jsonld b/project/jsonld/translator_testing_model.jsonld index ba14591..5c2f25d 100644 --- a/project/jsonld/translator_testing_model.jsonld +++ b/project/jsonld/translator_testing_model.jsonld @@ -2555,7 +2555,7 @@ "source_file": "translator_testing_model.yaml", "source_file_date": "2024-04-25T12:16:22", "source_file_size": 28237, - "generation_date": "2024-04-25T12:19:45", + "generation_date": "2024-04-25T12:49:11", "@type": "SchemaDefinition", "@context": [ "project/jsonld/translator_testing_model.context.jsonld", diff --git a/project/owl/translator_testing_model.owl.ttl b/project/owl/translator_testing_model.owl.ttl index cb9798a..20991b1 100644 --- a/project/owl/translator_testing_model.owl.ttl +++ b/project/owl/translator_testing_model.owl.ttl @@ -66,25 +66,28 @@ ttm:TestRunSession a owl:Class, rdfs:label "TestRunSession" ; rdfs:subClassOf [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty ttm:timestamp ], - [ a owl:Restriction ; - owl:allValuesFrom linkml:Datetime ; - owl:onProperty ttm:timestamp ], + owl:onProperty ttm:test_env ], [ a owl:Restriction ; owl:allValuesFrom ttm:ComponentEnum ; owl:onProperty ttm:components ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty ttm:test_case_results ], + owl:onProperty ttm:test_run_parameters ], [ a owl:Restriction ; - owl:allValuesFrom linkml:String ; - owl:onProperty ttm:test_runner_name ], + owl:allValuesFrom ttm:TestEnvEnum ; + owl:onProperty ttm:test_env ], + [ a owl:Restriction ; + owl:allValuesFrom linkml:Datetime ; + owl:onProperty ttm:timestamp ], [ a owl:Restriction ; owl:minCardinality 0 ; owl:onProperty ttm:test_env ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty ttm:timestamp ], + owl:onProperty ttm:test_case_results ], + [ a owl:Restriction ; + owl:allValuesFrom ttm:TestEntity ; + owl:onProperty ttm:test_entities ], [ a owl:Restriction ; owl:allValuesFrom linkml:String ; owl:onProperty ttm:test_run_parameters ], @@ -92,32 +95,29 @@ ttm:TestRunSession a owl:Class, owl:minCardinality 0 ; owl:onProperty ttm:components ], [ a owl:Restriction ; - owl:allValuesFrom ttm:TestEntity ; - owl:onProperty ttm:test_entities ], + owl:minCardinality 0 ; + owl:onProperty ttm:test_runner_name ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty ttm:test_env ], + owl:onProperty ttm:test_runner_name ], [ a owl:Restriction ; - owl:allValuesFrom ttm:TestEnvEnum ; - owl:onProperty ttm:test_env ], + owl:allValuesFrom linkml:String ; + owl:onProperty ttm:test_runner_name ], [ a owl:Restriction ; - owl:allValuesFrom ttm:TestCaseResult ; - owl:onProperty ttm:test_case_results ], + owl:maxCardinality 1 ; + owl:onProperty ttm:timestamp ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty ttm:test_entities ], - [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty ttm:test_runner_name ], + owl:onProperty ttm:timestamp ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty ttm:test_runner_name ], + owl:onProperty ttm:test_entities ], [ a owl:Restriction ; owl:maxCardinality 1 ; owl:onProperty ttm:test_run_parameters ], [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty ttm:test_run_parameters ], + owl:allValuesFrom ttm:TestCaseResult ; + owl:onProperty ttm:test_case_results ], ttm:TestEntity ; skos:definition "Single run of a TestRunner in a given environment, with a specified set of test_entities (generally, one or more instances of TestSuite)." ; skos:inScheme . @@ -183,95 +183,95 @@ ttm:AcceptanceTestAsset a owl:Class, linkml:ClassDefinition ; rdfs:label "AcceptanceTestAsset" ; rdfs:subClassOf [ a owl:Restriction ; + owl:minCardinality 0 ; + owl:onProperty ttm:answer_informal_concept ], + [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty ttm:scientific_question ], + owl:onProperty ttm:expected_result ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty ttm:must_pass_date ], + owl:onProperty ttm:top_level ], + [ a owl:Restriction ; + owl:maxCardinality 1 ; + owl:onProperty ttm:must_pass_environment ], [ a owl:Restriction ; owl:minCardinality 0 ; owl:onProperty ttm:expected_result ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty ttm:must_pass_environment ], + owl:onProperty ttm:query_node ], [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty ttm:expected_result ], + owl:allValuesFrom linkml:String ; + owl:onProperty ttm:scientific_question ], [ a owl:Restriction ; - owl:minCardinality 0 ; + owl:allValuesFrom ttm:DirectionEnum ; owl:onProperty ttm:direction ], [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty ttm:direction ], + owl:allValuesFrom linkml:Integer ; + owl:onProperty ttm:top_level ], [ a owl:Restriction ; - owl:minCardinality 0 ; + owl:maxCardinality 1 ; owl:onProperty ttm:string_entry ], + [ a owl:Restriction ; + owl:allValuesFrom ttm:NodeEnum ; + owl:onProperty ttm:query_node ], [ a owl:Restriction ; owl:maxCardinality 1 ; owl:onProperty ttm:answer_informal_concept ], [ a owl:Restriction ; - owl:allValuesFrom linkml:String ; - owl:onProperty ttm:notes ], + owl:minCardinality 0 ; + owl:onProperty ttm:must_pass_date ], [ a owl:Restriction ; - owl:maxCardinality 1 ; + owl:minCardinality 0 ; owl:onProperty ttm:notes ], [ a owl:Restriction ; - owl:allValuesFrom linkml:Integer ; - owl:onProperty ttm:top_level ], + owl:maxCardinality 1 ; + owl:onProperty ttm:direction ], [ a owl:Restriction ; owl:allValuesFrom linkml:String ; - owl:onProperty ttm:answer_informal_concept ], + owl:onProperty ttm:string_entry ], + [ a owl:Restriction ; + owl:maxCardinality 1 ; + owl:onProperty ttm:scientific_question ], [ a owl:Restriction ; owl:allValuesFrom ttm:ExpectedResultsEnum ; owl:onProperty ttm:expected_result ], - [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty ttm:notes ], [ a owl:Restriction ; owl:minCardinality 0 ; owl:onProperty ttm:scientific_question ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty ttm:must_pass_date ], - [ a owl:Restriction ; - owl:allValuesFrom linkml:String ; owl:onProperty ttm:string_entry ], - [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty ttm:query_node ], - [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty ttm:answer_informal_concept ], [ a owl:Restriction ; owl:allValuesFrom linkml:Date ; owl:onProperty ttm:must_pass_date ], [ a owl:Restriction ; - owl:maxCardinality 1 ; + owl:allValuesFrom ttm:TestEnvEnum ; owl:onProperty ttm:must_pass_environment ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty ttm:top_level ], + owl:onProperty ttm:direction ], + [ a owl:Restriction ; + owl:allValuesFrom linkml:String ; + owl:onProperty ttm:notes ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty ttm:top_level ], + owl:onProperty ttm:query_node ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty ttm:string_entry ], + owl:onProperty ttm:notes ], [ a owl:Restriction ; - owl:allValuesFrom ttm:DirectionEnum ; - owl:onProperty ttm:direction ], + owl:minCardinality 0 ; + owl:onProperty ttm:top_level ], [ a owl:Restriction ; - owl:allValuesFrom linkml:String ; - owl:onProperty ttm:scientific_question ], + owl:maxCardinality 1 ; + owl:onProperty ttm:must_pass_date ], [ a owl:Restriction ; - owl:allValuesFrom ttm:TestEnvEnum ; + owl:minCardinality 0 ; owl:onProperty ttm:must_pass_environment ], [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty ttm:query_node ], - [ a owl:Restriction ; - owl:allValuesFrom ttm:NodeEnum ; - owl:onProperty ttm:query_node ], + owl:allValuesFrom linkml:String ; + owl:onProperty ttm:answer_informal_concept ], ttm:TestAsset ; skos:definition "Model derived from Jenn's test asset design and Shervin's runner JSON here as an example." ; skos:inScheme . @@ -287,6 +287,9 @@ ttm:TestOutput a owl:Class, rdfs:subClassOf [ a owl:Restriction ; owl:minCardinality 0 ; owl:onProperty ttm:pks ], + [ a owl:Restriction ; + owl:minCardinality 0 ; + owl:onProperty ttm:test_case_id ], [ a owl:Restriction ; owl:allValuesFrom ttm:TestResultPKSet ; owl:onProperty ttm:pks ], @@ -296,9 +299,6 @@ ttm:TestOutput a owl:Class, [ a owl:Restriction ; owl:allValuesFrom linkml:String ; owl:onProperty ttm:test_case_id ], - [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty ttm:test_case_id ], ttm:TestEntity ; skos:definition "The output of a TestRunner run of one specific TestCase." ; skos:inScheme . @@ -399,32 +399,32 @@ ttm:TestCaseResult a owl:Class, linkml:ClassDefinition ; rdfs:label "TestCaseResult" ; rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom ttm:TestCaseResultEnum ; - owl:onProperty ttm:test_case_result ], + owl:allValuesFrom ttm:TestCase ; + owl:onProperty ttm:test_case ], [ a owl:Restriction ; owl:maxCardinality 1 ; owl:onProperty ttm:test_suite_id ], [ a owl:Restriction ; - owl:allValuesFrom ttm:TestCase ; - owl:onProperty ttm:test_case ], + owl:maxCardinality 1 ; + owl:onProperty ttm:test_case_result ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty ttm:test_case_result ], + owl:onProperty ttm:test_suite_id ], [ a owl:Restriction ; owl:allValuesFrom linkml:Uriorcurie ; owl:onProperty ttm:test_suite_id ], [ a owl:Restriction ; - owl:minCardinality 0 ; + owl:maxCardinality 1 ; owl:onProperty ttm:test_case ], [ a owl:Restriction ; - owl:maxCardinality 1 ; + owl:allValuesFrom ttm:TestCaseResultEnum ; owl:onProperty ttm:test_case_result ], [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty ttm:test_case ], + owl:minCardinality 0 ; + owl:onProperty ttm:test_case_result ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty ttm:test_suite_id ], + owl:onProperty ttm:test_case ], ttm:TestEntity ; skos:definition "The outcome of a TestRunner run of one specific TestCase." ; skos:inScheme . @@ -448,23 +448,23 @@ ttm:TestEntityParameter a owl:Class, linkml:ClassDefinition ; rdfs:label "TestEntityParameter" ; rdfs:subClassOf [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty ttm:value ], - [ a owl:Restriction ; - owl:maxCardinality 1 ; + owl:minCardinality 0 ; owl:onProperty ttm:parameter ], [ a owl:Restriction ; - owl:allValuesFrom linkml:String ; + owl:minCardinality 0 ; owl:onProperty ttm:value ], [ a owl:Restriction ; owl:allValuesFrom linkml:String ; owl:onProperty ttm:parameter ], [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty ttm:parameter ], + owl:maxCardinality 1 ; + owl:onProperty ttm:value ], [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty ttm:value ] ; + owl:allValuesFrom linkml:String ; + owl:onProperty ttm:value ], + [ a owl:Restriction ; + owl:maxCardinality 1 ; + owl:onProperty ttm:parameter ] ; skos:definition "A single 'tag = value' pair (where 'value' is a simple string)." ; skos:inScheme . @@ -567,68 +567,68 @@ ttm:TestResultPKSet a owl:Class, linkml:ClassDefinition ; rdfs:label "TestResultPKSet" ; rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom linkml:String ; - owl:onProperty ttm:improving ], - [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty ttm:improving ], + owl:onProperty ttm:merged_pk ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty ttm:arax ], + owl:onProperty ttm:bte ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty ttm:parent_pk ], + owl:onProperty ttm:improving ], [ a owl:Restriction ; - owl:allValuesFrom linkml:String ; - owl:onProperty ttm:merged_pk ], + owl:minCardinality 0 ; + owl:onProperty ttm:unsecret ], [ a owl:Restriction ; - owl:allValuesFrom linkml:String ; - owl:onProperty ttm:bte ], + owl:minCardinality 0 ; + owl:onProperty ttm:parent_pk ], [ a owl:Restriction ; owl:minCardinality 0 ; + owl:onProperty ttm:improving ], + [ a owl:Restriction ; + owl:maxCardinality 1 ; + owl:onProperty ttm:aragorn ], + [ a owl:Restriction ; + owl:maxCardinality 1 ; owl:onProperty ttm:merged_pk ], [ a owl:Restriction ; - owl:allValuesFrom linkml:String ; - owl:onProperty ttm:unsecret ], + owl:minCardinality 0 ; + owl:onProperty ttm:arax ], [ a owl:Restriction ; owl:maxCardinality 1 ; owl:onProperty ttm:unsecret ], [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty ttm:merged_pk ], + owl:allValuesFrom linkml:String ; + owl:onProperty ttm:improving ], [ a owl:Restriction ; owl:allValuesFrom linkml:String ; - owl:onProperty ttm:aragorn ], + owl:onProperty ttm:merged_pk ], [ a owl:Restriction ; - owl:minCardinality 0 ; + owl:allValuesFrom linkml:String ; owl:onProperty ttm:unsecret ], [ a owl:Restriction ; - owl:maxCardinality 1 ; + owl:minCardinality 0 ; owl:onProperty ttm:bte ], [ a owl:Restriction ; - owl:minCardinality 0 ; + owl:allValuesFrom linkml:String ; owl:onProperty ttm:arax ], [ a owl:Restriction ; - owl:minCardinality 0 ; + owl:allValuesFrom linkml:String ; + owl:onProperty ttm:bte ], + [ a owl:Restriction ; + owl:allValuesFrom linkml:String ; owl:onProperty ttm:aragorn ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty ttm:aragorn ], + owl:onProperty ttm:parent_pk ], [ a owl:Restriction ; owl:allValuesFrom linkml:String ; - owl:onProperty ttm:arax ], - [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty ttm:bte ], + owl:onProperty ttm:parent_pk ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty ttm:parent_pk ], + owl:onProperty ttm:aragorn ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty ttm:improving ], - [ a owl:Restriction ; - owl:allValuesFrom linkml:String ; - owl:onProperty ttm:parent_pk ], + owl:onProperty ttm:arax ], ttm:TestEntity ; skos:definition "Primary keys for a given ARA result set from a SmokeTest result for a given TestCase." ; skos:inScheme . @@ -668,20 +668,20 @@ ttm:TestSuiteSpecification a owl:Class, linkml:ClassDefinition ; rdfs:label "TestSuiteSpecification" ; rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom linkml:Uriorcurie ; + owl:minCardinality 0 ; owl:onProperty ttm:test_data_file_locator ], [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty ttm:test_data_file_format ], + owl:maxCardinality 1 ; + owl:onProperty ttm:test_data_file_locator ], + [ a owl:Restriction ; + owl:allValuesFrom linkml:Uriorcurie ; + owl:onProperty ttm:test_data_file_locator ], [ a owl:Restriction ; owl:allValuesFrom ttm:FileFormatEnum ; owl:onProperty ttm:test_data_file_format ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty ttm:test_data_file_locator ], - [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty ttm:test_data_file_locator ], + owl:onProperty ttm:test_data_file_format ], [ a owl:Restriction ; owl:maxCardinality 1 ; owl:onProperty ttm:test_data_file_format ], @@ -774,6 +774,9 @@ ttm:Qualifier a owl:Class, linkml:ClassDefinition ; rdfs:label "Qualifier" ; rdfs:subClassOf [ a owl:Restriction ; + owl:minCardinality 0 ; + owl:onProperty ttm:value ], + [ a owl:Restriction ; owl:allValuesFrom linkml:String ; owl:onProperty ttm:value ], [ a owl:Restriction ; @@ -783,14 +786,11 @@ ttm:Qualifier a owl:Class, owl:maxCardinality 1 ; owl:onProperty ttm:parameter ], [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty ttm:value ], + owl:allValuesFrom linkml:String ; + owl:onProperty ttm:parameter ], [ a owl:Restriction ; owl:maxCardinality 1 ; owl:onProperty ttm:value ], - [ a owl:Restriction ; - owl:allValuesFrom linkml:String ; - owl:onProperty ttm:parameter ], ttm:TestEntityParameter ; skos:inScheme . @@ -798,41 +798,41 @@ ttm:TestMetadata a owl:Class, linkml:ClassDefinition ; rdfs:label "TestMetadata" ; rdfs:subClassOf [ a owl:Restriction ; - owl:minCardinality 0 ; + owl:maxCardinality 1 ; + owl:onProperty ttm:test_reference ], + [ a owl:Restriction ; + owl:allValuesFrom linkml:String ; owl:onProperty ttm:test_annotations ], [ a owl:Restriction ; - owl:allValuesFrom ttm:TestSourceEnum ; - owl:onProperty ttm:test_source ], - [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty ttm:test_source ], + owl:allValuesFrom ttm:TestObjectiveEnum ; + owl:onProperty ttm:test_objective ], [ a owl:Restriction ; owl:minCardinality 0 ; owl:onProperty ttm:test_objective ], + [ a owl:Restriction ; + owl:maxCardinality 1 ; + owl:onProperty ttm:test_annotations ], [ a owl:Restriction ; owl:minCardinality 0 ; owl:onProperty ttm:test_reference ], - [ a owl:Restriction ; - owl:allValuesFrom linkml:String ; - owl:onProperty ttm:test_annotations ], [ a owl:Restriction ; owl:allValuesFrom linkml:Uriorcurie ; owl:onProperty ttm:test_reference ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty ttm:test_annotations ], + owl:onProperty ttm:test_source ], [ a owl:Restriction ; - owl:allValuesFrom ttm:TestObjectiveEnum ; + owl:maxCardinality 1 ; owl:onProperty ttm:test_objective ], [ a owl:Restriction ; - owl:minCardinality 0 ; + owl:allValuesFrom ttm:TestSourceEnum ; owl:onProperty ttm:test_source ], [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty ttm:test_reference ], + owl:minCardinality 0 ; + owl:onProperty ttm:test_annotations ], [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty ttm:test_objective ], + owl:minCardinality 0 ; + owl:onProperty ttm:test_source ], ttm:TestEntity ; skos:definition "Represents metadata related to (external SME, SMURF, Translator feedback, large scale batch, etc.) like the provenance of test assets, cases and/or suites." ; skos:inScheme . @@ -847,37 +847,37 @@ ttm:TestSuite a owl:Class, rdfs:label "TestSuite" ; rdfs:subClassOf [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty ttm:test_persona ], + owl:onProperty ttm:test_suite_specification ], [ a owl:Restriction ; owl:maxCardinality 1 ; owl:onProperty ttm:test_metadata ], [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty ttm:test_metadata ], + owl:allValuesFrom ttm:TestCase ; + owl:onProperty ttm:test_cases ], [ a owl:Restriction ; owl:maxCardinality 1 ; owl:onProperty ttm:test_persona ], - [ a owl:Restriction ; - owl:allValuesFrom ttm:TestPersonaEnum ; - owl:onProperty ttm:test_persona ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty ttm:test_suite_specification ], + owl:onProperty ttm:test_cases ], [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty ttm:test_suite_specification ], + owl:allValuesFrom ttm:TestPersonaEnum ; + owl:onProperty ttm:test_persona ], [ a owl:Restriction ; - owl:allValuesFrom ttm:TestCase ; - owl:onProperty ttm:test_cases ], + owl:allValuesFrom ttm:TestMetadata ; + owl:onProperty ttm:test_metadata ], [ a owl:Restriction ; owl:allValuesFrom ttm:TestSuiteSpecification ; owl:onProperty ttm:test_suite_specification ], [ a owl:Restriction ; - owl:allValuesFrom ttm:TestMetadata ; + owl:minCardinality 0 ; owl:onProperty ttm:test_metadata ], + [ a owl:Restriction ; + owl:maxCardinality 1 ; + owl:onProperty ttm:test_suite_specification ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty ttm:test_cases ], + owl:onProperty ttm:test_persona ], ttm:TestEntity ; skos:definition "Specification of a set of Test Cases, one of either with a static list of 'test_cases' or a dynamic 'test_suite_specification' slot values. Note: at least one slot or the other, but generally not both(?) needs to be present." ; skos:inScheme . @@ -1242,173 +1242,173 @@ ttm:TestAsset a owl:Class, owl:maxCardinality 1 ; owl:onProperty ttm:predicate_id ], [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty ttm:test_reference ], - [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty ttm:output_category ], + owl:minCardinality 1 ; + owl:onProperty ttm:id ], [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty ttm:output_category ], + owl:allValuesFrom linkml:Boolean ; + owl:onProperty ttm:well_known ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty ttm:tags ], + owl:onProperty ttm:semantic_severity ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty ttm:association ], + owl:onProperty ttm:test_metadata ], [ a owl:Restriction ; - owl:allValuesFrom linkml:String ; - owl:onProperty ttm:tags ], + owl:allValuesFrom ttm:TestIssueEnum ; + owl:onProperty ttm:test_issue ], [ a owl:Restriction ; - owl:allValuesFrom ttm:Qualifier ; - owl:onProperty ttm:qualifiers ], + owl:allValuesFrom linkml:Boolean ; + owl:onProperty ttm:in_v1 ], [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty ttm:input_category ], + owl:minCardinality 0 ; + owl:onProperty ttm:predicate_id ], [ a owl:Restriction ; - owl:allValuesFrom linkml:Boolean ; - owl:onProperty ttm:well_known ], + owl:minCardinality 0 ; + owl:onProperty ttm:test_reference ], [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty ttm:id ], + owl:allValuesFrom linkml:Uriorcurie ; + owl:onProperty ttm:test_reference ], [ a owl:Restriction ; owl:minCardinality 0 ; + owl:onProperty ttm:expected_output ], + [ a owl:Restriction ; + owl:allValuesFrom ttm:predicate_type ; owl:onProperty ttm:predicate_id ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty ttm:test_runner_settings ], - [ a owl:Restriction ; - owl:allValuesFrom ttm:TestIssueEnum ; owl:onProperty ttm:test_issue ], [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty ttm:in_v1 ], + owl:allValuesFrom linkml:String ; + owl:onProperty ttm:test_runner_settings ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty ttm:input_id ], + owl:onProperty ttm:input_category ], [ a owl:Restriction ; owl:maxCardinality 1 ; owl:onProperty ttm:input_id ], [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty ttm:test_issue ], + owl:minCardinality 0 ; + owl:onProperty ttm:output_id ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty ttm:semantic_severity ], + owl:onProperty ttm:input_id ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty ttm:semantic_severity ], + owl:onProperty ttm:well_known ], + [ a owl:Restriction ; + owl:allValuesFrom linkml:String ; + owl:onProperty ttm:tags ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty ttm:well_known ], + owl:onProperty ttm:association ], [ a owl:Restriction ; owl:minCardinality 0 ; + owl:onProperty ttm:test_runner_settings ], + [ a owl:Restriction ; + owl:allValuesFrom linkml:String ; owl:onProperty ttm:input_name ], [ a owl:Restriction ; owl:minCardinality 0 ; owl:onProperty ttm:output_name ], [ a owl:Restriction ; - owl:minCardinality 1 ; - owl:onProperty ttm:id ], - [ a owl:Restriction ; - owl:allValuesFrom linkml:String ; - owl:onProperty ttm:predicate_name ], + owl:maxCardinality 1 ; + owl:onProperty ttm:output_name ], [ a owl:Restriction ; - owl:allValuesFrom ttm:predicate_type ; - owl:onProperty ttm:predicate_id ], + owl:maxCardinality 1 ; + owl:onProperty ttm:output_category ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty ttm:association ], + owl:onProperty ttm:input_name ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty ttm:qualifiers ], + owl:onProperty ttm:in_v1 ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty ttm:in_v1 ], + owl:onProperty ttm:semantic_severity ], [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty ttm:input_category ], + owl:maxCardinality 1 ; + owl:onProperty ttm:id ], [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty ttm:test_metadata ], + owl:allValuesFrom ttm:SemanticSeverityEnum ; + owl:onProperty ttm:semantic_severity ], [ a owl:Restriction ; - owl:allValuesFrom linkml:String ; - owl:onProperty ttm:output_name ], + owl:maxCardinality 1 ; + owl:onProperty ttm:test_issue ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty ttm:test_reference ], + owl:onProperty ttm:qualifiers ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty ttm:predicate_name ], - [ a owl:Restriction ; - owl:minCardinality 0 ; owl:onProperty ttm:expected_output ], [ a owl:Restriction ; owl:allValuesFrom linkml:String ; - owl:onProperty ttm:expected_output ], + owl:onProperty ttm:output_name ], [ a owl:Restriction ; - owl:allValuesFrom ttm:SemanticSeverityEnum ; - owl:onProperty ttm:semantic_severity ], + owl:allValuesFrom ttm:Qualifier ; + owl:onProperty ttm:qualifiers ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty ttm:expected_output ], + owl:onProperty ttm:output_id ], [ a owl:Restriction ; - owl:allValuesFrom ttm:TestMetadata ; + owl:minCardinality 0 ; + owl:onProperty ttm:predicate_name ], + [ a owl:Restriction ; + owl:maxCardinality 1 ; owl:onProperty ttm:test_metadata ], + [ a owl:Restriction ; + owl:minCardinality 0 ; + owl:onProperty ttm:tags ], + [ a owl:Restriction ; + owl:maxCardinality 1 ; + owl:onProperty ttm:test_reference ], [ a owl:Restriction ; owl:allValuesFrom ttm:concept_category ; owl:onProperty ttm:input_category ], - [ a owl:Restriction ; - owl:allValuesFrom linkml:Uriorcurie ; - owl:onProperty ttm:id ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty ttm:output_id ], + owl:onProperty ttm:in_v1 ], [ a owl:Restriction ; - owl:allValuesFrom linkml:String ; - owl:onProperty ttm:input_name ], + owl:allValuesFrom ttm:concept_category ; + owl:onProperty ttm:output_category ], [ a owl:Restriction ; - owl:allValuesFrom ttm:association_category ; - owl:onProperty ttm:association ], + owl:allValuesFrom linkml:String ; + owl:onProperty ttm:expected_output ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty ttm:output_id ], + owl:onProperty ttm:output_category ], [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty ttm:predicate_name ], + owl:allValuesFrom ttm:association_category ; + owl:onProperty ttm:association ], [ a owl:Restriction ; - owl:allValuesFrom linkml:Boolean ; - owl:onProperty ttm:in_v1 ], + owl:maxCardinality 1 ; + owl:onProperty ttm:input_category ], [ a owl:Restriction ; - owl:allValuesFrom linkml:Uriorcurie ; - owl:onProperty ttm:input_id ], + owl:allValuesFrom ttm:TestMetadata ; + owl:onProperty ttm:test_metadata ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty ttm:test_issue ], - [ a owl:Restriction ; - owl:maxCardinality 1 ; owl:onProperty ttm:well_known ], - [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty ttm:input_name ], - [ a owl:Restriction ; - owl:allValuesFrom linkml:String ; - owl:onProperty ttm:test_runner_settings ], [ a owl:Restriction ; owl:allValuesFrom linkml:Uriorcurie ; owl:onProperty ttm:output_id ], + [ a owl:Restriction ; + owl:maxCardinality 1 ; + owl:onProperty ttm:predicate_name ], [ a owl:Restriction ; owl:allValuesFrom linkml:Uriorcurie ; - owl:onProperty ttm:test_reference ], + owl:onProperty ttm:id ], [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty ttm:test_metadata ], + owl:allValuesFrom linkml:Uriorcurie ; + owl:onProperty ttm:input_id ], [ a owl:Restriction ; - owl:allValuesFrom ttm:concept_category ; - owl:onProperty ttm:output_category ], + owl:allValuesFrom linkml:String ; + owl:onProperty ttm:predicate_name ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty ttm:output_name ], + owl:onProperty ttm:association ], + [ a owl:Restriction ; + owl:minCardinality 0 ; + owl:onProperty ttm:input_name ], ttm:TestEntity ; skos:definition "Represents a Test Asset, which is a single specific instance of TestCase-agnostic semantic parameters representing the specification of a Translator test target with inputs and (expected) outputs." ; skos:inScheme . @@ -1464,125 +1464,125 @@ ttm:TestCase a owl:Class, linkml:ClassDefinition ; rdfs:label "TestCase" ; rdfs:subClassOf [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty ttm:tags ], + owl:allValuesFrom ttm:TestEnvEnum ; + owl:onProperty ttm:test_env ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty ttm:query_type ], - [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty ttm:test_case_input_id ], - [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty ttm:qualifiers ], - [ a owl:Restriction ; - owl:allValuesFrom ttm:Qualifier ; - owl:onProperty ttm:qualifiers ], - [ a owl:Restriction ; - owl:allValuesFrom linkml:String ; owl:onProperty ttm:test_case_predicate_name ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty ttm:test_case_predicate_id ], + owl:onProperty ttm:test_case_predicate_name ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty ttm:components ], - [ a owl:Restriction ; - owl:allValuesFrom ttm:TestSourceEnum ; - owl:onProperty ttm:test_case_source ], + owl:onProperty ttm:test_case_objective ], [ a owl:Restriction ; - owl:allValuesFrom linkml:String ; - owl:onProperty ttm:tags ], + owl:allValuesFrom ttm:TestObjectiveEnum ; + owl:onProperty ttm:test_case_objective ], [ a owl:Restriction ; owl:maxCardinality 1 ; owl:onProperty ttm:test_case_input_id ], [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty ttm:test_case_source ], - [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty ttm:trapi_template ], - [ a owl:Restriction ; - owl:allValuesFrom linkml:Uriorcurie ; - owl:onProperty ttm:test_case_input_id ], + owl:allValuesFrom ttm:concept_category ; + owl:onProperty ttm:output_category ], [ a owl:Restriction ; owl:allValuesFrom ttm:Precondition ; owl:onProperty ttm:preconditions ], [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty ttm:output_category ], + owl:minCardinality 0 ; + owl:onProperty ttm:qualifiers ], [ a owl:Restriction ; - owl:allValuesFrom ttm:TestEnvEnum ; + owl:minCardinality 0 ; + owl:onProperty ttm:test_case_predicate_id ], + [ a owl:Restriction ; + owl:minCardinality 0 ; owl:onProperty ttm:test_env ], [ a owl:Restriction ; - owl:maxCardinality 1 ; + owl:minCardinality 0 ; + owl:onProperty ttm:preconditions ], + [ a owl:Restriction ; + owl:minCardinality 0 ; owl:onProperty ttm:input_category ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty ttm:test_case_objective ], + owl:onProperty ttm:test_case_source ], [ a owl:Restriction ; - owl:allValuesFrom ttm:concept_category ; - owl:onProperty ttm:output_category ], + owl:allValuesFrom ttm:TestSourceEnum ; + owl:onProperty ttm:test_case_source ], [ a owl:Restriction ; owl:allValuesFrom ttm:QueryTypeEnum ; owl:onProperty ttm:query_type ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty ttm:input_category ], + owl:onProperty ttm:components ], + [ a owl:Restriction ; + owl:allValuesFrom ttm:Qualifier ; + owl:onProperty ttm:qualifiers ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty ttm:test_env ], + owl:onProperty ttm:test_case_input_id ], + [ a owl:Restriction ; + owl:allValuesFrom linkml:String ; + owl:onProperty ttm:test_case_predicate_id ], [ a owl:Restriction ; owl:minCardinality 1 ; owl:onProperty ttm:test_assets ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty ttm:output_category ], - [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty ttm:test_case_source ], + owl:onProperty ttm:trapi_template ], [ a owl:Restriction ; - owl:allValuesFrom linkml:String ; - owl:onProperty ttm:test_case_predicate_id ], + owl:allValuesFrom linkml:Uriorcurie ; + owl:onProperty ttm:test_case_input_id ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty ttm:test_case_predicate_id ], + owl:onProperty ttm:output_category ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty ttm:test_case_predicate_name ], + owl:onProperty ttm:test_case_predicate_id ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty ttm:test_case_predicate_name ], - [ a owl:Restriction ; - owl:allValuesFrom ttm:ComponentEnum ; - owl:onProperty ttm:components ], + owl:onProperty ttm:tags ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty ttm:test_case_objective ], + owl:onProperty ttm:query_type ], [ a owl:Restriction ; owl:minCardinality 0 ; owl:onProperty ttm:query_type ], + [ a owl:Restriction ; + owl:allValuesFrom ttm:TestAsset ; + owl:onProperty ttm:test_assets ], [ a owl:Restriction ; owl:maxCardinality 1 ; owl:onProperty ttm:trapi_template ], + [ a owl:Restriction ; + owl:allValuesFrom linkml:String ; + owl:onProperty ttm:test_case_predicate_name ], + [ a owl:Restriction ; + owl:minCardinality 0 ; + owl:onProperty ttm:output_category ], [ a owl:Restriction ; owl:maxCardinality 1 ; owl:onProperty ttm:test_env ], [ a owl:Restriction ; - owl:allValuesFrom ttm:TestObjectiveEnum ; + owl:maxCardinality 1 ; owl:onProperty ttm:test_case_objective ], [ a owl:Restriction ; - owl:allValuesFrom ttm:TestAsset ; - owl:onProperty ttm:test_assets ], + owl:maxCardinality 1 ; + owl:onProperty ttm:test_case_source ], [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty ttm:preconditions ], + owl:allValuesFrom ttm:TrapiTemplateEnum ; + owl:onProperty ttm:trapi_template ], [ a owl:Restriction ; owl:allValuesFrom ttm:concept_category ; owl:onProperty ttm:input_category ], [ a owl:Restriction ; - owl:allValuesFrom ttm:TrapiTemplateEnum ; - owl:onProperty ttm:trapi_template ], + owl:allValuesFrom linkml:String ; + owl:onProperty ttm:tags ], + [ a owl:Restriction ; + owl:maxCardinality 1 ; + owl:onProperty ttm:input_category ], + [ a owl:Restriction ; + owl:allValuesFrom ttm:ComponentEnum ; + owl:onProperty ttm:components ], ttm:TestEntity ; skos:definition "Represents a single enumerated instance of Test Case, derived from a given collection of one or more TestAsset instances (the value of the 'test_assets' slot) which define the 'inputs' and 'outputs' of the TestCase, used to probe a particular test condition." ; skos:inScheme . @@ -1694,29 +1694,23 @@ ttm:TestEntity a owl:Class, linkml:ClassDefinition ; rdfs:label "TestEntity" ; rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom linkml:String ; - owl:onProperty ttm:tags ], - [ a owl:Restriction ; - owl:allValuesFrom linkml:String ; - owl:onProperty ttm:test_runner_settings ], - [ a owl:Restriction ; owl:maxCardinality 1 ; owl:onProperty ttm:description ], [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty ttm:id ], + owl:minCardinality 0 ; + owl:onProperty ttm:test_runner_settings ], [ a owl:Restriction ; owl:minCardinality 1 ; owl:onProperty ttm:id ], - [ a owl:Restriction ; - owl:allValuesFrom linkml:String ; - owl:onProperty ttm:name ], [ a owl:Restriction ; owl:minCardinality 0 ; owl:onProperty ttm:name ], [ a owl:Restriction ; owl:minCardinality 0 ; owl:onProperty ttm:tags ], + [ a owl:Restriction ; + owl:allValuesFrom linkml:String ; + owl:onProperty ttm:test_runner_settings ], [ a owl:Restriction ; owl:allValuesFrom linkml:String ; owl:onProperty ttm:description ], @@ -1724,14 +1718,20 @@ ttm:TestEntity a owl:Class, owl:maxCardinality 1 ; owl:onProperty ttm:name ], [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty ttm:test_runner_settings ], + owl:maxCardinality 1 ; + owl:onProperty ttm:id ], [ a owl:Restriction ; owl:allValuesFrom linkml:Uriorcurie ; owl:onProperty ttm:id ], + [ a owl:Restriction ; + owl:allValuesFrom linkml:String ; + owl:onProperty ttm:tags ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty ttm:description ] ; + owl:onProperty ttm:description ], + [ a owl:Restriction ; + owl:allValuesFrom linkml:String ; + owl:onProperty ttm:name ] ; skos:definition "Abstract global 'identification' class shared as a parent with all major model classes within the data model for Translator testing." ; skos:inScheme . diff --git a/project/shacl/translator_testing_model.shacl.ttl b/project/shacl/translator_testing_model.shacl.ttl index fe2e0c4..3063659 100644 --- a/project/shacl/translator_testing_model.shacl.ttl +++ b/project/shacl/translator_testing_model.shacl.ttl @@ -8,119 +8,119 @@ ttm:AcceptanceTestCase a sh:NodeShape ; sh:closed true ; sh:description "See AcceptanceTestAsset above for more details." ; sh:ignoredProperties ( rdf:type ) ; - sh:property [ sh:maxCount 1 ; - sh:order 11 ; - sh:path ttm:output_category ], - [ sh:description "Testing objective behind specified set of test particulars (e.g. acceptance pass/fail; benchmark; quantitative; standards compliance; graph navigation integrity)" ; - sh:in ( "AcceptanceTest" "BenchmarkTest" "QuantitativeTest" "StandardsValidationTest" "OneHopTest" ) ; + sh:property [ sh:description "Type of TestCase query." ; + sh:in ( "treats" ) ; sh:maxCount 1 ; - sh:order 4 ; - sh:path ttm:test_case_objective ], + sh:order 0 ; + sh:path ttm:query_type ], [ sh:description "A unique identifier for a Test Entity" ; sh:maxCount 1 ; sh:minCount 1 ; sh:order 14 ; sh:path schema1:identifier ], + [ sh:description "A template for a query, which can be used to generate a query for a test case. note: the current enumerated values for this slot come from the Benchmarks repo config/benchmarks.json \"templates\" collection and refer to the \"name\" field of each template. Templates themselves are currently stored in the config/[source_name]/templates directory." ; + sh:in ( "ameliorates" "treats" "three_hop" "drug_treats_rare_disease" "drug-to-gene" ) ; + sh:maxCount 1 ; + sh:order 3 ; + sh:path ttm:trapi_template ], [ sh:class ttm:Precondition ; sh:nodeKind sh:IRI ; sh:order 2 ; sh:path ttm:preconditions ], - [ sh:datatype xsd:string ; - sh:description "One or more 'tags' slot values (slot inherited from TestEntity) should generally be defined as filters to specify TestAsset membership in a \"Block List\" collection." ; - sh:order 17 ; - sh:path schema1:additionalType ], + [ sh:description "Deployment environment within which the associated TestSuite is run." ; + sh:in ( "dev" "ci" "test" "prod" ) ; + sh:maxCount 1 ; + sh:order 13 ; + sh:path ttm:test_env ], + [ sh:maxCount 1 ; + sh:order 11 ; + sh:path ttm:output_category ], [ sh:datatype xsd:string ; sh:maxCount 1 ; - sh:order 6 ; - sh:path ttm:test_case_predicate_name ], + sh:order 7 ; + sh:path ttm:test_case_predicate_id ], [ sh:class ttm:Qualifier ; sh:description "Optional qualifiers which constrain to the test asset defined knowledge statement. Note that this field records such qualifier slots and values as tag=value pairs, where the tag is the Biolink Model qualifier slot named and the value is an acceptable (Biolink Model enum?) value of the said qualifier slot." ; sh:nodeKind sh:BlankNodeOrIRI ; sh:order 9 ; sh:path ttm:qualifiers ], - [ sh:description "Type of TestCase query." ; - sh:in ( "treats" ) ; - sh:maxCount 1 ; - sh:order 0 ; - sh:path ttm:query_type ], - [ sh:datatype xsd:string ; - sh:description "Scalar parameters for the TestRunner processing a given TestEntity." ; - sh:order 18 ; - sh:path ttm:test_runner_settings ], - [ sh:datatype xsd:string ; - sh:maxCount 1 ; - sh:order 7 ; - sh:path ttm:test_case_predicate_id ], [ sh:datatype xsd:string ; sh:description "A human-readable name for a Test Entity" ; sh:maxCount 1 ; sh:order 15 ; sh:path schema1:name ], - [ sh:description "The component that this test case is intended to run against. Most often this is the ARS for acceptance tests, but for the Benchmarks repo integration, this can also be individual components of the system like Aragorn, or ARAX." ; - sh:in [ rdf:rest () ] ; - sh:order 12 ; - sh:path ttm:components ], - [ sh:maxCount 1 ; - sh:order 10 ; - sh:path ttm:input_category ], - [ sh:maxCount 1 ; - sh:order 8 ; - sh:path ttm:test_case_input_id ], - [ sh:description "Provenance of a specific set of test assets, cases and/or suites. Or, the person who cares about this, know about this. We would like this to be an ORCID eventually, but currently it is just a string." ; - sh:in ( "SME" "SMURF" "GitHubUserFeedback" "TACT" "BenchMark" "TranslatorTeam" "TestDataLocation" ) ; - sh:maxCount 1 ; - sh:order 5 ; - sh:path ttm:test_case_source ], [ sh:datatype xsd:string ; sh:description "A human-readable description for a Test Entity" ; sh:maxCount 1 ; sh:order 16 ; sh:path schema1:description ], + [ sh:datatype xsd:string ; + sh:maxCount 1 ; + sh:order 6 ; + sh:path ttm:test_case_predicate_name ], [ sh:class ttm:AcceptanceTestAsset ; sh:description "One or more 'tags' slot values (inherited from TestEntity) should generally be defined as filters to specify TestAsset membership in 'test_assets' slot (\"Block List\") collection." ; sh:minCount 1 ; sh:nodeKind sh:IRI ; sh:order 1 ; sh:path ttm:test_assets ], - [ sh:description "Deployment environment within which the associated TestSuite is run." ; - sh:in ( "dev" "ci" "test" "prod" ) ; + [ sh:maxCount 1 ; + sh:order 10 ; + sh:path ttm:input_category ], + [ sh:description "The component that this test case is intended to run against. Most often this is the ARS for acceptance tests, but for the Benchmarks repo integration, this can also be individual components of the system like Aragorn, or ARAX." ; + sh:in [ rdf:rest () ] ; + sh:order 12 ; + sh:path ttm:components ], + [ sh:datatype xsd:string ; + sh:description "Scalar parameters for the TestRunner processing a given TestEntity." ; + sh:order 18 ; + sh:path ttm:test_runner_settings ], + [ sh:maxCount 1 ; + sh:order 8 ; + sh:path ttm:test_case_input_id ], + [ sh:description "Testing objective behind specified set of test particulars (e.g. acceptance pass/fail; benchmark; quantitative; standards compliance; graph navigation integrity)" ; + sh:in ( "AcceptanceTest" "BenchmarkTest" "QuantitativeTest" "StandardsValidationTest" "OneHopTest" ) ; sh:maxCount 1 ; - sh:order 13 ; - sh:path ttm:test_env ], - [ sh:description "A template for a query, which can be used to generate a query for a test case. note: the current enumerated values for this slot come from the Benchmarks repo config/benchmarks.json \"templates\" collection and refer to the \"name\" field of each template. Templates themselves are currently stored in the config/[source_name]/templates directory." ; - sh:in ( "ameliorates" "treats" "three_hop" "drug_treats_rare_disease" "drug-to-gene" ) ; + sh:order 4 ; + sh:path ttm:test_case_objective ], + [ sh:description "Provenance of a specific set of test assets, cases and/or suites. Or, the person who cares about this, know about this. We would like this to be an ORCID eventually, but currently it is just a string." ; + sh:in ( "SME" "SMURF" "GitHubUserFeedback" "TACT" "BenchMark" "TranslatorTeam" "TestDataLocation" ) ; sh:maxCount 1 ; - sh:order 3 ; - sh:path ttm:trapi_template ] ; + sh:order 5 ; + sh:path ttm:test_case_source ], + [ sh:datatype xsd:string ; + sh:description "One or more 'tags' slot values (slot inherited from TestEntity) should generally be defined as filters to specify TestAsset membership in a \"Block List\" collection." ; + sh:order 17 ; + sh:path schema1:additionalType ] ; sh:targetClass ttm:AcceptanceTestCase . ttm:AcceptanceTestSuite a sh:NodeShape ; sh:closed true ; sh:ignoredProperties ( rdf:type ) ; - sh:property [ sh:datatype xsd:string ; - sh:description "Scalar parameters for the TestRunner processing a given TestEntity." ; - sh:order 8 ; - sh:path ttm:test_runner_settings ], - [ sh:description "A unique identifier for a Test Entity" ; - sh:maxCount 1 ; - sh:minCount 1 ; - sh:order 4 ; - sh:path schema1:identifier ], - [ sh:class ttm:TestCase ; + sh:property [ sh:class ttm:TestCase ; sh:description "List of explicitly enumerated Test Cases." ; sh:nodeKind sh:IRI ; sh:order 2 ; sh:path ttm:test_cases ], - [ sh:class ttm:TestMetadata ; - sh:description "Test metadata describes the external provenance, cross-references and objectives for a given test." ; - sh:maxCount 1 ; - sh:nodeKind sh:IRI ; - sh:order 0 ; - sh:path ttm:test_metadata ], [ sh:datatype xsd:string ; sh:description "A human-readable tags for categorical memberships of a TestEntity (preferably a URI or CURIE). Typically used to aggregate instances of TestEntity into formally typed or ad hoc lists." ; sh:order 7 ; sh:path schema1:additionalType ], + [ sh:datatype xsd:string ; + sh:description "A human-readable name for a Test Entity" ; + sh:maxCount 1 ; + sh:order 5 ; + sh:path schema1:name ], + [ sh:description "A Test persona describes the user or operational context of a given test." ; + sh:in ( "All" "Clinical" "LookUp" "Mechanistic" ) ; + sh:maxCount 1 ; + sh:order 1 ; + sh:path ttm:test_persona ], + [ sh:description "A unique identifier for a Test Entity" ; + sh:maxCount 1 ; + sh:minCount 1 ; + sh:order 4 ; + sh:path schema1:identifier ], [ sh:class ttm:TestSuiteSpecification ; sh:description "Declarative specification of a Test Suite of Test Cases whose generation is deferred, (i.e. within a Test Runner) or whose creation is achieved by stream processing of an external data source." ; sh:maxCount 1 ; @@ -132,16 +132,16 @@ ttm:AcceptanceTestSuite a sh:NodeShape ; sh:maxCount 1 ; sh:order 6 ; sh:path schema1:description ], - [ sh:description "A Test persona describes the user or operational context of a given test." ; - sh:in ( "All" "Clinical" "LookUp" "Mechanistic" ) ; - sh:maxCount 1 ; - sh:order 1 ; - sh:path ttm:test_persona ], [ sh:datatype xsd:string ; - sh:description "A human-readable name for a Test Entity" ; + sh:description "Scalar parameters for the TestRunner processing a given TestEntity." ; + sh:order 8 ; + sh:path ttm:test_runner_settings ], + [ sh:class ttm:TestMetadata ; + sh:description "Test metadata describes the external provenance, cross-references and objectives for a given test." ; sh:maxCount 1 ; - sh:order 5 ; - sh:path schema1:name ] ; + sh:nodeKind sh:IRI ; + sh:order 0 ; + sh:path ttm:test_metadata ] ; sh:targetClass ttm:AcceptanceTestSuite . ttm:BenchmarkTestSuite a sh:NodeShape ; @@ -154,7 +154,18 @@ ttm:OneHopTestSuite a sh:NodeShape ; sh:closed true ; sh:description "Test case for testing the integrity of \"One Hop\" knowledge graph retrievals sensa legacy SRI_Testing harness." ; sh:ignoredProperties ( rdf:type ) ; - sh:property [ sh:datatype xsd:string ; + sh:property [ sh:class ttm:TestMetadata ; + sh:description "Test metadata describes the external provenance, cross-references and objectives for a given test." ; + sh:maxCount 1 ; + sh:nodeKind sh:IRI ; + sh:order 0 ; + sh:path ttm:test_metadata ], + [ sh:datatype xsd:string ; + sh:description "A human-readable description for a Test Entity" ; + sh:maxCount 1 ; + sh:order 6 ; + sh:path schema1:description ], + [ sh:datatype xsd:string ; sh:description "Scalar parameters for the TestRunner processing a given TestEntity." ; sh:order 8 ; sh:path ttm:test_runner_settings ], @@ -163,183 +174,172 @@ ttm:OneHopTestSuite a sh:NodeShape ; sh:maxCount 1 ; sh:order 5 ; sh:path schema1:name ], - [ sh:class ttm:TestMetadata ; - sh:description "Test metadata describes the external provenance, cross-references and objectives for a given test." ; - sh:maxCount 1 ; - sh:nodeKind sh:IRI ; - sh:order 0 ; - sh:path ttm:test_metadata ], - [ sh:class ttm:TestCase ; - sh:description "List of explicitly enumerated Test Cases." ; - sh:nodeKind sh:IRI ; - sh:order 2 ; - sh:path ttm:test_cases ], [ sh:description "A unique identifier for a Test Entity" ; sh:maxCount 1 ; sh:minCount 1 ; sh:order 4 ; sh:path schema1:identifier ], - [ sh:datatype xsd:string ; - sh:description "A human-readable description for a Test Entity" ; + [ sh:description "A Test persona describes the user or operational context of a given test." ; + sh:in ( "All" "Clinical" "LookUp" "Mechanistic" ) ; sh:maxCount 1 ; - sh:order 6 ; - sh:path schema1:description ], + sh:order 1 ; + sh:path ttm:test_persona ], + [ sh:datatype xsd:string ; + sh:description "A human-readable tags for categorical memberships of a TestEntity (preferably a URI or CURIE). Typically used to aggregate instances of TestEntity into formally typed or ad hoc lists." ; + sh:order 7 ; + sh:path schema1:additionalType ], [ sh:class ttm:TestSuiteSpecification ; sh:description "Declarative specification of a Test Suite of Test Cases whose generation is deferred, (i.e. within a Test Runner) or whose creation is achieved by stream processing of an external data source." ; sh:maxCount 1 ; sh:nodeKind sh:IRI ; sh:order 3 ; sh:path ttm:test_suite_specification ], - [ sh:datatype xsd:string ; - sh:description "A human-readable tags for categorical memberships of a TestEntity (preferably a URI or CURIE). Typically used to aggregate instances of TestEntity into formally typed or ad hoc lists." ; - sh:order 7 ; - sh:path schema1:additionalType ], - [ sh:description "A Test persona describes the user or operational context of a given test." ; - sh:in ( "All" "Clinical" "LookUp" "Mechanistic" ) ; - sh:maxCount 1 ; - sh:order 1 ; - sh:path ttm:test_persona ] ; + [ sh:class ttm:TestCase ; + sh:description "List of explicitly enumerated Test Cases." ; + sh:nodeKind sh:IRI ; + sh:order 2 ; + sh:path ttm:test_cases ] ; sh:targetClass ttm:OneHopTestSuite . ttm:QuantitativeTestCase a sh:NodeShape ; sh:closed true ; sh:description "Assumed additional model from Shervin's runner JSON here as an example. This schema is not yet complete." ; sh:ignoredProperties ( rdf:type ) ; - sh:property [ sh:datatype xsd:string ; + sh:property [ sh:maxCount 1 ; + sh:order 8 ; + sh:path ttm:test_case_input_id ], + [ sh:datatype xsd:string ; + sh:description "Scalar parameters for the TestRunner processing a given TestEntity." ; + sh:order 18 ; + sh:path ttm:test_runner_settings ], + [ sh:maxCount 1 ; + sh:order 11 ; + sh:path ttm:output_category ], + [ sh:datatype xsd:string ; sh:maxCount 1 ; - sh:order 7 ; - sh:path ttm:test_case_predicate_id ], + sh:order 6 ; + sh:path ttm:test_case_predicate_name ], + [ sh:description "Type of TestCase query." ; + sh:in ( "treats" ) ; + sh:maxCount 1 ; + sh:order 0 ; + sh:path ttm:query_type ], [ sh:description "Provenance of a specific set of test assets, cases and/or suites. Or, the person who cares about this, know about this. We would like this to be an ORCID eventually, but currently it is just a string." ; sh:in ( "SME" "SMURF" "GitHubUserFeedback" "TACT" "BenchMark" "TranslatorTeam" "TestDataLocation" ) ; sh:maxCount 1 ; sh:order 5 ; sh:path ttm:test_case_source ], [ sh:datatype xsd:string ; - sh:description "One or more 'tags' slot values (slot inherited from TestEntity) should generally be defined as filters to specify TestAsset membership in a \"Block List\" collection." ; - sh:order 17 ; - sh:path schema1:additionalType ], - [ sh:description "The component that this test case is intended to run against. Most often this is the ARS for acceptance tests, but for the Benchmarks repo integration, this can also be individual components of the system like Aragorn, or ARAX." ; - sh:in [ rdf:rest () ] ; - sh:order 12 ; - sh:path ttm:components ], + sh:description "A human-readable name for a Test Entity" ; + sh:maxCount 1 ; + sh:order 15 ; + sh:path schema1:name ], [ sh:class ttm:TestAsset ; sh:description "One or more 'tags' slot values (inherited from TestEntity) should generally be defined as filters to specify TestAsset membership in 'test_assets' slot (\"Block List\") collection." ; sh:minCount 1 ; sh:nodeKind sh:IRI ; sh:order 1 ; sh:path ttm:test_assets ], - [ sh:description "A unique identifier for a Test Entity" ; + [ sh:description "The component that this test case is intended to run against. Most often this is the ARS for acceptance tests, but for the Benchmarks repo integration, this can also be individual components of the system like Aragorn, or ARAX." ; + sh:in [ rdf:rest () ] ; + sh:order 12 ; + sh:path ttm:components ], + [ sh:datatype xsd:string ; + sh:description "A human-readable description for a Test Entity" ; sh:maxCount 1 ; - sh:minCount 1 ; - sh:order 14 ; - sh:path schema1:identifier ], - [ sh:class ttm:Qualifier ; - sh:description "Optional qualifiers which constrain to the test asset defined knowledge statement. Note that this field records such qualifier slots and values as tag=value pairs, where the tag is the Biolink Model qualifier slot named and the value is an acceptable (Biolink Model enum?) value of the said qualifier slot." ; - sh:nodeKind sh:BlankNodeOrIRI ; - sh:order 9 ; - sh:path ttm:qualifiers ], - [ sh:description "Type of TestCase query." ; - sh:in ( "treats" ) ; + sh:order 16 ; + sh:path schema1:description ], + [ sh:description "Deployment environment within which the associated TestSuite is run." ; + sh:in ( "dev" "ci" "test" "prod" ) ; sh:maxCount 1 ; - sh:order 0 ; - sh:path ttm:query_type ], - [ sh:description "Testing objective behind specified set of test particulars (e.g. acceptance pass/fail; benchmark; quantitative; standards compliance; graph navigation integrity)" ; - sh:in ( "AcceptanceTest" "BenchmarkTest" "QuantitativeTest" "StandardsValidationTest" "OneHopTest" ) ; + sh:order 13 ; + sh:path ttm:test_env ], + [ sh:description "A template for a query, which can be used to generate a query for a test case. note: the current enumerated values for this slot come from the Benchmarks repo config/benchmarks.json \"templates\" collection and refer to the \"name\" field of each template. Templates themselves are currently stored in the config/[source_name]/templates directory." ; + sh:in ( "ameliorates" "treats" "three_hop" "drug_treats_rare_disease" "drug-to-gene" ) ; sh:maxCount 1 ; - sh:order 4 ; - sh:path ttm:test_case_objective ], - [ sh:maxCount 1 ; - sh:order 11 ; - sh:path ttm:output_category ], + sh:order 3 ; + sh:path ttm:trapi_template ], [ sh:maxCount 1 ; sh:order 10 ; sh:path ttm:input_category ], - [ sh:datatype xsd:string ; - sh:description "A human-readable name for a Test Entity" ; - sh:maxCount 1 ; - sh:order 15 ; - sh:path schema1:name ], - [ sh:datatype xsd:string ; - sh:maxCount 1 ; - sh:order 6 ; - sh:path ttm:test_case_predicate_name ], - [ sh:description "A template for a query, which can be used to generate a query for a test case. note: the current enumerated values for this slot come from the Benchmarks repo config/benchmarks.json \"templates\" collection and refer to the \"name\" field of each template. Templates themselves are currently stored in the config/[source_name]/templates directory." ; - sh:in ( "ameliorates" "treats" "three_hop" "drug_treats_rare_disease" "drug-to-gene" ) ; - sh:maxCount 1 ; - sh:order 3 ; - sh:path ttm:trapi_template ], [ sh:class ttm:Precondition ; sh:nodeKind sh:IRI ; sh:order 2 ; sh:path ttm:preconditions ], - [ sh:description "Deployment environment within which the associated TestSuite is run." ; - sh:in ( "dev" "ci" "test" "prod" ) ; - sh:maxCount 1 ; - sh:order 13 ; - sh:path ttm:test_env ], - [ sh:maxCount 1 ; - sh:order 8 ; - sh:path ttm:test_case_input_id ], [ sh:datatype xsd:string ; - sh:description "A human-readable description for a Test Entity" ; + sh:description "One or more 'tags' slot values (slot inherited from TestEntity) should generally be defined as filters to specify TestAsset membership in a \"Block List\" collection." ; + sh:order 17 ; + sh:path schema1:additionalType ], + [ sh:description "Testing objective behind specified set of test particulars (e.g. acceptance pass/fail; benchmark; quantitative; standards compliance; graph navigation integrity)" ; + sh:in ( "AcceptanceTest" "BenchmarkTest" "QuantitativeTest" "StandardsValidationTest" "OneHopTest" ) ; sh:maxCount 1 ; - sh:order 16 ; - sh:path schema1:description ], + sh:order 4 ; + sh:path ttm:test_case_objective ], + [ sh:class ttm:Qualifier ; + sh:description "Optional qualifiers which constrain to the test asset defined knowledge statement. Note that this field records such qualifier slots and values as tag=value pairs, where the tag is the Biolink Model qualifier slot named and the value is an acceptable (Biolink Model enum?) value of the said qualifier slot." ; + sh:nodeKind sh:BlankNodeOrIRI ; + sh:order 9 ; + sh:path ttm:qualifiers ], [ sh:datatype xsd:string ; - sh:description "Scalar parameters for the TestRunner processing a given TestEntity." ; - sh:order 18 ; - sh:path ttm:test_runner_settings ] ; + sh:maxCount 1 ; + sh:order 7 ; + sh:path ttm:test_case_predicate_id ], + [ sh:description "A unique identifier for a Test Entity" ; + sh:maxCount 1 ; + sh:minCount 1 ; + sh:order 14 ; + sh:path schema1:identifier ] ; sh:targetClass ttm:QuantitativeTestCase . ttm:StandardsComplianceTestSuite a sh:NodeShape ; sh:closed true ; sh:description "Test suite for testing Translator components against releases of standards like TRAPI and the Biolink Model." ; sh:ignoredProperties ( rdf:type ) ; - sh:property [ sh:class ttm:TestMetadata ; + sh:property [ sh:datatype xsd:string ; + sh:description "Scalar parameters for the TestRunner processing a given TestEntity." ; + sh:order 8 ; + sh:path ttm:test_runner_settings ], + [ sh:class ttm:TestSuiteSpecification ; + sh:description "Declarative specification of a Test Suite of Test Cases whose generation is deferred, (i.e. within a Test Runner) or whose creation is achieved by stream processing of an external data source." ; + sh:maxCount 1 ; + sh:nodeKind sh:IRI ; + sh:order 3 ; + sh:path ttm:test_suite_specification ], + [ sh:datatype xsd:string ; + sh:description "A human-readable tags for categorical memberships of a TestEntity (preferably a URI or CURIE). Typically used to aggregate instances of TestEntity into formally typed or ad hoc lists." ; + sh:order 7 ; + sh:path schema1:additionalType ], + [ sh:class ttm:TestMetadata ; sh:description "Test metadata describes the external provenance, cross-references and objectives for a given test." ; sh:maxCount 1 ; sh:nodeKind sh:IRI ; sh:order 0 ; sh:path ttm:test_metadata ], - [ sh:description "A unique identifier for a Test Entity" ; - sh:maxCount 1 ; - sh:minCount 1 ; - sh:order 4 ; - sh:path schema1:identifier ], + [ sh:class ttm:TestCase ; + sh:description "List of explicitly enumerated Test Cases." ; + sh:nodeKind sh:IRI ; + sh:order 2 ; + sh:path ttm:test_cases ], [ sh:datatype xsd:string ; sh:description "A human-readable name for a Test Entity" ; sh:maxCount 1 ; sh:order 5 ; sh:path schema1:name ], - [ sh:datatype xsd:string ; - sh:description "A human-readable description for a Test Entity" ; - sh:maxCount 1 ; - sh:order 6 ; - sh:path schema1:description ], [ sh:description "A Test persona describes the user or operational context of a given test." ; sh:in ( "All" "Clinical" "LookUp" "Mechanistic" ) ; sh:maxCount 1 ; sh:order 1 ; sh:path ttm:test_persona ], - [ sh:class ttm:TestSuiteSpecification ; - sh:description "Declarative specification of a Test Suite of Test Cases whose generation is deferred, (i.e. within a Test Runner) or whose creation is achieved by stream processing of an external data source." ; - sh:maxCount 1 ; - sh:nodeKind sh:IRI ; - sh:order 3 ; - sh:path ttm:test_suite_specification ], - [ sh:class ttm:TestCase ; - sh:description "List of explicitly enumerated Test Cases." ; - sh:nodeKind sh:IRI ; - sh:order 2 ; - sh:path ttm:test_cases ], [ sh:datatype xsd:string ; - sh:description "Scalar parameters for the TestRunner processing a given TestEntity." ; - sh:order 8 ; - sh:path ttm:test_runner_settings ], - [ sh:datatype xsd:string ; - sh:description "A human-readable tags for categorical memberships of a TestEntity (preferably a URI or CURIE). Typically used to aggregate instances of TestEntity into formally typed or ad hoc lists." ; - sh:order 7 ; - sh:path schema1:additionalType ] ; + sh:description "A human-readable description for a Test Entity" ; + sh:maxCount 1 ; + sh:order 6 ; + sh:path schema1:description ], + [ sh:description "A unique identifier for a Test Entity" ; + sh:maxCount 1 ; + sh:minCount 1 ; + sh:order 4 ; + sh:path schema1:identifier ] ; sh:targetClass ttm:StandardsComplianceTestSuite . ttm:TestEdgeData a sh:NodeShape ; @@ -347,94 +347,94 @@ ttm:TestEdgeData a sh:NodeShape ; sh:description "Represents a single Biolink Model compliant instance of a subject-predicate-object edge that can be used for testing." ; sh:ignoredProperties ( rdf:type ) ; sh:property [ sh:datatype xsd:string ; + sh:maxCount 1 ; + sh:order 1 ; + sh:path ttm:input_name ], + [ sh:description "A unique identifier for a Test Entity" ; + sh:maxCount 1 ; + sh:minCount 1 ; + sh:order 17 ; + sh:path schema1:identifier ], + [ sh:datatype xsd:string ; sh:maxCount 1 ; sh:order 4 ; sh:path ttm:predicate_name ], + [ sh:class ttm:Qualifier ; + sh:description "Optional qualifiers which constrain to the test asset defined knowledge statement. Note that this field records such qualifier slots and values as tag=value pairs, where the tag is the Biolink Model qualifier slot named and the value is an acceptable (Biolink Model enum?) value of the said qualifier slot." ; + sh:nodeKind sh:BlankNodeOrIRI ; + sh:order 9 ; + sh:path ttm:qualifiers ], [ sh:maxCount 1 ; - sh:order 0 ; - sh:path ttm:input_id ], - [ sh:description "Specific Biolink Model association 'category' which applies to the test asset defined knowledge statement" ; - sh:maxCount 1 ; - sh:order 8 ; - sh:path ttm:association ], + sh:order 3 ; + sh:path ttm:predicate_id ], [ sh:datatype xsd:string ; sh:description "One or more 'tags' slot values (inherited from TestEntity) should generally be defined to specify TestAsset membership in a \"Block List\" collection" ; sh:order 20 ; sh:path schema1:additionalType ], - [ sh:datatype xsd:boolean ; + [ sh:description "Specific Biolink Model association 'category' which applies to the test asset defined knowledge statement" ; sh:maxCount 1 ; - sh:order 13 ; - sh:path ttm:in_v1 ], + sh:order 8 ; + sh:path ttm:association ], [ sh:maxCount 1 ; sh:order 7 ; sh:path ttm:output_category ], - [ sh:datatype xsd:string ; - sh:maxCount 1 ; - sh:order 6 ; - sh:path ttm:output_name ], - [ sh:class ttm:Qualifier ; - sh:description "Optional qualifiers which constrain to the test asset defined knowledge statement. Note that this field records such qualifier slots and values as tag=value pairs, where the tag is the Biolink Model qualifier slot named and the value is an acceptable (Biolink Model enum?) value of the said qualifier slot." ; - sh:nodeKind sh:BlankNodeOrIRI ; - sh:order 9 ; - sh:path ttm:qualifiers ], - [ sh:datatype xsd:string ; - sh:description "Scalar settings for the TestRunner, e.g. \"inferred\"" ; - sh:order 21 ; - sh:path ttm:test_runner_settings ], - [ sh:maxCount 1 ; - sh:order 2 ; - sh:path ttm:input_category ], - [ sh:datatype xsd:string ; + [ sh:class ttm:TestMetadata ; + sh:description "Test metadata describes the external provenance, cross-references and objectives for a given test." ; sh:maxCount 1 ; - sh:order 1 ; - sh:path ttm:input_name ], + sh:nodeKind sh:IRI ; + sh:order 16 ; + sh:path ttm:test_metadata ], [ sh:description "Document URL where original test source particulars are registered (e.g. Github repo)" ; sh:maxCount 1 ; sh:order 15 ; sh:path ttm:test_reference ], - [ sh:datatype xsd:boolean ; + [ sh:in ( "causes not treats" "TMKP" "category too generic" "contraindications" "chemical roles" "test_issue" ) ; sh:maxCount 1 ; - sh:order 14 ; - sh:path ttm:well_known ], + sh:order 11 ; + sh:path ttm:test_issue ], + [ sh:datatype xsd:string ; + sh:maxCount 1 ; + sh:order 10 ; + sh:path ttm:expected_output ], [ sh:maxCount 1 ; sh:order 5 ; sh:path ttm:output_id ], - [ sh:in ( "High" "Low" "NotApplicable" ) ; - sh:maxCount 1 ; - sh:order 12 ; - sh:path ttm:semantic_severity ], [ sh:datatype xsd:string ; sh:description "A human-readable description for a Test Entity" ; sh:maxCount 1 ; sh:order 19 ; sh:path schema1:description ], - [ sh:class ttm:TestMetadata ; - sh:description "Test metadata describes the external provenance, cross-references and objectives for a given test." ; + [ sh:datatype xsd:string ; sh:maxCount 1 ; - sh:nodeKind sh:IRI ; - sh:order 16 ; - sh:path ttm:test_metadata ], + sh:order 6 ; + sh:path ttm:output_name ], [ sh:maxCount 1 ; - sh:order 3 ; - sh:path ttm:predicate_id ], - [ sh:in ( "causes not treats" "TMKP" "category too generic" "contraindications" "chemical roles" "test_issue" ) ; - sh:maxCount 1 ; - sh:order 11 ; - sh:path ttm:test_issue ], - [ sh:description "A unique identifier for a Test Entity" ; + sh:order 0 ; + sh:path ttm:input_id ], + [ sh:datatype xsd:boolean ; sh:maxCount 1 ; - sh:minCount 1 ; - sh:order 17 ; - sh:path schema1:identifier ], + sh:order 14 ; + sh:path ttm:well_known ], + [ sh:datatype xsd:string ; + sh:description "Scalar settings for the TestRunner, e.g. \"inferred\"" ; + sh:order 21 ; + sh:path ttm:test_runner_settings ], [ sh:datatype xsd:string ; sh:description "A human-readable name for a Test Entity" ; sh:maxCount 1 ; sh:order 18 ; sh:path schema1:name ], - [ sh:datatype xsd:string ; + [ sh:maxCount 1 ; + sh:order 2 ; + sh:path ttm:input_category ], + [ sh:in ( "High" "Low" "NotApplicable" ) ; sh:maxCount 1 ; - sh:order 10 ; - sh:path ttm:expected_output ] ; + sh:order 12 ; + sh:path ttm:semantic_severity ], + [ sh:datatype xsd:boolean ; + sh:maxCount 1 ; + sh:order 13 ; + sh:path ttm:in_v1 ] ; sh:targetClass ttm:TestEdgeData . ttm:TestOutput a sh:NodeShape ; @@ -446,24 +446,10 @@ ttm:TestOutput a sh:NodeShape ; sh:nodeKind sh:IRI ; sh:order 1 ; sh:path ttm:pks ], - [ sh:description "A unique identifier for a Test Entity" ; - sh:maxCount 1 ; - sh:minCount 1 ; - sh:order 2 ; - sh:path schema1:identifier ], [ sh:datatype xsd:string ; sh:description "Scalar parameters for the TestRunner processing a given TestEntity." ; sh:order 6 ; sh:path ttm:test_runner_settings ], - [ sh:datatype xsd:string ; - sh:description "CURIE id of a TestCase registered in the system." ; - sh:maxCount 1 ; - sh:order 0 ; - sh:path ttm:test_case_id ], - [ sh:datatype xsd:string ; - sh:description "A human-readable tags for categorical memberships of a TestEntity (preferably a URI or CURIE). Typically used to aggregate instances of TestEntity into formally typed or ad hoc lists." ; - sh:order 5 ; - sh:path schema1:additionalType ], [ sh:datatype xsd:string ; sh:description "A human-readable name for a Test Entity" ; sh:maxCount 1 ; @@ -473,18 +459,28 @@ ttm:TestOutput a sh:NodeShape ; sh:description "A human-readable description for a Test Entity" ; sh:maxCount 1 ; sh:order 4 ; - sh:path schema1:description ] ; + sh:path schema1:description ], + [ sh:datatype xsd:string ; + sh:description "A human-readable tags for categorical memberships of a TestEntity (preferably a URI or CURIE). Typically used to aggregate instances of TestEntity into formally typed or ad hoc lists." ; + sh:order 5 ; + sh:path schema1:additionalType ], + [ sh:description "A unique identifier for a Test Entity" ; + sh:maxCount 1 ; + sh:minCount 1 ; + sh:order 2 ; + sh:path schema1:identifier ], + [ sh:datatype xsd:string ; + sh:description "CURIE id of a TestCase registered in the system." ; + sh:maxCount 1 ; + sh:order 0 ; + sh:path ttm:test_case_id ] ; sh:targetClass ttm:TestOutput . ttm:TestRunSession a sh:NodeShape ; sh:closed true ; sh:description "Single run of a TestRunner in a given environment, with a specified set of test_entities (generally, one or more instances of TestSuite)." ; sh:ignoredProperties ( rdf:type ) ; - sh:property [ sh:datatype xsd:string ; - sh:description "A human-readable tags for categorical memberships of a TestEntity (preferably a URI or CURIE). Typically used to aggregate instances of TestEntity into formally typed or ad hoc lists." ; - sh:order 10 ; - sh:path schema1:additionalType ], - [ sh:description "Deployment environment within which the associated TestSuite is run." ; + sh:property [ sh:description "Deployment environment within which the associated TestSuite is run." ; sh:in ( "dev" "ci" "test" "prod" ) ; sh:maxCount 1 ; sh:order 1 ; @@ -494,49 +490,53 @@ ttm:TestRunSession a sh:NodeShape ; sh:maxCount 1 ; sh:order 2 ; sh:path ttm:test_runner_name ], - [ sh:datatype xsd:string ; - sh:description "Scalar parameters for the TestRunner processing a given TestEntity." ; - sh:order 11 ; - sh:path ttm:test_runner_settings ], - [ sh:description "A unique identifier for a Test Entity" ; + [ sh:datatype xsd:dateTime ; + sh:description "Date time when a given entity was created." ; sh:maxCount 1 ; - sh:minCount 1 ; - sh:order 7 ; - sh:path schema1:identifier ], + sh:order 6 ; + sh:path ttm:timestamp ], [ sh:class ttm:TestEntity ; sh:description "Different TestRunners could expect specific kinds of TestEntity as an input. These 'test_entities' are one or more instances of TestAsset, TestCase or (preferably?) TestSuite." ; sh:nodeKind sh:IRI ; sh:order 4 ; sh:path ttm:test_entities ], - [ sh:class ttm:TestCaseResult ; - sh:description "One or more instances of TestCaseResult." ; - sh:nodeKind sh:IRI ; - sh:order 5 ; - sh:path ttm:test_case_results ], + [ sh:datatype xsd:string ; + sh:description "Scalar parameters for the TestRunner processing a given TestEntity." ; + sh:order 11 ; + sh:path ttm:test_runner_settings ], + [ sh:datatype xsd:string ; + sh:description "A human-readable description for a Test Entity" ; + sh:maxCount 1 ; + sh:order 9 ; + sh:path schema1:description ], [ sh:description "The component that this test case is intended to run against. Most often this is the ARS for acceptance tests, but for the Benchmarks repo integration, this can also be individual components of the system like Aragorn, or ARAX." ; sh:in [ rdf:rest () ] ; sh:order 0 ; sh:path ttm:components ], - [ sh:datatype xsd:dateTime ; - sh:description "Date time when a given entity was created." ; + [ sh:description "A unique identifier for a Test Entity" ; sh:maxCount 1 ; - sh:order 6 ; - sh:path ttm:timestamp ], - [ sh:class ttm:TestEntityParameter ; - sh:description "Different TestRunners could expect additional global test configuration parameters, like the applicable TRAPI version (\"trapi_version\") or Biolink Model versions (\"biolink_version\")." ; - sh:nodeKind sh:BlankNodeOrIRI ; - sh:order 3 ; - sh:path ttm:test_run_parameters ], + sh:minCount 1 ; + sh:order 7 ; + sh:path schema1:identifier ], [ sh:datatype xsd:string ; - sh:description "A human-readable description for a Test Entity" ; - sh:maxCount 1 ; - sh:order 9 ; - sh:path schema1:description ], + sh:description "A human-readable tags for categorical memberships of a TestEntity (preferably a URI or CURIE). Typically used to aggregate instances of TestEntity into formally typed or ad hoc lists." ; + sh:order 10 ; + sh:path schema1:additionalType ], [ sh:datatype xsd:string ; sh:description "A human-readable name for a Test Entity" ; sh:maxCount 1 ; sh:order 8 ; - sh:path schema1:name ] ; + sh:path schema1:name ], + [ sh:class ttm:TestEntityParameter ; + sh:description "Different TestRunners could expect additional global test configuration parameters, like the applicable TRAPI version (\"trapi_version\") or Biolink Model versions (\"biolink_version\")." ; + sh:nodeKind sh:BlankNodeOrIRI ; + sh:order 3 ; + sh:path ttm:test_run_parameters ], + [ sh:class ttm:TestCaseResult ; + sh:description "One or more instances of TestCaseResult." ; + sh:nodeKind sh:IRI ; + sh:order 5 ; + sh:path ttm:test_case_results ] ; sh:targetClass ttm:TestRunSession . ttm:TestSuite a sh:NodeShape ; @@ -544,45 +544,45 @@ ttm:TestSuite a sh:NodeShape ; sh:description "Specification of a set of Test Cases, one of either with a static list of 'test_cases' or a dynamic 'test_suite_specification' slot values. Note: at least one slot or the other, but generally not both(?) needs to be present." ; sh:ignoredProperties ( rdf:type ) ; sh:property [ sh:datatype xsd:string ; - sh:description "A human-readable name for a Test Entity" ; + sh:description "A human-readable description for a Test Entity" ; sh:maxCount 1 ; - sh:order 5 ; - sh:path schema1:name ], - [ sh:datatype xsd:string ; - sh:description "A human-readable tags for categorical memberships of a TestEntity (preferably a URI or CURIE). Typically used to aggregate instances of TestEntity into formally typed or ad hoc lists." ; - sh:order 7 ; - sh:path schema1:additionalType ], - [ sh:class ttm:TestMetadata ; - sh:description "Test metadata describes the external provenance, cross-references and objectives for a given test." ; + sh:order 6 ; + sh:path schema1:description ], + [ sh:class ttm:TestSuiteSpecification ; + sh:description "Declarative specification of a Test Suite of Test Cases whose generation is deferred, (i.e. within a Test Runner) or whose creation is achieved by stream processing of an external data source." ; sh:maxCount 1 ; sh:nodeKind sh:IRI ; - sh:order 0 ; - sh:path ttm:test_metadata ], + sh:order 3 ; + sh:path ttm:test_suite_specification ], + [ sh:datatype xsd:string ; + sh:description "Scalar parameters for the TestRunner processing a given TestEntity." ; + sh:order 8 ; + sh:path ttm:test_runner_settings ], [ sh:description "A Test persona describes the user or operational context of a given test." ; sh:in ( "All" "Clinical" "LookUp" "Mechanistic" ) ; sh:maxCount 1 ; sh:order 1 ; sh:path ttm:test_persona ], - [ sh:datatype xsd:string ; - sh:description "Scalar parameters for the TestRunner processing a given TestEntity." ; - sh:order 8 ; - sh:path ttm:test_runner_settings ], [ sh:description "A unique identifier for a Test Entity" ; sh:maxCount 1 ; sh:minCount 1 ; sh:order 4 ; sh:path schema1:identifier ], [ sh:datatype xsd:string ; - sh:description "A human-readable description for a Test Entity" ; - sh:maxCount 1 ; - sh:order 6 ; - sh:path schema1:description ], - [ sh:class ttm:TestSuiteSpecification ; - sh:description "Declarative specification of a Test Suite of Test Cases whose generation is deferred, (i.e. within a Test Runner) or whose creation is achieved by stream processing of an external data source." ; + sh:description "A human-readable tags for categorical memberships of a TestEntity (preferably a URI or CURIE). Typically used to aggregate instances of TestEntity into formally typed or ad hoc lists." ; + sh:order 7 ; + sh:path schema1:additionalType ], + [ sh:class ttm:TestMetadata ; + sh:description "Test metadata describes the external provenance, cross-references and objectives for a given test." ; sh:maxCount 1 ; sh:nodeKind sh:IRI ; - sh:order 3 ; - sh:path ttm:test_suite_specification ], + sh:order 0 ; + sh:path ttm:test_metadata ], + [ sh:datatype xsd:string ; + sh:description "A human-readable name for a Test Entity" ; + sh:maxCount 1 ; + sh:order 5 ; + sh:path schema1:name ], [ sh:class ttm:TestCase ; sh:description "List of explicitly enumerated Test Cases." ; sh:nodeKind sh:IRI ; @@ -594,145 +594,145 @@ ttm:AcceptanceTestAsset a sh:NodeShape ; sh:closed true ; sh:description "Model derived from Jenn's test asset design and Shervin's runner JSON here as an example." ; sh:ignoredProperties ( rdf:type ) ; - sh:property [ sh:in ( "High" "Low" "NotApplicable" ) ; - sh:maxCount 1 ; - sh:order 22 ; - sh:path ttm:semantic_severity ], - [ sh:maxCount 1 ; - sh:order 10 ; - sh:path ttm:input_id ], - [ sh:datatype xsd:boolean ; - sh:maxCount 1 ; - sh:order 24 ; - sh:path ttm:well_known ], - [ sh:datatype xsd:string ; - sh:description "The full human-readable scientific question a SME would ask, which is encoded into the test asset." ; - sh:maxCount 1 ; - sh:order 2 ; - sh:path ttm:scientific_question ], - [ sh:maxCount 1 ; - sh:order 17 ; - sh:path ttm:output_category ], - [ sh:in ( "causes not treats" "TMKP" "category too generic" "contraindications" "chemical roles" "test_issue" ) ; - sh:maxCount 1 ; - sh:order 21 ; - sh:path ttm:test_issue ], - [ sh:datatype xsd:string ; - sh:description "A human-readable name for a Test Entity" ; - sh:maxCount 1 ; - sh:order 28 ; - sh:path schema1:name ], - [ sh:datatype xsd:string ; - sh:maxCount 1 ; - sh:order 11 ; - sh:path ttm:input_name ], - [ sh:maxCount 1 ; - sh:order 13 ; - sh:path ttm:predicate_id ], - [ sh:datatype xsd:integer ; - sh:description "The answer must return in these many results" ; - sh:maxCount 1 ; - sh:order 7 ; - sh:path ttm:top_level ], - [ sh:datatype xsd:string ; + sh:property [ sh:datatype xsd:string ; + sh:description "The notes of the query" ; sh:maxCount 1 ; - sh:order 16 ; - sh:path ttm:output_name ], + sh:order 9 ; + sh:path ttm:notes ], [ sh:description "A unique identifier for a Test Entity" ; sh:maxCount 1 ; sh:minCount 1 ; sh:order 27 ; sh:path schema1:identifier ], - [ sh:class ttm:Qualifier ; - sh:description "Optional qualifiers which constrain to the test asset defined knowledge statement. Note that this field records such qualifier slots and values as tag=value pairs, where the tag is the Biolink Model qualifier slot named and the value is an acceptable (Biolink Model enum?) value of the said qualifier slot." ; - sh:nodeKind sh:BlankNodeOrIRI ; - sh:order 19 ; - sh:path ttm:qualifiers ], [ sh:description "The expected result of the query" ; sh:in ( "include_good" "exclude_bad" ) ; sh:maxCount 1 ; sh:order 6 ; sh:path ttm:expected_result ], - [ sh:description "The deployment environment within which this test must pass." ; - sh:in ( "dev" "ci" "test" "prod" ) ; - sh:maxCount 1 ; - sh:order 1 ; - sh:path ttm:must_pass_environment ], - [ sh:datatype xsd:string ; - sh:description "One or more 'tags' slot values (inherited from TestEntity) should generally be defined to specify TestAsset membership in a \"Block List\" collection" ; - sh:order 30 ; - sh:path schema1:additionalType ], [ sh:datatype xsd:string ; - sh:description "An answer that is returned from the test case, note: this must be combined with the expected_result to form a complete answer. It might make sense to couple these in their own object instead of strictly sticking to the flat schema introduced by the spreadsheet here: https://docs.google.com/spreadsheets/d/1yj7zIchFeVl1OHqL_kE_pqvzNLmGml_FLbHDs-8Yvig/edit#gid=0" ; + sh:description "A human-readable name for a Test Entity" ; sh:maxCount 1 ; - sh:order 5 ; - sh:path ttm:answer_informal_concept ], + sh:order 28 ; + sh:path schema1:name ], [ sh:class ttm:TestMetadata ; sh:description "Test metadata describes the external provenance, cross-references and objectives for a given test." ; sh:maxCount 1 ; sh:nodeKind sh:IRI ; sh:order 26 ; sh:path ttm:test_metadata ], + [ sh:datatype xsd:date ; + sh:description "The date by which this test must pass" ; + sh:maxCount 1 ; + sh:order 0 ; + sh:path ttm:must_pass_date ], + [ sh:datatype xsd:boolean ; + sh:maxCount 1 ; + sh:order 24 ; + sh:path ttm:well_known ], + [ sh:datatype xsd:string ; + sh:description "The object of the core triple to be tested" ; + sh:maxCount 1 ; + sh:order 3 ; + sh:path ttm:string_entry ], + [ sh:description "The deployment environment within which this test must pass." ; + sh:in ( "dev" "ci" "test" "prod" ) ; + sh:maxCount 1 ; + sh:order 1 ; + sh:path ttm:must_pass_environment ], + [ sh:maxCount 1 ; + sh:order 10 ; + sh:path ttm:input_id ], + [ sh:maxCount 1 ; + sh:order 15 ; + sh:path ttm:output_id ], + [ sh:description "The direction of the expected query result triple" ; + sh:in ( "increased" "decreased" ) ; + sh:maxCount 1 ; + sh:order 4 ; + sh:path ttm:direction ], + [ sh:in ( "High" "Low" "NotApplicable" ) ; + sh:maxCount 1 ; + sh:order 22 ; + sh:path ttm:semantic_severity ], [ sh:maxCount 1 ; sh:order 12 ; sh:path ttm:input_category ], + [ sh:datatype xsd:string ; + sh:description "A human-readable description for a Test Entity" ; + sh:maxCount 1 ; + sh:order 29 ; + sh:path schema1:description ], [ sh:description "Document URL where original test source particulars are registered (e.g. Github repo)" ; sh:maxCount 1 ; sh:order 25 ; sh:path ttm:test_reference ], + [ sh:datatype xsd:boolean ; + sh:maxCount 1 ; + sh:order 23 ; + sh:path ttm:in_v1 ], [ sh:datatype xsd:string ; sh:maxCount 1 ; sh:order 20 ; sh:path ttm:expected_output ], [ sh:datatype xsd:string ; - sh:description "The object of the core triple to be tested" ; - sh:maxCount 1 ; - sh:order 3 ; - sh:path ttm:string_entry ], - [ sh:datatype xsd:date ; - sh:description "The date by which this test must pass" ; - sh:maxCount 1 ; - sh:order 0 ; - sh:path ttm:must_pass_date ], + sh:description "Scalar settings for the TestRunner, e.g. \"inferred\"" ; + sh:order 31 ; + sh:path ttm:test_runner_settings ], [ sh:datatype xsd:string ; - sh:description "A human-readable description for a Test Entity" ; sh:maxCount 1 ; - sh:order 29 ; - sh:path schema1:description ], - [ sh:maxCount 1 ; - sh:order 15 ; - sh:path ttm:output_id ], + sh:order 11 ; + sh:path ttm:input_name ], [ sh:datatype xsd:string ; - sh:description "The notes of the query" ; + sh:description "An answer that is returned from the test case, note: this must be combined with the expected_result to form a complete answer. It might make sense to couple these in their own object instead of strictly sticking to the flat schema introduced by the spreadsheet here: https://docs.google.com/spreadsheets/d/1yj7zIchFeVl1OHqL_kE_pqvzNLmGml_FLbHDs-8Yvig/edit#gid=0" ; sh:maxCount 1 ; - sh:order 9 ; - sh:path ttm:notes ], + sh:order 5 ; + sh:path ttm:answer_informal_concept ], + [ sh:datatype xsd:string ; + sh:description "One or more 'tags' slot values (inherited from TestEntity) should generally be defined to specify TestAsset membership in a \"Block List\" collection" ; + sh:order 30 ; + sh:path schema1:additionalType ], + [ sh:class ttm:Qualifier ; + sh:description "Optional qualifiers which constrain to the test asset defined knowledge statement. Note that this field records such qualifier slots and values as tag=value pairs, where the tag is the Biolink Model qualifier slot named and the value is an acceptable (Biolink Model enum?) value of the said qualifier slot." ; + sh:nodeKind sh:BlankNodeOrIRI ; + sh:order 19 ; + sh:path ttm:qualifiers ], [ sh:datatype xsd:string ; sh:maxCount 1 ; sh:order 14 ; sh:path ttm:predicate_name ], - [ sh:description "The direction of the expected query result triple" ; - sh:in ( "increased" "decreased" ) ; - sh:maxCount 1 ; - sh:order 4 ; - sh:path ttm:direction ], - [ sh:datatype xsd:string ; - sh:description "Scalar settings for the TestRunner, e.g. \"inferred\"" ; - sh:order 31 ; - sh:path ttm:test_runner_settings ], - [ sh:datatype xsd:boolean ; + [ sh:description "The node of the (templated) TRAPI query to replace" ; + sh:in ( "subject" "object" ) ; sh:maxCount 1 ; - sh:order 23 ; - sh:path ttm:in_v1 ], + sh:order 8 ; + sh:path ttm:query_node ], [ sh:description "Specific Biolink Model association 'category' which applies to the test asset defined knowledge statement" ; sh:maxCount 1 ; sh:order 18 ; sh:path ttm:association ], - [ sh:description "The node of the (templated) TRAPI query to replace" ; - sh:in ( "subject" "object" ) ; + [ sh:maxCount 1 ; + sh:order 13 ; + sh:path ttm:predicate_id ], + [ sh:datatype xsd:string ; + sh:description "The full human-readable scientific question a SME would ask, which is encoded into the test asset." ; sh:maxCount 1 ; - sh:order 8 ; - sh:path ttm:query_node ] ; + sh:order 2 ; + sh:path ttm:scientific_question ], + [ sh:in ( "causes not treats" "TMKP" "category too generic" "contraindications" "chemical roles" "test_issue" ) ; + sh:maxCount 1 ; + sh:order 21 ; + sh:path ttm:test_issue ], + [ sh:datatype xsd:integer ; + sh:description "The answer must return in these many results" ; + sh:maxCount 1 ; + sh:order 7 ; + sh:path ttm:top_level ], + [ sh:maxCount 1 ; + sh:order 17 ; + sh:path ttm:output_category ], + [ sh:datatype xsd:string ; + sh:maxCount 1 ; + sh:order 16 ; + sh:path ttm:output_name ] ; sh:targetClass ttm:AcceptanceTestAsset . ttm:TestCaseResult a sh:NodeShape ; @@ -743,40 +743,40 @@ ttm:TestCaseResult a sh:NodeShape ; sh:description "A human-readable tags for categorical memberships of a TestEntity (preferably a URI or CURIE). Typically used to aggregate instances of TestEntity into formally typed or ad hoc lists." ; sh:order 6 ; sh:path schema1:additionalType ], - [ sh:description "Encoded result of a single test run of a given test case" ; - sh:in ( "PASSED" "FAILED" "SKIPPED" ) ; - sh:maxCount 1 ; - sh:order 2 ; - sh:path ttm:test_case_result ], - [ sh:description "CURIE id of a TestSuite registered in the system." ; + [ sh:description "A unique identifier for a Test Entity" ; sh:maxCount 1 ; - sh:order 0 ; - sh:path ttm:test_suite_id ], + sh:minCount 1 ; + sh:order 3 ; + sh:path schema1:identifier ], [ sh:datatype xsd:string ; - sh:description "A human-readable name for a Test Entity" ; + sh:description "Scalar parameters for the TestRunner processing a given TestEntity." ; + sh:order 7 ; + sh:path ttm:test_runner_settings ], + [ sh:datatype xsd:string ; + sh:description "A human-readable description for a Test Entity" ; sh:maxCount 1 ; - sh:order 4 ; - sh:path schema1:name ], + sh:order 5 ; + sh:path schema1:description ], [ sh:class ttm:TestCase ; sh:description "Slot referencing a single TestCase." ; sh:maxCount 1 ; sh:nodeKind sh:IRI ; sh:order 1 ; sh:path ttm:test_case ], - [ sh:description "A unique identifier for a Test Entity" ; + [ sh:description "Encoded result of a single test run of a given test case" ; + sh:in ( "PASSED" "FAILED" "SKIPPED" ) ; sh:maxCount 1 ; - sh:minCount 1 ; - sh:order 3 ; - sh:path schema1:identifier ], + sh:order 2 ; + sh:path ttm:test_case_result ], [ sh:datatype xsd:string ; - sh:description "A human-readable description for a Test Entity" ; + sh:description "A human-readable name for a Test Entity" ; sh:maxCount 1 ; - sh:order 5 ; - sh:path schema1:description ], - [ sh:datatype xsd:string ; - sh:description "Scalar parameters for the TestRunner processing a given TestEntity." ; - sh:order 7 ; - sh:path ttm:test_runner_settings ] ; + sh:order 4 ; + sh:path schema1:name ], + [ sh:description "CURIE id of a TestSuite registered in the system." ; + sh:maxCount 1 ; + sh:order 0 ; + sh:path ttm:test_suite_id ] ; sh:targetClass ttm:TestCaseResult . ttm:TestEntity a sh:NodeShape ; @@ -784,27 +784,27 @@ ttm:TestEntity a sh:NodeShape ; sh:description "Abstract global 'identification' class shared as a parent with all major model classes within the data model for Translator testing." ; sh:ignoredProperties ( rdf:type ) ; sh:property [ sh:datatype xsd:string ; - sh:description "A human-readable description for a Test Entity" ; - sh:maxCount 1 ; - sh:order 2 ; - sh:path schema1:description ], - [ sh:datatype xsd:string ; sh:description "A human-readable name for a Test Entity" ; sh:maxCount 1 ; sh:order 1 ; sh:path schema1:name ], + [ sh:datatype xsd:string ; + sh:description "Scalar parameters for the TestRunner processing a given TestEntity." ; + sh:order 4 ; + sh:path ttm:test_runner_settings ], [ sh:description "A unique identifier for a Test Entity" ; sh:maxCount 1 ; sh:order 0 ; sh:path schema1:identifier ], + [ sh:datatype xsd:string ; + sh:description "A human-readable description for a Test Entity" ; + sh:maxCount 1 ; + sh:order 2 ; + sh:path schema1:description ], [ sh:datatype xsd:string ; sh:description "A human-readable tags for categorical memberships of a TestEntity (preferably a URI or CURIE). Typically used to aggregate instances of TestEntity into formally typed or ad hoc lists." ; sh:order 3 ; - sh:path schema1:additionalType ], - [ sh:datatype xsd:string ; - sh:description "Scalar parameters for the TestRunner processing a given TestEntity." ; - sh:order 4 ; - sh:path ttm:test_runner_settings ] ; + sh:path schema1:additionalType ] ; sh:targetClass ttm:TestEntity . ttm:TestResultPKSet a sh:NodeShape ; @@ -812,14 +812,6 @@ ttm:TestResultPKSet a sh:NodeShape ; sh:description "Primary keys for a given ARA result set from a SmokeTest result for a given TestCase." ; sh:ignoredProperties ( rdf:type ) ; sh:property [ sh:datatype xsd:string ; - sh:maxCount 1 ; - sh:order 0 ; - sh:path ttm:parent_pk ], - [ sh:datatype xsd:string ; - sh:maxCount 1 ; - sh:order 3 ; - sh:path ttm:arax ], - [ sh:datatype xsd:string ; sh:maxCount 1 ; sh:order 1 ; sh:path ttm:merged_pk ], @@ -827,36 +819,44 @@ ttm:TestResultPKSet a sh:NodeShape ; sh:description "A human-readable tags for categorical memberships of a TestEntity (preferably a URI or CURIE). Typically used to aggregate instances of TestEntity into formally typed or ad hoc lists." ; sh:order 10 ; sh:path schema1:additionalType ], - [ sh:datatype xsd:string ; + [ sh:description "A unique identifier for a Test Entity" ; sh:maxCount 1 ; - sh:order 5 ; - sh:path ttm:bte ], + sh:minCount 1 ; + sh:order 7 ; + sh:path schema1:identifier ], [ sh:datatype xsd:string ; sh:maxCount 1 ; sh:order 2 ; sh:path ttm:aragorn ], [ sh:datatype xsd:string ; - sh:description "A human-readable name for a Test Entity" ; sh:maxCount 1 ; - sh:order 8 ; - sh:path schema1:name ], + sh:order 3 ; + sh:path ttm:arax ], [ sh:datatype xsd:string ; sh:maxCount 1 ; sh:order 4 ; sh:path ttm:unsecret ], - [ sh:datatype xsd:string ; - sh:maxCount 1 ; - sh:order 6 ; - sh:path ttm:improving ], - [ sh:description "A unique identifier for a Test Entity" ; - sh:maxCount 1 ; - sh:minCount 1 ; - sh:order 7 ; - sh:path schema1:identifier ], [ sh:datatype xsd:string ; sh:description "Scalar parameters for the TestRunner processing a given TestEntity." ; sh:order 11 ; sh:path ttm:test_runner_settings ], + [ sh:datatype xsd:string ; + sh:maxCount 1 ; + sh:order 0 ; + sh:path ttm:parent_pk ], + [ sh:datatype xsd:string ; + sh:maxCount 1 ; + sh:order 5 ; + sh:path ttm:bte ], + [ sh:datatype xsd:string ; + sh:description "A human-readable name for a Test Entity" ; + sh:maxCount 1 ; + sh:order 8 ; + sh:path schema1:name ], + [ sh:datatype xsd:string ; + sh:maxCount 1 ; + sh:order 6 ; + sh:path ttm:improving ], [ sh:datatype xsd:string ; sh:description "A human-readable description for a Test Entity" ; sh:maxCount 1 ; @@ -868,95 +868,95 @@ ttm:TestAsset a sh:NodeShape ; sh:closed true ; sh:description "Represents a Test Asset, which is a single specific instance of TestCase-agnostic semantic parameters representing the specification of a Translator test target with inputs and (expected) outputs." ; sh:ignoredProperties ( rdf:type ) ; - sh:property [ sh:in ( "causes not treats" "TMKP" "category too generic" "contraindications" "chemical roles" "test_issue" ) ; + sh:property [ sh:datatype xsd:string ; sh:maxCount 1 ; - sh:order 11 ; - sh:path ttm:test_issue ], + sh:order 6 ; + sh:path ttm:output_name ], + [ sh:maxCount 1 ; + sh:order 7 ; + sh:path ttm:output_category ], + [ sh:description "Specific Biolink Model association 'category' which applies to the test asset defined knowledge statement" ; + sh:maxCount 1 ; + sh:order 8 ; + sh:path ttm:association ], + [ sh:in ( "High" "Low" "NotApplicable" ) ; + sh:maxCount 1 ; + sh:order 12 ; + sh:path ttm:semantic_severity ], [ sh:datatype xsd:string ; sh:description "A human-readable name for a Test Entity" ; sh:maxCount 1 ; sh:order 18 ; sh:path schema1:name ], + [ sh:maxCount 1 ; + sh:order 0 ; + sh:path ttm:input_id ], + [ sh:in ( "causes not treats" "TMKP" "category too generic" "contraindications" "chemical roles" "test_issue" ) ; + sh:maxCount 1 ; + sh:order 11 ; + sh:path ttm:test_issue ], + [ sh:datatype xsd:string ; + sh:description "Scalar settings for the TestRunner, e.g. \"inferred\"" ; + sh:order 21 ; + sh:path ttm:test_runner_settings ], + [ sh:description "Document URL where original test source particulars are registered (e.g. Github repo)" ; + sh:maxCount 1 ; + sh:order 15 ; + sh:path ttm:test_reference ], + [ sh:datatype xsd:string ; + sh:maxCount 1 ; + sh:order 4 ; + sh:path ttm:predicate_name ], [ sh:datatype xsd:boolean ; sh:maxCount 1 ; sh:order 13 ; sh:path ttm:in_v1 ], + [ sh:maxCount 1 ; + sh:order 2 ; + sh:path ttm:input_category ], [ sh:datatype xsd:string ; - sh:description "A human-readable description for a Test Entity" ; sh:maxCount 1 ; - sh:order 19 ; - sh:path schema1:description ], - [ sh:class ttm:TestMetadata ; - sh:description "Test metadata describes the external provenance, cross-references and objectives for a given test." ; + sh:order 10 ; + sh:path ttm:expected_output ], + [ sh:datatype xsd:boolean ; sh:maxCount 1 ; - sh:nodeKind sh:IRI ; - sh:order 16 ; - sh:path ttm:test_metadata ], + sh:order 14 ; + sh:path ttm:well_known ], [ sh:maxCount 1 ; sh:order 5 ; sh:path ttm:output_id ], - [ sh:description "Document URL where original test source particulars are registered (e.g. Github repo)" ; - sh:maxCount 1 ; - sh:order 15 ; - sh:path ttm:test_reference ], - [ sh:in ( "High" "Low" "NotApplicable" ) ; + [ sh:datatype xsd:string ; sh:maxCount 1 ; - sh:order 12 ; - sh:path ttm:semantic_severity ], + sh:order 1 ; + sh:path ttm:input_name ], + [ sh:maxCount 1 ; + sh:order 3 ; + sh:path ttm:predicate_id ], [ sh:datatype xsd:string ; + sh:description "A human-readable description for a Test Entity" ; sh:maxCount 1 ; - sh:order 10 ; - sh:path ttm:expected_output ], + sh:order 19 ; + sh:path schema1:description ], [ sh:class ttm:Qualifier ; sh:description "Optional qualifiers which constrain to the test asset defined knowledge statement. Note that this field records such qualifier slots and values as tag=value pairs, where the tag is the Biolink Model qualifier slot named and the value is an acceptable (Biolink Model enum?) value of the said qualifier slot." ; sh:nodeKind sh:BlankNodeOrIRI ; sh:order 9 ; sh:path ttm:qualifiers ], - [ sh:datatype xsd:string ; - sh:maxCount 1 ; - sh:order 1 ; - sh:path ttm:input_name ], - [ sh:datatype xsd:string ; - sh:description "One or more 'tags' slot values (inherited from TestEntity) should generally be defined to specify TestAsset membership in a \"Block List\" collection" ; - sh:order 20 ; - sh:path schema1:additionalType ], - [ sh:datatype xsd:string ; + [ sh:class ttm:TestMetadata ; + sh:description "Test metadata describes the external provenance, cross-references and objectives for a given test." ; sh:maxCount 1 ; - sh:order 4 ; - sh:path ttm:predicate_name ], + sh:nodeKind sh:IRI ; + sh:order 16 ; + sh:path ttm:test_metadata ], [ sh:description "A unique identifier for a Test Entity" ; sh:maxCount 1 ; sh:minCount 1 ; sh:order 17 ; sh:path schema1:identifier ], [ sh:datatype xsd:string ; - sh:description "Scalar settings for the TestRunner, e.g. \"inferred\"" ; - sh:order 21 ; - sh:path ttm:test_runner_settings ], - [ sh:description "Specific Biolink Model association 'category' which applies to the test asset defined knowledge statement" ; - sh:maxCount 1 ; - sh:order 8 ; - sh:path ttm:association ], - [ sh:maxCount 1 ; - sh:order 2 ; - sh:path ttm:input_category ], - [ sh:datatype xsd:string ; - sh:maxCount 1 ; - sh:order 6 ; - sh:path ttm:output_name ], - [ sh:maxCount 1 ; - sh:order 7 ; - sh:path ttm:output_category ], - [ sh:datatype xsd:boolean ; - sh:maxCount 1 ; - sh:order 14 ; - sh:path ttm:well_known ], - [ sh:maxCount 1 ; - sh:order 0 ; - sh:path ttm:input_id ], - [ sh:maxCount 1 ; - sh:order 3 ; - sh:path ttm:predicate_id ] ; + sh:description "One or more 'tags' slot values (inherited from TestEntity) should generally be defined to specify TestAsset membership in a \"Block List\" collection" ; + sh:order 20 ; + sh:path schema1:additionalType ] ; sh:targetClass ttm:TestAsset . ttm:TestEntityParameter a sh:NodeShape ; @@ -964,15 +964,15 @@ ttm:TestEntityParameter a sh:NodeShape ; sh:description "A single 'tag = value' pair (where 'value' is a simple string)." ; sh:ignoredProperties ( rdf:type ) ; sh:property [ sh:datatype xsd:string ; - sh:description "(String) value of a TestParameter." ; - sh:maxCount 1 ; - sh:order 1 ; - sh:path ttm:value ], - [ sh:datatype xsd:string ; sh:description "Name of a TestParameter." ; sh:maxCount 1 ; sh:order 0 ; - sh:path ttm:parameter ] ; + sh:path ttm:parameter ], + [ sh:datatype xsd:string ; + sh:description "(String) value of a TestParameter." ; + sh:maxCount 1 ; + sh:order 1 ; + sh:path ttm:value ] ; sh:targetClass ttm:TestEntityParameter . ttm:Precondition a sh:NodeShape ; @@ -980,28 +980,28 @@ ttm:Precondition a sh:NodeShape ; sh:description "Represents a precondition for a TestCase" ; sh:ignoredProperties ( rdf:type ) ; sh:property [ sh:datatype xsd:string ; + sh:description "A human-readable name for a Test Entity" ; + sh:maxCount 1 ; + sh:order 1 ; + sh:path schema1:name ], + [ sh:datatype xsd:string ; sh:description "Scalar parameters for the TestRunner processing a given TestEntity." ; sh:order 4 ; sh:path ttm:test_runner_settings ], - [ sh:description "A unique identifier for a Test Entity" ; - sh:maxCount 1 ; - sh:minCount 1 ; - sh:order 0 ; - sh:path schema1:identifier ], [ sh:datatype xsd:string ; sh:description "A human-readable description for a Test Entity" ; sh:maxCount 1 ; sh:order 2 ; sh:path schema1:description ], + [ sh:description "A unique identifier for a Test Entity" ; + sh:maxCount 1 ; + sh:minCount 1 ; + sh:order 0 ; + sh:path schema1:identifier ], [ sh:datatype xsd:string ; sh:description "A human-readable tags for categorical memberships of a TestEntity (preferably a URI or CURIE). Typically used to aggregate instances of TestEntity into formally typed or ad hoc lists." ; sh:order 3 ; - sh:path schema1:additionalType ], - [ sh:datatype xsd:string ; - sh:description "A human-readable name for a Test Entity" ; - sh:maxCount 1 ; - sh:order 1 ; - sh:path schema1:name ] ; + sh:path schema1:additionalType ] ; sh:targetClass ttm:Precondition . ttm:TestSuiteSpecification a sh:NodeShape ; @@ -1012,34 +1012,34 @@ ttm:TestSuiteSpecification a sh:NodeShape ; sh:maxCount 1 ; sh:order 0 ; sh:path ttm:test_data_file_locator ], + [ sh:datatype xsd:string ; + sh:description "A human-readable description for a Test Entity" ; + sh:maxCount 1 ; + sh:order 4 ; + sh:path schema1:description ], [ sh:description "A unique identifier for a Test Entity" ; sh:maxCount 1 ; sh:minCount 1 ; sh:order 2 ; sh:path schema1:identifier ], [ sh:datatype xsd:string ; - sh:description "A human-readable name for a Test Entity" ; - sh:maxCount 1 ; - sh:order 3 ; - sh:path schema1:name ], + sh:description "A human-readable tags for categorical memberships of a TestEntity (preferably a URI or CURIE). Typically used to aggregate instances of TestEntity into formally typed or ad hoc lists." ; + sh:order 5 ; + sh:path schema1:additionalType ], [ sh:datatype xsd:string ; sh:description "Scalar parameters for the TestRunner processing a given TestEntity." ; sh:order 6 ; sh:path ttm:test_runner_settings ], + [ sh:datatype xsd:string ; + sh:description "A human-readable name for a Test Entity" ; + sh:maxCount 1 ; + sh:order 3 ; + sh:path schema1:name ], [ sh:description "File format of test entity data (e.g. TSV, YAML or JSON)" ; sh:in ( "TSV" "YAML" "JSON" ) ; sh:maxCount 1 ; sh:order 1 ; - sh:path ttm:test_data_file_format ], - [ sh:datatype xsd:string ; - sh:description "A human-readable tags for categorical memberships of a TestEntity (preferably a URI or CURIE). Typically used to aggregate instances of TestEntity into formally typed or ad hoc lists." ; - sh:order 5 ; - sh:path schema1:additionalType ], - [ sh:datatype xsd:string ; - sh:description "A human-readable description for a Test Entity" ; - sh:maxCount 1 ; - sh:order 4 ; - sh:path schema1:description ] ; + sh:path ttm:test_data_file_format ] ; sh:targetClass ttm:TestSuiteSpecification . ttm:TestCase a sh:NodeShape ; @@ -1051,85 +1051,85 @@ ttm:TestCase a sh:NodeShape ; sh:minCount 1 ; sh:order 14 ; sh:path schema1:identifier ], + [ sh:class ttm:Qualifier ; + sh:description "Optional qualifiers which constrain to the test asset defined knowledge statement. Note that this field records such qualifier slots and values as tag=value pairs, where the tag is the Biolink Model qualifier slot named and the value is an acceptable (Biolink Model enum?) value of the said qualifier slot." ; + sh:nodeKind sh:BlankNodeOrIRI ; + sh:order 9 ; + sh:path ttm:qualifiers ], + [ sh:class ttm:Precondition ; + sh:nodeKind sh:IRI ; + sh:order 2 ; + sh:path ttm:preconditions ], + [ sh:maxCount 1 ; + sh:order 10 ; + sh:path ttm:input_category ], [ sh:datatype xsd:string ; sh:maxCount 1 ; - sh:order 7 ; - sh:path ttm:test_case_predicate_id ], + sh:order 6 ; + sh:path ttm:test_case_predicate_name ], + [ sh:class ttm:TestAsset ; + sh:description "One or more 'tags' slot values (inherited from TestEntity) should generally be defined as filters to specify TestAsset membership in 'test_assets' slot (\"Block List\") collection." ; + sh:minCount 1 ; + sh:nodeKind sh:IRI ; + sh:order 1 ; + sh:path ttm:test_assets ], [ sh:datatype xsd:string ; - sh:description "A human-readable description for a Test Entity" ; + sh:description "Scalar parameters for the TestRunner processing a given TestEntity." ; + sh:order 18 ; + sh:path ttm:test_runner_settings ], + [ sh:description "Deployment environment within which the associated TestSuite is run." ; + sh:in ( "dev" "ci" "test" "prod" ) ; sh:maxCount 1 ; - sh:order 16 ; - sh:path schema1:description ], + sh:order 13 ; + sh:path ttm:test_env ], + [ sh:description "Testing objective behind specified set of test particulars (e.g. acceptance pass/fail; benchmark; quantitative; standards compliance; graph navigation integrity)" ; + sh:in ( "AcceptanceTest" "BenchmarkTest" "QuantitativeTest" "StandardsValidationTest" "OneHopTest" ) ; + sh:maxCount 1 ; + sh:order 4 ; + sh:path ttm:test_case_objective ], [ sh:maxCount 1 ; sh:order 11 ; sh:path ttm:output_category ], + [ sh:description "Provenance of a specific set of test assets, cases and/or suites. Or, the person who cares about this, know about this. We would like this to be an ORCID eventually, but currently it is just a string." ; + sh:in ( "SME" "SMURF" "GitHubUserFeedback" "TACT" "BenchMark" "TranslatorTeam" "TestDataLocation" ) ; + sh:maxCount 1 ; + sh:order 5 ; + sh:path ttm:test_case_source ], + [ sh:datatype xsd:string ; + sh:maxCount 1 ; + sh:order 7 ; + sh:path ttm:test_case_predicate_id ], [ sh:description "A template for a query, which can be used to generate a query for a test case. note: the current enumerated values for this slot come from the Benchmarks repo config/benchmarks.json \"templates\" collection and refer to the \"name\" field of each template. Templates themselves are currently stored in the config/[source_name]/templates directory." ; sh:in ( "ameliorates" "treats" "three_hop" "drug_treats_rare_disease" "drug-to-gene" ) ; sh:maxCount 1 ; sh:order 3 ; sh:path ttm:trapi_template ], - [ sh:description "Testing objective behind specified set of test particulars (e.g. acceptance pass/fail; benchmark; quantitative; standards compliance; graph navigation integrity)" ; - sh:in ( "AcceptanceTest" "BenchmarkTest" "QuantitativeTest" "StandardsValidationTest" "OneHopTest" ) ; - sh:maxCount 1 ; - sh:order 4 ; - sh:path ttm:test_case_objective ], - [ sh:datatype xsd:string ; - sh:description "Scalar parameters for the TestRunner processing a given TestEntity." ; - sh:order 18 ; - sh:path ttm:test_runner_settings ], - [ sh:description "The component that this test case is intended to run against. Most often this is the ARS for acceptance tests, but for the Benchmarks repo integration, this can also be individual components of the system like Aragorn, or ARAX." ; - sh:in [ rdf:rest () ] ; - sh:order 12 ; - sh:path ttm:components ], [ sh:datatype xsd:string ; sh:description "A human-readable name for a Test Entity" ; sh:maxCount 1 ; sh:order 15 ; sh:path schema1:name ], - [ sh:datatype xsd:string ; - sh:description "One or more 'tags' slot values (slot inherited from TestEntity) should generally be defined as filters to specify TestAsset membership in a \"Block List\" collection." ; - sh:order 17 ; - sh:path schema1:additionalType ], [ sh:maxCount 1 ; - sh:order 10 ; - sh:path ttm:input_category ], - [ sh:datatype xsd:string ; - sh:maxCount 1 ; - sh:order 6 ; - sh:path ttm:test_case_predicate_name ], + sh:order 8 ; + sh:path ttm:test_case_input_id ], [ sh:description "Type of TestCase query." ; sh:in ( "treats" ) ; sh:maxCount 1 ; sh:order 0 ; sh:path ttm:query_type ], - [ sh:description "Deployment environment within which the associated TestSuite is run." ; - sh:in ( "dev" "ci" "test" "prod" ) ; - sh:maxCount 1 ; - sh:order 13 ; - sh:path ttm:test_env ], - [ sh:maxCount 1 ; - sh:order 8 ; - sh:path ttm:test_case_input_id ], - [ sh:class ttm:Qualifier ; - sh:description "Optional qualifiers which constrain to the test asset defined knowledge statement. Note that this field records such qualifier slots and values as tag=value pairs, where the tag is the Biolink Model qualifier slot named and the value is an acceptable (Biolink Model enum?) value of the said qualifier slot." ; - sh:nodeKind sh:BlankNodeOrIRI ; - sh:order 9 ; - sh:path ttm:qualifiers ], - [ sh:description "Provenance of a specific set of test assets, cases and/or suites. Or, the person who cares about this, know about this. We would like this to be an ORCID eventually, but currently it is just a string." ; - sh:in ( "SME" "SMURF" "GitHubUserFeedback" "TACT" "BenchMark" "TranslatorTeam" "TestDataLocation" ) ; + [ sh:datatype xsd:string ; + sh:description "A human-readable description for a Test Entity" ; sh:maxCount 1 ; - sh:order 5 ; - sh:path ttm:test_case_source ], - [ sh:class ttm:TestAsset ; - sh:description "One or more 'tags' slot values (inherited from TestEntity) should generally be defined as filters to specify TestAsset membership in 'test_assets' slot (\"Block List\") collection." ; - sh:minCount 1 ; - sh:nodeKind sh:IRI ; - sh:order 1 ; - sh:path ttm:test_assets ], - [ sh:class ttm:Precondition ; - sh:nodeKind sh:IRI ; - sh:order 2 ; - sh:path ttm:preconditions ] ; + sh:order 16 ; + sh:path schema1:description ], + [ sh:datatype xsd:string ; + sh:description "One or more 'tags' slot values (slot inherited from TestEntity) should generally be defined as filters to specify TestAsset membership in a \"Block List\" collection." ; + sh:order 17 ; + sh:path schema1:additionalType ], + [ sh:description "The component that this test case is intended to run against. Most often this is the ARS for acceptance tests, but for the Benchmarks repo integration, this can also be individual components of the system like Aragorn, or ARAX." ; + sh:in [ rdf:rest () ] ; + sh:order 12 ; + sh:path ttm:components ] ; sh:targetClass ttm:TestCase . ttm:Qualifier a sh:NodeShape ; @@ -1156,42 +1156,42 @@ ttm:TestMetadata a sh:NodeShape ; sh:maxCount 1 ; sh:order 0 ; sh:path ttm:test_source ], - [ sh:class ttm:TestEntityParameter ; - sh:description "Metadata annotation." ; - sh:nodeKind sh:BlankNodeOrIRI ; - sh:order 3 ; - sh:path ttm:test_annotations ], - [ sh:datatype xsd:string ; - sh:description "Scalar parameters for the TestRunner processing a given TestEntity." ; - sh:order 8 ; - sh:path ttm:test_runner_settings ], + [ sh:description "Testing objective behind specified set of test particulars (e.g. acceptance pass/fail; benchmark; quantitative; standards compliance; graph navigation integrity)" ; + sh:in ( "AcceptanceTest" "BenchmarkTest" "QuantitativeTest" "StandardsValidationTest" "OneHopTest" ) ; + sh:maxCount 1 ; + sh:order 2 ; + sh:path ttm:test_objective ], [ sh:datatype xsd:string ; sh:description "A human-readable name for a Test Entity" ; sh:maxCount 1 ; sh:order 5 ; sh:path schema1:name ], + [ sh:datatype xsd:string ; + sh:description "A human-readable tags for categorical memberships of a TestEntity (preferably a URI or CURIE). Typically used to aggregate instances of TestEntity into formally typed or ad hoc lists." ; + sh:order 7 ; + sh:path schema1:additionalType ], [ sh:datatype xsd:string ; sh:description "A human-readable description for a Test Entity" ; sh:maxCount 1 ; sh:order 6 ; sh:path schema1:description ], - [ sh:description "Document URL where original test source particulars are registered (e.g. Github repo)" ; - sh:maxCount 1 ; - sh:order 1 ; - sh:path ttm:test_reference ], - [ sh:datatype xsd:string ; - sh:description "A human-readable tags for categorical memberships of a TestEntity (preferably a URI or CURIE). Typically used to aggregate instances of TestEntity into formally typed or ad hoc lists." ; - sh:order 7 ; - sh:path schema1:additionalType ], [ sh:description "A unique identifier for a Test Entity" ; sh:maxCount 1 ; sh:minCount 1 ; sh:order 4 ; sh:path schema1:identifier ], - [ sh:description "Testing objective behind specified set of test particulars (e.g. acceptance pass/fail; benchmark; quantitative; standards compliance; graph navigation integrity)" ; - sh:in ( "AcceptanceTest" "BenchmarkTest" "QuantitativeTest" "StandardsValidationTest" "OneHopTest" ) ; + [ sh:description "Document URL where original test source particulars are registered (e.g. Github repo)" ; sh:maxCount 1 ; - sh:order 2 ; - sh:path ttm:test_objective ] ; + sh:order 1 ; + sh:path ttm:test_reference ], + [ sh:class ttm:TestEntityParameter ; + sh:description "Metadata annotation." ; + sh:nodeKind sh:BlankNodeOrIRI ; + sh:order 3 ; + sh:path ttm:test_annotations ], + [ sh:datatype xsd:string ; + sh:description "Scalar parameters for the TestRunner processing a given TestEntity." ; + sh:order 8 ; + sh:path ttm:test_runner_settings ] ; sh:targetClass ttm:TestMetadata . diff --git a/src/translator_testing_model/datamodel/translator_testing_model.py b/src/translator_testing_model/datamodel/translator_testing_model.py index 7cb684b..3717594 100644 --- a/src/translator_testing_model/datamodel/translator_testing_model.py +++ b/src/translator_testing_model/datamodel/translator_testing_model.py @@ -1,5 +1,5 @@ # Auto generated from translator_testing_model.yaml by pythongen.py version: 0.0.1 -# Generation date: 2024-04-25T12:19:51 +# Generation date: 2024-04-25T12:49:13 # Schema: Translator-Testing-Model # # id: https://w3id.org/TranslatorSRI/TranslatorTestingModel From 51a5981dd95b9d17d7efd6148454bd2ec3167e2c Mon Sep 17 00:00:00 2001 From: Richard Bruskiewich Date: Thu, 25 Apr 2024 16:18:45 -0700 Subject: [PATCH 5/5] Converted the ComponentEnum to an explicit "permissible_values" Enum; cleaned up some unit test sample data tech debt --- examples/Bad-TestAsset-001.yaml | 41 +- examples/Bad-TestEntity-001.yaml | 2 + ...2.yaml-uriorcurie_should_fail_but_does_not | 2 + examples/Good-AcceptanceTestAsset-001.yaml | 19 +- examples/Good-AcceptanceTestCase-001.yaml | 20 +- examples/Good-TestAsset-001.json | 19 +- examples/Good-TestAsset-001.yaml | 27 +- examples/Good-TestCase-001.json | 16 +- examples/Good-TestCase-001.yaml | 17 +- examples/Good-TestCaseSpecification-001.yaml | 4 + examples/Good-TestEntity-Complete.yaml | 2 + examples/Good-TestSuite-001.yaml | 3 + examples/SampleTestAssetList.json | 34 +- poetry.lock | 207 ++- project/excel/translator_testing_model.xlsx | Bin 18434 -> 18763 bytes .../translator_testing_model.context.jsonld | 3 +- .../jsonld/translator_testing_model.jsonld | 103 +- .../translator_testing_model.schema.json | 19 + project/owl/translator_testing_model.owl.ttl | 742 +++++----- .../prefixmap/translator_testing_model.yaml | 1 + .../shacl/translator_testing_model.shacl.ttl | 1227 +++++++++-------- project/shex/translator_testing_model.shex | 11 +- .../sqlschema/translator_testing_model.sql | 8 +- src/data/examples/Bad-TestAsset-002.yaml | 16 - src/data/examples/Bad-TestAsset-003.yaml | 16 - src/data/examples/Bad-TestAsset-004.yaml | 16 - src/data/examples/Bad-TestAsset-005.yaml | 16 - src/data/examples/Bad-TestAsset-006.yaml | 16 - .../datamodel/pydanticmodel.py | 37 +- .../datamodel/translator_testing_model.py | 80 +- .../schema/translator_testing_model.yaml | 83 +- 31 files changed, 1574 insertions(+), 1233 deletions(-) delete mode 100644 src/data/examples/Bad-TestAsset-002.yaml delete mode 100644 src/data/examples/Bad-TestAsset-003.yaml delete mode 100644 src/data/examples/Bad-TestAsset-004.yaml delete mode 100644 src/data/examples/Bad-TestAsset-005.yaml delete mode 100644 src/data/examples/Bad-TestAsset-006.yaml diff --git a/examples/Bad-TestAsset-001.yaml b/examples/Bad-TestAsset-001.yaml index 783b421..171adc6 100644 --- a/examples/Bad-TestAsset-001.yaml +++ b/examples/Bad-TestAsset-001.yaml @@ -1,38 +1,15 @@ # Example TestAsset data object --- -# TODO: the TestAsset example data needs further elaboration -# -# TestAsset: -# description: >- -# Represents a Test Asset, which is a single specific instance of -# TestCase-agnostic semantic parameters representing the -# specification of a Translator test target with inputs and (expected) outputs. -# is_a: TestEntity -# slots: -# - input_id -# - input_name -# - predicate -# - output_id -# - output_name -# - expected_output -# - test_issue -# - semantic_severity -# - in_v1 -# - well_known -# - test_metadata -# slot_usage: -# id: -# aliases: ["AssetIdentifier"] -# range: uriorcurie -# tags: -# description: >- -# One or more 'tags' slot values (inherited from TestEntity) should generally -# be defined to specify TestAsset membership in a "Block List" collection -# # Bad Query 1 - Missing required identifier? # id: example:TestAsset001 -name: foo bar -description: This is a test asset -test_meta_data: { "foo": "bar" } \ No newline at end of file +name: TestAsset001 +description: Fingolimod treats multiple sclerosis +input_id: PUBCHEM.COMPOUND:107970 +predicate_name: treats +output_id: MONDO:0005301 +expected_output: Acceptable +test_runner_settings: + - "inferred" + - "test" diff --git a/examples/Bad-TestEntity-001.yaml b/examples/Bad-TestEntity-001.yaml index 9676668..dbe6245 100644 --- a/examples/Bad-TestEntity-001.yaml +++ b/examples/Bad-TestEntity-001.yaml @@ -11,6 +11,8 @@ # - id # - name # - description +# - tags +# - test_runner_settings # # where the slots are: # diff --git a/examples/Bad-TestEntity-002.yaml-uriorcurie_should_fail_but_does_not b/examples/Bad-TestEntity-002.yaml-uriorcurie_should_fail_but_does_not index f9357e2..3f8643b 100644 --- a/examples/Bad-TestEntity-002.yaml-uriorcurie_should_fail_but_does_not +++ b/examples/Bad-TestEntity-002.yaml-uriorcurie_should_fail_but_does_not @@ -11,6 +11,8 @@ # - id # - name # - description +# - tags +# - test_runner_settings # # where the slots are: # diff --git a/examples/Good-AcceptanceTestAsset-001.yaml b/examples/Good-AcceptanceTestAsset-001.yaml index 5dd07d3..2a48722 100644 --- a/examples/Good-AcceptanceTestAsset-001.yaml +++ b/examples/Good-AcceptanceTestAsset-001.yaml @@ -1,6 +1,7 @@ # Example AcceptanceTestAsset data object --- # TODO: the AcceptanceTestAsset example data needs further elaboration +# (there don't seem to be any required: true AcceptanceTestAsset-specific fields) # # AcceptanceTestAsset: @@ -21,14 +22,16 @@ # - notes # id: example:AcceptanceTestAsset001 -name: foo bar -description: This is a acceptance test case' -runner_settings: +name: AcceptanceTestAsset001 +description: Iron treats Aceruloplasminemia +input_id: MONDO:0011426 +predicate_name: treats +output_id: DRUGBANK:DB01592 +expected_output: NeverShow +test_metadata: + id: "test:1" + test_source: SMURF +test_runner_settings: - "inferred" - "test" -test_metadata: - id: 1 - test_source: SMURF, - test_reference: https://github.com/NCATSTranslator/Feedback/issues/506 - test_objective: AcceptanceTest diff --git a/examples/Good-AcceptanceTestCase-001.yaml b/examples/Good-AcceptanceTestCase-001.yaml index 8102b5c..ca6f646 100644 --- a/examples/Good-AcceptanceTestCase-001.yaml +++ b/examples/Good-AcceptanceTestCase-001.yaml @@ -13,10 +13,20 @@ id: example:AcceptanceTestCase001 name: foo bar description: This is an acceptance test case +test_runner_settings: + - "inferred" + - "test" test_assets: - - id: example:TestAsset001 - name: foo bar - description: This is a test asset - runner_settings: + - id: example:AcceptanceTestAsset001 + name: AcceptanceTestAsset001 + description: Iron treats Aceruloplasminemia + input_id: MONDO:0011426 + predicate_name: treats + output_id: DRUGBANK:DB01592 + expected_output: NeverShow + test_runner_settings: - "inferred" - - "test" \ No newline at end of file + - "test" + test_metadata: + id: "test:1" + test_source: SMURF \ No newline at end of file diff --git a/examples/Good-TestAsset-001.json b/examples/Good-TestAsset-001.json index 05aae30..f773550 100644 --- a/examples/Good-TestAsset-001.json +++ b/examples/Good-TestAsset-001.json @@ -1,16 +1,13 @@ { "id": "example:TestAsset001", - "name": "foo bar", - "description": "This is a test asset", - "runner_settings": ["inferred", "test"], + "name": "TestAsset001", + "description": "Fingolimod treats multiple sclerosis", + "input_id": "PUBCHEM.COMPOUND:107970", + "predicate_name": "treats", + "output_id": "MONDO:0005301", + "expected_output": "Acceptable", + "test_runner_settings": ["inferred", "test"], "test_metadata": { - "id": "1", - "name": null, - "description": null, - "tags": [], - "test_source": "SMURF", - "test_reference": "https://github.com/NCATSTranslator/Feedback/issues/506", - "test_objective": "AcceptanceTest", - "test_annotations": [] + "id": "example:TestAsset001" } } diff --git a/examples/Good-TestAsset-001.yaml b/examples/Good-TestAsset-001.yaml index cbfb640..31fd44d 100644 --- a/examples/Good-TestAsset-001.yaml +++ b/examples/Good-TestAsset-001.yaml @@ -1,7 +1,8 @@ # Example TestAsset data object --- -# TODO: the TestAsset example data needs further elaboration +# TODO: the TestAsset example data may need further elaboration +# # # TestAsset: # description: >- @@ -12,15 +13,20 @@ # slots: # - input_id # - input_name -# - predicate +# - input_category +# - predicate_id +# - predicate_name # - output_id # - output_name +# - output_category +# - association +# - qualifiers # - expected_output # - test_issue # - semantic_severity # - in_v1 # - well_known -# - runner_settings +# - test_reference # slot_usage: # id: # aliases: ["AssetIdentifier"] @@ -29,7 +35,7 @@ # description: >- # One or more 'tags' slot values (inherited from TestEntity) should generally # be defined to specify TestAsset membership in a "Block List" collection -# runner_settings: +# test_runner_settings: # description: >- # Settings for the test harness, e.g. "inferred" # @@ -38,7 +44,7 @@ name: TestAsset001 description: Iron treats Aceruloplasminemia input_id: MONDO:0011426 input_name: Aceruloplasminemia -predicate: Treats +predicate_name: treats output_id: DRUGBANK:DB01592 output_name: Iron (PUBCHEM) expected_output: NeverShow @@ -46,11 +52,8 @@ test_reference: https://github.com/NCATSTranslator/Feedback/issues/506 semantic_severity: NotApplicable in_v1: True well_known: False -runner_settings: - - "inferred" - - "test" test_metadata: - id: 1 - test_source: SMURF, - test_reference: https://github.com/NCATSTranslator/Feedback/issues/506 - test_objective: AcceptanceTest + id: "example:TestAsset001" +test_runner_settings: + - "inferred" + - "test" \ No newline at end of file diff --git a/examples/Good-TestCase-001.json b/examples/Good-TestCase-001.json index 1a006b7..d4763fe 100644 --- a/examples/Good-TestCase-001.json +++ b/examples/Good-TestCase-001.json @@ -5,9 +5,17 @@ "test_assets": [ { "id": "example:TestAsset001", - "name": "foo bar", - "description": "This is a test asset", - "runner_settings": ["inferred","test_setting"] + "name": "TestAsset001", + "description": "Fingolimod treats multiple sclerosis", + "input_id": "PUBCHEM.COMPOUND:107970", + "predicate_name": "treats", + "output_id": "MONDO:0005301", + "expected_output": "Acceptable", + "test_runner_settings": ["inferred", "test"], + "test_metadata": { + "id": "example:TestMetadata001" + } } - ] + ], + "test_runner_settings": ["inferred", "test"] } diff --git a/examples/Good-TestCase-001.yaml b/examples/Good-TestCase-001.yaml index 48cbafc..2af86e1 100644 --- a/examples/Good-TestCase-001.yaml +++ b/examples/Good-TestCase-001.yaml @@ -2,6 +2,7 @@ --- # TODO: the TestCase example data needs further elaboration # +# # TestCase: # description: >- # Represents a single enumerated instance of Test Case, derived from a @@ -34,10 +35,20 @@ id: example:TestCase001 name: foo bar description: This is a test case +# NOTE: we only provide the minimal set of TestAsset slots where required: true test_assets: - id: example:TestAsset001 - name: foo bar - description: This is a test asset - runner_settings: + name: TestAsset001 + input_id: MONDO:0011426 + predicate_name: treats + output_id: DRUGBANK:DB01592 + expected_output: NeverShow + test_runner_settings: - "inferred" - "test" + test_metadata: + id: test:1 + test_source: SMURF +test_runner_settings: + - "inferred" + - "test" \ No newline at end of file diff --git a/examples/Good-TestCaseSpecification-001.yaml b/examples/Good-TestCaseSpecification-001.yaml index 5c4f8cb..cf671f2 100644 --- a/examples/Good-TestCaseSpecification-001.yaml +++ b/examples/Good-TestCaseSpecification-001.yaml @@ -11,3 +11,7 @@ id: example:TestCaseSpecification001 name: foo bar description: This is a test case specification +test_case_specification_runner_settings: + - "inferred" + - "test" + diff --git a/examples/Good-TestEntity-Complete.yaml b/examples/Good-TestEntity-Complete.yaml index ad412a8..2671e65 100644 --- a/examples/Good-TestEntity-Complete.yaml +++ b/examples/Good-TestEntity-Complete.yaml @@ -11,6 +11,8 @@ # - id # - name # - description +# - tags +# - test_runner_settings # # where the slots are: # diff --git a/examples/Good-TestSuite-001.yaml b/examples/Good-TestSuite-001.yaml index c4d8a07..e579103 100644 --- a/examples/Good-TestSuite-001.yaml +++ b/examples/Good-TestSuite-001.yaml @@ -18,3 +18,6 @@ id: example:TestSuite001 name: foo bar description: This is a test suite +test_metadata: + id: test:1 + test_source: SMURF diff --git a/examples/SampleTestAssetList.json b/examples/SampleTestAssetList.json index 227e400..84bb0e0 100644 --- a/examples/SampleTestAssetList.json +++ b/examples/SampleTestAssetList.json @@ -1,20 +1,30 @@ [ { "id": "example:TestAsset001", - "name": "foo bar", - "description": "This is a test asset", - "runner_settings": ["inferred","test_setting"] + "name": "TestAsset001", + "description": "Fingolimod treats multiple sclerosis", + "input_id": "PUBCHEM.COMPOUND:107970", + "predicate_name": "treats", + "output_id": "MONDO:0005301", + "expected_output": "Acceptable", + "runner_settings": ["inferred", "test"], + "test_metadata": { + "id": "example:TestAsset001", + "source": "SMURF" + } }, { "id": "example:TestAsset002", - "name": "tweedle dee", - "description": "This is another test asset", - "runner_settings": ["inferred","test_setting"] - }, - { - "id": "example:TestAsset003", - "name": "tweedle dum", - "description": "This is yetanuder test asset", - "runner_settings": ["inferred","test_setting"] + "name": "TestAsset002", + "description": "Carbamazepine treats Cerebral palsy", + "input_id": "PUBCHEM.COMPOUND:2554", + "predicate_name": "treats", + "output_id": "MONDO:0006497", + "expected_output": "number_2_Acceptable", + "runner_settings": ["inferred", "test"], + "test_metadata": { + "id": "example:TestAsset001", + "source": "SMURF" + } } ] \ No newline at end of file diff --git a/poetry.lock b/poetry.lock index ddfe104..cefe9c0 100644 --- a/poetry.lock +++ b/poetry.lock @@ -1,4 +1,4 @@ -# This file is automatically @generated by Poetry 1.5.1 and should not be changed by hand. +# This file is automatically @generated by Poetry 1.7.1 and should not be changed by hand. [[package]] name = "annotated-types" @@ -463,13 +463,13 @@ grpcio-gcp = ["grpcio-gcp (>=0.2.2,<1.0.dev0)"] [[package]] name = "google-api-python-client" -version = "2.126.0" +version = "2.127.0" description = "Google API Client Library for Python" optional = false python-versions = ">=3.7" files = [ - {file = "google-api-python-client-2.126.0.tar.gz", hash = "sha256:97c0410630e2bebd194d99e91bd620dab5bc6b6ec0bf033f9a9109b700b83acb"}, - {file = "google_api_python_client-2.126.0-py2.py3-none-any.whl", hash = "sha256:299255fdb8dddf4eb96ab99e8358991160900b4109a9e0d3e3ac127c04b1e2ee"}, + {file = "google-api-python-client-2.127.0.tar.gz", hash = "sha256:bbb51b0fbccdf40e536c26341e372d7800f09afebb53103bbcc94e08f14b523b"}, + {file = "google_api_python_client-2.127.0-py2.py3-none-any.whl", hash = "sha256:d01c70c7840ec37888aa02b1aea5d9baba4c1701e268d1a0251640afd56e5e90"}, ] [package.dependencies] @@ -1421,18 +1421,19 @@ files = [ [[package]] name = "platformdirs" -version = "4.2.0" -description = "A small Python package for determining appropriate platform-specific dirs, e.g. a \"user data dir\"." +version = "4.2.1" +description = "A small Python package for determining appropriate platform-specific dirs, e.g. a `user data dir`." optional = false python-versions = ">=3.8" files = [ - {file = "platformdirs-4.2.0-py3-none-any.whl", hash = "sha256:0614df2a2f37e1a662acbd8e2b25b92ccf8632929bc6d43467e17fe89c75e068"}, - {file = "platformdirs-4.2.0.tar.gz", hash = "sha256:ef0cc731df711022c174543cb70a9b5bd22e5a9337c8624ef2c2ceb8ddad8768"}, + {file = "platformdirs-4.2.1-py3-none-any.whl", hash = "sha256:17d5a1161b3fd67b390023cb2d3b026bbd40abde6fdb052dfbd3a29c3ba22ee1"}, + {file = "platformdirs-4.2.1.tar.gz", hash = "sha256:031cd18d4ec63ec53e82dceaac0417d218a6863f7745dfcc9efe7793b7039bdf"}, ] [package.extras] docs = ["furo (>=2023.9.10)", "proselint (>=0.13)", "sphinx (>=7.2.6)", "sphinx-autodoc-typehints (>=1.25.2)"] test = ["appdirs (==1.4.4)", "covdefaults (>=2.3)", "pytest (>=7.4.3)", "pytest-cov (>=4.1)", "pytest-mock (>=3.12)"] +type = ["mypy (>=1.8)"] [[package]] name = "pluggy" @@ -1556,18 +1557,18 @@ pyasn1 = ">=0.4.6,<0.7.0" [[package]] name = "pydantic" -version = "2.7.0" +version = "2.7.1" description = "Data validation using Python type hints" optional = false python-versions = ">=3.8" files = [ - {file = "pydantic-2.7.0-py3-none-any.whl", hash = "sha256:9dee74a271705f14f9a1567671d144a851c675b072736f0a7b2608fd9e495352"}, - {file = "pydantic-2.7.0.tar.gz", hash = "sha256:b5ecdd42262ca2462e2624793551e80911a1e989f462910bb81aef974b4bb383"}, + {file = "pydantic-2.7.1-py3-none-any.whl", hash = "sha256:e029badca45266732a9a79898a15ae2e8b14840b1eabbb25844be28f0b33f3d5"}, + {file = "pydantic-2.7.1.tar.gz", hash = "sha256:e9dbb5eada8abe4d9ae5f46b9939aead650cd2b68f249bb3a8139dbe125803cc"}, ] [package.dependencies] annotated-types = ">=0.4.0" -pydantic-core = "2.18.1" +pydantic-core = "2.18.2" typing-extensions = ">=4.6.1" [package.extras] @@ -1575,90 +1576,90 @@ email = ["email-validator (>=2.0.0)"] [[package]] name = "pydantic-core" -version = "2.18.1" +version = "2.18.2" description = "Core functionality for Pydantic validation and serialization" optional = false python-versions = ">=3.8" files = [ - {file = "pydantic_core-2.18.1-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:ee9cf33e7fe14243f5ca6977658eb7d1042caaa66847daacbd2117adb258b226"}, - {file = "pydantic_core-2.18.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:6b7bbb97d82659ac8b37450c60ff2e9f97e4eb0f8a8a3645a5568b9334b08b50"}, - {file = "pydantic_core-2.18.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:df4249b579e75094f7e9bb4bd28231acf55e308bf686b952f43100a5a0be394c"}, - {file = "pydantic_core-2.18.1-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:d0491006a6ad20507aec2be72e7831a42efc93193d2402018007ff827dc62926"}, - {file = "pydantic_core-2.18.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:2ae80f72bb7a3e397ab37b53a2b49c62cc5496412e71bc4f1277620a7ce3f52b"}, - {file = "pydantic_core-2.18.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:58aca931bef83217fca7a390e0486ae327c4af9c3e941adb75f8772f8eeb03a1"}, - {file = "pydantic_core-2.18.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1be91ad664fc9245404a789d60cba1e91c26b1454ba136d2a1bf0c2ac0c0505a"}, - {file = "pydantic_core-2.18.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:667880321e916a8920ef49f5d50e7983792cf59f3b6079f3c9dac2b88a311d17"}, - {file = "pydantic_core-2.18.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:f7054fdc556f5421f01e39cbb767d5ec5c1139ea98c3e5b350e02e62201740c7"}, - {file = "pydantic_core-2.18.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:030e4f9516f9947f38179249778709a460a3adb516bf39b5eb9066fcfe43d0e6"}, - {file = "pydantic_core-2.18.1-cp310-none-win32.whl", hash = "sha256:2e91711e36e229978d92642bfc3546333a9127ecebb3f2761372e096395fc649"}, - {file = "pydantic_core-2.18.1-cp310-none-win_amd64.whl", hash = "sha256:9a29726f91c6cb390b3c2338f0df5cd3e216ad7a938762d11c994bb37552edb0"}, - {file = "pydantic_core-2.18.1-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:9ece8a49696669d483d206b4474c367852c44815fca23ac4e48b72b339807f80"}, - {file = "pydantic_core-2.18.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:7a5d83efc109ceddb99abd2c1316298ced2adb4570410defe766851a804fcd5b"}, - {file = "pydantic_core-2.18.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5f7973c381283783cd1043a8c8f61ea5ce7a3a58b0369f0ee0ee975eaf2f2a1b"}, - {file = "pydantic_core-2.18.1-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:54c7375c62190a7845091f521add19b0f026bcf6ae674bdb89f296972272e86d"}, - {file = "pydantic_core-2.18.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:dd63cec4e26e790b70544ae5cc48d11b515b09e05fdd5eff12e3195f54b8a586"}, - {file = "pydantic_core-2.18.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:561cf62c8a3498406495cfc49eee086ed2bb186d08bcc65812b75fda42c38294"}, - {file = "pydantic_core-2.18.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:68717c38a68e37af87c4da20e08f3e27d7e4212e99e96c3d875fbf3f4812abfc"}, - {file = "pydantic_core-2.18.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:2d5728e93d28a3c63ee513d9ffbac9c5989de8c76e049dbcb5bfe4b923a9739d"}, - {file = "pydantic_core-2.18.1-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:f0f17814c505f07806e22b28856c59ac80cee7dd0fbb152aed273e116378f519"}, - {file = "pydantic_core-2.18.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:d816f44a51ba5175394bc6c7879ca0bd2be560b2c9e9f3411ef3a4cbe644c2e9"}, - {file = "pydantic_core-2.18.1-cp311-none-win32.whl", hash = "sha256:09f03dfc0ef8c22622eaa8608caa4a1e189cfb83ce847045eca34f690895eccb"}, - {file = "pydantic_core-2.18.1-cp311-none-win_amd64.whl", hash = "sha256:27f1009dc292f3b7ca77feb3571c537276b9aad5dd4efb471ac88a8bd09024e9"}, - {file = "pydantic_core-2.18.1-cp311-none-win_arm64.whl", hash = "sha256:48dd883db92e92519201f2b01cafa881e5f7125666141a49ffba8b9facc072b0"}, - {file = "pydantic_core-2.18.1-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:b6b0e4912030c6f28bcb72b9ebe4989d6dc2eebcd2a9cdc35fefc38052dd4fe8"}, - {file = "pydantic_core-2.18.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:f3202a429fe825b699c57892d4371c74cc3456d8d71b7f35d6028c96dfecad31"}, - {file = "pydantic_core-2.18.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a3982b0a32d0a88b3907e4b0dc36809fda477f0757c59a505d4e9b455f384b8b"}, - {file = "pydantic_core-2.18.1-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:25595ac311f20e5324d1941909b0d12933f1fd2171075fcff763e90f43e92a0d"}, - {file = "pydantic_core-2.18.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:14fe73881cf8e4cbdaded8ca0aa671635b597e42447fec7060d0868b52d074e6"}, - {file = "pydantic_core-2.18.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:ca976884ce34070799e4dfc6fbd68cb1d181db1eefe4a3a94798ddfb34b8867f"}, - {file = "pydantic_core-2.18.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:684d840d2c9ec5de9cb397fcb3f36d5ebb6fa0d94734f9886032dd796c1ead06"}, - {file = "pydantic_core-2.18.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:54764c083bbe0264f0f746cefcded6cb08fbbaaf1ad1d78fb8a4c30cff999a90"}, - {file = "pydantic_core-2.18.1-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:201713f2f462e5c015b343e86e68bd8a530a4f76609b33d8f0ec65d2b921712a"}, - {file = "pydantic_core-2.18.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:fd1a9edb9dd9d79fbeac1ea1f9a8dd527a6113b18d2e9bcc0d541d308dae639b"}, - {file = "pydantic_core-2.18.1-cp312-none-win32.whl", hash = "sha256:d5e6b7155b8197b329dc787356cfd2684c9d6a6b1a197f6bbf45f5555a98d411"}, - {file = "pydantic_core-2.18.1-cp312-none-win_amd64.whl", hash = "sha256:9376d83d686ec62e8b19c0ac3bf8d28d8a5981d0df290196fb6ef24d8a26f0d6"}, - {file = "pydantic_core-2.18.1-cp312-none-win_arm64.whl", hash = "sha256:c562b49c96906b4029b5685075fe1ebd3b5cc2601dfa0b9e16c2c09d6cbce048"}, - {file = "pydantic_core-2.18.1-cp38-cp38-macosx_10_12_x86_64.whl", hash = "sha256:3e352f0191d99fe617371096845070dee295444979efb8f27ad941227de6ad09"}, - {file = "pydantic_core-2.18.1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:c0295d52b012cbe0d3059b1dba99159c3be55e632aae1999ab74ae2bd86a33d7"}, - {file = "pydantic_core-2.18.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:56823a92075780582d1ffd4489a2e61d56fd3ebb4b40b713d63f96dd92d28144"}, - {file = "pydantic_core-2.18.1-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:dd3f79e17b56741b5177bcc36307750d50ea0698df6aa82f69c7db32d968c1c2"}, - {file = "pydantic_core-2.18.1-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:38a5024de321d672a132b1834a66eeb7931959c59964b777e8f32dbe9523f6b1"}, - {file = "pydantic_core-2.18.1-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d2ce426ee691319d4767748c8e0895cfc56593d725594e415f274059bcf3cb76"}, - {file = "pydantic_core-2.18.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2adaeea59849ec0939af5c5d476935f2bab4b7f0335b0110f0f069a41024278e"}, - {file = "pydantic_core-2.18.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:9b6431559676a1079eac0f52d6d0721fb8e3c5ba43c37bc537c8c83724031feb"}, - {file = "pydantic_core-2.18.1-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:85233abb44bc18d16e72dc05bf13848a36f363f83757541f1a97db2f8d58cfd9"}, - {file = "pydantic_core-2.18.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:641a018af4fe48be57a2b3d7a1f0f5dbca07c1d00951d3d7463f0ac9dac66622"}, - {file = "pydantic_core-2.18.1-cp38-none-win32.whl", hash = "sha256:63d7523cd95d2fde0d28dc42968ac731b5bb1e516cc56b93a50ab293f4daeaad"}, - {file = "pydantic_core-2.18.1-cp38-none-win_amd64.whl", hash = "sha256:907a4d7720abfcb1c81619863efd47c8a85d26a257a2dbebdb87c3b847df0278"}, - {file = "pydantic_core-2.18.1-cp39-cp39-macosx_10_12_x86_64.whl", hash = "sha256:aad17e462f42ddbef5984d70c40bfc4146c322a2da79715932cd8976317054de"}, - {file = "pydantic_core-2.18.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:94b9769ba435b598b547c762184bcfc4783d0d4c7771b04a3b45775c3589ca44"}, - {file = "pydantic_core-2.18.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:80e0e57cc704a52fb1b48f16d5b2c8818da087dbee6f98d9bf19546930dc64b5"}, - {file = "pydantic_core-2.18.1-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:76b86e24039c35280ceee6dce7e62945eb93a5175d43689ba98360ab31eebc4a"}, - {file = "pydantic_core-2.18.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:12a05db5013ec0ca4a32cc6433f53faa2a014ec364031408540ba858c2172bb0"}, - {file = "pydantic_core-2.18.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:250ae39445cb5475e483a36b1061af1bc233de3e9ad0f4f76a71b66231b07f88"}, - {file = "pydantic_core-2.18.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a32204489259786a923e02990249c65b0f17235073149d0033efcebe80095570"}, - {file = "pydantic_core-2.18.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:6395a4435fa26519fd96fdccb77e9d00ddae9dd6c742309bd0b5610609ad7fb2"}, - {file = "pydantic_core-2.18.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:2533ad2883f001efa72f3d0e733fb846710c3af6dcdd544fe5bf14fa5fe2d7db"}, - {file = "pydantic_core-2.18.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:b560b72ed4816aee52783c66854d96157fd8175631f01ef58e894cc57c84f0f6"}, - {file = "pydantic_core-2.18.1-cp39-none-win32.whl", hash = "sha256:582cf2cead97c9e382a7f4d3b744cf0ef1a6e815e44d3aa81af3ad98762f5a9b"}, - {file = "pydantic_core-2.18.1-cp39-none-win_amd64.whl", hash = "sha256:ca71d501629d1fa50ea7fa3b08ba884fe10cefc559f5c6c8dfe9036c16e8ae89"}, - {file = "pydantic_core-2.18.1-pp310-pypy310_pp73-macosx_10_12_x86_64.whl", hash = "sha256:e178e5b66a06ec5bf51668ec0d4ac8cfb2bdcb553b2c207d58148340efd00143"}, - {file = "pydantic_core-2.18.1-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:72722ce529a76a4637a60be18bd789d8fb871e84472490ed7ddff62d5fed620d"}, - {file = "pydantic_core-2.18.1-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2fe0c1ce5b129455e43f941f7a46f61f3d3861e571f2905d55cdbb8b5c6f5e2c"}, - {file = "pydantic_core-2.18.1-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d4284c621f06a72ce2cb55f74ea3150113d926a6eb78ab38340c08f770eb9b4d"}, - {file = "pydantic_core-2.18.1-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:1a0c3e718f4e064efde68092d9d974e39572c14e56726ecfaeebbe6544521f47"}, - {file = "pydantic_core-2.18.1-pp310-pypy310_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:2027493cc44c23b598cfaf200936110433d9caa84e2c6cf487a83999638a96ac"}, - {file = "pydantic_core-2.18.1-pp310-pypy310_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:76909849d1a6bffa5a07742294f3fa1d357dc917cb1fe7b470afbc3a7579d539"}, - {file = "pydantic_core-2.18.1-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:ee7ccc7fb7e921d767f853b47814c3048c7de536663e82fbc37f5eb0d532224b"}, - {file = "pydantic_core-2.18.1-pp39-pypy39_pp73-macosx_10_12_x86_64.whl", hash = "sha256:ee2794111c188548a4547eccc73a6a8527fe2af6cf25e1a4ebda2fd01cdd2e60"}, - {file = "pydantic_core-2.18.1-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:a139fe9f298dc097349fb4f28c8b81cc7a202dbfba66af0e14be5cfca4ef7ce5"}, - {file = "pydantic_core-2.18.1-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d074b07a10c391fc5bbdcb37b2f16f20fcd9e51e10d01652ab298c0d07908ee2"}, - {file = "pydantic_core-2.18.1-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c69567ddbac186e8c0aadc1f324a60a564cfe25e43ef2ce81bcc4b8c3abffbae"}, - {file = "pydantic_core-2.18.1-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:baf1c7b78cddb5af00971ad5294a4583188bda1495b13760d9f03c9483bb6203"}, - {file = "pydantic_core-2.18.1-pp39-pypy39_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:2684a94fdfd1b146ff10689c6e4e815f6a01141781c493b97342cdc5b06f4d5d"}, - {file = "pydantic_core-2.18.1-pp39-pypy39_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:73c1bc8a86a5c9e8721a088df234265317692d0b5cd9e86e975ce3bc3db62a59"}, - {file = "pydantic_core-2.18.1-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:e60defc3c15defb70bb38dd605ff7e0fae5f6c9c7cbfe0ad7868582cb7e844a6"}, - {file = "pydantic_core-2.18.1.tar.gz", hash = "sha256:de9d3e8717560eb05e28739d1b35e4eac2e458553a52a301e51352a7ffc86a35"}, + {file = "pydantic_core-2.18.2-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:9e08e867b306f525802df7cd16c44ff5ebbe747ff0ca6cf3fde7f36c05a59a81"}, + {file = "pydantic_core-2.18.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:f0a21cbaa69900cbe1a2e7cad2aa74ac3cf21b10c3efb0fa0b80305274c0e8a2"}, + {file = "pydantic_core-2.18.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0680b1f1f11fda801397de52c36ce38ef1c1dc841a0927a94f226dea29c3ae3d"}, + {file = "pydantic_core-2.18.2-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:95b9d5e72481d3780ba3442eac863eae92ae43a5f3adb5b4d0a1de89d42bb250"}, + {file = "pydantic_core-2.18.2-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c4fcf5cd9c4b655ad666ca332b9a081112cd7a58a8b5a6ca7a3104bc950f2038"}, + {file = "pydantic_core-2.18.2-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9b5155ff768083cb1d62f3e143b49a8a3432e6789a3abee8acd005c3c7af1c74"}, + {file = "pydantic_core-2.18.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:553ef617b6836fc7e4df130bb851e32fe357ce36336d897fd6646d6058d980af"}, + {file = "pydantic_core-2.18.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:b89ed9eb7d616ef5714e5590e6cf7f23b02d0d539767d33561e3675d6f9e3857"}, + {file = "pydantic_core-2.18.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:75f7e9488238e920ab6204399ded280dc4c307d034f3924cd7f90a38b1829563"}, + {file = "pydantic_core-2.18.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:ef26c9e94a8c04a1b2924149a9cb081836913818e55681722d7f29af88fe7b38"}, + {file = "pydantic_core-2.18.2-cp310-none-win32.whl", hash = "sha256:182245ff6b0039e82b6bb585ed55a64d7c81c560715d1bad0cbad6dfa07b4027"}, + {file = "pydantic_core-2.18.2-cp310-none-win_amd64.whl", hash = "sha256:e23ec367a948b6d812301afc1b13f8094ab7b2c280af66ef450efc357d2ae543"}, + {file = "pydantic_core-2.18.2-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:219da3f096d50a157f33645a1cf31c0ad1fe829a92181dd1311022f986e5fbe3"}, + {file = "pydantic_core-2.18.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:cc1cfd88a64e012b74e94cd00bbe0f9c6df57049c97f02bb07d39e9c852e19a4"}, + {file = "pydantic_core-2.18.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:05b7133a6e6aeb8df37d6f413f7705a37ab4031597f64ab56384c94d98fa0e90"}, + {file = "pydantic_core-2.18.2-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:224c421235f6102e8737032483f43c1a8cfb1d2f45740c44166219599358c2cd"}, + {file = "pydantic_core-2.18.2-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b14d82cdb934e99dda6d9d60dc84a24379820176cc4a0d123f88df319ae9c150"}, + {file = "pydantic_core-2.18.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2728b01246a3bba6de144f9e3115b532ee44bd6cf39795194fb75491824a1413"}, + {file = "pydantic_core-2.18.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:470b94480bb5ee929f5acba6995251ada5e059a5ef3e0dfc63cca287283ebfa6"}, + {file = "pydantic_core-2.18.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:997abc4df705d1295a42f95b4eec4950a37ad8ae46d913caeee117b6b198811c"}, + {file = "pydantic_core-2.18.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:75250dbc5290e3f1a0f4618db35e51a165186f9034eff158f3d490b3fed9f8a0"}, + {file = "pydantic_core-2.18.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:4456f2dca97c425231d7315737d45239b2b51a50dc2b6f0c2bb181fce6207664"}, + {file = "pydantic_core-2.18.2-cp311-none-win32.whl", hash = "sha256:269322dcc3d8bdb69f054681edff86276b2ff972447863cf34c8b860f5188e2e"}, + {file = "pydantic_core-2.18.2-cp311-none-win_amd64.whl", hash = "sha256:800d60565aec896f25bc3cfa56d2277d52d5182af08162f7954f938c06dc4ee3"}, + {file = "pydantic_core-2.18.2-cp311-none-win_arm64.whl", hash = "sha256:1404c69d6a676245199767ba4f633cce5f4ad4181f9d0ccb0577e1f66cf4c46d"}, + {file = "pydantic_core-2.18.2-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:fb2bd7be70c0fe4dfd32c951bc813d9fe6ebcbfdd15a07527796c8204bd36242"}, + {file = "pydantic_core-2.18.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:6132dd3bd52838acddca05a72aafb6eab6536aa145e923bb50f45e78b7251043"}, + {file = "pydantic_core-2.18.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d7d904828195733c183d20a54230c0df0eb46ec746ea1a666730787353e87182"}, + {file = "pydantic_core-2.18.2-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:c9bd70772c720142be1020eac55f8143a34ec9f82d75a8e7a07852023e46617f"}, + {file = "pydantic_core-2.18.2-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:2b8ed04b3582771764538f7ee7001b02e1170223cf9b75dff0bc698fadb00cf3"}, + {file = "pydantic_core-2.18.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e6dac87ddb34aaec85f873d737e9d06a3555a1cc1a8e0c44b7f8d5daeb89d86f"}, + {file = "pydantic_core-2.18.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7ca4ae5a27ad7a4ee5170aebce1574b375de390bc01284f87b18d43a3984df72"}, + {file = "pydantic_core-2.18.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:886eec03591b7cf058467a70a87733b35f44707bd86cf64a615584fd72488b7c"}, + {file = "pydantic_core-2.18.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:ca7b0c1f1c983e064caa85f3792dd2fe3526b3505378874afa84baf662e12241"}, + {file = "pydantic_core-2.18.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:4b4356d3538c3649337df4074e81b85f0616b79731fe22dd11b99499b2ebbdf3"}, + {file = "pydantic_core-2.18.2-cp312-none-win32.whl", hash = "sha256:8b172601454f2d7701121bbec3425dd71efcb787a027edf49724c9cefc14c038"}, + {file = "pydantic_core-2.18.2-cp312-none-win_amd64.whl", hash = "sha256:b1bd7e47b1558ea872bd16c8502c414f9e90dcf12f1395129d7bb42a09a95438"}, + {file = "pydantic_core-2.18.2-cp312-none-win_arm64.whl", hash = "sha256:98758d627ff397e752bc339272c14c98199c613f922d4a384ddc07526c86a2ec"}, + {file = "pydantic_core-2.18.2-cp38-cp38-macosx_10_12_x86_64.whl", hash = "sha256:9fdad8e35f278b2c3eb77cbdc5c0a49dada440657bf738d6905ce106dc1de439"}, + {file = "pydantic_core-2.18.2-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:1d90c3265ae107f91a4f279f4d6f6f1d4907ac76c6868b27dc7fb33688cfb347"}, + {file = "pydantic_core-2.18.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:390193c770399861d8df9670fb0d1874f330c79caaca4642332df7c682bf6b91"}, + {file = "pydantic_core-2.18.2-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:82d5d4d78e4448683cb467897fe24e2b74bb7b973a541ea1dcfec1d3cbce39fb"}, + {file = "pydantic_core-2.18.2-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:4774f3184d2ef3e14e8693194f661dea5a4d6ca4e3dc8e39786d33a94865cefd"}, + {file = "pydantic_core-2.18.2-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d4d938ec0adf5167cb335acb25a4ee69a8107e4984f8fbd2e897021d9e4ca21b"}, + {file = "pydantic_core-2.18.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e0e8b1be28239fc64a88a8189d1df7fad8be8c1ae47fcc33e43d4be15f99cc70"}, + {file = "pydantic_core-2.18.2-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:868649da93e5a3d5eacc2b5b3b9235c98ccdbfd443832f31e075f54419e1b96b"}, + {file = "pydantic_core-2.18.2-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:78363590ef93d5d226ba21a90a03ea89a20738ee5b7da83d771d283fd8a56761"}, + {file = "pydantic_core-2.18.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:852e966fbd035a6468fc0a3496589b45e2208ec7ca95c26470a54daed82a0788"}, + {file = "pydantic_core-2.18.2-cp38-none-win32.whl", hash = "sha256:6a46e22a707e7ad4484ac9ee9f290f9d501df45954184e23fc29408dfad61350"}, + {file = "pydantic_core-2.18.2-cp38-none-win_amd64.whl", hash = "sha256:d91cb5ea8b11607cc757675051f61b3d93f15eca3cefb3e6c704a5d6e8440f4e"}, + {file = "pydantic_core-2.18.2-cp39-cp39-macosx_10_12_x86_64.whl", hash = "sha256:ae0a8a797a5e56c053610fa7be147993fe50960fa43609ff2a9552b0e07013e8"}, + {file = "pydantic_core-2.18.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:042473b6280246b1dbf530559246f6842b56119c2926d1e52b631bdc46075f2a"}, + {file = "pydantic_core-2.18.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1a388a77e629b9ec814c1b1e6b3b595fe521d2cdc625fcca26fbc2d44c816804"}, + {file = "pydantic_core-2.18.2-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:e25add29b8f3b233ae90ccef2d902d0ae0432eb0d45370fe315d1a5cf231004b"}, + {file = "pydantic_core-2.18.2-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f459a5ce8434614dfd39bbebf1041952ae01da6bed9855008cb33b875cb024c0"}, + {file = "pydantic_core-2.18.2-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:eff2de745698eb46eeb51193a9f41d67d834d50e424aef27df2fcdee1b153845"}, + {file = "pydantic_core-2.18.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a8309f67285bdfe65c372ea3722b7a5642680f3dba538566340a9d36e920b5f0"}, + {file = "pydantic_core-2.18.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:f93a8a2e3938ff656a7c1bc57193b1319960ac015b6e87d76c76bf14fe0244b4"}, + {file = "pydantic_core-2.18.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:22057013c8c1e272eb8d0eebc796701167d8377441ec894a8fed1af64a0bf399"}, + {file = "pydantic_core-2.18.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:cfeecd1ac6cc1fb2692c3d5110781c965aabd4ec5d32799773ca7b1456ac636b"}, + {file = "pydantic_core-2.18.2-cp39-none-win32.whl", hash = "sha256:0d69b4c2f6bb3e130dba60d34c0845ba31b69babdd3f78f7c0c8fae5021a253e"}, + {file = "pydantic_core-2.18.2-cp39-none-win_amd64.whl", hash = "sha256:d9319e499827271b09b4e411905b24a426b8fb69464dfa1696258f53a3334641"}, + {file = "pydantic_core-2.18.2-pp310-pypy310_pp73-macosx_10_12_x86_64.whl", hash = "sha256:a1874c6dd4113308bd0eb568418e6114b252afe44319ead2b4081e9b9521fe75"}, + {file = "pydantic_core-2.18.2-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:ccdd111c03bfd3666bd2472b674c6899550e09e9f298954cfc896ab92b5b0e6d"}, + {file = "pydantic_core-2.18.2-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e18609ceaa6eed63753037fc06ebb16041d17d28199ae5aba0052c51449650a9"}, + {file = "pydantic_core-2.18.2-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6e5c584d357c4e2baf0ff7baf44f4994be121e16a2c88918a5817331fc7599d7"}, + {file = "pydantic_core-2.18.2-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:43f0f463cf89ace478de71a318b1b4f05ebc456a9b9300d027b4b57c1a2064fb"}, + {file = "pydantic_core-2.18.2-pp310-pypy310_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:e1b395e58b10b73b07b7cf740d728dd4ff9365ac46c18751bf8b3d8cca8f625a"}, + {file = "pydantic_core-2.18.2-pp310-pypy310_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:0098300eebb1c837271d3d1a2cd2911e7c11b396eac9661655ee524a7f10587b"}, + {file = "pydantic_core-2.18.2-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:36789b70d613fbac0a25bb07ab3d9dba4d2e38af609c020cf4d888d165ee0bf3"}, + {file = "pydantic_core-2.18.2-pp39-pypy39_pp73-macosx_10_12_x86_64.whl", hash = "sha256:3f9a801e7c8f1ef8718da265bba008fa121243dfe37c1cea17840b0944dfd72c"}, + {file = "pydantic_core-2.18.2-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:3a6515ebc6e69d85502b4951d89131ca4e036078ea35533bb76327f8424531ce"}, + {file = "pydantic_core-2.18.2-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:20aca1e2298c56ececfd8ed159ae4dde2df0781988c97ef77d5c16ff4bd5b400"}, + {file = "pydantic_core-2.18.2-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:223ee893d77a310a0391dca6df00f70bbc2f36a71a895cecd9a0e762dc37b349"}, + {file = "pydantic_core-2.18.2-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:2334ce8c673ee93a1d6a65bd90327588387ba073c17e61bf19b4fd97d688d63c"}, + {file = "pydantic_core-2.18.2-pp39-pypy39_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:cbca948f2d14b09d20268cda7b0367723d79063f26c4ffc523af9042cad95592"}, + {file = "pydantic_core-2.18.2-pp39-pypy39_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:b3ef08e20ec49e02d5c6717a91bb5af9b20f1805583cb0adfe9ba2c6b505b5ae"}, + {file = "pydantic_core-2.18.2-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:c6fdc8627910eed0c01aed6a390a252fe3ea6d472ee70fdde56273f198938374"}, + {file = "pydantic_core-2.18.2.tar.gz", hash = "sha256:2e29d20810dfc3043ee13ac7d9e25105799817683348823f305ab3f349b9386e"}, ] [package.dependencies] @@ -1979,13 +1980,13 @@ rdflib-jsonld = "0.6.1" [[package]] name = "referencing" -version = "0.34.0" +version = "0.35.0" description = "JSON Referencing + Python" optional = false python-versions = ">=3.8" files = [ - {file = "referencing-0.34.0-py3-none-any.whl", hash = "sha256:d53ae300ceddd3169f1ffa9caf2cb7b769e92657e4fafb23d34b93679116dfd4"}, - {file = "referencing-0.34.0.tar.gz", hash = "sha256:5773bd84ef41799a5a8ca72dc34590c041eb01bf9aa02632b4a973fb0181a844"}, + {file = "referencing-0.35.0-py3-none-any.whl", hash = "sha256:8080727b30e364e5783152903672df9b6b091c926a146a759080b62ca3126cd6"}, + {file = "referencing-0.35.0.tar.gz", hash = "sha256:191e936b0c696d0af17ad7430a3dc68e88bc11be6514f4757dc890f04ab05889"}, ] [package.dependencies] @@ -2207,49 +2208,35 @@ files = [ {file = "ruamel.yaml.clib-0.2.8-cp310-cp310-macosx_13_0_arm64.whl", hash = "sha256:07238db9cbdf8fc1e9de2489a4f68474e70dffcb32232db7c08fa61ca0c7c462"}, {file = "ruamel.yaml.clib-0.2.8-cp310-cp310-manylinux2014_aarch64.whl", hash = "sha256:d92f81886165cb14d7b067ef37e142256f1c6a90a65cd156b063a43da1708cfd"}, {file = "ruamel.yaml.clib-0.2.8-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl", hash = "sha256:fff3573c2db359f091e1589c3d7c5fc2f86f5bdb6f24252c2d8e539d4e45f412"}, - {file = "ruamel.yaml.clib-0.2.8-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:840f0c7f194986a63d2c2465ca63af8ccbbc90ab1c6001b1978f05119b5e7334"}, - {file = "ruamel.yaml.clib-0.2.8-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:024cfe1fc7c7f4e1aff4a81e718109e13409767e4f871443cbff3dba3578203d"}, {file = "ruamel.yaml.clib-0.2.8-cp310-cp310-win32.whl", hash = "sha256:c69212f63169ec1cfc9bb44723bf2917cbbd8f6191a00ef3410f5a7fe300722d"}, {file = "ruamel.yaml.clib-0.2.8-cp310-cp310-win_amd64.whl", hash = "sha256:cabddb8d8ead485e255fe80429f833172b4cadf99274db39abc080e068cbcc31"}, {file = "ruamel.yaml.clib-0.2.8-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:bef08cd86169d9eafb3ccb0a39edb11d8e25f3dae2b28f5c52fd997521133069"}, {file = "ruamel.yaml.clib-0.2.8-cp311-cp311-macosx_13_0_arm64.whl", hash = "sha256:b16420e621d26fdfa949a8b4b47ade8810c56002f5389970db4ddda51dbff248"}, {file = "ruamel.yaml.clib-0.2.8-cp311-cp311-manylinux2014_aarch64.whl", hash = "sha256:b5edda50e5e9e15e54a6a8a0070302b00c518a9d32accc2346ad6c984aacd279"}, {file = "ruamel.yaml.clib-0.2.8-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl", hash = "sha256:25c515e350e5b739842fc3228d662413ef28f295791af5e5110b543cf0b57d9b"}, - {file = "ruamel.yaml.clib-0.2.8-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:46d378daaac94f454b3a0e3d8d78cafd78a026b1d71443f4966c696b48a6d899"}, - {file = "ruamel.yaml.clib-0.2.8-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:09b055c05697b38ecacb7ac50bdab2240bfca1a0c4872b0fd309bb07dc9aa3a9"}, {file = "ruamel.yaml.clib-0.2.8-cp311-cp311-win32.whl", hash = "sha256:53a300ed9cea38cf5a2a9b069058137c2ca1ce658a874b79baceb8f892f915a7"}, {file = "ruamel.yaml.clib-0.2.8-cp311-cp311-win_amd64.whl", hash = "sha256:c2a72e9109ea74e511e29032f3b670835f8a59bbdc9ce692c5b4ed91ccf1eedb"}, {file = "ruamel.yaml.clib-0.2.8-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:ebc06178e8821efc9692ea7544aa5644217358490145629914d8020042c24aa1"}, {file = "ruamel.yaml.clib-0.2.8-cp312-cp312-macosx_13_0_arm64.whl", hash = "sha256:edaef1c1200c4b4cb914583150dcaa3bc30e592e907c01117c08b13a07255ec2"}, {file = "ruamel.yaml.clib-0.2.8-cp312-cp312-manylinux2014_aarch64.whl", hash = "sha256:7048c338b6c86627afb27faecf418768acb6331fc24cfa56c93e8c9780f815fa"}, {file = "ruamel.yaml.clib-0.2.8-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:d176b57452ab5b7028ac47e7b3cf644bcfdc8cacfecf7e71759f7f51a59e5c92"}, - {file = "ruamel.yaml.clib-0.2.8-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:3213ece08ea033eb159ac52ae052a4899b56ecc124bb80020d9bbceeb50258e9"}, - {file = "ruamel.yaml.clib-0.2.8-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:aab7fd643f71d7946f2ee58cc88c9b7bfc97debd71dcc93e03e2d174628e7e2d"}, - {file = "ruamel.yaml.clib-0.2.8-cp312-cp312-win32.whl", hash = "sha256:5c365d91c88390c8d0a8545df0b5857172824b1c604e867161e6b3d59a827eaa"}, - {file = "ruamel.yaml.clib-0.2.8-cp312-cp312-win_amd64.whl", hash = "sha256:1758ce7d8e1a29d23de54a16ae867abd370f01b5a69e1a3ba75223eaa3ca1a1b"}, {file = "ruamel.yaml.clib-0.2.8-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:a5aa27bad2bb83670b71683aae140a1f52b0857a2deff56ad3f6c13a017a26ed"}, {file = "ruamel.yaml.clib-0.2.8-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:c58ecd827313af6864893e7af0a3bb85fd529f862b6adbefe14643947cfe2942"}, {file = "ruamel.yaml.clib-0.2.8-cp37-cp37m-macosx_12_0_arm64.whl", hash = "sha256:f481f16baec5290e45aebdc2a5168ebc6d35189ae6fea7a58787613a25f6e875"}, {file = "ruamel.yaml.clib-0.2.8-cp37-cp37m-manylinux2014_aarch64.whl", hash = "sha256:3fcc54cb0c8b811ff66082de1680b4b14cf8a81dce0d4fbf665c2265a81e07a1"}, {file = "ruamel.yaml.clib-0.2.8-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:7f67a1ee819dc4562d444bbafb135832b0b909f81cc90f7aa00260968c9ca1b3"}, - {file = "ruamel.yaml.clib-0.2.8-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:4ecbf9c3e19f9562c7fdd462e8d18dd902a47ca046a2e64dba80699f0b6c09b7"}, - {file = "ruamel.yaml.clib-0.2.8-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:87ea5ff66d8064301a154b3933ae406b0863402a799b16e4a1d24d9fbbcbe0d3"}, {file = "ruamel.yaml.clib-0.2.8-cp37-cp37m-win32.whl", hash = "sha256:75e1ed13e1f9de23c5607fe6bd1aeaae21e523b32d83bb33918245361e9cc51b"}, {file = "ruamel.yaml.clib-0.2.8-cp37-cp37m-win_amd64.whl", hash = "sha256:3f215c5daf6a9d7bbed4a0a4f760f3113b10e82ff4c5c44bec20a68c8014f675"}, {file = "ruamel.yaml.clib-0.2.8-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:1b617618914cb00bf5c34d4357c37aa15183fa229b24767259657746c9077615"}, {file = "ruamel.yaml.clib-0.2.8-cp38-cp38-macosx_12_0_arm64.whl", hash = "sha256:a6a9ffd280b71ad062eae53ac1659ad86a17f59a0fdc7699fd9be40525153337"}, {file = "ruamel.yaml.clib-0.2.8-cp38-cp38-manylinux2014_aarch64.whl", hash = "sha256:665f58bfd29b167039f714c6998178d27ccd83984084c286110ef26b230f259f"}, {file = "ruamel.yaml.clib-0.2.8-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:700e4ebb569e59e16a976857c8798aee258dceac7c7d6b50cab63e080058df91"}, - {file = "ruamel.yaml.clib-0.2.8-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:e2b4c44b60eadec492926a7270abb100ef9f72798e18743939bdbf037aab8c28"}, - {file = "ruamel.yaml.clib-0.2.8-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:e79e5db08739731b0ce4850bed599235d601701d5694c36570a99a0c5ca41a9d"}, {file = "ruamel.yaml.clib-0.2.8-cp38-cp38-win32.whl", hash = "sha256:955eae71ac26c1ab35924203fda6220f84dce57d6d7884f189743e2abe3a9fbe"}, {file = "ruamel.yaml.clib-0.2.8-cp38-cp38-win_amd64.whl", hash = "sha256:56f4252222c067b4ce51ae12cbac231bce32aee1d33fbfc9d17e5b8d6966c312"}, {file = "ruamel.yaml.clib-0.2.8-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:03d1162b6d1df1caa3a4bd27aa51ce17c9afc2046c31b0ad60a0a96ec22f8001"}, {file = "ruamel.yaml.clib-0.2.8-cp39-cp39-macosx_12_0_arm64.whl", hash = "sha256:bba64af9fa9cebe325a62fa398760f5c7206b215201b0ec825005f1b18b9bccf"}, {file = "ruamel.yaml.clib-0.2.8-cp39-cp39-manylinux2014_aarch64.whl", hash = "sha256:9eb5dee2772b0f704ca2e45b1713e4e5198c18f515b52743576d196348f374d3"}, {file = "ruamel.yaml.clib-0.2.8-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:da09ad1c359a728e112d60116f626cc9f29730ff3e0e7db72b9a2dbc2e4beed5"}, - {file = "ruamel.yaml.clib-0.2.8-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:184565012b60405d93838167f425713180b949e9d8dd0bbc7b49f074407c5a8b"}, - {file = "ruamel.yaml.clib-0.2.8-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:a75879bacf2c987c003368cf14bed0ffe99e8e85acfa6c0bfffc21a090f16880"}, {file = "ruamel.yaml.clib-0.2.8-cp39-cp39-win32.whl", hash = "sha256:84b554931e932c46f94ab306913ad7e11bba988104c5cff26d90d03f68258cd5"}, {file = "ruamel.yaml.clib-0.2.8-cp39-cp39-win_amd64.whl", hash = "sha256:25ac8c08322002b06fa1d49d1646181f0b2c72f5cbc15a85e80b4c30a544bb15"}, {file = "ruamel.yaml.clib-0.2.8.tar.gz", hash = "sha256:beb2e0404003de9a4cab9753a8805a8fe9320ee6673136ed7f04255fe60bb512"}, @@ -2431,7 +2418,7 @@ files = [ ] [package.dependencies] -greenlet = {version = "!=0.4.17", markers = "platform_machine == \"win32\" or platform_machine == \"WIN32\" or platform_machine == \"AMD64\" or platform_machine == \"amd64\" or platform_machine == \"x86_64\" or platform_machine == \"ppc64le\" or platform_machine == \"aarch64\""} +greenlet = {version = "!=0.4.17", markers = "platform_machine == \"aarch64\" or platform_machine == \"ppc64le\" or platform_machine == \"x86_64\" or platform_machine == \"amd64\" or platform_machine == \"AMD64\" or platform_machine == \"win32\" or platform_machine == \"WIN32\""} typing-extensions = ">=4.6.0" [package.extras] diff --git a/project/excel/translator_testing_model.xlsx b/project/excel/translator_testing_model.xlsx index b39b191f2aef7a49570a683a3a96a027f4cce347..88ac6a0eeb987bbe26045c3dff64d80a2da14970 100644 GIT binary patch delta 4644 zcmeHLc{r478-Hhpp_mL=VzkJ?|sehd7k@;&wzAg zLJ+oxVFHo>00;y6ak-Zf)gad##|=d4f8c^$5C9P8+EYQ^wxpooP#y0ek`FpE@a&b# z4~R^RXp+0n)V;7g>5Nh>8Ki1PMvlO1Y2}xW)r7LP$`|bZtJSD@k&gM5uS1UIn_AC{ zyL-uCjwbl&G6qyVTMx3g3PLivcN7wTJ~Y2)B%I|ZR~#aQ1@jYLDg?Kmd!XP~MPMp* zGrhWr)&bH!^J(w3YTz~a8Jkb}ajP!qyclB@1 z%4ZC|FKTaiswaogU?bAuHts9qHUYS#piJhR%QJfv59fS*S%$zO1k24@7cJ6K{)Y9>+(6XW=J>- z{-(FGz$T1QpfbvsHOfjP3UgWy`KO%c_?M^9Fd<#wwS^ssnMro=M{9eV=d>X2+=!o~ ztcs53>VIK;-MaH&;7suB9ihO~%sduYPX&|rM^`}dO$JQ^D;LUkAz!KyojzaT z=Lg^pXq^HA zsuui#kxpP|&*$LB?Q;Dc2w&z@RRva(H-AubIuRZ#ckkpuHCGxK-nTT}MeU{D0Aq96 z=`1Pl`Z}z-Cez{271_w%_!tZkx!pwHn&}mLuKa~PbjP^=Hre+Vk8Bac`;B+1?T%G` zXq7PUA=kEYsY<&igl1~uR#1SnG#rTyODGWPgwU`2$6yU& z0W~u_(kX5r$teAdH5S{aaXh#byck-e@y03g*yGr&zDyO_r;NSbQD-#v%pUP{`u(Fc z+EqO1qo>jPS!##3QL#;1On8K$l)J9$)hR0bPcfqkGik5RnX9RBXL6lp8cWQ%rEmyjZiZ8S*uoU&SDP~_g)p}qA_q>rA?R3k1 zZeg&a>AK{H#J=4Rt3C22r^WAM<{OVq6gUSAxWF{8vOje6j(qfdvG8mw2`|O$6K}XH zcY0(GED3S9nUubT@+5jk-VAFyxK8zdrP30dAb8JlLv_j(>W1nRYz*8`opOb`p*jVr zH#StKU~uV%>J(HaZ>Uap&anQ6PGtcK3y1n!qkn63Blpt(ca0+dtWo-QMK#_Tn3ATd zOb=9+=O2jERIz;Li8`Ktu3ilrYp#V)YOjS$bkI=V!P!Trc{vse0Ax4-@T4wH*=fn$ zk{#IR*cj2JD=od2g#y!pWbYEc;W`%)QSAX^c*^58b0xd7oWm=zS^fWV^{oGKI8}Sc zC)?!x_+MPg9V#J=dU|_e$kBa^c2^T`!>d}wql0hL&2FdsT<#-nME*%GQ+KH5m1*aV zKD0UqzKF%A2j~qy5SvP@t4k?T@d!2~g78j}U|P1WzM12=oAwxFo+=ZcGo(PQ&}Njd zW`(8SjK^RaU+j~+WQAbQoPLqo*)8tGVq9-0nEFFu${k2+HxvW#_ENIrEFSRXMEjm< zcD;Y$zCTAMDpYC|`dG&`#F*HV=_V*rrx$aH9T3?wIq&e={+0%*HSm(xZM+-UjyF0g zUzduH_K-N)ML3z|YkV+Ro|A^RvY>Nvbtk>{2o#aowZUkU@h8IvN^*}$pJ4R&GWO99 zRf;}Und5A2xZ#XLeVW2~sqgf#M3%n|9H$kY@~dchv>@FVCPQ%2eyQ*Ja(mdizn+*LA<7ST{l@bb!X(Pfg0?~Ymu zU8TH1o!Gx)jPW6?ebJI@?oDf( zq_WPHDtp2F+NXZ+$o73VOdP*%5ng1)P<^jgY!cNf7h15Q?j7|to&FtO7PP|MxSE z9r=`LlT5w{;>-+%|LDpoOf!96C%I&1!m}n=+?qvEim_@u|Ir$TH0Q@0*DTT;MX5LE zb6%U{5bJtR%3j=oUF#5DH_Gk)*Pb|Xkvy+AEy0QZ7g6>P7T3m+ZFh0ET~%H#i#QY% zro?@frl2jvd5{|(1x2gyps?>Ck{S=Xy9Pb6KtbNU3XCxX0C$ql z*-#zy>hGWPzr~i4Gvcmrr9uE8_AM(Q4&q}30Fh^PB7#T(UO_#(;`V;(-v8eB^XZTGoJKys?zu)s)zUO(KwhSoaBoyJi zSyT)Kfj}f7F0SAyL=nI~tU=qMwkVJ5?EieUzw1m9n$gA_pPeo(dTu5;qIRF8 zjH4di)!Fk>BbR-CB$)xRJDl!*^@vI@a$jtDN)o--+8LN}9YMC{(Gtj1+fxjetiIt7Oc&-Ay>Dj1T~Hs&$(x6 zxyUN#e_rRY=o!M=Rr&aIV>W!qUS-epZ($SY?^dad10{%y^46&gEg1vlH$b$cI=E;9 zDK?WmOt~%DcfF@IjXoXcI75kU1Dh*>K*AF&c3!i7rDUFs-I})_^BSRsj@$ktm1~) z;Hdv$Djl>5L8oS3vJ}J~0ewhOg>K^wry^F|!8>P%7$jF~Wc}p(5eyAWX zW1$CHO*!Q^kwqtV&DPHszU=tj{UQ6D!D0xRiQK5#~!4DRe|qNK=J`(McG znZyCdm9Fa>KFqLi=|NtBsrDG%CJkB14(zav(zvorFWq;`Tgy-7aPk0FrcabB_p9gX z6L($A3Jyp*p~Ih5uT7!S#mKwFD)e&hH@ihj8r+>hOvaTzpxS~!muN^iA zU-Wb-=i(Qw2<5xS!^iJQ>}^Zobo$hE5#?FH%lN%LlSS|sg{bCzihUI-by2EZ`8tuD zDC?_Q4)prUYj5AB4nkvk7~D?mZS7+oJIc%}=jgAFz;@>8uoZSC?1)+}m2Etjx;il+ zNZYq@IIBFCxwY!Jh1<1jw=fF}Z;lNB_4WMQ`~v=yWd2jVU$GS{y^*16KODYiG9iKWDEj0!3&;RL1`5fe^gM-tM*EWa{) zYY?>P)W(m#c*_foGT2;oKaGv1oo`%A0R3UFXs@X__lFspQnw=Z(!M%sICCkSiuqp> z_j@G0_d<1uv%3dTy6?N9_3ElGKJqcl@hCvA!izdG zE%~WIiZJ%#zfn{fQXM161VI3!QRb_uC`=0hjJ3#0ep-0i{EDs=FAHym@&#A+VS|b= z;pDS%8<*Hyb(Yv#kFCiwJoZ5`0lNyfOxOzp8@vo70)cR0JX{5E>ks4LkP9Ap7Wv{& zXNVZmhNs1$MQ#<_r;a;DBH>McJXw8bVai;>PQl^B#XqEH3H?zEqmlQk^s6FFA+S35 z)z|p;M@AE{}-o(<&+`ym`WP@h08eNLy4lb8P%+43wKvI9P_YUaDYPhDZVPp|7 z(3*#wCP0I3Mc@I+RS#0VhuuV7q`gX$JT5DrSr%%$<$|N!TaVU%F}^o8bfRKIvV}@_lUr-TqNVHwxcyxIr;P)M*?A`Gub{guR0f-W7X!hT*5U! zuJy!3M6`^!LLuqqhevL!N;*DH5Z^eSwDULI7EkC_cbabmd|H^)*>x;weI2f*1J#w5 zZw;oZ`75nWduF-k*`syg1)vgn#sUwO9m;_cXuyp|_g1ZeL*b;2@l{AQi|4B1!rfr!UPVNnLb^pm9( zNmo_%$*jkR3`Gx15PTGfX@hicgAvf`yNs&rkWrDayuq3b2pcO*4-1cPviW;Ky%T8> zEIh(J1a~3Da8rix%(hsYOY+Y&zq$lh*q8{aAzK@Qz&^G?gLyWXr8ZGuWr#xSxnwVW zdq!uFgj6jO5%FF51jdj|RlY;`1r@J`{qu@X*rEvfk!8USMHo0rTJaaM!kVeM_e!P+t(H?Vy+?h&Q}w*%6T(X1SR^d$OieZ zf%SsdFk30X7YaOxjTJzSOAwz0*AhUujW96FcEz{8w`vPu&JuH!#{_lxke&&@IR9Zh z+JDslqt6X`f{sEcLNAU`&?0Jv0_ZkHIA0C!@3cbRe7F2%zFkHa40lr|KE9Xm-0E~0dHC5c>f~awtTzdp$29Uh)-lt=zd)t{{4q3fN^$c z5k+$_+fGR^SPkzn(GvVbP~7+flSU;)Zu93kj93YQ$b1`sx0BF50;poIAs(@bkNz7Q Cn}q=Y diff --git a/project/jsonld/translator_testing_model.context.jsonld b/project/jsonld/translator_testing_model.context.jsonld index 81d2d1f..a5cc856 100644 --- a/project/jsonld/translator_testing_model.context.jsonld +++ b/project/jsonld/translator_testing_model.context.jsonld @@ -1,12 +1,13 @@ { "comments": { "description": "Auto generated by LinkML jsonld context generator", - "generation_date": "2024-04-19T10:26:20", + "generation_date": "2024-04-25T16:00:58", "source": "translator_testing_model.yaml" }, "@context": { "biolink": "https://w3id.org/biolink/", "example": "https://example.org/", + "infores": "https://w3id.org/biolink/vocab/", "linkml": "https://w3id.org/linkml/", "schema": "http://schema.org/", "skos": "http://www.w3.org/2004/02/skos/core#", diff --git a/project/jsonld/translator_testing_model.jsonld b/project/jsonld/translator_testing_model.jsonld index 9a0bdf0..6e20280 100644 --- a/project/jsonld/translator_testing_model.jsonld +++ b/project/jsonld/translator_testing_model.jsonld @@ -24,6 +24,10 @@ "prefix_prefix": "biolink", "prefix_reference": "https://w3id.org/biolink/" }, + { + "prefix_prefix": "infores", + "prefix_reference": "https://w3id.org/biolink/vocab/" + }, { "prefix_prefix": "schema", "prefix_reference": "http://schema.org/" @@ -644,12 +648,93 @@ "definition_uri": "https://w3id.org/TranslatorSRI/TranslatorTestingModel/ComponentEnum", "description": "Translator components are identified by their InfoRes identifiers.", "from_schema": "https://w3id.org/TranslatorSRI/TranslatorTestingModel", - "reachable_from": { - "source_ontology": "biolink", - "source_nodes": [ - "biolink:infores" - ] - } + "permissible_values": [ + { + "text": "ars", + "description": "Automatic Relay Service component of Translator", + "meaning": "infores:ncats-ars" + }, + { + "text": "arax", + "description": "ARAX Translator Reasoner", + "meaning": "infores:arax" + }, + { + "text": "explanatory", + "description": "A Translator Reasoner API for the Explanatory Agent", + "meaning": "infores:explanatory-agent" + }, + { + "text": "improving", + "description": "imProving Agent OpenAPI TRAPI Specification", + "meaning": "infores:improving-agent" + }, + { + "text": "aragorn", + "description": "Performs a query operation which compiles data from numerous ranking agent services.", + "meaning": "infores:aragorn" + }, + { + "text": "bte", + "description": "BioThings Explorer", + "meaning": "infores:biothings-explorer" + }, + { + "text": "unsecret", + "description": "Unsecret Agent OpenAPI for NCATS Biomedical Translator Reasoners", + "meaning": "infores:unsecret-agent" + }, + { + "text": "rtxkg2", + "description": "TRAPI endpoint for the NCATS Biomedical Translator KP called RTX KG2", + "meaning": "infores:rtx-kg2" + }, + { + "text": "icees", + "description": "ICEES (Integrated Clinical and Environmental Exposures Service)", + "meaning": "infores:icees-kg" + }, + { + "text": "cam", + "description": "Causal Activity Model KP", + "meaning": "infores:cam-kp" + }, + { + "text": "spoke", + "description": "SPOKE KP - an NIH NCATS Knowledge Provider to expose UCSFs SPOKE", + "meaning": "infores:spoke" + }, + { + "text": "molepro", + "description": "Molecular Data Provider for NCATS Biomedical Translator Reasoners", + "meaning": "infores:molepro" + }, + { + "text": "textmining", + "description": "Text Mining KP", + "meaning": "infores:textmining-kp" + }, + { + "text": "cohd", + "description": "Columbia Open Health Data (COHD)", + "meaning": "infores:cohd" + }, + { + "text": "openpredict", + "description": "OpenPredict API", + "meaning": "infores:openpredict" + }, + { + "text": "collaboratory", + "description": "Translator Knowledge Collaboratory API", + "meaning": "infores:knowledge-collaboratory" + }, + { + "text": "connections", + "description": "Connections Hypothesis Provider API", + "meaning": "infores:connections-hypothesis" + } + ] }, { "name": "TestPersonaEnum", @@ -2554,9 +2639,9 @@ ], "metamodel_version": "1.7.0", "source_file": "translator_testing_model.yaml", - "source_file_date": "2024-04-18T22:29:50", - "source_file_size": 27247, - "generation_date": "2024-04-19T10:26:20", + "source_file_date": "2024-04-25T15:54:29", + "source_file_size": 30695, + "generation_date": "2024-04-25T16:00:58", "@type": "SchemaDefinition", "@context": [ "project/jsonld/translator_testing_model.context.jsonld", diff --git a/project/jsonschema/translator_testing_model.schema.json b/project/jsonschema/translator_testing_model.schema.json index af8337d..d0c12b8 100644 --- a/project/jsonschema/translator_testing_model.schema.json +++ b/project/jsonschema/translator_testing_model.schema.json @@ -313,6 +313,25 @@ }, "ComponentEnum": { "description": "Translator components are identified by their InfoRes identifiers.", + "enum": [ + "ars", + "arax", + "explanatory", + "improving", + "aragorn", + "bte", + "unsecret", + "rtxkg2", + "icees", + "cam", + "spoke", + "molepro", + "textmining", + "cohd", + "openpredict", + "collaboratory", + "connections" + ], "title": "ComponentEnum", "type": "string" }, diff --git a/project/owl/translator_testing_model.owl.ttl b/project/owl/translator_testing_model.owl.ttl index e93be4c..2263f4e 100644 --- a/project/owl/translator_testing_model.owl.ttl +++ b/project/owl/translator_testing_model.owl.ttl @@ -1,4 +1,5 @@ @prefix dcterms: . +@prefix infores: . @prefix linkml: . @prefix owl: . @prefix pav: . @@ -65,59 +66,59 @@ ttm:TestRunSession a owl:Class, linkml:ClassDefinition ; rdfs:label "TestRunSession" ; rdfs:subClassOf [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty ttm:test_env ], - [ a owl:Restriction ; owl:minCardinality 0 ; owl:onProperty ttm:components ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty ttm:test_env ], + owl:onProperty ttm:test_entities ], [ a owl:Restriction ; - owl:allValuesFrom ttm:TestEnvEnum ; + owl:minCardinality 0 ; + owl:onProperty ttm:timestamp ], + [ a owl:Restriction ; + owl:maxCardinality 1 ; owl:onProperty ttm:test_env ], [ a owl:Restriction ; owl:minCardinality 0 ; owl:onProperty ttm:test_case_results ], [ a owl:Restriction ; - owl:allValuesFrom linkml:String ; + owl:allValuesFrom linkml:Datetime ; + owl:onProperty ttm:timestamp ], + [ a owl:Restriction ; + owl:minCardinality 0 ; owl:onProperty ttm:test_run_parameters ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty ttm:timestamp ], + owl:onProperty ttm:test_runner_name ], [ a owl:Restriction ; - owl:allValuesFrom ttm:TestCaseResult ; - owl:onProperty ttm:test_case_results ], + owl:allValuesFrom linkml:String ; + owl:onProperty ttm:test_run_parameters ], [ a owl:Restriction ; - owl:minCardinality 0 ; + owl:maxCardinality 1 ; owl:onProperty ttm:test_run_parameters ], [ a owl:Restriction ; - owl:allValuesFrom linkml:Datetime ; + owl:maxCardinality 1 ; owl:onProperty ttm:timestamp ], [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty ttm:test_runner_name ], - [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty ttm:test_runner_name ], + owl:allValuesFrom ttm:TestCaseResult ; + owl:onProperty ttm:test_case_results ], [ a owl:Restriction ; owl:allValuesFrom ttm:TestEntity ; owl:onProperty ttm:test_entities ], [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty ttm:timestamp ], + owl:allValuesFrom ttm:ComponentEnum ; + owl:onProperty ttm:components ], [ a owl:Restriction ; owl:allValuesFrom linkml:String ; owl:onProperty ttm:test_runner_name ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty ttm:test_entities ], + owl:onProperty ttm:test_runner_name ], [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty ttm:test_run_parameters ], + owl:minCardinality 0 ; + owl:onProperty ttm:test_env ], [ a owl:Restriction ; - owl:allValuesFrom ttm:ComponentEnum ; - owl:onProperty ttm:components ], + owl:allValuesFrom ttm:TestEnvEnum ; + owl:onProperty ttm:test_env ], ttm:TestEntity ; skos:definition "Single run of a TestRunner in a given environment, with a specified set of test_entities (generally, one or more instances of TestSuite)." ; skos:inScheme . @@ -183,94 +184,94 @@ ttm:AcceptanceTestAsset a owl:Class, linkml:ClassDefinition ; rdfs:label "AcceptanceTestAsset" ; rdfs:subClassOf [ a owl:Restriction ; + owl:maxCardinality 1 ; + owl:onProperty ttm:query_node ], + [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty ttm:must_pass_date ], + owl:onProperty ttm:answer_informal_concept ], [ a owl:Restriction ; - owl:allValuesFrom linkml:Date ; - owl:onProperty ttm:must_pass_date ], + owl:allValuesFrom linkml:Integer ; + owl:onProperty ttm:top_level ], [ a owl:Restriction ; - owl:minCardinality 0 ; + owl:maxCardinality 1 ; + owl:onProperty ttm:top_level ], + [ a owl:Restriction ; + owl:allValuesFrom linkml:String ; owl:onProperty ttm:scientific_question ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty ttm:must_pass_environment ], + owl:onProperty ttm:expected_result ], [ a owl:Restriction ; - owl:maxCardinality 1 ; + owl:allValuesFrom ttm:ExpectedResultsEnum ; + owl:onProperty ttm:expected_result ], + [ a owl:Restriction ; + owl:minCardinality 0 ; + owl:onProperty ttm:expected_result ], + [ a owl:Restriction ; + owl:allValuesFrom linkml:Date ; owl:onProperty ttm:must_pass_date ], [ a owl:Restriction ; owl:minCardinality 0 ; owl:onProperty ttm:must_pass_environment ], - [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty ttm:notes ], [ a owl:Restriction ; owl:minCardinality 0 ; owl:onProperty ttm:top_level ], [ a owl:Restriction ; - owl:allValuesFrom linkml:String ; - owl:onProperty ttm:answer_informal_concept ], + owl:minCardinality 0 ; + owl:onProperty ttm:query_node ], [ a owl:Restriction ; - owl:allValuesFrom linkml:String ; + owl:minCardinality 0 ; owl:onProperty ttm:scientific_question ], [ a owl:Restriction ; owl:minCardinality 0 ; owl:onProperty ttm:notes ], - [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty ttm:expected_result ], - [ a owl:Restriction ; - owl:allValuesFrom ttm:ExpectedResultsEnum ; - owl:onProperty ttm:expected_result ], [ a owl:Restriction ; owl:allValuesFrom linkml:String ; owl:onProperty ttm:string_entry ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty ttm:scientific_question ], - [ a owl:Restriction ; - owl:allValuesFrom ttm:NodeEnum ; - owl:onProperty ttm:query_node ], - [ a owl:Restriction ; - owl:allValuesFrom ttm:DirectionEnum ; owl:onProperty ttm:direction ], [ a owl:Restriction ; - owl:allValuesFrom linkml:String ; - owl:onProperty ttm:notes ], - [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty ttm:string_entry ], + owl:minCardinality 0 ; + owl:onProperty ttm:must_pass_date ], [ a owl:Restriction ; owl:allValuesFrom ttm:TestEnvEnum ; owl:onProperty ttm:must_pass_environment ], [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty ttm:direction ], + owl:maxCardinality 1 ; + owl:onProperty ttm:notes ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty ttm:direction ], + owl:onProperty ttm:scientific_question ], [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty ttm:answer_informal_concept ], + owl:maxCardinality 1 ; + owl:onProperty ttm:string_entry ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty ttm:query_node ], + owl:onProperty ttm:direction ], [ a owl:Restriction ; - owl:maxCardinality 1 ; + owl:allValuesFrom ttm:NodeEnum ; owl:onProperty ttm:query_node ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty ttm:expected_result ], + owl:onProperty ttm:answer_informal_concept ], [ a owl:Restriction ; owl:minCardinality 0 ; owl:onProperty ttm:string_entry ], [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty ttm:top_level ], + owl:allValuesFrom ttm:DirectionEnum ; + owl:onProperty ttm:direction ], [ a owl:Restriction ; - owl:allValuesFrom linkml:Integer ; - owl:onProperty ttm:top_level ], + owl:maxCardinality 1 ; + owl:onProperty ttm:must_pass_date ], [ a owl:Restriction ; owl:maxCardinality 1 ; + owl:onProperty ttm:must_pass_environment ], + [ a owl:Restriction ; + owl:allValuesFrom linkml:String ; + owl:onProperty ttm:notes ], + [ a owl:Restriction ; + owl:allValuesFrom linkml:String ; owl:onProperty ttm:answer_informal_concept ], ttm:TestAsset ; skos:definition "Model derived from Jenn's test asset design and Shervin's runner JSON here as an example." ; @@ -286,19 +287,19 @@ ttm:TestOutput a owl:Class, rdfs:label "TestOutput" ; rdfs:subClassOf [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty ttm:pks ], + owl:onProperty ttm:test_case_id ], [ a owl:Restriction ; - owl:allValuesFrom ttm:TestResultPKSet ; + owl:minCardinality 0 ; owl:onProperty ttm:pks ], - [ a owl:Restriction ; - owl:allValuesFrom linkml:String ; - owl:onProperty ttm:test_case_id ], [ a owl:Restriction ; owl:maxCardinality 1 ; owl:onProperty ttm:test_case_id ], [ a owl:Restriction ; - owl:minCardinality 0 ; + owl:allValuesFrom linkml:String ; owl:onProperty ttm:test_case_id ], + [ a owl:Restriction ; + owl:allValuesFrom ttm:TestResultPKSet ; + owl:onProperty ttm:pks ], ttm:TestEntity ; skos:definition "The output of a TestRunner run of one specific TestCase." ; skos:inScheme . @@ -399,31 +400,31 @@ ttm:TestCaseResult a owl:Class, linkml:ClassDefinition ; rdfs:label "TestCaseResult" ; rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom linkml:Uriorcurie ; - owl:onProperty ttm:test_suite_id ], - [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty ttm:test_suite_id ], - [ a owl:Restriction ; - owl:maxCardinality 1 ; owl:onProperty ttm:test_case_result ], [ a owl:Restriction ; - owl:minCardinality 0 ; + owl:allValuesFrom ttm:TestCase ; owl:onProperty ttm:test_case ], [ a owl:Restriction ; - owl:minCardinality 0 ; + owl:allValuesFrom ttm:TestCaseResultEnum ; owl:onProperty ttm:test_case_result ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty ttm:test_case ], + owl:onProperty ttm:test_suite_id ], [ a owl:Restriction ; - owl:maxCardinality 1 ; + owl:minCardinality 0 ; owl:onProperty ttm:test_suite_id ], [ a owl:Restriction ; - owl:allValuesFrom ttm:TestCase ; + owl:maxCardinality 1 ; owl:onProperty ttm:test_case ], [ a owl:Restriction ; - owl:allValuesFrom ttm:TestCaseResultEnum ; + owl:minCardinality 0 ; + owl:onProperty ttm:test_case ], + [ a owl:Restriction ; + owl:allValuesFrom linkml:Uriorcurie ; + owl:onProperty ttm:test_suite_id ], + [ a owl:Restriction ; + owl:maxCardinality 1 ; owl:onProperty ttm:test_case_result ], ttm:TestEntity ; skos:definition "The outcome of a TestRunner run of one specific TestCase." ; @@ -448,23 +449,23 @@ ttm:TestEntityParameter a owl:Class, linkml:ClassDefinition ; rdfs:label "TestEntityParameter" ; rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom linkml:String ; - owl:onProperty ttm:parameter ], - [ a owl:Restriction ; owl:minCardinality 0 ; owl:onProperty ttm:value ], [ a owl:Restriction ; - owl:allValuesFrom linkml:String ; - owl:onProperty ttm:value ], + owl:maxCardinality 1 ; + owl:onProperty ttm:parameter ], [ a owl:Restriction ; owl:minCardinality 0 ; owl:onProperty ttm:parameter ], [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty ttm:parameter ], + owl:allValuesFrom linkml:String ; + owl:onProperty ttm:value ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty ttm:value ] ; + owl:onProperty ttm:value ], + [ a owl:Restriction ; + owl:allValuesFrom linkml:String ; + owl:onProperty ttm:parameter ] ; skos:definition "A single 'tag = value' pair (where 'value' is a simple string)." ; skos:inScheme . @@ -567,23 +568,29 @@ ttm:TestResultPKSet a owl:Class, linkml:ClassDefinition ; rdfs:label "TestResultPKSet" ; rdfs:subClassOf [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty ttm:parent_pk ], - [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty ttm:aragorn ], + owl:onProperty ttm:merged_pk ], [ a owl:Restriction ; - owl:allValuesFrom linkml:String ; + owl:maxCardinality 1 ; owl:onProperty ttm:parent_pk ], [ a owl:Restriction ; owl:allValuesFrom linkml:String ; - owl:onProperty ttm:bte ], + owl:onProperty ttm:arax ], [ a owl:Restriction ; owl:allValuesFrom linkml:String ; - owl:onProperty ttm:unsecret ], + owl:onProperty ttm:merged_pk ], + [ a owl:Restriction ; + owl:minCardinality 0 ; + owl:onProperty ttm:arax ], [ a owl:Restriction ; owl:minCardinality 0 ; owl:onProperty ttm:parent_pk ], + [ a owl:Restriction ; + owl:maxCardinality 1 ; + owl:onProperty ttm:merged_pk ], + [ a owl:Restriction ; + owl:minCardinality 0 ; + owl:onProperty ttm:unsecret ], [ a owl:Restriction ; owl:maxCardinality 1 ; owl:onProperty ttm:bte ], @@ -591,44 +598,38 @@ ttm:TestResultPKSet a owl:Class, owl:minCardinality 0 ; owl:onProperty ttm:bte ], [ a owl:Restriction ; - owl:allValuesFrom linkml:String ; + owl:minCardinality 0 ; owl:onProperty ttm:aragorn ], + [ a owl:Restriction ; + owl:minCardinality 0 ; + owl:onProperty ttm:improving ], [ a owl:Restriction ; owl:allValuesFrom linkml:String ; - owl:onProperty ttm:merged_pk ], + owl:onProperty ttm:parent_pk ], [ a owl:Restriction ; owl:allValuesFrom linkml:String ; owl:onProperty ttm:improving ], - [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty ttm:aragorn ], [ a owl:Restriction ; owl:maxCardinality 1 ; owl:onProperty ttm:improving ], [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty ttm:merged_pk ], - [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty ttm:unsecret ], + owl:allValuesFrom linkml:String ; + owl:onProperty ttm:aragorn ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty ttm:unsecret ], + owl:onProperty ttm:aragorn ], [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty ttm:arax ], + owl:allValuesFrom linkml:String ; + owl:onProperty ttm:unsecret ], [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty ttm:improving ], + owl:allValuesFrom linkml:String ; + owl:onProperty ttm:bte ], [ a owl:Restriction ; owl:maxCardinality 1 ; owl:onProperty ttm:arax ], - [ a owl:Restriction ; - owl:allValuesFrom linkml:String ; - owl:onProperty ttm:arax ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty ttm:merged_pk ], + owl:onProperty ttm:unsecret ], ttm:TestEntity ; skos:definition "Primary keys for a given ARA result set from a SmokeTest result for a given TestCase." ; skos:inScheme . @@ -668,23 +669,23 @@ ttm:TestSuiteSpecification a owl:Class, linkml:ClassDefinition ; rdfs:label "TestSuiteSpecification" ; rdfs:subClassOf [ a owl:Restriction ; - owl:minCardinality 0 ; + owl:allValuesFrom linkml:Uriorcurie ; + owl:onProperty ttm:test_data_file_locator ], + [ a owl:Restriction ; + owl:allValuesFrom ttm:FileFormatEnum ; owl:onProperty ttm:test_data_file_format ], [ a owl:Restriction ; owl:maxCardinality 1 ; owl:onProperty ttm:test_data_file_format ], [ a owl:Restriction ; - owl:allValuesFrom ttm:FileFormatEnum ; + owl:minCardinality 0 ; owl:onProperty ttm:test_data_file_format ], [ a owl:Restriction ; - owl:allValuesFrom linkml:Uriorcurie ; + owl:minCardinality 0 ; owl:onProperty ttm:test_data_file_locator ], [ a owl:Restriction ; owl:maxCardinality 1 ; owl:onProperty ttm:test_data_file_locator ], - [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty ttm:test_data_file_locator ], ttm:TestEntity ; skos:definition "Parameters for a Test Case instances either dynamically generated from some external source of Test Assets." ; skos:inScheme . @@ -767,30 +768,112 @@ ttm:test_entity_parameters a owl:ObjectProperty, skos:definition "One or more 'tag = value' parameters documenting target characteristics of a TestEntity." ; skos:inScheme . -ttm:ComponentEnum a owl:Class, - linkml:EnumDefinition . +infores:aragorn a owl:Class, + ttm:ComponentEnum ; + rdfs:label "aragorn" ; + rdfs:subClassOf ttm:ComponentEnum . + +infores:arax a owl:Class, + ttm:ComponentEnum ; + rdfs:label "arax" ; + rdfs:subClassOf ttm:ComponentEnum . + +infores:biothings-explorer a owl:Class, + ttm:ComponentEnum ; + rdfs:label "bte" ; + rdfs:subClassOf ttm:ComponentEnum . + +infores:cam-kp a owl:Class, + ttm:ComponentEnum ; + rdfs:label "cam" ; + rdfs:subClassOf ttm:ComponentEnum . + +infores:cohd a owl:Class, + ttm:ComponentEnum ; + rdfs:label "cohd" ; + rdfs:subClassOf ttm:ComponentEnum . + +infores:connections-hypothesis a owl:Class, + ttm:ComponentEnum ; + rdfs:label "connections" ; + rdfs:subClassOf ttm:ComponentEnum . + +infores:explanatory-agent a owl:Class, + ttm:ComponentEnum ; + rdfs:label "explanatory" ; + rdfs:subClassOf ttm:ComponentEnum . + +infores:icees-kg a owl:Class, + ttm:ComponentEnum ; + rdfs:label "icees" ; + rdfs:subClassOf ttm:ComponentEnum . + +infores:improving-agent a owl:Class, + ttm:ComponentEnum ; + rdfs:label "improving" ; + rdfs:subClassOf ttm:ComponentEnum . + +infores:knowledge-collaboratory a owl:Class, + ttm:ComponentEnum ; + rdfs:label "collaboratory" ; + rdfs:subClassOf ttm:ComponentEnum . + +infores:molepro a owl:Class, + ttm:ComponentEnum ; + rdfs:label "molepro" ; + rdfs:subClassOf ttm:ComponentEnum . + +infores:ncats-ars a owl:Class, + ttm:ComponentEnum ; + rdfs:label "ars" ; + rdfs:subClassOf ttm:ComponentEnum . + +infores:openpredict a owl:Class, + ttm:ComponentEnum ; + rdfs:label "openpredict" ; + rdfs:subClassOf ttm:ComponentEnum . + +infores:rtx-kg2 a owl:Class, + ttm:ComponentEnum ; + rdfs:label "rtxkg2" ; + rdfs:subClassOf ttm:ComponentEnum . + +infores:spoke a owl:Class, + ttm:ComponentEnum ; + rdfs:label "spoke" ; + rdfs:subClassOf ttm:ComponentEnum . + +infores:textmining-kp a owl:Class, + ttm:ComponentEnum ; + rdfs:label "textmining" ; + rdfs:subClassOf ttm:ComponentEnum . + +infores:unsecret-agent a owl:Class, + ttm:ComponentEnum ; + rdfs:label "unsecret" ; + rdfs:subClassOf ttm:ComponentEnum . ttm:Qualifier a owl:Class, linkml:ClassDefinition ; rdfs:label "Qualifier" ; rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom linkml:String ; + owl:minCardinality 0 ; + owl:onProperty ttm:value ], + [ a owl:Restriction ; + owl:minCardinality 0 ; owl:onProperty ttm:parameter ], [ a owl:Restriction ; owl:maxCardinality 1 ; owl:onProperty ttm:parameter ], [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty ttm:parameter ], - [ a owl:Restriction ; - owl:maxCardinality 1 ; + owl:allValuesFrom linkml:String ; owl:onProperty ttm:value ], [ a owl:Restriction ; - owl:minCardinality 0 ; + owl:maxCardinality 1 ; owl:onProperty ttm:value ], [ a owl:Restriction ; owl:allValuesFrom linkml:String ; - owl:onProperty ttm:value ], + owl:onProperty ttm:parameter ], ttm:TestEntityParameter ; skos:inScheme . @@ -798,41 +881,41 @@ ttm:TestMetadata a owl:Class, linkml:ClassDefinition ; rdfs:label "TestMetadata" ; rdfs:subClassOf [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty ttm:test_source ], - [ a owl:Restriction ; owl:minCardinality 0 ; owl:onProperty ttm:test_objective ], [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty ttm:test_annotations ], + owl:allValuesFrom ttm:TestObjectiveEnum ; + owl:onProperty ttm:test_objective ], [ a owl:Restriction ; - owl:maxCardinality 1 ; + owl:minCardinality 0 ; owl:onProperty ttm:test_source ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty ttm:test_reference ], + owl:onProperty ttm:test_objective ], [ a owl:Restriction ; - owl:allValuesFrom linkml:String ; - owl:onProperty ttm:test_annotations ], + owl:allValuesFrom ttm:TestSourceEnum ; + owl:onProperty ttm:test_source ], [ a owl:Restriction ; owl:allValuesFrom linkml:Uriorcurie ; owl:onProperty ttm:test_reference ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty ttm:test_objective ], + owl:onProperty ttm:test_reference ], + [ a owl:Restriction ; + owl:maxCardinality 1 ; + owl:onProperty ttm:test_annotations ], [ a owl:Restriction ; owl:minCardinality 0 ; owl:onProperty ttm:test_reference ], + [ a owl:Restriction ; + owl:allValuesFrom linkml:String ; + owl:onProperty ttm:test_annotations ], [ a owl:Restriction ; owl:minCardinality 0 ; owl:onProperty ttm:test_annotations ], [ a owl:Restriction ; - owl:allValuesFrom ttm:TestSourceEnum ; + owl:maxCardinality 1 ; owl:onProperty ttm:test_source ], - [ a owl:Restriction ; - owl:allValuesFrom ttm:TestObjectiveEnum ; - owl:onProperty ttm:test_objective ], ttm:TestEntity ; skos:definition "Represents metadata related to (external SME, SMURF, Translator feedback, large scale batch, etc.) like the provenance of test assets, cases and/or suites." ; skos:inScheme . @@ -846,35 +929,35 @@ ttm:TestSuite a owl:Class, linkml:ClassDefinition ; rdfs:label "TestSuite" ; rdfs:subClassOf [ a owl:Restriction ; - owl:minCardinality 0 ; + owl:maxCardinality 1 ; + owl:onProperty ttm:test_persona ], + [ a owl:Restriction ; + owl:maxCardinality 1 ; + owl:onProperty ttm:test_suite_specification ], + [ a owl:Restriction ; + owl:allValuesFrom ttm:TestCase ; owl:onProperty ttm:test_cases ], [ a owl:Restriction ; - owl:minCardinality 1 ; + owl:allValuesFrom ttm:TestMetadata ; owl:onProperty ttm:test_metadata ], - [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty ttm:test_suite_specification ], [ a owl:Restriction ; owl:maxCardinality 1 ; owl:onProperty ttm:test_metadata ], - [ a owl:Restriction ; - owl:allValuesFrom ttm:TestSuiteSpecification ; - owl:onProperty ttm:test_suite_specification ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty ttm:test_persona ], + owl:onProperty ttm:test_cases ], [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty ttm:test_suite_specification ], + owl:minCardinality 1 ; + owl:onProperty ttm:test_metadata ], [ a owl:Restriction ; - owl:maxCardinality 1 ; + owl:minCardinality 0 ; owl:onProperty ttm:test_persona ], [ a owl:Restriction ; - owl:allValuesFrom ttm:TestCase ; - owl:onProperty ttm:test_cases ], + owl:allValuesFrom ttm:TestSuiteSpecification ; + owl:onProperty ttm:test_suite_specification ], [ a owl:Restriction ; - owl:allValuesFrom ttm:TestMetadata ; - owl:onProperty ttm:test_metadata ], + owl:minCardinality 0 ; + owl:onProperty ttm:test_suite_specification ], [ a owl:Restriction ; owl:allValuesFrom ttm:TestPersonaEnum ; owl:onProperty ttm:test_persona ], @@ -1239,176 +1322,176 @@ ttm:TestAsset a owl:Class, linkml:ClassDefinition ; rdfs:label "TestAsset" ; rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom linkml:String ; - owl:onProperty ttm:predicate_name ], + owl:maxCardinality 1 ; + owl:onProperty ttm:association ], [ a owl:Restriction ; owl:maxCardinality 1 ; owl:onProperty ttm:test_issue ], - [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty ttm:predicate_name ], - [ a owl:Restriction ; - owl:allValuesFrom ttm:concept_category ; - owl:onProperty ttm:input_category ], - [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty ttm:in_v1 ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty ttm:output_name ], - [ a owl:Restriction ; - owl:allValuesFrom linkml:Boolean ; owl:onProperty ttm:in_v1 ], [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty ttm:test_reference ], - [ a owl:Restriction ; - owl:allValuesFrom ttm:TestIssueEnum ; - owl:onProperty ttm:test_issue ], - [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty ttm:output_category ], - [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty ttm:semantic_severity ], + owl:allValuesFrom linkml:Uriorcurie ; + owl:onProperty ttm:id ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty ttm:input_name ], + owl:onProperty ttm:output_name ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty ttm:input_category ], + owl:onProperty ttm:predicate_id ], [ a owl:Restriction ; owl:minCardinality 1 ; owl:onProperty ttm:test_metadata ], [ a owl:Restriction ; - owl:maxCardinality 1 ; + owl:allValuesFrom linkml:Uriorcurie ; owl:onProperty ttm:output_id ], [ a owl:Restriction ; - owl:allValuesFrom linkml:String ; - owl:onProperty ttm:input_name ], + owl:allValuesFrom linkml:Boolean ; + owl:onProperty ttm:in_v1 ], + [ a owl:Restriction ; + owl:maxCardinality 1 ; + owl:onProperty ttm:predicate_id ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty ttm:test_issue ], + owl:onProperty ttm:input_name ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty ttm:expected_output ], + owl:onProperty ttm:output_category ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty ttm:input_category ], + owl:onProperty ttm:input_id ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty ttm:input_id ], + owl:onProperty ttm:well_known ], [ a owl:Restriction ; - owl:allValuesFrom linkml:Uriorcurie ; - owl:onProperty ttm:test_reference ], + owl:minCardinality 0 ; + owl:onProperty ttm:semantic_severity ], [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty ttm:predicate_id ], + owl:allValuesFrom linkml:Boolean ; + owl:onProperty ttm:well_known ], [ a owl:Restriction ; - owl:allValuesFrom ttm:association_category ; - owl:onProperty ttm:association ], + owl:allValuesFrom ttm:Qualifier ; + owl:onProperty ttm:qualifiers ], [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty ttm:test_metadata ], + owl:minCardinality 0 ; + owl:onProperty ttm:test_runner_settings ], [ a owl:Restriction ; - owl:allValuesFrom ttm:TestMetadata ; - owl:onProperty ttm:test_metadata ], + owl:minCardinality 0 ; + owl:onProperty ttm:output_id ], + [ a owl:Restriction ; + owl:minCardinality 0 ; + owl:onProperty ttm:input_id ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty ttm:test_reference ], + owl:onProperty ttm:output_id ], [ a owl:Restriction ; owl:minCardinality 1 ; owl:onProperty ttm:id ], [ a owl:Restriction ; - owl:maxCardinality 1 ; + owl:allValuesFrom linkml:String ; + owl:onProperty ttm:test_runner_settings ], + [ a owl:Restriction ; + owl:allValuesFrom linkml:Uriorcurie ; owl:onProperty ttm:input_id ], [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty ttm:well_known ], + owl:maxCardinality 1 ; + owl:onProperty ttm:test_metadata ], [ a owl:Restriction ; - owl:allValuesFrom linkml:String ; - owl:onProperty ttm:test_runner_settings ], + owl:minCardinality 0 ; + owl:onProperty ttm:output_name ], [ a owl:Restriction ; owl:allValuesFrom linkml:String ; - owl:onProperty ttm:output_name ], + owl:onProperty ttm:predicate_name ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty ttm:qualifiers ], + owl:onProperty ttm:test_reference ], [ a owl:Restriction ; owl:allValuesFrom ttm:concept_category ; owl:onProperty ttm:output_category ], [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty ttm:output_id ], - [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty ttm:well_known ], + owl:allValuesFrom ttm:association_category ; + owl:onProperty ttm:association ], [ a owl:Restriction ; owl:maxCardinality 1 ; owl:onProperty ttm:predicate_name ], [ a owl:Restriction ; - owl:allValuesFrom linkml:Uriorcurie ; - owl:onProperty ttm:id ], + owl:allValuesFrom ttm:SemanticSeverityEnum ; + owl:onProperty ttm:semantic_severity ], + [ a owl:Restriction ; + owl:allValuesFrom ttm:concept_category ; + owl:onProperty ttm:input_category ], + [ a owl:Restriction ; + owl:allValuesFrom linkml:String ; + owl:onProperty ttm:input_name ], + [ a owl:Restriction ; + owl:allValuesFrom ttm:TestIssueEnum ; + owl:onProperty ttm:test_issue ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty ttm:expected_output ], + owl:onProperty ttm:test_reference ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty ttm:id ], + owl:onProperty ttm:input_name ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty ttm:tags ], + owl:onProperty ttm:test_issue ], + [ a owl:Restriction ; + owl:maxCardinality 1 ; + owl:onProperty ttm:id ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty ttm:input_name ], + owl:onProperty ttm:in_v1 ], [ a owl:Restriction ; - owl:allValuesFrom linkml:Uriorcurie ; - owl:onProperty ttm:input_id ], + owl:maxCardinality 1 ; + owl:onProperty ttm:input_category ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty ttm:output_name ], + owl:onProperty ttm:predicate_name ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty ttm:semantic_severity ], + owl:onProperty ttm:qualifiers ], [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty ttm:output_category ], + owl:allValuesFrom linkml:String ; + owl:onProperty ttm:output_name ], [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty ttm:association ], + owl:allValuesFrom linkml:Uriorcurie ; + owl:onProperty ttm:test_reference ], [ a owl:Restriction ; - owl:minCardinality 0 ; + owl:allValuesFrom ttm:predicate_type ; owl:onProperty ttm:predicate_id ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty ttm:test_runner_settings ], + owl:onProperty ttm:association ], [ a owl:Restriction ; - owl:allValuesFrom linkml:String ; - owl:onProperty ttm:expected_output ], + owl:maxCardinality 1 ; + owl:onProperty ttm:semantic_severity ], [ a owl:Restriction ; - owl:allValuesFrom ttm:Qualifier ; - owl:onProperty ttm:qualifiers ], + owl:maxCardinality 1 ; + owl:onProperty ttm:output_category ], [ a owl:Restriction ; - owl:allValuesFrom linkml:Boolean ; - owl:onProperty ttm:well_known ], + owl:allValuesFrom linkml:String ; + owl:onProperty ttm:expected_output ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty ttm:association ], + owl:onProperty ttm:tags ], [ a owl:Restriction ; - owl:allValuesFrom ttm:SemanticSeverityEnum ; - owl:onProperty ttm:semantic_severity ], + owl:allValuesFrom ttm:TestMetadata ; + owl:onProperty ttm:test_metadata ], [ a owl:Restriction ; owl:allValuesFrom linkml:String ; owl:onProperty ttm:tags ], [ a owl:Restriction ; - owl:allValuesFrom linkml:Uriorcurie ; - owl:onProperty ttm:output_id ], + owl:maxCardinality 1 ; + owl:onProperty ttm:well_known ], [ a owl:Restriction ; - owl:allValuesFrom ttm:predicate_type ; - owl:onProperty ttm:predicate_id ], + owl:minCardinality 0 ; + owl:onProperty ttm:expected_output ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty ttm:in_v1 ], + owl:onProperty ttm:expected_output ], + [ a owl:Restriction ; + owl:minCardinality 0 ; + owl:onProperty ttm:input_category ], ttm:TestEntity ; skos:definition "Represents a Test Asset, which is a single specific instance of TestCase-agnostic semantic parameters representing the specification of a Translator test target with inputs and (expected) outputs." ; skos:inScheme . @@ -1464,59 +1547,68 @@ ttm:TestCase a owl:Class, linkml:ClassDefinition ; rdfs:label "TestCase" ; rdfs:subClassOf [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty ttm:test_case_input_id ], - [ a owl:Restriction ; - owl:allValuesFrom ttm:QueryTypeEnum ; - owl:onProperty ttm:query_type ], - [ a owl:Restriction ; owl:allValuesFrom ttm:TestAsset ; owl:onProperty ttm:test_assets ], [ a owl:Restriction ; - owl:maxCardinality 1 ; + owl:minCardinality 0 ; + owl:onProperty ttm:test_case_predicate_name ], + [ a owl:Restriction ; + owl:allValuesFrom ttm:QueryTypeEnum ; owl:onProperty ttm:query_type ], + [ a owl:Restriction ; + owl:minCardinality 0 ; + owl:onProperty ttm:test_case_input_id ], [ a owl:Restriction ; owl:maxCardinality 1 ; owl:onProperty ttm:test_case_predicate_name ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty ttm:tags ], + owl:onProperty ttm:input_category ], [ a owl:Restriction ; - owl:allValuesFrom ttm:TestObjectiveEnum ; - owl:onProperty ttm:test_case_objective ], + owl:minCardinality 0 ; + owl:onProperty ttm:query_type ], + [ a owl:Restriction ; + owl:minCardinality 0 ; + owl:onProperty ttm:test_case_predicate_id ], + [ a owl:Restriction ; + owl:allValuesFrom ttm:ComponentEnum ; + owl:onProperty ttm:components ], [ a owl:Restriction ; owl:allValuesFrom linkml:String ; owl:onProperty ttm:tags ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty ttm:query_type ], + owl:onProperty ttm:tags ], [ a owl:Restriction ; - owl:allValuesFrom ttm:ComponentEnum ; - owl:onProperty ttm:components ], + owl:allValuesFrom ttm:Qualifier ; + owl:onProperty ttm:qualifiers ], [ a owl:Restriction ; - owl:allValuesFrom ttm:concept_category ; - owl:onProperty ttm:output_category ], + owl:maxCardinality 1 ; + owl:onProperty ttm:input_category ], + [ a owl:Restriction ; + owl:allValuesFrom ttm:TestEnvEnum ; + owl:onProperty ttm:test_env ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty ttm:trapi_template ], + owl:onProperty ttm:output_category ], [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty ttm:test_case_predicate_name ], + owl:allValuesFrom ttm:concept_category ; + owl:onProperty ttm:input_category ], [ a owl:Restriction ; - owl:allValuesFrom linkml:String ; - owl:onProperty ttm:test_case_predicate_name ], + owl:maxCardinality 1 ; + owl:onProperty ttm:query_type ], + [ a owl:Restriction ; + owl:allValuesFrom ttm:TestObjectiveEnum ; + owl:onProperty ttm:test_case_objective ], [ a owl:Restriction ; owl:maxCardinality 1 ; owl:onProperty ttm:test_case_objective ], + [ a owl:Restriction ; + owl:maxCardinality 1 ; + owl:onProperty ttm:test_case_source ], [ a owl:Restriction ; owl:minCardinality 0 ; owl:onProperty ttm:components ], - [ a owl:Restriction ; - owl:allValuesFrom ttm:TestEnvEnum ; - owl:onProperty ttm:test_env ], - [ a owl:Restriction ; - owl:allValuesFrom ttm:Qualifier ; - owl:onProperty ttm:qualifiers ], [ a owl:Restriction ; owl:minCardinality 0 ; owl:onProperty ttm:preconditions ], @@ -1524,65 +1616,56 @@ ttm:TestCase a owl:Class, owl:maxCardinality 1 ; owl:onProperty ttm:test_case_predicate_id ], [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty ttm:output_category ], + owl:allValuesFrom linkml:String ; + owl:onProperty ttm:test_case_predicate_name ], [ a owl:Restriction ; - owl:allValuesFrom ttm:TestSourceEnum ; - owl:onProperty ttm:test_case_source ], + owl:allValuesFrom linkml:String ; + owl:onProperty ttm:test_case_predicate_id ], [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty ttm:test_case_source ], + owl:minCardinality 0 ; + owl:onProperty ttm:trapi_template ], [ a owl:Restriction ; owl:minCardinality 1 ; owl:onProperty ttm:test_assets ], [ a owl:Restriction ; owl:allValuesFrom ttm:concept_category ; - owl:onProperty ttm:input_category ], + owl:onProperty ttm:output_category ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty ttm:qualifiers ], + owl:onProperty ttm:test_env ], [ a owl:Restriction ; - owl:allValuesFrom ttm:TrapiTemplateEnum ; - owl:onProperty ttm:trapi_template ], + owl:allValuesFrom ttm:Precondition ; + owl:onProperty ttm:preconditions ], + [ a owl:Restriction ; + owl:allValuesFrom linkml:Uriorcurie ; + owl:onProperty ttm:test_case_input_id ], [ a owl:Restriction ; owl:minCardinality 0 ; owl:onProperty ttm:test_case_source ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty ttm:test_case_predicate_id ], - [ a owl:Restriction ; - owl:allValuesFrom ttm:Precondition ; - owl:onProperty ttm:preconditions ], + owl:onProperty ttm:qualifiers ], [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty ttm:output_category ], + owl:allValuesFrom ttm:TestSourceEnum ; + owl:onProperty ttm:test_case_source ], [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty ttm:test_env ], + owl:allValuesFrom ttm:TrapiTemplateEnum ; + owl:onProperty ttm:trapi_template ], [ a owl:Restriction ; owl:minCardinality 0 ; owl:onProperty ttm:test_case_objective ], - [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty ttm:trapi_template ], [ a owl:Restriction ; owl:maxCardinality 1 ; owl:onProperty ttm:test_env ], - [ a owl:Restriction ; - owl:allValuesFrom linkml:String ; - owl:onProperty ttm:test_case_predicate_id ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty ttm:input_category ], - [ a owl:Restriction ; - owl:allValuesFrom linkml:Uriorcurie ; - owl:onProperty ttm:test_case_input_id ], + owl:onProperty ttm:trapi_template ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty ttm:test_case_input_id ], + owl:onProperty ttm:output_category ], [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty ttm:input_category ], + owl:maxCardinality 1 ; + owl:onProperty ttm:test_case_input_id ], ttm:TestEntity ; skos:definition "Represents a single enumerated instance of Test Case, derived from a given collection of one or more TestAsset instances (the value of the 'test_assets' slot) which define the 'inputs' and 'outputs' of the TestCase, used to probe a particular test condition." ; skos:inScheme . @@ -1695,37 +1778,37 @@ ttm:TestEntity a owl:Class, rdfs:label "TestEntity" ; rdfs:subClassOf [ a owl:Restriction ; owl:allValuesFrom linkml:String ; - owl:onProperty ttm:name ], - [ a owl:Restriction ; - owl:allValuesFrom linkml:String ; - owl:onProperty ttm:description ], - [ a owl:Restriction ; - owl:minCardinality 0 ; owl:onProperty ttm:tags ], - [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty ttm:test_runner_settings ], [ a owl:Restriction ; owl:allValuesFrom linkml:Uriorcurie ; owl:onProperty ttm:id ], [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty ttm:name ], + owl:allValuesFrom linkml:String ; + owl:onProperty ttm:description ], [ a owl:Restriction ; owl:minCardinality 1 ; owl:onProperty ttm:id ], + [ a owl:Restriction ; + owl:minCardinality 0 ; + owl:onProperty ttm:name ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty ttm:description ], + owl:onProperty ttm:name ], [ a owl:Restriction ; owl:allValuesFrom linkml:String ; - owl:onProperty ttm:test_runner_settings ], + owl:onProperty ttm:name ], [ a owl:Restriction ; owl:allValuesFrom linkml:String ; + owl:onProperty ttm:test_runner_settings ], + [ a owl:Restriction ; + owl:minCardinality 0 ; + owl:onProperty ttm:test_runner_settings ], + [ a owl:Restriction ; + owl:minCardinality 0 ; owl:onProperty ttm:tags ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty ttm:name ], + owl:onProperty ttm:description ], [ a owl:Restriction ; owl:maxCardinality 1 ; owl:onProperty ttm:id ], @@ -1782,6 +1865,27 @@ ttm:TestSourceEnum a owl:Class, , . +ttm:ComponentEnum a owl:Class, + linkml:EnumDefinition ; + owl:unionOf ( infores:ncats-ars infores:arax infores:explanatory-agent infores:improving-agent infores:aragorn infores:biothings-explorer infores:unsecret-agent infores:rtx-kg2 infores:icees-kg infores:cam-kp infores:spoke infores:molepro infores:textmining-kp infores:cohd infores:openpredict infores:knowledge-collaboratory infores:connections-hypothesis ) ; + linkml:permissible_values infores:aragorn, + infores:arax, + infores:biothings-explorer, + infores:cam-kp, + infores:cohd, + infores:connections-hypothesis, + infores:explanatory-agent, + infores:icees-kg, + infores:improving-agent, + infores:knowledge-collaboratory, + infores:molepro, + infores:ncats-ars, + infores:openpredict, + infores:rtx-kg2, + infores:spoke, + infores:textmining-kp, + infores:unsecret-agent . + a owl:Ontology ; rdfs:label "Translator-Testing-Model" ; dcterms:license "MIT" ; diff --git a/project/prefixmap/translator_testing_model.yaml b/project/prefixmap/translator_testing_model.yaml index 1e5dbdf..5141b2f 100644 --- a/project/prefixmap/translator_testing_model.yaml +++ b/project/prefixmap/translator_testing_model.yaml @@ -1,6 +1,7 @@ { "biolink": "https://w3id.org/biolink/", "example": "https://example.org/", + "infores": "https://w3id.org/biolink/vocab/", "linkml": "https://w3id.org/linkml/", "schema": "http://schema.org/", "ttm": "https://w3id.org/TranslatorSRI/TranslatorTestingModel/" diff --git a/project/shacl/translator_testing_model.shacl.ttl b/project/shacl/translator_testing_model.shacl.ttl index d382e1e..9c16168 100644 --- a/project/shacl/translator_testing_model.shacl.ttl +++ b/project/shacl/translator_testing_model.shacl.ttl @@ -1,3 +1,4 @@ +@prefix infores: . @prefix rdf: . @prefix schema1: . @prefix sh: . @@ -9,114 +10,120 @@ ttm:AcceptanceTestCase a sh:NodeShape ; sh:description "See AcceptanceTestAsset above for more details." ; sh:ignoredProperties ( rdf:type ) ; sh:property [ sh:datatype xsd:string ; - sh:description "A human-readable description for a Test Entity" ; - sh:maxCount 1 ; - sh:order 16 ; - sh:path schema1:description ], - [ sh:datatype xsd:string ; sh:maxCount 1 ; sh:order 6 ; sh:path ttm:test_case_predicate_name ], - [ sh:class ttm:Precondition ; - sh:nodeKind sh:IRI ; - sh:order 2 ; - sh:path ttm:preconditions ], - [ sh:datatype xsd:string ; + [ sh:description "A unique identifier for a Test Entity" ; sh:maxCount 1 ; - sh:order 7 ; - sh:path ttm:test_case_predicate_id ], + sh:minCount 1 ; + sh:order 14 ; + sh:path schema1:identifier ], + [ sh:description "A template for a query, which can be used to generate a query for a test case. note: the current enumerated values for this slot come from the Benchmarks repo config/benchmarks.json \"templates\" collection and refer to the \"name\" field of each template. Templates themselves are currently stored in the config/[source_name]/templates directory." ; + sh:in ( "ameliorates" "treats" "three_hop" "drug_treats_rare_disease" "drug-to-gene" ) ; + sh:maxCount 1 ; + sh:order 3 ; + sh:path ttm:trapi_template ], + [ sh:description "Deployment environment within which the associated TestSuite is run." ; + sh:in ( "dev" "ci" "test" "prod" ) ; + sh:maxCount 1 ; + sh:order 13 ; + sh:path ttm:test_env ], [ sh:class ttm:AcceptanceTestAsset ; sh:description "One or more 'tags' slot values (inherited from TestEntity) should generally be defined as filters to specify TestAsset membership in 'test_assets' slot (\"Block List\") collection." ; sh:minCount 1 ; sh:nodeKind sh:IRI ; sh:order 1 ; sh:path ttm:test_assets ], - [ sh:datatype xsd:string ; - sh:description "One or more 'tags' slot values (slot inherited from TestEntity) should generally be defined as filters to specify TestAsset membership in a \"Block List\" collection." ; - sh:order 17 ; - sh:path schema1:additionalType ], - [ sh:maxCount 1 ; - sh:order 11 ; - sh:path ttm:output_category ], [ sh:description "Testing objective behind specified set of test particulars (e.g. acceptance pass/fail; benchmark; quantitative; standards compliance; graph navigation integrity)" ; sh:in ( "AcceptanceTest" "BenchmarkTest" "QuantitativeTest" "StandardsValidationTest" "OneHopTest" ) ; sh:maxCount 1 ; sh:order 4 ; sh:path ttm:test_case_objective ], - [ sh:datatype xsd:string ; - sh:description "Scalar parameters for the TestRunner processing a given TestEntity." ; - sh:order 18 ; - sh:path ttm:test_runner_settings ], - [ sh:description "Type of TestCase query." ; - sh:in ( "treats" ) ; - sh:maxCount 1 ; - sh:order 0 ; - sh:path ttm:query_type ], + [ sh:description "The component that this test case is intended to run against. Most often this is the ARS for acceptance tests, but for the Benchmarks repo integration, this can also be individual components of the system like Aragorn, or ARAX." ; + sh:in ( infores:ncats-ars infores:arax infores:explanatory-agent infores:improving-agent infores:aragorn infores:biothings-explorer infores:unsecret-agent infores:rtx-kg2 infores:icees-kg infores:cam-kp infores:spoke infores:molepro infores:textmining-kp infores:cohd infores:openpredict infores:knowledge-collaboratory infores:connections-hypothesis ) ; + sh:order 12 ; + sh:path ttm:components ], + [ sh:maxCount 1 ; + sh:order 10 ; + sh:path ttm:input_category ], [ sh:description "Provenance of a specific set of test assets, cases and/or suites. Or, the person who cares about this, know about this. We would like this to be an ORCID eventually, but currently it is just a string." ; sh:in ( "SME" "SMURF" "GitHubUserFeedback" "TACT" "BenchMark" "TranslatorTeam" "TestDataLocation" ) ; sh:maxCount 1 ; sh:order 5 ; sh:path ttm:test_case_source ], - [ sh:description "A template for a query, which can be used to generate a query for a test case. note: the current enumerated values for this slot come from the Benchmarks repo config/benchmarks.json \"templates\" collection and refer to the \"name\" field of each template. Templates themselves are currently stored in the config/[source_name]/templates directory." ; - sh:in ( "ameliorates" "treats" "three_hop" "drug_treats_rare_disease" "drug-to-gene" ) ; - sh:maxCount 1 ; - sh:order 3 ; - sh:path ttm:trapi_template ], - [ sh:maxCount 1 ; - sh:order 10 ; - sh:path ttm:input_category ], - [ sh:maxCount 1 ; - sh:order 8 ; - sh:path ttm:test_case_input_id ], - [ sh:description "Deployment environment within which the associated TestSuite is run." ; - sh:in ( "dev" "ci" "test" "prod" ) ; + [ sh:datatype xsd:string ; + sh:description "A human-readable name for a Test Entity" ; sh:maxCount 1 ; - sh:order 13 ; - sh:path ttm:test_env ], - [ sh:description "The component that this test case is intended to run against. Most often this is the ARS for acceptance tests, but for the Benchmarks repo integration, this can also be individual components of the system like Aragorn, or ARAX." ; - sh:in [ rdf:rest () ] ; - sh:order 12 ; - sh:path ttm:components ], + sh:order 15 ; + sh:path schema1:name ], [ sh:class ttm:Qualifier ; sh:description "Optional qualifiers which constrain to the test asset defined knowledge statement. Note that this field records such qualifier slots and values as tag=value pairs, where the tag is the Biolink Model qualifier slot named and the value is an acceptable (Biolink Model enum?) value of the said qualifier slot." ; sh:nodeKind sh:BlankNodeOrIRI ; sh:order 9 ; sh:path ttm:qualifiers ], - [ sh:description "A unique identifier for a Test Entity" ; + [ sh:datatype xsd:string ; + sh:description "One or more 'tags' slot values (slot inherited from TestEntity) should generally be defined as filters to specify TestAsset membership in a \"Block List\" collection." ; + sh:order 17 ; + sh:path schema1:additionalType ], + [ sh:description "Type of TestCase query." ; + sh:in ( "treats" ) ; sh:maxCount 1 ; - sh:minCount 1 ; - sh:order 14 ; - sh:path schema1:identifier ], + sh:order 0 ; + sh:path ttm:query_type ], [ sh:datatype xsd:string ; - sh:description "A human-readable name for a Test Entity" ; sh:maxCount 1 ; - sh:order 15 ; - sh:path schema1:name ] ; + sh:order 7 ; + sh:path ttm:test_case_predicate_id ], + [ sh:datatype xsd:string ; + sh:description "A human-readable description for a Test Entity" ; + sh:maxCount 1 ; + sh:order 16 ; + sh:path schema1:description ], + [ sh:class ttm:Precondition ; + sh:nodeKind sh:IRI ; + sh:order 2 ; + sh:path ttm:preconditions ], + [ sh:maxCount 1 ; + sh:order 11 ; + sh:path ttm:output_category ], + [ sh:maxCount 1 ; + sh:order 8 ; + sh:path ttm:test_case_input_id ], + [ sh:datatype xsd:string ; + sh:description "Scalar parameters for the TestRunner processing a given TestEntity." ; + sh:order 18 ; + sh:path ttm:test_runner_settings ] ; sh:targetClass ttm:AcceptanceTestCase . ttm:AcceptanceTestSuite a sh:NodeShape ; sh:closed true ; sh:ignoredProperties ( rdf:type ) ; - sh:property [ sh:description "A unique identifier for a Test Entity" ; + sh:property [ sh:class ttm:TestSuiteSpecification ; + sh:description "Declarative specification of a Test Suite of Test Cases whose generation is deferred, (i.e. within a Test Runner) or whose creation is achieved by stream processing of an external data source." ; sh:maxCount 1 ; - sh:minCount 1 ; - sh:order 4 ; - sh:path schema1:identifier ], + sh:nodeKind sh:IRI ; + sh:order 3 ; + sh:path ttm:test_suite_specification ], [ sh:description "A Test persona describes the user or operational context of a given test." ; sh:in ( "All" "Clinical" "LookUp" "Mechanistic" ) ; sh:maxCount 1 ; sh:order 1 ; sh:path ttm:test_persona ], - [ sh:datatype xsd:string ; - sh:description "A human-readable description for a Test Entity" ; - sh:maxCount 1 ; - sh:order 6 ; - sh:path schema1:description ], [ sh:class ttm:TestCase ; sh:description "List of explicitly enumerated Test Cases." ; sh:nodeKind sh:IRI ; sh:order 2 ; sh:path ttm:test_cases ], + [ sh:datatype xsd:string ; + sh:description "A human-readable description for a Test Entity" ; + sh:maxCount 1 ; + sh:order 6 ; + sh:path schema1:description ], + [ sh:description "A unique identifier for a Test Entity" ; + sh:maxCount 1 ; + sh:minCount 1 ; + sh:order 4 ; + sh:path schema1:identifier ], [ sh:datatype xsd:string ; sh:description "A human-readable tags for categorical memberships of a TestEntity (preferably a URI or CURIE). Typically used to aggregate instances of TestEntity into formally typed or ad hoc lists." ; sh:order 7 ; @@ -136,13 +143,7 @@ ttm:AcceptanceTestSuite a sh:NodeShape ; [ sh:datatype xsd:string ; sh:description "Scalar parameters for the TestRunner processing a given TestEntity." ; sh:order 8 ; - sh:path ttm:test_runner_settings ], - [ sh:class ttm:TestSuiteSpecification ; - sh:description "Declarative specification of a Test Suite of Test Cases whose generation is deferred, (i.e. within a Test Runner) or whose creation is achieved by stream processing of an external data source." ; - sh:maxCount 1 ; - sh:nodeKind sh:IRI ; - sh:order 3 ; - sh:path ttm:test_suite_specification ] ; + sh:path ttm:test_runner_settings ] ; sh:targetClass ttm:AcceptanceTestSuite . ttm:BenchmarkTestSuite a sh:NodeShape ; @@ -155,11 +156,12 @@ ttm:OneHopTestSuite a sh:NodeShape ; sh:closed true ; sh:description "Test case for testing the integrity of \"One Hop\" knowledge graph retrievals sensa legacy SRI_Testing harness." ; sh:ignoredProperties ( rdf:type ) ; - sh:property [ sh:description "A unique identifier for a Test Entity" ; + sh:property [ sh:class ttm:TestSuiteSpecification ; + sh:description "Declarative specification of a Test Suite of Test Cases whose generation is deferred, (i.e. within a Test Runner) or whose creation is achieved by stream processing of an external data source." ; sh:maxCount 1 ; - sh:minCount 1 ; - sh:order 4 ; - sh:path schema1:identifier ], + sh:nodeKind sh:IRI ; + sh:order 3 ; + sh:path ttm:test_suite_specification ], [ sh:class ttm:TestMetadata ; sh:description "Test metadata describes the external provenance, cross-references and objectives for a given test." ; sh:maxCount 1 ; @@ -167,182 +169,181 @@ ttm:OneHopTestSuite a sh:NodeShape ; sh:nodeKind sh:IRI ; sh:order 0 ; sh:path ttm:test_metadata ], + [ sh:description "A unique identifier for a Test Entity" ; + sh:maxCount 1 ; + sh:minCount 1 ; + sh:order 4 ; + sh:path schema1:identifier ], + [ sh:datatype xsd:string ; + sh:description "A human-readable description for a Test Entity" ; + sh:maxCount 1 ; + sh:order 6 ; + sh:path schema1:description ], [ sh:datatype xsd:string ; sh:description "Scalar parameters for the TestRunner processing a given TestEntity." ; sh:order 8 ; sh:path ttm:test_runner_settings ], - [ sh:class ttm:TestSuiteSpecification ; - sh:description "Declarative specification of a Test Suite of Test Cases whose generation is deferred, (i.e. within a Test Runner) or whose creation is achieved by stream processing of an external data source." ; - sh:maxCount 1 ; - sh:nodeKind sh:IRI ; - sh:order 3 ; - sh:path ttm:test_suite_specification ], [ sh:class ttm:TestCase ; sh:description "List of explicitly enumerated Test Cases." ; sh:nodeKind sh:IRI ; sh:order 2 ; sh:path ttm:test_cases ], - [ sh:datatype xsd:string ; - sh:description "A human-readable name for a Test Entity" ; + [ sh:description "A Test persona describes the user or operational context of a given test." ; + sh:in ( "All" "Clinical" "LookUp" "Mechanistic" ) ; sh:maxCount 1 ; - sh:order 5 ; - sh:path schema1:name ], + sh:order 1 ; + sh:path ttm:test_persona ], [ sh:datatype xsd:string ; sh:description "A human-readable tags for categorical memberships of a TestEntity (preferably a URI or CURIE). Typically used to aggregate instances of TestEntity into formally typed or ad hoc lists." ; sh:order 7 ; sh:path schema1:additionalType ], [ sh:datatype xsd:string ; - sh:description "A human-readable description for a Test Entity" ; - sh:maxCount 1 ; - sh:order 6 ; - sh:path schema1:description ], - [ sh:description "A Test persona describes the user or operational context of a given test." ; - sh:in ( "All" "Clinical" "LookUp" "Mechanistic" ) ; + sh:description "A human-readable name for a Test Entity" ; sh:maxCount 1 ; - sh:order 1 ; - sh:path ttm:test_persona ] ; + sh:order 5 ; + sh:path schema1:name ] ; sh:targetClass ttm:OneHopTestSuite . ttm:QuantitativeTestCase a sh:NodeShape ; sh:closed true ; sh:description "Assumed additional model from Shervin's runner JSON here as an example. This schema is not yet complete." ; sh:ignoredProperties ( rdf:type ) ; - sh:property [ sh:description "A unique identifier for a Test Entity" ; + sh:property [ sh:datatype xsd:string ; + sh:description "A human-readable name for a Test Entity" ; sh:maxCount 1 ; - sh:minCount 1 ; - sh:order 14 ; - sh:path schema1:identifier ], - [ sh:datatype xsd:string ; - sh:description "Scalar parameters for the TestRunner processing a given TestEntity." ; - sh:order 18 ; - sh:path ttm:test_runner_settings ], - [ sh:maxCount 1 ; - sh:order 8 ; - sh:path ttm:test_case_input_id ], + sh:order 15 ; + sh:path schema1:name ], [ sh:datatype xsd:string ; + sh:description "A human-readable description for a Test Entity" ; sh:maxCount 1 ; - sh:order 6 ; - sh:path ttm:test_case_predicate_name ], - [ sh:maxCount 1 ; - sh:order 10 ; - sh:path ttm:input_category ], - [ sh:class ttm:Qualifier ; - sh:description "Optional qualifiers which constrain to the test asset defined knowledge statement. Note that this field records such qualifier slots and values as tag=value pairs, where the tag is the Biolink Model qualifier slot named and the value is an acceptable (Biolink Model enum?) value of the said qualifier slot." ; - sh:nodeKind sh:BlankNodeOrIRI ; - sh:order 9 ; - sh:path ttm:qualifiers ], + sh:order 16 ; + sh:path schema1:description ], + [ sh:description "Deployment environment within which the associated TestSuite is run." ; + sh:in ( "dev" "ci" "test" "prod" ) ; + sh:maxCount 1 ; + sh:order 13 ; + sh:path ttm:test_env ], [ sh:datatype xsd:string ; sh:description "One or more 'tags' slot values (slot inherited from TestEntity) should generally be defined as filters to specify TestAsset membership in a \"Block List\" collection." ; sh:order 17 ; sh:path schema1:additionalType ], - [ sh:class ttm:Precondition ; - sh:nodeKind sh:IRI ; - sh:order 2 ; - sh:path ttm:preconditions ], - [ sh:description "The component that this test case is intended to run against. Most often this is the ARS for acceptance tests, but for the Benchmarks repo integration, this can also be individual components of the system like Aragorn, or ARAX." ; - sh:in [ rdf:rest () ] ; - sh:order 12 ; - sh:path ttm:components ], - [ sh:datatype xsd:string ; - sh:description "A human-readable name for a Test Entity" ; - sh:maxCount 1 ; - sh:order 15 ; - sh:path schema1:name ], [ sh:description "Testing objective behind specified set of test particulars (e.g. acceptance pass/fail; benchmark; quantitative; standards compliance; graph navigation integrity)" ; sh:in ( "AcceptanceTest" "BenchmarkTest" "QuantitativeTest" "StandardsValidationTest" "OneHopTest" ) ; sh:maxCount 1 ; sh:order 4 ; sh:path ttm:test_case_objective ], - [ sh:description "A template for a query, which can be used to generate a query for a test case. note: the current enumerated values for this slot come from the Benchmarks repo config/benchmarks.json \"templates\" collection and refer to the \"name\" field of each template. Templates themselves are currently stored in the config/[source_name]/templates directory." ; - sh:in ( "ameliorates" "treats" "three_hop" "drug_treats_rare_disease" "drug-to-gene" ) ; + [ sh:description "Provenance of a specific set of test assets, cases and/or suites. Or, the person who cares about this, know about this. We would like this to be an ORCID eventually, but currently it is just a string." ; + sh:in ( "SME" "SMURF" "GitHubUserFeedback" "TACT" "BenchMark" "TranslatorTeam" "TestDataLocation" ) ; sh:maxCount 1 ; - sh:order 3 ; - sh:path ttm:trapi_template ], + sh:order 5 ; + sh:path ttm:test_case_source ], + [ sh:class ttm:Qualifier ; + sh:description "Optional qualifiers which constrain to the test asset defined knowledge statement. Note that this field records such qualifier slots and values as tag=value pairs, where the tag is the Biolink Model qualifier slot named and the value is an acceptable (Biolink Model enum?) value of the said qualifier slot." ; + sh:nodeKind sh:BlankNodeOrIRI ; + sh:order 9 ; + sh:path ttm:qualifiers ], + [ sh:maxCount 1 ; + sh:order 10 ; + sh:path ttm:input_category ], [ sh:description "Type of TestCase query." ; sh:in ( "treats" ) ; sh:maxCount 1 ; sh:order 0 ; sh:path ttm:query_type ], - [ sh:maxCount 1 ; - sh:order 11 ; - sh:path ttm:output_category ], - [ sh:description "Deployment environment within which the associated TestSuite is run." ; - sh:in ( "dev" "ci" "test" "prod" ) ; - sh:maxCount 1 ; - sh:order 13 ; - sh:path ttm:test_env ], [ sh:datatype xsd:string ; - sh:maxCount 1 ; - sh:order 7 ; - sh:path ttm:test_case_predicate_id ], - [ sh:description "Provenance of a specific set of test assets, cases and/or suites. Or, the person who cares about this, know about this. We would like this to be an ORCID eventually, but currently it is just a string." ; - sh:in ( "SME" "SMURF" "GitHubUserFeedback" "TACT" "BenchMark" "TranslatorTeam" "TestDataLocation" ) ; - sh:maxCount 1 ; - sh:order 5 ; - sh:path ttm:test_case_source ], - [ sh:class ttm:TestAsset ; - sh:description "One or more 'tags' slot values (inherited from TestEntity) should generally be defined as filters to specify TestAsset membership in 'test_assets' slot (\"Block List\") collection." ; + sh:description "Scalar parameters for the TestRunner processing a given TestEntity." ; + sh:order 18 ; + sh:path ttm:test_runner_settings ], + [ sh:description "The component that this test case is intended to run against. Most often this is the ARS for acceptance tests, but for the Benchmarks repo integration, this can also be individual components of the system like Aragorn, or ARAX." ; + sh:in ( infores:ncats-ars infores:arax infores:explanatory-agent infores:improving-agent infores:aragorn infores:biothings-explorer infores:unsecret-agent infores:rtx-kg2 infores:icees-kg infores:cam-kp infores:spoke infores:molepro infores:textmining-kp infores:cohd infores:openpredict infores:knowledge-collaboratory infores:connections-hypothesis ) ; + sh:order 12 ; + sh:path ttm:components ], + [ sh:maxCount 1 ; + sh:order 8 ; + sh:path ttm:test_case_input_id ], + [ sh:class ttm:Precondition ; + sh:nodeKind sh:IRI ; + sh:order 2 ; + sh:path ttm:preconditions ], + [ sh:class ttm:TestAsset ; + sh:description "One or more 'tags' slot values (inherited from TestEntity) should generally be defined as filters to specify TestAsset membership in 'test_assets' slot (\"Block List\") collection." ; sh:minCount 1 ; sh:nodeKind sh:IRI ; sh:order 1 ; sh:path ttm:test_assets ], + [ sh:maxCount 1 ; + sh:order 11 ; + sh:path ttm:output_category ], + [ sh:description "A template for a query, which can be used to generate a query for a test case. note: the current enumerated values for this slot come from the Benchmarks repo config/benchmarks.json \"templates\" collection and refer to the \"name\" field of each template. Templates themselves are currently stored in the config/[source_name]/templates directory." ; + sh:in ( "ameliorates" "treats" "three_hop" "drug_treats_rare_disease" "drug-to-gene" ) ; + sh:maxCount 1 ; + sh:order 3 ; + sh:path ttm:trapi_template ], [ sh:datatype xsd:string ; - sh:description "A human-readable description for a Test Entity" ; sh:maxCount 1 ; - sh:order 16 ; - sh:path schema1:description ] ; + sh:order 7 ; + sh:path ttm:test_case_predicate_id ], + [ sh:description "A unique identifier for a Test Entity" ; + sh:maxCount 1 ; + sh:minCount 1 ; + sh:order 14 ; + sh:path schema1:identifier ], + [ sh:datatype xsd:string ; + sh:maxCount 1 ; + sh:order 6 ; + sh:path ttm:test_case_predicate_name ] ; sh:targetClass ttm:QuantitativeTestCase . ttm:StandardsComplianceTestSuite a sh:NodeShape ; sh:closed true ; sh:description "Test suite for testing Translator components against releases of standards like TRAPI and the Biolink Model." ; sh:ignoredProperties ( rdf:type ) ; - sh:property [ sh:class ttm:TestSuiteSpecification ; - sh:description "Declarative specification of a Test Suite of Test Cases whose generation is deferred, (i.e. within a Test Runner) or whose creation is achieved by stream processing of an external data source." ; + sh:property [ sh:class ttm:TestMetadata ; + sh:description "Test metadata describes the external provenance, cross-references and objectives for a given test." ; sh:maxCount 1 ; + sh:minCount 1 ; sh:nodeKind sh:IRI ; - sh:order 3 ; - sh:path ttm:test_suite_specification ], - [ sh:class ttm:TestCase ; - sh:description "List of explicitly enumerated Test Cases." ; - sh:nodeKind sh:IRI ; - sh:order 2 ; - sh:path ttm:test_cases ], - [ sh:datatype xsd:string ; - sh:description "Scalar parameters for the TestRunner processing a given TestEntity." ; - sh:order 8 ; - sh:path ttm:test_runner_settings ], - [ sh:datatype xsd:string ; - sh:description "A human-readable description for a Test Entity" ; - sh:maxCount 1 ; - sh:order 6 ; - sh:path schema1:description ], + sh:order 0 ; + sh:path ttm:test_metadata ], [ sh:datatype xsd:string ; sh:description "A human-readable tags for categorical memberships of a TestEntity (preferably a URI or CURIE). Typically used to aggregate instances of TestEntity into formally typed or ad hoc lists." ; sh:order 7 ; sh:path schema1:additionalType ], - [ sh:description "A Test persona describes the user or operational context of a given test." ; - sh:in ( "All" "Clinical" "LookUp" "Mechanistic" ) ; + [ sh:datatype xsd:string ; + sh:description "A human-readable name for a Test Entity" ; sh:maxCount 1 ; - sh:order 1 ; - sh:path ttm:test_persona ], + sh:order 5 ; + sh:path schema1:name ], [ sh:description "A unique identifier for a Test Entity" ; sh:maxCount 1 ; sh:minCount 1 ; sh:order 4 ; sh:path schema1:identifier ], [ sh:datatype xsd:string ; - sh:description "A human-readable name for a Test Entity" ; + sh:description "A human-readable description for a Test Entity" ; sh:maxCount 1 ; - sh:order 5 ; - sh:path schema1:name ], - [ sh:class ttm:TestMetadata ; - sh:description "Test metadata describes the external provenance, cross-references and objectives for a given test." ; + sh:order 6 ; + sh:path schema1:description ], + [ sh:class ttm:TestSuiteSpecification ; + sh:description "Declarative specification of a Test Suite of Test Cases whose generation is deferred, (i.e. within a Test Runner) or whose creation is achieved by stream processing of an external data source." ; sh:maxCount 1 ; - sh:minCount 1 ; sh:nodeKind sh:IRI ; - sh:order 0 ; - sh:path ttm:test_metadata ] ; + sh:order 3 ; + sh:path ttm:test_suite_specification ], + [ sh:description "A Test persona describes the user or operational context of a given test." ; + sh:in ( "All" "Clinical" "LookUp" "Mechanistic" ) ; + sh:maxCount 1 ; + sh:order 1 ; + sh:path ttm:test_persona ], + [ sh:datatype xsd:string ; + sh:description "Scalar parameters for the TestRunner processing a given TestEntity." ; + sh:order 8 ; + sh:path ttm:test_runner_settings ], + [ sh:class ttm:TestCase ; + sh:description "List of explicitly enumerated Test Cases." ; + sh:nodeKind sh:IRI ; + sh:order 2 ; + sh:path ttm:test_cases ] ; sh:targetClass ttm:StandardsComplianceTestSuite . ttm:TestEdgeData a sh:NodeShape ; @@ -351,43 +352,78 @@ ttm:TestEdgeData a sh:NodeShape ; sh:ignoredProperties ( rdf:type ) ; sh:property [ sh:datatype xsd:boolean ; sh:maxCount 1 ; - sh:order 13 ; - sh:path ttm:in_v1 ], - [ sh:description "A unique identifier for a Test Entity" ; + sh:order 14 ; + sh:path ttm:well_known ], + [ sh:description "Document URL where original test source particulars are registered (e.g. Github repo)" ; sh:maxCount 1 ; - sh:minCount 1 ; - sh:order 17 ; - sh:path schema1:identifier ], + sh:order 15 ; + sh:path ttm:test_reference ], [ sh:maxCount 1 ; sh:order 0 ; sh:path ttm:input_id ], - [ sh:description "Specific Biolink Model association 'category' which applies to the test asset defined knowledge statement" ; - sh:maxCount 1 ; - sh:order 8 ; - sh:path ttm:association ], + [ sh:maxCount 1 ; + sh:order 7 ; + sh:path ttm:output_category ], [ sh:datatype xsd:string ; + sh:description "One or more 'tags' slot values (inherited from TestEntity) should generally be defined to specify TestAsset membership in a \"Block List\" collection" ; + sh:order 20 ; + sh:path schema1:additionalType ], + [ sh:maxCount 1 ; + sh:order 5 ; + sh:path ttm:output_id ], + [ sh:datatype xsd:string ; + sh:description "A human-readable description for a Test Entity" ; sh:maxCount 1 ; - sh:order 1 ; - sh:path ttm:input_name ], - [ sh:description "Document URL where original test source particulars are registered (e.g. Github repo)" ; - sh:maxCount 1 ; - sh:order 15 ; - sh:path ttm:test_reference ], + sh:order 19 ; + sh:path schema1:description ], [ sh:maxCount 1 ; sh:order 3 ; sh:path ttm:predicate_id ], [ sh:maxCount 1 ; sh:order 2 ; sh:path ttm:input_category ], + [ sh:in ( "High" "Low" "NotApplicable" ) ; + sh:maxCount 1 ; + sh:order 12 ; + sh:path ttm:semantic_severity ], [ sh:datatype xsd:string ; - sh:description "Scalar settings for the TestRunner, e.g. \"inferred\"" ; - sh:order 21 ; - sh:path ttm:test_runner_settings ], + sh:maxCount 1 ; + sh:order 4 ; + sh:path ttm:predicate_name ], + [ sh:description "A unique identifier for a Test Entity" ; + sh:maxCount 1 ; + sh:minCount 1 ; + sh:order 17 ; + sh:path schema1:identifier ], + [ sh:datatype xsd:string ; + sh:maxCount 1 ; + sh:order 6 ; + sh:path ttm:output_name ], + [ sh:datatype xsd:string ; + sh:maxCount 1 ; + sh:order 10 ; + sh:path ttm:expected_output ], + [ sh:datatype xsd:boolean ; + sh:maxCount 1 ; + sh:order 13 ; + sh:path ttm:in_v1 ], + [ sh:datatype xsd:string ; + sh:maxCount 1 ; + sh:order 1 ; + sh:path ttm:input_name ], [ sh:class ttm:Qualifier ; sh:description "Optional qualifiers which constrain to the test asset defined knowledge statement. Note that this field records such qualifier slots and values as tag=value pairs, where the tag is the Biolink Model qualifier slot named and the value is an acceptable (Biolink Model enum?) value of the said qualifier slot." ; sh:nodeKind sh:BlankNodeOrIRI ; sh:order 9 ; sh:path ttm:qualifiers ], + [ sh:description "Specific Biolink Model association 'category' which applies to the test asset defined knowledge statement" ; + sh:maxCount 1 ; + sh:order 8 ; + sh:path ttm:association ], + [ sh:datatype xsd:string ; + sh:description "Scalar settings for the TestRunner, e.g. \"inferred\"" ; + sh:order 21 ; + sh:path ttm:test_runner_settings ], [ sh:in ( "causes not treats" "TMKP" "category too generic" "contraindications" "chemical roles" "test_issue" ) ; sh:maxCount 1 ; sh:order 11 ; @@ -403,42 +439,7 @@ ttm:TestEdgeData a sh:NodeShape ; sh:minCount 1 ; sh:nodeKind sh:IRI ; sh:order 16 ; - sh:path ttm:test_metadata ], - [ sh:datatype xsd:string ; - sh:maxCount 1 ; - sh:order 10 ; - sh:path ttm:expected_output ], - [ sh:in ( "High" "Low" "NotApplicable" ) ; - sh:maxCount 1 ; - sh:order 12 ; - sh:path ttm:semantic_severity ], - [ sh:datatype xsd:string ; - sh:description "One or more 'tags' slot values (inherited from TestEntity) should generally be defined to specify TestAsset membership in a \"Block List\" collection" ; - sh:order 20 ; - sh:path schema1:additionalType ], - [ sh:datatype xsd:boolean ; - sh:maxCount 1 ; - sh:order 14 ; - sh:path ttm:well_known ], - [ sh:datatype xsd:string ; - sh:description "A human-readable description for a Test Entity" ; - sh:maxCount 1 ; - sh:order 19 ; - sh:path schema1:description ], - [ sh:maxCount 1 ; - sh:order 7 ; - sh:path ttm:output_category ], - [ sh:datatype xsd:string ; - sh:maxCount 1 ; - sh:order 4 ; - sh:path ttm:predicate_name ], - [ sh:maxCount 1 ; - sh:order 5 ; - sh:path ttm:output_id ], - [ sh:datatype xsd:string ; - sh:maxCount 1 ; - sh:order 6 ; - sh:path ttm:output_name ] ; + sh:path ttm:test_metadata ] ; sh:targetClass ttm:TestEdgeData . ttm:TestOutput a sh:NodeShape ; @@ -446,108 +447,119 @@ ttm:TestOutput a sh:NodeShape ; sh:description "The output of a TestRunner run of one specific TestCase." ; sh:ignoredProperties ( rdf:type ) ; sh:property [ sh:datatype xsd:string ; - sh:description "A human-readable description for a Test Entity" ; - sh:maxCount 1 ; - sh:order 4 ; - sh:path schema1:description ], + sh:description "A human-readable tags for categorical memberships of a TestEntity (preferably a URI or CURIE). Typically used to aggregate instances of TestEntity into formally typed or ad hoc lists." ; + sh:order 5 ; + sh:path schema1:additionalType ], [ sh:datatype xsd:string ; sh:description "A human-readable name for a Test Entity" ; sh:maxCount 1 ; sh:order 3 ; sh:path schema1:name ], [ sh:datatype xsd:string ; - sh:description "Scalar parameters for the TestRunner processing a given TestEntity." ; - sh:order 6 ; - sh:path ttm:test_runner_settings ], - [ sh:datatype xsd:string ; - sh:description "A human-readable tags for categorical memberships of a TestEntity (preferably a URI or CURIE). Typically used to aggregate instances of TestEntity into formally typed or ad hoc lists." ; - sh:order 5 ; - sh:path schema1:additionalType ], - [ sh:datatype xsd:string ; - sh:description "CURIE id of a TestCase registered in the system." ; + sh:description "A human-readable description for a Test Entity" ; sh:maxCount 1 ; - sh:order 0 ; - sh:path ttm:test_case_id ], + sh:order 4 ; + sh:path schema1:description ], [ sh:description "A unique identifier for a Test Entity" ; sh:maxCount 1 ; sh:minCount 1 ; sh:order 2 ; sh:path schema1:identifier ], + [ sh:datatype xsd:string ; + sh:description "Scalar parameters for the TestRunner processing a given TestEntity." ; + sh:order 6 ; + sh:path ttm:test_runner_settings ], [ sh:class ttm:TestResultPKSet ; sh:description "Primary keys for a given ARA result set from a SmokeTest result for a given TestCase." ; sh:nodeKind sh:IRI ; sh:order 1 ; - sh:path ttm:pks ] ; + sh:path ttm:pks ], + [ sh:datatype xsd:string ; + sh:description "CURIE id of a TestCase registered in the system." ; + sh:maxCount 1 ; + sh:order 0 ; + sh:path ttm:test_case_id ] ; sh:targetClass ttm:TestOutput . ttm:TestRunSession a sh:NodeShape ; sh:closed true ; sh:description "Single run of a TestRunner in a given environment, with a specified set of test_entities (generally, one or more instances of TestSuite)." ; sh:ignoredProperties ( rdf:type ) ; - sh:property [ sh:description "Deployment environment within which the associated TestSuite is run." ; - sh:in ( "dev" "ci" "test" "prod" ) ; - sh:maxCount 1 ; - sh:order 1 ; - sh:path ttm:test_env ], - [ sh:description "A unique identifier for a Test Entity" ; + sh:property [ sh:datatype xsd:string ; + sh:description "Global system name of a TestRunner." ; sh:maxCount 1 ; - sh:minCount 1 ; - sh:order 7 ; - sh:path schema1:identifier ], + sh:order 2 ; + sh:path ttm:test_runner_name ], [ sh:class ttm:TestCaseResult ; sh:description "One or more instances of TestCaseResult." ; sh:nodeKind sh:IRI ; sh:order 5 ; sh:path ttm:test_case_results ], - [ sh:description "The component that this test case is intended to run against. Most often this is the ARS for acceptance tests, but for the Benchmarks repo integration, this can also be individual components of the system like Aragorn, or ARAX." ; - sh:in [ rdf:rest () ] ; - sh:order 0 ; - sh:path ttm:components ], [ sh:datatype xsd:string ; - sh:description "A human-readable tags for categorical memberships of a TestEntity (preferably a URI or CURIE). Typically used to aggregate instances of TestEntity into formally typed or ad hoc lists." ; - sh:order 10 ; - sh:path schema1:additionalType ], - [ sh:class ttm:TestEntity ; - sh:description "Different TestRunners could expect specific kinds of TestEntity as an input. These 'test_entities' are one or more instances of TestAsset, TestCase or (preferably?) TestSuite." ; - sh:nodeKind sh:IRI ; - sh:order 4 ; - sh:path ttm:test_entities ], + sh:description "A human-readable name for a Test Entity" ; + sh:maxCount 1 ; + sh:order 8 ; + sh:path schema1:name ], + [ sh:datatype xsd:string ; + sh:description "Scalar parameters for the TestRunner processing a given TestEntity." ; + sh:order 11 ; + sh:path ttm:test_runner_settings ], [ sh:datatype xsd:dateTime ; sh:description "Date time when a given entity was created." ; sh:maxCount 1 ; sh:order 6 ; sh:path ttm:timestamp ], [ sh:datatype xsd:string ; - sh:description "A human-readable name for a Test Entity" ; + sh:description "A human-readable description for a Test Entity" ; sh:maxCount 1 ; - sh:order 8 ; - sh:path schema1:name ], + sh:order 9 ; + sh:path schema1:description ], [ sh:class ttm:TestEntityParameter ; sh:description "Different TestRunners could expect additional global test configuration parameters, like the applicable TRAPI version (\"trapi_version\") or Biolink Model versions (\"biolink_version\")." ; sh:nodeKind sh:BlankNodeOrIRI ; sh:order 3 ; sh:path ttm:test_run_parameters ], [ sh:datatype xsd:string ; - sh:description "A human-readable description for a Test Entity" ; + sh:description "A human-readable tags for categorical memberships of a TestEntity (preferably a URI or CURIE). Typically used to aggregate instances of TestEntity into formally typed or ad hoc lists." ; + sh:order 10 ; + sh:path schema1:additionalType ], + [ sh:class ttm:TestEntity ; + sh:description "Different TestRunners could expect specific kinds of TestEntity as an input. These 'test_entities' are one or more instances of TestAsset, TestCase or (preferably?) TestSuite." ; + sh:nodeKind sh:IRI ; + sh:order 4 ; + sh:path ttm:test_entities ], + [ sh:description "The component that this test case is intended to run against. Most often this is the ARS for acceptance tests, but for the Benchmarks repo integration, this can also be individual components of the system like Aragorn, or ARAX." ; + sh:in ( infores:ncats-ars infores:arax infores:explanatory-agent infores:improving-agent infores:aragorn infores:biothings-explorer infores:unsecret-agent infores:rtx-kg2 infores:icees-kg infores:cam-kp infores:spoke infores:molepro infores:textmining-kp infores:cohd infores:openpredict infores:knowledge-collaboratory infores:connections-hypothesis ) ; + sh:order 0 ; + sh:path ttm:components ], + [ sh:description "Deployment environment within which the associated TestSuite is run." ; + sh:in ( "dev" "ci" "test" "prod" ) ; sh:maxCount 1 ; - sh:order 9 ; - sh:path schema1:description ], - [ sh:datatype xsd:string ; - sh:description "Global system name of a TestRunner." ; + sh:order 1 ; + sh:path ttm:test_env ], + [ sh:description "A unique identifier for a Test Entity" ; sh:maxCount 1 ; - sh:order 2 ; - sh:path ttm:test_runner_name ], - [ sh:datatype xsd:string ; - sh:description "Scalar parameters for the TestRunner processing a given TestEntity." ; - sh:order 11 ; - sh:path ttm:test_runner_settings ] ; + sh:minCount 1 ; + sh:order 7 ; + sh:path schema1:identifier ] ; sh:targetClass ttm:TestRunSession . ttm:TestSuite a sh:NodeShape ; sh:closed true ; sh:description "Specification of a set of Test Cases, one of either with a static list of 'test_cases' or a dynamic 'test_suite_specification' slot values. Note: at least one slot or the other, but generally not both(?) needs to be present." ; sh:ignoredProperties ( rdf:type ) ; - sh:property [ sh:datatype xsd:string ; + sh:property [ sh:class ttm:TestSuiteSpecification ; + sh:description "Declarative specification of a Test Suite of Test Cases whose generation is deferred, (i.e. within a Test Runner) or whose creation is achieved by stream processing of an external data source." ; + sh:maxCount 1 ; + sh:nodeKind sh:IRI ; + sh:order 3 ; + sh:path ttm:test_suite_specification ], + [ sh:description "A Test persona describes the user or operational context of a given test." ; + sh:in ( "All" "Clinical" "LookUp" "Mechanistic" ) ; + sh:maxCount 1 ; + sh:order 1 ; + sh:path ttm:test_persona ], + [ sh:datatype xsd:string ; sh:description "A human-readable name for a Test Entity" ; sh:maxCount 1 ; sh:order 5 ; @@ -557,15 +569,6 @@ ttm:TestSuite a sh:NodeShape ; sh:minCount 1 ; sh:order 4 ; sh:path schema1:identifier ], - [ sh:description "A Test persona describes the user or operational context of a given test." ; - sh:in ( "All" "Clinical" "LookUp" "Mechanistic" ) ; - sh:maxCount 1 ; - sh:order 1 ; - sh:path ttm:test_persona ], - [ sh:datatype xsd:string ; - sh:description "Scalar parameters for the TestRunner processing a given TestEntity." ; - sh:order 8 ; - sh:path ttm:test_runner_settings ], [ sh:class ttm:TestMetadata ; sh:description "Test metadata describes the external provenance, cross-references and objectives for a given test." ; sh:maxCount 1 ; @@ -573,12 +576,6 @@ ttm:TestSuite a sh:NodeShape ; sh:nodeKind sh:IRI ; sh:order 0 ; sh:path ttm:test_metadata ], - [ sh:class ttm:TestSuiteSpecification ; - sh:description "Declarative specification of a Test Suite of Test Cases whose generation is deferred, (i.e. within a Test Runner) or whose creation is achieved by stream processing of an external data source." ; - sh:maxCount 1 ; - sh:nodeKind sh:IRI ; - sh:order 3 ; - sh:path ttm:test_suite_specification ], [ sh:datatype xsd:string ; sh:description "A human-readable tags for categorical memberships of a TestEntity (preferably a URI or CURIE). Typically used to aggregate instances of TestEntity into formally typed or ad hoc lists." ; sh:order 7 ; @@ -588,6 +585,10 @@ ttm:TestSuite a sh:NodeShape ; sh:nodeKind sh:IRI ; sh:order 2 ; sh:path ttm:test_cases ], + [ sh:datatype xsd:string ; + sh:description "Scalar parameters for the TestRunner processing a given TestEntity." ; + sh:order 8 ; + sh:path ttm:test_runner_settings ], [ sh:datatype xsd:string ; sh:description "A human-readable description for a Test Entity" ; sh:maxCount 1 ; @@ -599,32 +600,26 @@ ttm:AcceptanceTestAsset a sh:NodeShape ; sh:closed true ; sh:description "Model derived from Jenn's test asset design and Shervin's runner JSON here as an example." ; sh:ignoredProperties ( rdf:type ) ; - sh:property [ sh:datatype xsd:string ; - sh:description "A human-readable description for a Test Entity" ; + sh:property [ sh:description "Document URL where original test source particulars are registered (e.g. Github repo)" ; sh:maxCount 1 ; - sh:order 29 ; - sh:path schema1:description ], - [ sh:in ( "High" "Low" "NotApplicable" ) ; + sh:order 25 ; + sh:path ttm:test_reference ], + [ sh:class ttm:Qualifier ; + sh:description "Optional qualifiers which constrain to the test asset defined knowledge statement. Note that this field records such qualifier slots and values as tag=value pairs, where the tag is the Biolink Model qualifier slot named and the value is an acceptable (Biolink Model enum?) value of the said qualifier slot." ; + sh:nodeKind sh:BlankNodeOrIRI ; + sh:order 19 ; + sh:path ttm:qualifiers ], + [ sh:datatype xsd:string ; sh:maxCount 1 ; - sh:order 22 ; - sh:path ttm:semantic_severity ], + sh:order 11 ; + sh:path ttm:input_name ], [ sh:maxCount 1 ; sh:order 17 ; sh:path ttm:output_category ], - [ sh:class ttm:TestMetadata ; - sh:description "Test metadata describes the external provenance, cross-references and objectives for a given test." ; - sh:maxCount 1 ; - sh:minCount 1 ; - sh:nodeKind sh:IRI ; - sh:order 26 ; - sh:path ttm:test_metadata ], - [ sh:datatype xsd:string ; + [ sh:in ( "causes not treats" "TMKP" "category too generic" "contraindications" "chemical roles" "test_issue" ) ; sh:maxCount 1 ; - sh:order 20 ; - sh:path ttm:expected_output ], - [ sh:maxCount 1 ; - sh:order 15 ; - sh:path ttm:output_id ], + sh:order 21 ; + sh:path ttm:test_issue ], [ sh:datatype xsd:string ; sh:maxCount 1 ; sh:order 14 ; @@ -634,111 +629,117 @@ ttm:AcceptanceTestAsset a sh:NodeShape ; sh:maxCount 1 ; sh:order 8 ; sh:path ttm:query_node ], - [ sh:description "The direction of the expected query result triple" ; - sh:in ( "increased" "decreased" ) ; + [ sh:description "The expected result of the query" ; + sh:in ( "include_good" "exclude_bad" ) ; sh:maxCount 1 ; - sh:order 4 ; - sh:path ttm:direction ], - [ sh:maxCount 1 ; - sh:order 12 ; - sh:path ttm:input_category ], + sh:order 6 ; + sh:path ttm:expected_result ], [ sh:datatype xsd:string ; + sh:description "The notes of the query" ; sh:maxCount 1 ; - sh:order 11 ; - sh:path ttm:input_name ], - [ sh:description "Document URL where original test source particulars are registered (e.g. Github repo)" ; - sh:maxCount 1 ; - sh:order 25 ; - sh:path ttm:test_reference ], - [ sh:datatype xsd:string ; - sh:description "One or more 'tags' slot values (inherited from TestEntity) should generally be defined to specify TestAsset membership in a \"Block List\" collection" ; - sh:order 30 ; - sh:path schema1:additionalType ], + sh:order 9 ; + sh:path ttm:notes ], [ sh:datatype xsd:boolean ; sh:maxCount 1 ; - sh:order 23 ; - sh:path ttm:in_v1 ], - [ sh:maxCount 1 ; - sh:order 10 ; - sh:path ttm:input_id ], + sh:order 24 ; + sh:path ttm:well_known ], [ sh:datatype xsd:string ; - sh:description "The full human-readable scientific question a SME would ask, which is encoded into the test asset." ; sh:maxCount 1 ; - sh:order 2 ; - sh:path ttm:scientific_question ], - [ sh:maxCount 1 ; - sh:order 13 ; - sh:path ttm:predicate_id ], + sh:order 20 ; + sh:path ttm:expected_output ], [ sh:datatype xsd:string ; - sh:description "The object of the core triple to be tested" ; + sh:description "A human-readable name for a Test Entity" ; sh:maxCount 1 ; - sh:order 3 ; - sh:path ttm:string_entry ], - [ sh:in ( "causes not treats" "TMKP" "category too generic" "contraindications" "chemical roles" "test_issue" ) ; + sh:order 28 ; + sh:path schema1:name ], + [ sh:datatype xsd:string ; + sh:description "An answer that is returned from the test case, note: this must be combined with the expected_result to form a complete answer. It might make sense to couple these in their own object instead of strictly sticking to the flat schema introduced by the spreadsheet here: https://docs.google.com/spreadsheets/d/1yj7zIchFeVl1OHqL_kE_pqvzNLmGml_FLbHDs-8Yvig/edit#gid=0" ; sh:maxCount 1 ; - sh:order 21 ; - sh:path ttm:test_issue ], + sh:order 5 ; + sh:path ttm:answer_informal_concept ], + [ sh:maxCount 1 ; + sh:order 15 ; + sh:path ttm:output_id ], [ sh:description "A unique identifier for a Test Entity" ; sh:maxCount 1 ; sh:minCount 1 ; sh:order 27 ; sh:path schema1:identifier ], + [ sh:datatype xsd:integer ; + sh:description "The answer must return in these many results" ; + sh:maxCount 1 ; + sh:order 7 ; + sh:path ttm:top_level ], + [ sh:maxCount 1 ; + sh:order 12 ; + sh:path ttm:input_category ], + [ sh:datatype xsd:string ; + sh:description "The full human-readable scientific question a SME would ask, which is encoded into the test asset." ; + sh:maxCount 1 ; + sh:order 2 ; + sh:path ttm:scientific_question ], + [ sh:datatype xsd:string ; + sh:description "One or more 'tags' slot values (inherited from TestEntity) should generally be defined to specify TestAsset membership in a \"Block List\" collection" ; + sh:order 30 ; + sh:path schema1:additionalType ], + [ sh:maxCount 1 ; + sh:order 10 ; + sh:path ttm:input_id ], [ sh:datatype xsd:date ; sh:description "The date by which this test must pass" ; sh:maxCount 1 ; sh:order 0 ; sh:path ttm:must_pass_date ], - [ sh:datatype xsd:boolean ; + [ sh:description "The deployment environment within which this test must pass." ; + sh:in ( "dev" "ci" "test" "prod" ) ; sh:maxCount 1 ; - sh:order 24 ; - sh:path ttm:well_known ], - [ sh:datatype xsd:string ; - sh:description "A human-readable name for a Test Entity" ; + sh:order 1 ; + sh:path ttm:must_pass_environment ], + [ sh:class ttm:TestMetadata ; + sh:description "Test metadata describes the external provenance, cross-references and objectives for a given test." ; sh:maxCount 1 ; - sh:order 28 ; - sh:path schema1:name ], - [ sh:description "The expected result of the query" ; - sh:in ( "include_good" "exclude_bad" ) ; + sh:minCount 1 ; + sh:nodeKind sh:IRI ; + sh:order 26 ; + sh:path ttm:test_metadata ], + [ sh:description "Specific Biolink Model association 'category' which applies to the test asset defined knowledge statement" ; sh:maxCount 1 ; - sh:order 6 ; - sh:path ttm:expected_result ], - [ sh:datatype xsd:string ; + sh:order 18 ; + sh:path ttm:association ], + [ sh:maxCount 1 ; + sh:order 13 ; + sh:path ttm:predicate_id ], + [ sh:in ( "High" "Low" "NotApplicable" ) ; sh:maxCount 1 ; - sh:order 16 ; - sh:path ttm:output_name ], + sh:order 22 ; + sh:path ttm:semantic_severity ], [ sh:datatype xsd:string ; sh:description "Scalar settings for the TestRunner, e.g. \"inferred\"" ; sh:order 31 ; sh:path ttm:test_runner_settings ], - [ sh:datatype xsd:string ; - sh:description "The notes of the query" ; + [ sh:datatype xsd:boolean ; sh:maxCount 1 ; - sh:order 9 ; - sh:path ttm:notes ], - [ sh:class ttm:Qualifier ; - sh:description "Optional qualifiers which constrain to the test asset defined knowledge statement. Note that this field records such qualifier slots and values as tag=value pairs, where the tag is the Biolink Model qualifier slot named and the value is an acceptable (Biolink Model enum?) value of the said qualifier slot." ; - sh:nodeKind sh:BlankNodeOrIRI ; - sh:order 19 ; - sh:path ttm:qualifiers ], + sh:order 23 ; + sh:path ttm:in_v1 ], [ sh:datatype xsd:string ; - sh:description "An answer that is returned from the test case, note: this must be combined with the expected_result to form a complete answer. It might make sense to couple these in their own object instead of strictly sticking to the flat schema introduced by the spreadsheet here: https://docs.google.com/spreadsheets/d/1yj7zIchFeVl1OHqL_kE_pqvzNLmGml_FLbHDs-8Yvig/edit#gid=0" ; + sh:description "The object of the core triple to be tested" ; sh:maxCount 1 ; - sh:order 5 ; - sh:path ttm:answer_informal_concept ], - [ sh:description "The deployment environment within which this test must pass." ; - sh:in ( "dev" "ci" "test" "prod" ) ; + sh:order 3 ; + sh:path ttm:string_entry ], + [ sh:datatype xsd:string ; sh:maxCount 1 ; - sh:order 1 ; - sh:path ttm:must_pass_environment ], - [ sh:datatype xsd:integer ; - sh:description "The answer must return in these many results" ; + sh:order 16 ; + sh:path ttm:output_name ], + [ sh:datatype xsd:string ; + sh:description "A human-readable description for a Test Entity" ; sh:maxCount 1 ; - sh:order 7 ; - sh:path ttm:top_level ], - [ sh:description "Specific Biolink Model association 'category' which applies to the test asset defined knowledge statement" ; + sh:order 29 ; + sh:path schema1:description ], + [ sh:description "The direction of the expected query result triple" ; + sh:in ( "increased" "decreased" ) ; sh:maxCount 1 ; - sh:order 18 ; - sh:path ttm:association ] ; + sh:order 4 ; + sh:path ttm:direction ] ; sh:targetClass ttm:AcceptanceTestAsset . ttm:TestCaseResult a sh:NodeShape ; @@ -746,6 +747,19 @@ ttm:TestCaseResult a sh:NodeShape ; sh:description "The outcome of a TestRunner run of one specific TestCase." ; sh:ignoredProperties ( rdf:type ) ; sh:property [ sh:datatype xsd:string ; + sh:description "Scalar parameters for the TestRunner processing a given TestEntity." ; + sh:order 7 ; + sh:path ttm:test_runner_settings ], + [ sh:description "A unique identifier for a Test Entity" ; + sh:maxCount 1 ; + sh:minCount 1 ; + sh:order 3 ; + sh:path schema1:identifier ], + [ sh:description "CURIE id of a TestSuite registered in the system." ; + sh:maxCount 1 ; + sh:order 0 ; + sh:path ttm:test_suite_id ], + [ sh:datatype xsd:string ; sh:description "A human-readable tags for categorical memberships of a TestEntity (preferably a URI or CURIE). Typically used to aggregate instances of TestEntity into formally typed or ad hoc lists." ; sh:order 6 ; sh:path schema1:additionalType ], @@ -754,59 +768,46 @@ ttm:TestCaseResult a sh:NodeShape ; sh:maxCount 1 ; sh:order 5 ; sh:path schema1:description ], - [ sh:datatype xsd:string ; - sh:description "A human-readable name for a Test Entity" ; - sh:maxCount 1 ; - sh:order 4 ; - sh:path schema1:name ], - [ sh:description "CURIE id of a TestSuite registered in the system." ; - sh:maxCount 1 ; - sh:order 0 ; - sh:path ttm:test_suite_id ], - [ sh:description "Encoded result of a single test run of a given test case" ; - sh:in ( "PASSED" "FAILED" "SKIPPED" ) ; - sh:maxCount 1 ; - sh:order 2 ; - sh:path ttm:test_case_result ], [ sh:class ttm:TestCase ; sh:description "Slot referencing a single TestCase." ; sh:maxCount 1 ; sh:nodeKind sh:IRI ; sh:order 1 ; sh:path ttm:test_case ], - [ sh:description "A unique identifier for a Test Entity" ; + [ sh:description "Encoded result of a single test run of a given test case" ; + sh:in ( "PASSED" "FAILED" "SKIPPED" ) ; sh:maxCount 1 ; - sh:minCount 1 ; - sh:order 3 ; - sh:path schema1:identifier ], + sh:order 2 ; + sh:path ttm:test_case_result ], [ sh:datatype xsd:string ; - sh:description "Scalar parameters for the TestRunner processing a given TestEntity." ; - sh:order 7 ; - sh:path ttm:test_runner_settings ] ; + sh:description "A human-readable name for a Test Entity" ; + sh:maxCount 1 ; + sh:order 4 ; + sh:path schema1:name ] ; sh:targetClass ttm:TestCaseResult . ttm:TestEntity a sh:NodeShape ; sh:closed false ; sh:description "Abstract global 'identification' class shared as a parent with all major model classes within the data model for Translator testing." ; sh:ignoredProperties ( rdf:type ) ; - sh:property [ sh:description "A unique identifier for a Test Entity" ; + sh:property [ sh:datatype xsd:string ; + sh:description "A human-readable tags for categorical memberships of a TestEntity (preferably a URI or CURIE). Typically used to aggregate instances of TestEntity into formally typed or ad hoc lists." ; + sh:order 3 ; + sh:path schema1:additionalType ], + [ sh:datatype xsd:string ; + sh:description "A human-readable name for a Test Entity" ; sh:maxCount 1 ; - sh:order 0 ; - sh:path schema1:identifier ], + sh:order 1 ; + sh:path schema1:name ], [ sh:datatype xsd:string ; sh:description "A human-readable description for a Test Entity" ; sh:maxCount 1 ; sh:order 2 ; sh:path schema1:description ], - [ sh:datatype xsd:string ; - sh:description "A human-readable name for a Test Entity" ; + [ sh:description "A unique identifier for a Test Entity" ; sh:maxCount 1 ; - sh:order 1 ; - sh:path schema1:name ], - [ sh:datatype xsd:string ; - sh:description "A human-readable tags for categorical memberships of a TestEntity (preferably a URI or CURIE). Typically used to aggregate instances of TestEntity into formally typed or ad hoc lists." ; - sh:order 3 ; - sh:path schema1:additionalType ], + sh:order 0 ; + sh:path schema1:identifier ], [ sh:datatype xsd:string ; sh:description "Scalar parameters for the TestRunner processing a given TestEntity." ; sh:order 4 ; @@ -819,51 +820,51 @@ ttm:TestResultPKSet a sh:NodeShape ; sh:ignoredProperties ( rdf:type ) ; sh:property [ sh:datatype xsd:string ; sh:maxCount 1 ; - sh:order 1 ; - sh:path ttm:merged_pk ], - [ sh:datatype xsd:string ; - sh:maxCount 1 ; - sh:order 0 ; - sh:path ttm:parent_pk ], + sh:order 2 ; + sh:path ttm:aragorn ], [ sh:datatype xsd:string ; sh:description "Scalar parameters for the TestRunner processing a given TestEntity." ; sh:order 11 ; sh:path ttm:test_runner_settings ], - [ sh:datatype xsd:string ; - sh:maxCount 1 ; - sh:order 2 ; - sh:path ttm:aragorn ], [ sh:datatype xsd:string ; sh:maxCount 1 ; sh:order 6 ; sh:path ttm:improving ], [ sh:datatype xsd:string ; - sh:description "A human-readable tags for categorical memberships of a TestEntity (preferably a URI or CURIE). Typically used to aggregate instances of TestEntity into formally typed or ad hoc lists." ; - sh:order 10 ; - sh:path schema1:additionalType ], + sh:description "A human-readable description for a Test Entity" ; + sh:maxCount 1 ; + sh:order 9 ; + sh:path schema1:description ], [ sh:datatype xsd:string ; - sh:description "A human-readable name for a Test Entity" ; sh:maxCount 1 ; - sh:order 8 ; - sh:path schema1:name ], + sh:order 4 ; + sh:path ttm:unsecret ], + [ sh:datatype xsd:string ; + sh:maxCount 1 ; + sh:order 1 ; + sh:path ttm:merged_pk ], + [ sh:datatype xsd:string ; + sh:maxCount 1 ; + sh:order 0 ; + sh:path ttm:parent_pk ], [ sh:description "A unique identifier for a Test Entity" ; sh:maxCount 1 ; sh:minCount 1 ; sh:order 7 ; sh:path schema1:identifier ], - [ sh:datatype xsd:string ; - sh:maxCount 1 ; - sh:order 4 ; - sh:path ttm:unsecret ], [ sh:datatype xsd:string ; sh:maxCount 1 ; sh:order 3 ; sh:path ttm:arax ], [ sh:datatype xsd:string ; - sh:description "A human-readable description for a Test Entity" ; + sh:description "A human-readable name for a Test Entity" ; sh:maxCount 1 ; - sh:order 9 ; - sh:path schema1:description ], + sh:order 8 ; + sh:path schema1:name ], + [ sh:datatype xsd:string ; + sh:description "A human-readable tags for categorical memberships of a TestEntity (preferably a URI or CURIE). Typically used to aggregate instances of TestEntity into formally typed or ad hoc lists." ; + sh:order 10 ; + sh:path schema1:additionalType ], [ sh:datatype xsd:string ; sh:maxCount 1 ; sh:order 5 ; @@ -874,96 +875,96 @@ ttm:TestAsset a sh:NodeShape ; sh:closed true ; sh:description "Represents a Test Asset, which is a single specific instance of TestCase-agnostic semantic parameters representing the specification of a Translator test target with inputs and (expected) outputs." ; sh:ignoredProperties ( rdf:type ) ; - sh:property [ sh:class ttm:Qualifier ; - sh:description "Optional qualifiers which constrain to the test asset defined knowledge statement. Note that this field records such qualifier slots and values as tag=value pairs, where the tag is the Biolink Model qualifier slot named and the value is an acceptable (Biolink Model enum?) value of the said qualifier slot." ; - sh:nodeKind sh:BlankNodeOrIRI ; - sh:order 9 ; - sh:path ttm:qualifiers ], - [ sh:datatype xsd:string ; - sh:description "A human-readable description for a Test Entity" ; - sh:maxCount 1 ; - sh:order 19 ; - sh:path schema1:description ], - [ sh:maxCount 1 ; + sh:property [ sh:maxCount 1 ; sh:order 3 ; sh:path ttm:predicate_id ], + [ sh:class ttm:TestMetadata ; + sh:description "Test metadata describes the external provenance, cross-references and objectives for a given test." ; + sh:maxCount 1 ; + sh:minCount 1 ; + sh:nodeKind sh:IRI ; + sh:order 16 ; + sh:path ttm:test_metadata ], + [ sh:maxCount 1 ; + sh:order 0 ; + sh:path ttm:input_id ], + [ sh:in ( "causes not treats" "TMKP" "category too generic" "contraindications" "chemical roles" "test_issue" ) ; + sh:maxCount 1 ; + sh:order 11 ; + sh:path ttm:test_issue ], [ sh:datatype xsd:string ; - sh:description "A human-readable name for a Test Entity" ; sh:maxCount 1 ; - sh:order 18 ; - sh:path schema1:name ], + sh:order 4 ; + sh:path ttm:predicate_name ], [ sh:description "Specific Biolink Model association 'category' which applies to the test asset defined knowledge statement" ; sh:maxCount 1 ; sh:order 8 ; sh:path ttm:association ], + [ sh:datatype xsd:string ; + sh:description "A human-readable name for a Test Entity" ; + sh:maxCount 1 ; + sh:order 18 ; + sh:path schema1:name ], [ sh:maxCount 1 ; sh:order 5 ; sh:path ttm:output_id ], + [ sh:class ttm:Qualifier ; + sh:description "Optional qualifiers which constrain to the test asset defined knowledge statement. Note that this field records such qualifier slots and values as tag=value pairs, where the tag is the Biolink Model qualifier slot named and the value is an acceptable (Biolink Model enum?) value of the said qualifier slot." ; + sh:nodeKind sh:BlankNodeOrIRI ; + sh:order 9 ; + sh:path ttm:qualifiers ], [ sh:datatype xsd:string ; sh:maxCount 1 ; sh:order 10 ; sh:path ttm:expected_output ], - [ sh:description "Document URL where original test source particulars are registered (e.g. Github repo)" ; - sh:maxCount 1 ; - sh:order 15 ; - sh:path ttm:test_reference ], - [ sh:class ttm:TestMetadata ; - sh:description "Test metadata describes the external provenance, cross-references and objectives for a given test." ; - sh:maxCount 1 ; - sh:minCount 1 ; - sh:nodeKind sh:IRI ; - sh:order 16 ; - sh:path ttm:test_metadata ], - [ sh:maxCount 1 ; - sh:order 0 ; - sh:path ttm:input_id ], [ sh:datatype xsd:string ; sh:maxCount 1 ; - sh:order 4 ; - sh:path ttm:predicate_name ], - [ sh:maxCount 1 ; - sh:order 7 ; - sh:path ttm:output_category ], + sh:order 6 ; + sh:path ttm:output_name ], + [ sh:datatype xsd:boolean ; + sh:maxCount 1 ; + sh:order 13 ; + sh:path ttm:in_v1 ], [ sh:description "A unique identifier for a Test Entity" ; sh:maxCount 1 ; sh:minCount 1 ; sh:order 17 ; sh:path schema1:identifier ], + [ sh:datatype xsd:boolean ; + sh:maxCount 1 ; + sh:order 14 ; + sh:path ttm:well_known ], + [ sh:in ( "High" "Low" "NotApplicable" ) ; + sh:maxCount 1 ; + sh:order 12 ; + sh:path ttm:semantic_severity ], + [ sh:description "Document URL where original test source particulars are registered (e.g. Github repo)" ; + sh:maxCount 1 ; + sh:order 15 ; + sh:path ttm:test_reference ], [ sh:datatype xsd:string ; - sh:description "Scalar settings for the TestRunner, e.g. \"inferred\"" ; - sh:order 21 ; - sh:path ttm:test_runner_settings ], + sh:description "A human-readable description for a Test Entity" ; + sh:maxCount 1 ; + sh:order 19 ; + sh:path schema1:description ], [ sh:datatype xsd:string ; sh:description "One or more 'tags' slot values (inherited from TestEntity) should generally be defined to specify TestAsset membership in a \"Block List\" collection" ; sh:order 20 ; sh:path schema1:additionalType ], + [ sh:datatype xsd:string ; + sh:description "Scalar settings for the TestRunner, e.g. \"inferred\"" ; + sh:order 21 ; + sh:path ttm:test_runner_settings ], [ sh:datatype xsd:string ; sh:maxCount 1 ; sh:order 1 ; sh:path ttm:input_name ], + [ sh:maxCount 1 ; + sh:order 7 ; + sh:path ttm:output_category ], [ sh:maxCount 1 ; sh:order 2 ; - sh:path ttm:input_category ], - [ sh:datatype xsd:boolean ; - sh:maxCount 1 ; - sh:order 13 ; - sh:path ttm:in_v1 ], - [ sh:datatype xsd:string ; - sh:maxCount 1 ; - sh:order 6 ; - sh:path ttm:output_name ], - [ sh:in ( "causes not treats" "TMKP" "category too generic" "contraindications" "chemical roles" "test_issue" ) ; - sh:maxCount 1 ; - sh:order 11 ; - sh:path ttm:test_issue ], - [ sh:in ( "High" "Low" "NotApplicable" ) ; - sh:maxCount 1 ; - sh:order 12 ; - sh:path ttm:semantic_severity ], - [ sh:datatype xsd:boolean ; - sh:maxCount 1 ; - sh:order 14 ; - sh:path ttm:well_known ] ; + sh:path ttm:input_category ] ; sh:targetClass ttm:TestAsset . ttm:TestEntityParameter a sh:NodeShape ; @@ -971,15 +972,15 @@ ttm:TestEntityParameter a sh:NodeShape ; sh:description "A single 'tag = value' pair (where 'value' is a simple string)." ; sh:ignoredProperties ( rdf:type ) ; sh:property [ sh:datatype xsd:string ; - sh:description "Name of a TestParameter." ; - sh:maxCount 1 ; - sh:order 0 ; - sh:path ttm:parameter ], - [ sh:datatype xsd:string ; sh:description "(String) value of a TestParameter." ; sh:maxCount 1 ; sh:order 1 ; - sh:path ttm:value ] ; + sh:path ttm:value ], + [ sh:datatype xsd:string ; + sh:description "Name of a TestParameter." ; + sh:maxCount 1 ; + sh:order 0 ; + sh:path ttm:parameter ] ; sh:targetClass ttm:TestEntityParameter . ttm:Precondition a sh:NodeShape ; @@ -987,6 +988,16 @@ ttm:Precondition a sh:NodeShape ; sh:description "Represents a precondition for a TestCase" ; sh:ignoredProperties ( rdf:type ) ; sh:property [ sh:datatype xsd:string ; + sh:description "A human-readable description for a Test Entity" ; + sh:maxCount 1 ; + sh:order 2 ; + sh:path schema1:description ], + [ sh:datatype xsd:string ; + sh:description "A human-readable name for a Test Entity" ; + sh:maxCount 1 ; + sh:order 1 ; + sh:path schema1:name ], + [ sh:datatype xsd:string ; sh:description "A human-readable tags for categorical memberships of a TestEntity (preferably a URI or CURIE). Typically used to aggregate instances of TestEntity into formally typed or ad hoc lists." ; sh:order 3 ; sh:path schema1:additionalType ], @@ -994,117 +1005,105 @@ ttm:Precondition a sh:NodeShape ; sh:description "Scalar parameters for the TestRunner processing a given TestEntity." ; sh:order 4 ; sh:path ttm:test_runner_settings ], - [ sh:datatype xsd:string ; - sh:description "A human-readable description for a Test Entity" ; - sh:maxCount 1 ; - sh:order 2 ; - sh:path schema1:description ], [ sh:description "A unique identifier for a Test Entity" ; sh:maxCount 1 ; sh:minCount 1 ; sh:order 0 ; - sh:path schema1:identifier ], - [ sh:datatype xsd:string ; - sh:description "A human-readable name for a Test Entity" ; - sh:maxCount 1 ; - sh:order 1 ; - sh:path schema1:name ] ; + sh:path schema1:identifier ] ; sh:targetClass ttm:Precondition . ttm:TestSuiteSpecification a sh:NodeShape ; sh:closed true ; sh:description "Parameters for a Test Case instances either dynamically generated from some external source of Test Assets." ; sh:ignoredProperties ( rdf:type ) ; - sh:property [ sh:description "A unique identifier for a Test Entity" ; + sh:property [ sh:description "An web accessible file resource link to test entity data (e.g. a web accessible text file of Test Asset entries)" ; + sh:maxCount 1 ; + sh:order 0 ; + sh:path ttm:test_data_file_locator ], + [ sh:description "A unique identifier for a Test Entity" ; sh:maxCount 1 ; sh:minCount 1 ; sh:order 2 ; sh:path schema1:identifier ], - [ sh:datatype xsd:string ; - sh:description "Scalar parameters for the TestRunner processing a given TestEntity." ; - sh:order 6 ; - sh:path ttm:test_runner_settings ], [ sh:description "File format of test entity data (e.g. TSV, YAML or JSON)" ; sh:in ( "TSV" "YAML" "JSON" ) ; sh:maxCount 1 ; sh:order 1 ; sh:path ttm:test_data_file_format ], - [ sh:description "An web accessible file resource link to test entity data (e.g. a web accessible text file of Test Asset entries)" ; + [ sh:datatype xsd:string ; + sh:description "A human-readable name for a Test Entity" ; sh:maxCount 1 ; - sh:order 0 ; - sh:path ttm:test_data_file_locator ], + sh:order 3 ; + sh:path schema1:name ], [ sh:datatype xsd:string ; - sh:description "A human-readable tags for categorical memberships of a TestEntity (preferably a URI or CURIE). Typically used to aggregate instances of TestEntity into formally typed or ad hoc lists." ; - sh:order 5 ; - sh:path schema1:additionalType ], + sh:description "Scalar parameters for the TestRunner processing a given TestEntity." ; + sh:order 6 ; + sh:path ttm:test_runner_settings ], [ sh:datatype xsd:string ; sh:description "A human-readable description for a Test Entity" ; sh:maxCount 1 ; sh:order 4 ; sh:path schema1:description ], [ sh:datatype xsd:string ; - sh:description "A human-readable name for a Test Entity" ; - sh:maxCount 1 ; - sh:order 3 ; - sh:path schema1:name ] ; + sh:description "A human-readable tags for categorical memberships of a TestEntity (preferably a URI or CURIE). Typically used to aggregate instances of TestEntity into formally typed or ad hoc lists." ; + sh:order 5 ; + sh:path schema1:additionalType ] ; sh:targetClass ttm:TestSuiteSpecification . ttm:TestCase a sh:NodeShape ; sh:closed true ; sh:description "Represents a single enumerated instance of Test Case, derived from a given collection of one or more TestAsset instances (the value of the 'test_assets' slot) which define the 'inputs' and 'outputs' of the TestCase, used to probe a particular test condition." ; sh:ignoredProperties ( rdf:type ) ; - sh:property [ sh:description "The component that this test case is intended to run against. Most often this is the ARS for acceptance tests, but for the Benchmarks repo integration, this can also be individual components of the system like Aragorn, or ARAX." ; - sh:in [ rdf:rest () ] ; - sh:order 12 ; - sh:path ttm:components ], - [ sh:description "Type of TestCase query." ; - sh:in ( "treats" ) ; + sh:property [ sh:datatype xsd:string ; sh:maxCount 1 ; - sh:order 0 ; - sh:path ttm:query_type ], + sh:order 7 ; + sh:path ttm:test_case_predicate_id ], [ sh:description "A template for a query, which can be used to generate a query for a test case. note: the current enumerated values for this slot come from the Benchmarks repo config/benchmarks.json \"templates\" collection and refer to the \"name\" field of each template. Templates themselves are currently stored in the config/[source_name]/templates directory." ; sh:in ( "ameliorates" "treats" "three_hop" "drug_treats_rare_disease" "drug-to-gene" ) ; sh:maxCount 1 ; sh:order 3 ; sh:path ttm:trapi_template ], - [ sh:maxCount 1 ; - sh:order 10 ; - sh:path ttm:input_category ], - [ sh:datatype xsd:string ; - sh:description "Scalar parameters for the TestRunner processing a given TestEntity." ; - sh:order 18 ; - sh:path ttm:test_runner_settings ], - [ sh:datatype xsd:string ; - sh:maxCount 1 ; - sh:order 7 ; - sh:path ttm:test_case_predicate_id ], [ sh:description "Provenance of a specific set of test assets, cases and/or suites. Or, the person who cares about this, know about this. We would like this to be an ORCID eventually, but currently it is just a string." ; sh:in ( "SME" "SMURF" "GitHubUserFeedback" "TACT" "BenchMark" "TranslatorTeam" "TestDataLocation" ) ; sh:maxCount 1 ; sh:order 5 ; sh:path ttm:test_case_source ], - [ sh:description "Testing objective behind specified set of test particulars (e.g. acceptance pass/fail; benchmark; quantitative; standards compliance; graph navigation integrity)" ; - sh:in ( "AcceptanceTest" "BenchmarkTest" "QuantitativeTest" "StandardsValidationTest" "OneHopTest" ) ; - sh:maxCount 1 ; - sh:order 4 ; - sh:path ttm:test_case_objective ], [ sh:class ttm:Precondition ; sh:nodeKind sh:IRI ; sh:order 2 ; sh:path ttm:preconditions ], - [ sh:maxCount 1 ; - sh:order 8 ; - sh:path ttm:test_case_input_id ], + [ sh:class ttm:Qualifier ; + sh:description "Optional qualifiers which constrain to the test asset defined knowledge statement. Note that this field records such qualifier slots and values as tag=value pairs, where the tag is the Biolink Model qualifier slot named and the value is an acceptable (Biolink Model enum?) value of the said qualifier slot." ; + sh:nodeKind sh:BlankNodeOrIRI ; + sh:order 9 ; + sh:path ttm:qualifiers ], [ sh:description "Deployment environment within which the associated TestSuite is run." ; sh:in ( "dev" "ci" "test" "prod" ) ; sh:maxCount 1 ; sh:order 13 ; sh:path ttm:test_env ], + [ sh:maxCount 1 ; + sh:order 10 ; + sh:path ttm:input_category ], + [ sh:maxCount 1 ; + sh:order 11 ; + sh:path ttm:output_category ], + [ sh:maxCount 1 ; + sh:order 8 ; + sh:path ttm:test_case_input_id ], + [ sh:datatype xsd:string ; + sh:description "Scalar parameters for the TestRunner processing a given TestEntity." ; + sh:order 18 ; + sh:path ttm:test_runner_settings ], [ sh:datatype xsd:string ; - sh:description "A human-readable name for a Test Entity" ; sh:maxCount 1 ; - sh:order 15 ; - sh:path schema1:name ], + sh:order 6 ; + sh:path ttm:test_case_predicate_name ], + [ sh:description "A unique identifier for a Test Entity" ; + sh:maxCount 1 ; + sh:minCount 1 ; + sh:order 14 ; + sh:path schema1:identifier ], [ sh:datatype xsd:string ; sh:description "One or more 'tags' slot values (slot inherited from TestEntity) should generally be defined as filters to specify TestAsset membership in a \"Block List\" collection." ; sh:order 17 ; @@ -1115,23 +1114,25 @@ ttm:TestCase a sh:NodeShape ; sh:nodeKind sh:IRI ; sh:order 1 ; sh:path ttm:test_assets ], - [ sh:maxCount 1 ; - sh:order 11 ; - sh:path ttm:output_category ], - [ sh:description "A unique identifier for a Test Entity" ; - sh:maxCount 1 ; - sh:minCount 1 ; - sh:order 14 ; - sh:path schema1:identifier ], - [ sh:class ttm:Qualifier ; - sh:description "Optional qualifiers which constrain to the test asset defined knowledge statement. Note that this field records such qualifier slots and values as tag=value pairs, where the tag is the Biolink Model qualifier slot named and the value is an acceptable (Biolink Model enum?) value of the said qualifier slot." ; - sh:nodeKind sh:BlankNodeOrIRI ; - sh:order 9 ; - sh:path ttm:qualifiers ], [ sh:datatype xsd:string ; + sh:description "A human-readable name for a Test Entity" ; sh:maxCount 1 ; - sh:order 6 ; - sh:path ttm:test_case_predicate_name ], + sh:order 15 ; + sh:path schema1:name ], + [ sh:description "Testing objective behind specified set of test particulars (e.g. acceptance pass/fail; benchmark; quantitative; standards compliance; graph navigation integrity)" ; + sh:in ( "AcceptanceTest" "BenchmarkTest" "QuantitativeTest" "StandardsValidationTest" "OneHopTest" ) ; + sh:maxCount 1 ; + sh:order 4 ; + sh:path ttm:test_case_objective ], + [ sh:description "Type of TestCase query." ; + sh:in ( "treats" ) ; + sh:maxCount 1 ; + sh:order 0 ; + sh:path ttm:query_type ], + [ sh:description "The component that this test case is intended to run against. Most often this is the ARS for acceptance tests, but for the Benchmarks repo integration, this can also be individual components of the system like Aragorn, or ARAX." ; + sh:in ( infores:ncats-ars infores:arax infores:explanatory-agent infores:improving-agent infores:aragorn infores:biothings-explorer infores:unsecret-agent infores:rtx-kg2 infores:icees-kg infores:cam-kp infores:spoke infores:molepro infores:textmining-kp infores:cohd infores:openpredict infores:knowledge-collaboratory infores:connections-hypothesis ) ; + sh:order 12 ; + sh:path ttm:components ], [ sh:datatype xsd:string ; sh:description "A human-readable description for a Test Entity" ; sh:maxCount 1 ; @@ -1143,62 +1144,62 @@ ttm:Qualifier a sh:NodeShape ; sh:closed true ; sh:ignoredProperties ( rdf:type ) ; sh:property [ sh:datatype xsd:string ; - sh:description "The 'value' of should be a suitable value generally drawn from an applicable Biolink Model (\"Enum\") value set of the specified Qualifier." ; - sh:maxCount 1 ; - sh:order 1 ; - sh:path ttm:value ], - [ sh:datatype xsd:string ; sh:description "The 'parameter' of a Qualifier should be a `qualifier` slot name from the Biolink Model ('biolink' namespace) 'biolink:qualifier' hierarchy." ; sh:maxCount 1 ; sh:order 0 ; - sh:path ttm:parameter ] ; + sh:path ttm:parameter ], + [ sh:datatype xsd:string ; + sh:description "The 'value' of should be a suitable value generally drawn from an applicable Biolink Model (\"Enum\") value set of the specified Qualifier." ; + sh:maxCount 1 ; + sh:order 1 ; + sh:path ttm:value ] ; sh:targetClass ttm:Qualifier . ttm:TestMetadata a sh:NodeShape ; sh:closed true ; sh:description "Represents metadata related to (external SME, SMURF, Translator feedback, large scale batch, etc.) like the provenance of test assets, cases and/or suites." ; sh:ignoredProperties ( rdf:type ) ; - sh:property [ sh:description "Provenance of a specific set of test assets, cases and/or suites. Or, the person who cares about this, know about this. We would like this to be an ORCID eventually, but currently it is just a string." ; - sh:in ( "SME" "SMURF" "GitHubUserFeedback" "TACT" "BenchMark" "TranslatorTeam" "TestDataLocation" ) ; - sh:maxCount 1 ; - sh:order 0 ; - sh:path ttm:test_source ], - [ sh:description "Document URL where original test source particulars are registered (e.g. Github repo)" ; + sh:property [ sh:description "Document URL where original test source particulars are registered (e.g. Github repo)" ; sh:maxCount 1 ; sh:order 1 ; sh:path ttm:test_reference ], - [ sh:description "A unique identifier for a Test Entity" ; - sh:maxCount 1 ; - sh:minCount 1 ; - sh:order 4 ; - sh:path schema1:identifier ], - [ sh:datatype xsd:string ; - sh:description "A human-readable tags for categorical memberships of a TestEntity (preferably a URI or CURIE). Typically used to aggregate instances of TestEntity into formally typed or ad hoc lists." ; - sh:order 7 ; - sh:path schema1:additionalType ], [ sh:description "Testing objective behind specified set of test particulars (e.g. acceptance pass/fail; benchmark; quantitative; standards compliance; graph navigation integrity)" ; sh:in ( "AcceptanceTest" "BenchmarkTest" "QuantitativeTest" "StandardsValidationTest" "OneHopTest" ) ; sh:maxCount 1 ; sh:order 2 ; sh:path ttm:test_objective ], - [ sh:class ttm:TestEntityParameter ; - sh:description "Metadata annotation." ; - sh:nodeKind sh:BlankNodeOrIRI ; - sh:order 3 ; - sh:path ttm:test_annotations ], [ sh:datatype xsd:string ; sh:description "A human-readable name for a Test Entity" ; sh:maxCount 1 ; sh:order 5 ; sh:path schema1:name ], + [ sh:description "A unique identifier for a Test Entity" ; + sh:maxCount 1 ; + sh:minCount 1 ; + sh:order 4 ; + sh:path schema1:identifier ], + [ sh:description "Provenance of a specific set of test assets, cases and/or suites. Or, the person who cares about this, know about this. We would like this to be an ORCID eventually, but currently it is just a string." ; + sh:in ( "SME" "SMURF" "GitHubUserFeedback" "TACT" "BenchMark" "TranslatorTeam" "TestDataLocation" ) ; + sh:maxCount 1 ; + sh:order 0 ; + sh:path ttm:test_source ], + [ sh:datatype xsd:string ; + sh:description "Scalar parameters for the TestRunner processing a given TestEntity." ; + sh:order 8 ; + sh:path ttm:test_runner_settings ], + [ sh:datatype xsd:string ; + sh:description "A human-readable tags for categorical memberships of a TestEntity (preferably a URI or CURIE). Typically used to aggregate instances of TestEntity into formally typed or ad hoc lists." ; + sh:order 7 ; + sh:path schema1:additionalType ], [ sh:datatype xsd:string ; sh:description "A human-readable description for a Test Entity" ; sh:maxCount 1 ; sh:order 6 ; sh:path schema1:description ], - [ sh:datatype xsd:string ; - sh:description "Scalar parameters for the TestRunner processing a given TestEntity." ; - sh:order 8 ; - sh:path ttm:test_runner_settings ] ; + [ sh:class ttm:TestEntityParameter ; + sh:description "Metadata annotation." ; + sh:nodeKind sh:BlankNodeOrIRI ; + sh:order 3 ; + sh:path ttm:test_annotations ] ; sh:targetClass ttm:TestMetadata . diff --git a/project/shex/translator_testing_model.shex b/project/shex/translator_testing_model.shex index 4c5ec7b..89e1f06 100644 --- a/project/shex/translator_testing_model.shex +++ b/project/shex/translator_testing_model.shex @@ -2,6 +2,7 @@ BASE PREFIX rdf: PREFIX xsd: PREFIX linkml: +PREFIX infores: PREFIX schema1: @@ -206,7 +207,10 @@ linkml:Sparqlpath xsd:string @ * ; @ ? ; @ ? ; - . * ; + [ infores:ncats-ars infores:arax infores:explanatory-agent infores:improving-agent infores:aragorn + infores:biothings-explorer infores:unsecret-agent infores:rtx-kg2 infores:icees-kg infores:cam-kp infores:spoke + infores:molepro infores:textmining-kp infores:cohd infores:openpredict infores:knowledge-collaboratory + infores:connections-hypothesis ] * ; [ @@ -314,7 +318,10 @@ linkml:Sparqlpath xsd:string CLOSED { ( $ ( & ; rdf:type [ ] ? ; - . * ; + [ infores:ncats-ars infores:arax infores:explanatory-agent infores:improving-agent infores:aragorn + infores:biothings-explorer infores:unsecret-agent infores:rtx-kg2 infores:icees-kg infores:cam-kp infores:spoke + infores:molepro infores:textmining-kp infores:cohd infores:openpredict infores:knowledge-collaboratory + infores:connections-hypothesis ] * ; [ diff --git a/project/sqlschema/translator_testing_model.sql b/project/sqlschema/translator_testing_model.sql index 9344fdc..a03dc7b 100644 --- a/project/sqlschema/translator_testing_model.sql +++ b/project/sqlschema/translator_testing_model.sql @@ -590,7 +590,7 @@ CREATE TABLE "AcceptanceTestCase_preconditions" ( ); CREATE TABLE "AcceptanceTestCase_components" ( "AcceptanceTestCase_id" TEXT, - components VARCHAR, + components VARCHAR(13), PRIMARY KEY ("AcceptanceTestCase_id", components), FOREIGN KEY("AcceptanceTestCase_id") REFERENCES "AcceptanceTestCase" (id) ); @@ -615,7 +615,7 @@ CREATE TABLE "QuantitativeTestCase_preconditions" ( ); CREATE TABLE "QuantitativeTestCase_components" ( "QuantitativeTestCase_id" TEXT, - components VARCHAR, + components VARCHAR(13), PRIMARY KEY ("QuantitativeTestCase_id", components), FOREIGN KEY("QuantitativeTestCase_id") REFERENCES "QuantitativeTestCase" (id) ); @@ -645,7 +645,7 @@ CREATE TABLE "TestSuiteSpecification_test_runner_settings" ( ); CREATE TABLE "TestRunSession_components" ( "TestRunSession_id" TEXT, - components VARCHAR, + components VARCHAR(13), PRIMARY KEY ("TestRunSession_id", components), FOREIGN KEY("TestRunSession_id") REFERENCES "TestRunSession" (id) ); @@ -848,7 +848,7 @@ CREATE TABLE "TestCase_preconditions" ( ); CREATE TABLE "TestCase_components" ( "TestCase_id" TEXT, - components VARCHAR, + components VARCHAR(13), PRIMARY KEY ("TestCase_id", components), FOREIGN KEY("TestCase_id") REFERENCES "TestCase" (id) ); diff --git a/src/data/examples/Bad-TestAsset-002.yaml b/src/data/examples/Bad-TestAsset-002.yaml deleted file mode 100644 index bb16005..0000000 --- a/src/data/examples/Bad-TestAsset-002.yaml +++ /dev/null @@ -1,16 +0,0 @@ -# Example TestAsset data object ---- -# TODO: the TestAsset example data needs further elaboration - -# Bad Query 2 - Missing required input_id? - -id: example:TestAsset001 -name: TestAsset001 -description: Fingolimod treats multiple sclerosis -#input_id: PUBCHEM.COMPOUND:107970 -predicate_name: treats -output_id: MONDO:0005301 -expected_output: Acceptable -test_runner_settings: - - "inferred" - - "test" diff --git a/src/data/examples/Bad-TestAsset-003.yaml b/src/data/examples/Bad-TestAsset-003.yaml deleted file mode 100644 index 5a8f6dc..0000000 --- a/src/data/examples/Bad-TestAsset-003.yaml +++ /dev/null @@ -1,16 +0,0 @@ -# Example TestAsset data object ---- -# TODO: the TestAsset example data needs further elaboration - -# Bad Query 3 - Missing required predicate? - -id: example:TestAsset001 -name: TestAsset001 -description: Fingolimod treats multiple sclerosis -input_id: PUBCHEM.COMPOUND:107970 -#predicate_name: treats -output_id: MONDO:0005301 -expected_output: Acceptable -test_runner_settings: - - "inferred" - - "test" diff --git a/src/data/examples/Bad-TestAsset-004.yaml b/src/data/examples/Bad-TestAsset-004.yaml deleted file mode 100644 index 7c1a41a..0000000 --- a/src/data/examples/Bad-TestAsset-004.yaml +++ /dev/null @@ -1,16 +0,0 @@ -# Example TestAsset data object ---- -# TODO: the TestAsset example data needs further elaboration - -# Bad Query 4 - Missing required output_id? - -id: example:TestAsset001 -name: TestAsset001 -description: Fingolimod treats multiple sclerosis -input_id: PUBCHEM.COMPOUND:107970 -predicate_name: treats -#output_id: MONDO:0005301 -expected_output: Acceptable -test_runner_settings: - - "inferred" - - "test" diff --git a/src/data/examples/Bad-TestAsset-005.yaml b/src/data/examples/Bad-TestAsset-005.yaml deleted file mode 100644 index a0d29b7..0000000 --- a/src/data/examples/Bad-TestAsset-005.yaml +++ /dev/null @@ -1,16 +0,0 @@ -# Example TestAsset data object ---- -# TODO: the TestAsset example data needs further elaboration - -# Bad Query 5 - Missing required output_id? - -id: example:TestAsset001 -name: TestAsset001 -description: Fingolimod treats multiple sclerosis -input_id: PUBCHEM.COMPOUND:107970 -predicate_name: treats -#output_id: MONDO:0005301 -expected_output: Acceptable -test_runner_settings: - - "inferred" - - "test" diff --git a/src/data/examples/Bad-TestAsset-006.yaml b/src/data/examples/Bad-TestAsset-006.yaml deleted file mode 100644 index 64aa600..0000000 --- a/src/data/examples/Bad-TestAsset-006.yaml +++ /dev/null @@ -1,16 +0,0 @@ -# Example TestAsset data object ---- -# TODO: the TestAsset example data needs further elaboration - -# Bad Query 6 - Missing required runner_settings? - -id: example:TestAsset001 -name: TestAsset001 -description: Fingolimod treats multiple sclerosis -input_id: PUBCHEM.COMPOUND:107970 -predicate_name: treats -output_id: MONDO:0005301 -expected_output: Acceptable -#test_runner_settings: -# - "inferred" -# - "test" diff --git a/src/translator_testing_model/datamodel/pydanticmodel.py b/src/translator_testing_model/datamodel/pydanticmodel.py index 032f917..b1dae0e 100644 --- a/src/translator_testing_model/datamodel/pydanticmodel.py +++ b/src/translator_testing_model/datamodel/pydanticmodel.py @@ -167,11 +167,44 @@ class TrapiTemplateEnum(str, Enum): drug_to_gene = "drug-to-gene" -class ComponentEnum(str): +class ComponentEnum(str, Enum): """ Translator components are identified by their InfoRes identifiers. """ - pass + # Automatic Relay Service component of Translator + ars = "ars" + # ARAX Translator Reasoner + arax = "arax" + # A Translator Reasoner API for the Explanatory Agent + explanatory = "explanatory" + # imProving Agent OpenAPI TRAPI Specification + improving = "improving" + # Performs a query operation which compiles data from numerous ranking agent services. + aragorn = "aragorn" + # BioThings Explorer + bte = "bte" + # Unsecret Agent OpenAPI for NCATS Biomedical Translator Reasoners + unsecret = "unsecret" + # TRAPI endpoint for the NCATS Biomedical Translator KP called RTX KG2 + rtxkg2 = "rtxkg2" + # ICEES (Integrated Clinical and Environmental Exposures Service) + icees = "icees" + # Causal Activity Model KP + cam = "cam" + # SPOKE KP - an NIH NCATS Knowledge Provider to expose UCSFs SPOKE + spoke = "spoke" + # Molecular Data Provider for NCATS Biomedical Translator Reasoners + molepro = "molepro" + # Text Mining KP + textmining = "textmining" + # Columbia Open Health Data (COHD) + cohd = "cohd" + # OpenPredict API + openpredict = "openpredict" + # Translator Knowledge Collaboratory API + collaboratory = "collaboratory" + # Connections Hypothesis Provider API + connections = "connections" class TestPersonaEnum(str, Enum): diff --git a/src/translator_testing_model/datamodel/translator_testing_model.py b/src/translator_testing_model/datamodel/translator_testing_model.py index c04dc5b..0fcd9b3 100644 --- a/src/translator_testing_model/datamodel/translator_testing_model.py +++ b/src/translator_testing_model/datamodel/translator_testing_model.py @@ -1,5 +1,5 @@ # Auto generated from translator_testing_model.yaml by pythongen.py version: 0.0.1 -# Generation date: 2024-04-19T10:26:22 +# Generation date: 2024-04-25T16:01:00 # Schema: Translator-Testing-Model # # id: https://w3id.org/TranslatorSRI/TranslatorTestingModel @@ -35,6 +35,7 @@ # Namespaces BIOLINK = CurieNamespace('biolink', 'https://w3id.org/biolink/') EXAMPLE = CurieNamespace('example', 'https://example.org/') +INFORES = CurieNamespace('infores', 'https://w3id.org/biolink/vocab/') LINKML = CurieNamespace('linkml', 'https://w3id.org/linkml/') SCHEMA = CurieNamespace('schema', 'http://schema.org/') TTM = CurieNamespace('ttm', 'https://w3id.org/TranslatorSRI/TranslatorTestingModel/') @@ -571,6 +572,10 @@ def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]): if self.output_category is not None and not isinstance(self.output_category, ConceptCategory): self.output_category = ConceptCategory(self.output_category) + if not isinstance(self.components, list): + self.components = [self.components] if self.components is not None else [] + self.components = [v if isinstance(v, ComponentEnum) else ComponentEnum(v) for v in self.components] + if self.test_env is not None and not isinstance(self.test_env, TestEnvEnum): self.test_env = TestEnvEnum(self.test_env) @@ -850,6 +855,10 @@ def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]): if not isinstance(self.id, TestRunSessionId): self.id = TestRunSessionId(self.id) + if not isinstance(self.components, list): + self.components = [self.components] if self.components is not None else [] + self.components = [v if isinstance(v, ComponentEnum) else ComponentEnum(v) for v in self.components] + if self.test_env is not None and not isinstance(self.test_env, TestEnvEnum): self.test_env = TestEnvEnum(self.test_env) @@ -1157,6 +1166,75 @@ class ComponentEnum(EnumDefinitionImpl): """ Translator components are identified by their InfoRes identifiers. """ + ars = PermissibleValue( + text="ars", + description="Automatic Relay Service component of Translator", + meaning=INFORES["ncats-ars"]) + arax = PermissibleValue( + text="arax", + description="ARAX Translator Reasoner", + meaning=INFORES["arax"]) + explanatory = PermissibleValue( + text="explanatory", + description="A Translator Reasoner API for the Explanatory Agent", + meaning=INFORES["explanatory-agent"]) + improving = PermissibleValue( + text="improving", + description="imProving Agent OpenAPI TRAPI Specification", + meaning=INFORES["improving-agent"]) + aragorn = PermissibleValue( + text="aragorn", + description="Performs a query operation which compiles data from numerous ranking agent services.", + meaning=INFORES["aragorn"]) + bte = PermissibleValue( + text="bte", + description="BioThings Explorer", + meaning=INFORES["biothings-explorer"]) + unsecret = PermissibleValue( + text="unsecret", + description="Unsecret Agent OpenAPI for NCATS Biomedical Translator Reasoners", + meaning=INFORES["unsecret-agent"]) + rtxkg2 = PermissibleValue( + text="rtxkg2", + description="TRAPI endpoint for the NCATS Biomedical Translator KP called RTX KG2", + meaning=INFORES["rtx-kg2"]) + icees = PermissibleValue( + text="icees", + description="ICEES (Integrated Clinical and Environmental Exposures Service)", + meaning=INFORES["icees-kg"]) + cam = PermissibleValue( + text="cam", + description="Causal Activity Model KP", + meaning=INFORES["cam-kp"]) + spoke = PermissibleValue( + text="spoke", + description="SPOKE KP - an NIH NCATS Knowledge Provider to expose UCSFs SPOKE", + meaning=INFORES["spoke"]) + molepro = PermissibleValue( + text="molepro", + description="Molecular Data Provider for NCATS Biomedical Translator Reasoners", + meaning=INFORES["molepro"]) + textmining = PermissibleValue( + text="textmining", + description="Text Mining KP", + meaning=INFORES["textmining-kp"]) + cohd = PermissibleValue( + text="cohd", + description="Columbia Open Health Data (COHD)", + meaning=INFORES["cohd"]) + openpredict = PermissibleValue( + text="openpredict", + description="OpenPredict API", + meaning=INFORES["openpredict"]) + collaboratory = PermissibleValue( + text="collaboratory", + description="Translator Knowledge Collaboratory API", + meaning=INFORES["knowledge-collaboratory"]) + connections = PermissibleValue( + text="connections", + description="Connections Hypothesis Provider API", + meaning=INFORES["connections-hypothesis"]) + _defn = EnumDefinition( name="ComponentEnum", description="Translator components are identified by their InfoRes identifiers.", diff --git a/src/translator_testing_model/schema/translator_testing_model.yaml b/src/translator_testing_model/schema/translator_testing_model.yaml index 4c75403..e9a10eb 100644 --- a/src/translator_testing_model/schema/translator_testing_model.yaml +++ b/src/translator_testing_model/schema/translator_testing_model.yaml @@ -14,6 +14,7 @@ prefixes: ttm: https://w3id.org/TranslatorSRI/TranslatorTestingModel/ linkml: https://w3id.org/linkml/ biolink: https://w3id.org/biolink/ + infores: https://w3id.org/biolink/vocab/ schema: http://schema.org/ example: https://example.org/ @@ -949,11 +950,83 @@ enums: ComponentEnum: description: >- Translator components are identified by their InfoRes identifiers. - reachable_from: - source_ontology: biolink - source_nodes: - - biolink:infores - include_self: false + # reachable_from: + # source_ontology: biolink + # source_nodes: + # - biolink:infores + # include_self: false + permissible_values: + ars: + description: >- + Automatic Relay Service component of Translator + meaning: "infores:ncats-ars" + # ARA's + arax: + description: >- + ARAX Translator Reasoner + meaning: "infores:arax" + explanatory: + description: >- + A Translator Reasoner API for the Explanatory Agent + meaning: "infores:explanatory-agent" + improving: + description: >- + imProving Agent OpenAPI TRAPI Specification + meaning: "infores:improving-agent" + aragorn: + description: >- + Performs a query operation which compiles data from numerous ranking agent services. + meaning: "infores:aragorn" + bte: + description: >- + BioThings Explorer + meaning: "infores:biothings-explorer" + unsecret: + description: >- + Unsecret Agent OpenAPI for NCATS Biomedical Translator Reasoners + meaning: "infores:unsecret-agent" + # KP's + rtxkg2: + description: >- + TRAPI endpoint for the NCATS Biomedical Translator KP called RTX KG2 + meaning: "infores:rtx-kg2" + icees: + description: >- + ICEES (Integrated Clinical and Environmental Exposures Service) + meaning: "infores:icees-kg" + cam: + description: >- + Causal Activity Model KP + meaning: "infores:cam-kp" + spoke: + description: >- + SPOKE KP - an NIH NCATS Knowledge Provider to expose UCSFs SPOKE + meaning: "infores:spoke" + molepro: + description: >- + Molecular Data Provider for NCATS Biomedical Translator Reasoners + meaning: "infores:molepro" + textmining: + description: >- + Text Mining KP + meaning: "infores:textmining-kp" + cohd: + description: >- + Columbia Open Health Data (COHD) + meaning: "infores:cohd" + openpredict: + description: >- + OpenPredict API + meaning: "infores:openpredict" + collaboratory: + description: >- + Translator Knowledge Collaboratory API + meaning: "infores:knowledge-collaboratory" + connections: + description: >- + Connections Hypothesis Provider API + meaning: "infores:connections-hypothesis" + ######################### # TestSuite Model Enums #