Closed Yagnap closed 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
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.
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.
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
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.
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.