hitontology / gui

Erneuerung der Benutzungsoberflächen von HITO
https://hitontology.github.io/gui/
MIT License
0 stars 0 forks source link

Missing study instances? #33

Closed Yagnap closed 7 months ago

Yagnap commented 7 months ago

When running the query select distinct * {?s a hito:Study. ?s ?p ?o. ?o a ?c} LIMIT 100 on the HITO SPARQL endpoint, there are plenty of results, but when using the GUI and connecting i.e. Study and SoftwareProduct, no path is shown and no valid paths are found.

Why is that, and if it's unintentional, we need to find out if instances of other classes are affected as well.

Yagnap commented 7 months ago

Refined SPARQL query to show which classes hito:Study should be connected to (where instances exist): PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> PREFIX owl: <http://www.w3.org/2002/07/owl#> SELECT DISTINCT ?c { ?s a hito:Study . ?s ?p ?o . ?o a ?c . ?c rdf:type owl:Class . } LIMIT 100

Result: http://hitontology.eu/ontology/ApplicationSystemTypeCitation http://hitontology.eu/ontology/FeatureCitation http://hitontology.eu/ontology/Journal http://hitontology.eu/ontology/OrganizationalUnitCitation http://hitontology.eu/ontology/OutcomeCriteriaCitation http://hitontology.eu/ontology/SoftwareProduct http://hitontology.eu/ontology/StudyMethod http://hitontology.eu/ontology/UserGroupCitation

=> all connected nodes in the metamodel should be valid paths, but none are recognised

KonradHoeffner commented 7 months ago

I will investigate this. It might be relevant that there weren't originally any direct instances of the Study class, because Study has subclasses and the instances are attached to them, which according to the semantics of the subclass relationship means that they are transitively also instances of study. However, our SPARQL endpoint doesn't include a reasoner (I don't know if any does), so I recently "materialized" those transitive relationships. So I will first check if it is connected to that, however this should impact both your SPARQL query and the one employed by the HITO GUI in the same way.

KonradHoeffner commented 7 months ago

PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> PREFIX owl: <http://www.w3.org/2002/07/owl#> SELECT DISTINCT ?c { ?s a hito:Study . ?s ?p ?o . ?o a ?c . ?c rdf:type owl:Class . } LIMIT 100

By the way, you can leave out the rdf and owl prefixes, they are included in the list of default prefixes.

KonradHoeffner commented 7 months ago

Console output for paths from SoftwareProduct to Study:

[...]
calculating paths from SoftwareProduct to Study index.js:73:13
hash for  
Array(3) [ "SoftwareProduct", "evaluatesProduct", "Study" ]
 : -1287091700 path.js:56:11
hash for  
Array(5) [ "SoftwareProduct", "spIsOfAstCit", "ApplicationSystemTypeCitation", "evaluatesApplicationSystemType", "Study" ]
 : -1021337252 path.js:56:11
hash for  
Array(5) [ "SoftwareProduct", "spOffersFCit", "FeatureCitation", "evaluatesApplicationSystemTypeHavingFeature", "Study" ]
 : 340604272 path.js:56:11
hash for  
Array(5) [ "SoftwareProduct", "spUsedInOuCit", "OrganizationalUnitCitation", "evaluatesApplicationSystemTypeUsedInUnit", "Study" ]
 : -1291337254 path.js:56:11
hash for  
Array(5) [ "SoftwareProduct", "spUsedByUserCit", "UserGroupCitation", "evaluatesApplicationSystemTypeHavingUserGroup", "Study" ]
 : -1931659542 path.js:56:11
hash for  
Array(7) [ "SoftwareProduct", "spSupportsEfCit", "EnterpriseFunctionCitation", "supportsFunction", "FeatureCitation", "evaluatesApplicationSystemTypeHavingFeature", "Study" ]
 : -1853774508 path.js:56:11
hash for  
Array(11) [ "SoftwareProduct", "spSupportsEfCit", "EnterpriseFunctionCitation", "efCitClassifiedAs", "EnterpriseFunctionClassified", "astClaSupportsEfCla", "ApplicationSystemTypeClassified", "astCitClassifiedAs", "ApplicationSystemTypeCitation", "evaluatesApplicationSystemType", … ]
 : 844894724 path.js:56:11
hash for  
Array(11) [ "SoftwareProduct", "spSupportsEfCit", "EnterpriseFunctionCitation", "efCitClassifiedAs", "EnterpriseFunctionClassified", "supportsFunctionClassified", "FeatureClassified", "fCitClassifiedAs", "FeatureCitation", "evaluatesApplicationSystemTypeHavingFeature", … ]
 : 978488839 path.js:56:11
hash for  
Array(13) [ "SoftwareProduct", "spIsOfAstCit", "ApplicationSystemTypeCitation", "astCitClassifiedAs", "ApplicationSystemTypeClassified", "astClaSupportsEfCla", "EnterpriseFunctionClassified", "efCitClassifiedAs", "EnterpriseFunctionCitation", "supportsFunction", … ]
 : 436154498 path.js:56:11
hash for  
Array(13) [ "SoftwareProduct", "spIsOfAstCit", "ApplicationSystemTypeCitation", "astCitClassifiedAs", "ApplicationSystemTypeClassified", "astClaSupportsEfCla", "EnterpriseFunctionClassified", "supportsFunctionClassified", "FeatureClassified", "fCitClassifiedAs", … ]
 : 1668317321 path.js:56:11
hash for  
Array(13) [ "SoftwareProduct", "spOffersFCit", "FeatureCitation", "fCitClassifiedAs", "FeatureClassified", "supportsFunctionClassified", "EnterpriseFunctionClassified", "astClaSupportsEfCla", "ApplicationSystemTypeClassified", "astCitClassifiedAs", … ]
 : -1292779064 path.js:56:11
hash for  
Array(13) [ "SoftwareProduct", "spOffersFCit", "FeatureCitation", "supportsFunction", "EnterpriseFunctionCitation", "efCitClassifiedAs", "EnterpriseFunctionClassified", "astClaSupportsEfCla", "ApplicationSystemTypeClassified", "astCitClassifiedAs", … ]
 : 641401971 path.js:56:11
hash for  
Array(15) [ "SoftwareProduct", "spSupportsEfCit", "EnterpriseFunctionCitation", "supportsFunction", "FeatureCitation", "fCitClassifiedAs", "FeatureClassified", "supportsFunctionClassified", "EnterpriseFunctionClassified", "astClaSupportsEfCla", … ]
 : 2017856356 path.js:56:11
No valid paths found between SoftwareProduct and Study} index.js:79:15
KonradHoeffner commented 7 months ago

Due to the new preprocessing approach with the hashes, we cannot immediately compare the SPARQL queries. This is a good time to create unit tests.