ncbo / bioportal-project

Serves to consolidate (in Zenhub) all public issues in BioPortal
BSD 2-Clause "Simplified" License
7 stars 5 forks source link

deploy a demo instance of BioPortal with ontoportal-lirmm codebase #313

Open alexskr opened 2 months ago

alexskr commented 2 months ago

We plan to deploy a BioPortal test instance with the Ontoportal-LIRMM codebase to assess several API/UI improvements from the AgroPortal team, including:

Goo framework optimization Multilingual support Advanced SKOS support Improved metadata Single Sign-On (SSO) capability AllegroGraph compatibility

Testing with BioPortal’s large dataset would help with evaluating and integrating new features into the BioPortal codebase effectively and provide feedback to AgroPortal team.

jvendetti commented 2 months ago

@alexskr - would you mind adding some kind of description and/or explanation to this issue to help me understand the decision to devote time to this? What is the ultimate goal?

alexskr commented 2 months ago

Deployed UI v2.7.4, API (master)

1) I am unable to load any ontology when running with AllegroGraph backend, getting SPARQL::Client::MalformedQuery - MALFORMED QUERY: No base URI for URI <>

2024-04-10 22:51:15 - SPARQL::Client::MalformedQuery - MALFORMED QUERY: No base URI for URI <>:
        /srv/ontoportal/.bundle/ruby/2.7.0/bundler/gems/sparql-client-aed51baf4106/lib/sparql/client.rb:398:in `block in response'
        /srv/ontoportal/.bundle/ruby/2.7.0/bundler/gems/sparql-client-aed51baf4106/lib/sparql/client.rb:746:in `request'
        /srv/ontoportal/.bundle/ruby/2.7.0/bundler/gems/sparql-client-aed51baf4106/lib/sparql/client.rb:395:in `response'
        /srv/ontoportal/.bundle/ruby/2.7.0/bundler/gems/sparql-client-aed51baf4106/lib/sparql/client.rb:368:in `update'
        /srv/ontoportal/.bundle/ruby/2.7.0/bundler/gems/sparql-client-aed51baf4106/lib/sparql/client.rb:167:in `insert_data'
        /srv/ontoportal/.bundle/ruby/2.7.0/bundler/gems/goo-8ddd2d719617/lib/goo/base/resource.rb:292:in `save'
        /srv/ontoportal/.bundle/ruby/2.7.0/bundler/gems/ontologies_linked_data-95e77989e4e8/lib/ontologies_linked_data/models/base.rb:13:in `save'
        /srv/ontoportal/ontologies_api/releases/20240403002835/helpers/ontology_helper.rb:43:in `create_submission'
        /srv/ontoportal/ontologies_api/releases/20240403002835/controllers/ontology_submissions_controller.rb:47:in `block (2 levels) in <class:OntologySubmissionsController>'
        /srv/ontoportal/.bundle/ruby/2.7.0/gems/sinatra-1.4.8/lib/sinatra/base.rb:1611:in `call'

2) Unable to load SKOS ontologies that are working in BioPortal. owlapi-wrapper error: ERROR o.s.n.owlapi.wrapper.OntologyParser - Optional.get() cannot be called on an absent valued related to https://github.com/ontoportal-lirmm/owlapi_wrapper/issues/4

