iodepo / oih-ui Goto Github PK
View Code? Open in Web Editor NEWsource code for the Ocean InfoHub (OIH) website
Home Page: https://oceaninfohub.org/
License: MIT License
source code for the Ocean InfoHub (OIH) website
Home Page: https://oceaninfohub.org/
License: MIT License
Description:
On search.oceaninfohub.org, copy/pasting and sharing a URL to a search result page works. On oceaninfohub.org, it doesn't.
This may be linked to #49
All CreativeWork patterns and their derivatives have a license property that can and should be leveraged for filtering.
xref: Cross-Domain-Interoperability-Framework/licenses-and-restrictions#1
to reproduce:
X
)Can reproduce this with Firefox and Chrome (on staging and production instances).
@jmckenna to investigate:
Current state:
Desired state:
In future, we will consider if and how to parse out region/sub-region/country/city ... names from textual queries to dynamically restrict records returned.
Is there any reason we have a COPY
in the frontend Dockerfile, as we already have the volume mounted at /app
?
An advanced search allowing selection of / mashup of facets and properties to formulate more precise queries.
Options open, to be drafted here.
The advanced search would allow:
Application case: searching for Marine Spatial Planning assets
main
branch built from source (unreleased Solr 10.0.0)/solr/conf/solrconfig.xml
jmx
warning can be avoided, as jmx was deprecated since Solr 7.0 release, by commenting out line #260 of solrconfig.xml
, so it uses the new settings in solr.xml
instead)OIH partners can and do add provenance information in their records. This is / should be distinct from the provenance information that OIH adds to these records when they are harvested.
@jmckenna to develop dashboard check in sync with progress here.
@fils and @pbuttigieg to help settle provenance pattern with bearing on CDIF.
May only be feasible in the advanced search, as we don't want to overcomplicate the landing page. Perhaps offer a syntax cheat sheet in a tool tip.
the main README file points to the README files in the subdirs, but there is no such file in /solr
add GA4 analytics so we know what people have been looking for and in what region.
add analytics to see what links they have clicked after a search
All lists of partners should be derived from a query to the OIH graph - this is not a manually edited list.
schema:logo
, see this example.
When running the docker version of the loader I tried
docker run -ti --rm -v "/data/imports/data:/opt/data" -e "SOLR_URL=http://solr:8983/solr/ckan" 5b4155878485 indexer.py
Where the 5b4.... is my local image build from the Dockerfile.
This fails to connect to the solr endpoint
For reference, with the docker ps we see
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
a1c284d2ffcd fils/dagster_oih:0.0.38 "dagster-daemon run" 6 days ago Up 6 days oih-dagster-dagster-daemon-1
a21265452938 fils/dagster_oih:0.0.38 "dagit -w workspace.…" 6 days ago Up 6 days 0.0.0.0:3000->3000/tcp oih-dagster-dagster-dagit-1
d684ba3b6255 postgres:13.3 "docker-entrypoint.s…" 6 days ago Up 6 days 0.0.0.0:5432->5432/tcp oih-dagster-dagster-postgres-1
c1a29cd136ed minio/minio:latest "/usr/bin/docker-ent…" 6 days ago Up 6 days 0.0.0.0:54321->54321/tcp, 0.0.0.0:9001->9000/tcp oih-index-support-s3system-1
a93cff110cbd nawer/blazegraph "docker-entrypoint.s…" 6 days ago Up 6 days 0.0.0.0:9999->9999/tcp oih-index-support-triplestore-1
6999ce530992 chromedp/headless-shell:latest "/headless-shell/hea…" 6 days ago Up 6 days 0.0.0.0:9222->9222/tcp oih-index-support-headless-1
e2be0455ecc5 portainer/portainer-ce "/portainer" 6 days ago Up 6 days 0.0.0.0:8000->8000/tcp, 0.0.0.0:9000->9000/tcp, 9443/tcp portainer
9c682f7c7402 nginxproxy/acme-companion "/bin/bash /app/entr…" 12 days ago Up 12 days oih-ui-docker_letsencrypt-nginx-proxy-companion_1
7e7527e3b758 oih-ui-docker_web "docker-entrypoint.s…" 12 days ago Up 12 days oih-ui-docker_web_1
d84a2a4a6a52 oih-ui-docker_api "uvicorn api.main:ap…" 12 days ago Up 12 days 8000/tcp oih-ui-docker_api_1
b71640a3f34e nginxproxy/nginx-proxy:latest "/app/docker-entrypo…" 12 days ago Up 12 days 0.0.0.0:80->80/tcp, 0.0.0.0:443->443/tcp oih-ui-docker_nginx-proxy_1
d4dfefdbe093 solr:8 "docker-entrypoint.s…" 12 days ago Up 12 days oih-ui-docker_solr_1
The questions are:
Thanks
the UNSD Methodology CSV file is included in both the indexer and the regions (with different filenames), this will lead to problems in the future whenever the list is update and not both files are updated. Should only be one file.
no info about rewrite_prov.py and how to use it
the main README file points to the README files in the subdirs, but there is no such file in /api
"geosparql:hasGeometry": {
"@type": "http://www.opengis.net/ont/sf#Polygon",
"geosparql:asWKT": {
"@type": "geosparql:wktLiteral",
"@value": "POLYGON((80.0 -20.0, 80.0 20.0, 160.0 20.0, 160.0 -20.0, 80.0 -20.0))"
},
"geosparql:crs": {
"@id":"http://www.opengis.net/def/crs/OGC/1.3/CRS84"
}
}
the general README file should contain information on all the software that needs to be installed to run the complete suite
till now I had to:
pip3 install requests
pip3 install shapely
pip3 install conversions
pip3 install python-dateutil
The "Spatial Data" label is reportedly confusing some users: the content shown is any ODIS record that has spatial metadata.
xref #38
e.g. queries/dups.py
Ensure responsive design is implemented.
the indexer README file ends with the line ## To Run
, no information on how to run this
the hardcoded paths
BASE_DIR='./../../jsonld/120822/summoned'
PROV_DIR='./../../jsonld/120822/re-prov'
should be coming from a setting or argument
Some of the schema.org keys are given very generic labels, which can be misunderstood on the UI. For example, "provider" is meant to indicate the provider of the metadata record to OIH rather than the provider of the entity it describes (courses, vessels, services...). Therefore we should relabel ambiguous fields (functionality to do this already exists).
We expect that partners will host copies of digital assets, leading to multiple identical or near-identical results. On the UI and in the UX, these should not appear as independent results but - collectively - in a grouped result. That is, one result element with a visual sub-element stating that "[0-9] versions available". Clicking on the sub-element
schema:sameAs
propertyname
, description
, identifier
, ...)The terms in the drop down on the landing page (see figure) should pre-filter the corpus by 1) subsetting records that have geospatial coordinates within a set of OIH-defined GeoJSON shapes associated with each category and 2) subsetting records which have an schema.org address which includes a term associated with the region category in our UNSD-derived file.
(might be related to recent changes through aa6c4ba ?
type: ResearchProject
when a user selects Project
type: Project
in their JSON-LD, which then causes those records not to be foundThere are several unwieldy UX issues that would be good to smooth out during development.
Growing list, here:
"keywords": [
{
"@language": "en",
"@value": "watershed"
},
{
"@language": "fr",
"@value": "bassin versant"
}
],
"name": [
{
"@language": "fr",
"@value": "Projet REKEAU - Entreprises manufacturi\u00e8res (2019)"
},
{
"@language": "en",
"@value": "REKEAU Project - Manufacturing (2019)"
}
],
xref: iodepo/odis-arch#287
On the UI/UX dev side, this should be a question of creating a form-like interface. IODE to provide backend elements.
On the UI, results pointing back to vessels coming from the Africa node (here) link directly to the JSON-LD, rather than an landing page in the partner's site.
I think this is because the @id is used correctly, or perhaps the url
is the same as the @id to the JSON-LD.
The expected behaviour is that clicking on the result's main link will take you to the partner's landing page for that vessel.
when running the indexer :
Exception on bare upsert: HTTPConnectionPool(host='localhost', port=8983): Max retries exceeded with url: /solr/ckan/update?commit=true (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7f3ae1f17a60>: Failed to establish a new connection: [Errno 111] Connection refused'))
error: invalid path 'indexer/test/prov:wasAttributedTo/dest/52ba2db7a5.json'
fatal: unable to checkout working tree
git version 2.38.0
./indexer.py
Traceback (most recent call last):
File "/Users/arno/PhpstormProjects/oih-ui/indexer/./indexer.py", line 424, in
index_all(['../all_files.v2.txt'])
File "/Users/arno/PhpstormProjects/oih-ui/indexer/./indexer.py", line 344, in index_all
with open(path) as files:
FileNotFoundError: [Errno 2] No such file or directory: '../all_files.v2.txt'
A hard quoted string "foo bar" may not have any exact or only a few exact matches. There should be a fall back mechanism which will show results for "foo" and "bar" if so.
python3 main.py
Traceback (most recent call last):
File "/Users/arno/PhpstormProjects/oih-ui/api/api/main.py", line 14, in
from api.util.solr_query_builder import SolrQueryBuilder
ModuleNotFoundError: No module named 'api.util'
should this be api.api.util???
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.