ncbo_cron]$ java -DentityExpansionLimit=2500000 -Xmx10240M -jar /srv/ontoportal/.bundle/ruby/2.7.0/bundler/gems/ontologies_linked_data-95e77989e4e8/bin/owlapi-wrapper.jar -m /srv/ontoportal/data/repository/GDMT/1/dataset-voc.ttl -o /srv/ontoportal/data/repository/GDMT/1 -r true
2024-04-09T20:46:14 [main] INFO  o.s.n.o.w.OntologyParserCommand - Parsing invocation with values: ParserInvocation [inputRepositoryFolder=null, outputRepositoryFolder=/srv/ontoportal/data/repository/GDMT/1, masterFileName=/srv/ontoportal/data/repository/GDMT/1/dataset-voc.ttl, invocationId=0, parserLog=, userReasoner= true]
2024-04-09T20:46:14 [main] INFO  o.s.n.owlapi.wrapper.OntologyParser - executor ...
2024-04-09T20:46:15 [main] INFO  o.s.n.owlapi.wrapper.OntologyParser - Input repository folder is null. Unique file being parsed.
2024-04-09T20:46:15 [main] DEBUG o.e.rdf4j.rio.RDFParserRegistry - Registered service class org.eclipse.rdf4j.rio.binary.BinaryRDFParserFactory
2024-04-09T20:46:15 [main] DEBUG o.e.rdf4j.rio.RDFParserRegistry - Registered service class org.eclipse.rdf4j.rio.n3.N3ParserFactory
2024-04-09T20:46:15 [main] DEBUG o.e.rdf4j.rio.RDFParserRegistry - Registered service class org.eclipse.rdf4j.rio.nquads.NQuadsParserFactory
2024-04-09T20:46:15 [main] DEBUG o.e.rdf4j.rio.RDFParserRegistry - Registered service class org.eclipse.rdf4j.rio.ntriples.NTriplesParserFactory
2024-04-09T20:46:15 [main] DEBUG o.e.rdf4j.rio.RDFParserRegistry - Registered service class org.eclipse.rdf4j.rio.rdfjson.RDFJSONParserFactory
2024-04-09T20:46:15 [main] DEBUG o.e.rdf4j.rio.RDFParserRegistry - Registered service class org.eclipse.rdf4j.rio.jsonld.JSONLDParserFactory
2024-04-09T20:46:15 [main] DEBUG o.e.rdf4j.rio.RDFParserRegistry - Registered service class org.eclipse.rdf4j.rio.rdfxml.RDFXMLParserFactory
2024-04-09T20:46:15 [main] DEBUG o.e.rdf4j.rio.RDFParserRegistry - Registered service class org.eclipse.rdf4j.rio.trix.TriXParserFactory
2024-04-09T20:46:15 [main] DEBUG o.e.rdf4j.rio.RDFParserRegistry - Registered service class org.eclipse.rdf4j.rio.turtle.TurtleParserFactory
2024-04-09T20:46:15 [main] DEBUG o.e.rdf4j.rio.RDFParserRegistry - Registered service class org.eclipse.rdf4j.rio.trig.TriGParserFactory
2024-04-09T20:46:15 [main] DEBUG o.e.r.rio.DatatypeHandlerRegistry - Registered service class org.eclipse.rdf4j.rio.datatypes.XMLSchemaDatatypeHandler
2024-04-09T20:46:15 [main] DEBUG o.e.r.rio.DatatypeHandlerRegistry - Registered service class org.eclipse.rdf4j.rio.datatypes.RDFDatatypeHandler
2024-04-09T20:46:15 [main] DEBUG o.e.r.rio.DatatypeHandlerRegistry - Registered service class org.eclipse.rdf4j.rio.datatypes.DBPediaDatatypeHandler
2024-04-09T20:46:15 [main] DEBUG o.e.r.rio.DatatypeHandlerRegistry - Registered service class org.eclipse.rdf4j.rio.datatypes.VirtuosoGeometryDatatypeHandler
2024-04-09T20:46:15 [main] DEBUG o.e.r.rio.DatatypeHandlerRegistry - Registered service class org.eclipse.rdf4j.rio.datatypes.GeoSPARQLDatatypeHandler
2024-04-09T20:46:15 [main] DEBUG o.e.r.rio.LanguageHandlerRegistry - Registered service class org.eclipse.rdf4j.rio.languages.RFC3066LanguageHandler
2024-04-09T20:46:15 [main] DEBUG o.e.r.rio.LanguageHandlerRegistry - Registered service class org.eclipse.rdf4j.rio.languages.BCP47LanguageHandler
2024-04-09T20:46:15 [main] INFO  o.s.n.o.w.metrics.OntologyMetrics - Calculating metrics for /srv/ontoportal/data/repository/GDMT/1/dataset-voc.ttl
2024-04-09T20:46:15 [main] INFO  o.s.n.o.w.metrics.OntologyMetrics - Finished metrics calculation for /srv/ontoportal/data/repository/GDMT/1/dataset-voc.ttl in 4 milliseconds
2024-04-09T20:46:15 [main] INFO  o.s.n.o.w.metrics.OntologyMetrics - Generated metrics CSV file for /srv/ontoportal/data/repository/GDMT/1/dataset-voc.ttl
2024-04-09T20:46:15 [main] INFO  o.s.n.owlapi.wrapper.OntologyParser - Ontology document format: org.semanticweb.owlapi.formats.RioTurtleDocumentFormat
2024-04-09T20:46:15 [main] ERROR o.s.n.owlapi.wrapper.OntologyParser - Optional.get() cannot be called on an absent value
2024-04-09T20:46:15 [main] INFO  o.s.n.o.w.OntologyParserCommand - Parse result: false
2024-04-09T20:46:15 [main] INFO  o.s.n.o.w.OntologyParserCommand - Output triples in: {}/srv/ontoportal/data/repository/GDMT/1/owlapi.xrdf
2024-04-09T20:46:15 [main] INFO  o.s.n.o.w.OntologyParserCommand - Finished parsing!

3) UI displays 'We're sorry but something has gone wrong.' on the home page

F, [2024-04-10T23:02:23.371165 #26167] FATAL -- :
ActionView::Template::Error (undefined method `split' for nil:NilClass):
    90:         %div.align-items
    91:           %h4.margin-items= t('home.fairness')
    92:           = render Display::InfoTooltipComponent.new(text: t('home.info_tooltip_text') )
    93:           = fairness_link(style: 'margin-bottom: 6px; vertical-align: top;')
    94:         %hr.home-section-line/
    95:         .home-card.home-fair-scores
    96:           %div.fair-scores-badge-section

app/helpers/fair_score_helper.rb:12:in `get_fairness_service_url'
app/helpers/fair_score_helper.rb:132:in `fairness_link'
app/views/home/index.html.haml:93

this error exists regardless if i set $FAIRNESS_DISABLED to true or false

alexskr commented 2 months ago

The ontology URI is required.

However, since the URI can be extracted from the ontology file, is it necessary for users to provide it when creating an ontology? It might be better to make the URI optional, automatically pulling it from the file or setting a default/generated value if it's not there.

alexskr commented 2 months ago

@alexskr - would you mind adding some kind of description and/or explanation to this issue to help me understand the decision to devote time to this? What is the ultimate goal?

@jvendetti, I updated the description.

alexskr commented 2 months ago

the home page is working correctly after tweaking the config file.