-
Notifications
You must be signed in to change notification settings - Fork 2
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Synolib2 #14
base: main
Are you sure you want to change the base?
Conversation
(removed index.html as it is currently outdated)
SynonymGroup.ts
Outdated
OPTIONAL { ?col dwc:scientificNameAuthorship ?colAuth . } BIND(COALESCE(?colAuth, "") as ?authority) | ||
?col dwc:scientificName ?name . # Note: contains authority | ||
?col dwc:genericName ?genus . | ||
# TODO # ?col dwc:parent* ?p . ?p dwc:rank "kingdom" ; dwc:taxonName ?kingdom . |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This (and the other similar "# TODO #" lines are a hack to work around lindas not having all CoL-taxa for some reason?
Should be uncommented once all col-data are on lindas; this check prevents some weird edgecases like for example with "Quercus"
SynonymGroup.ts
Outdated
FILTER NOT EXISTS { ?col dwc:specificEpithet ?species . } | ||
FILTER NOT EXISTS { ?tn dwc:species ?species . } | ||
} | ||
} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
In general, a problem is that this query wuth the UNIONs is much slower on lindas than on our server; however making them optional and FILTERing with
OPTIONAL {
?col dwc:specificEpithet ?species .
?tn dwc:species ?tnspecies .
OPTIONAL {
?col dwc:infraspecificEpithet ?infrasp .
?tn dwc:subspecies|dwc:variety ?tninfrasp .
}
}
FILTER (COALESCE(?tnspecies, "N A") = COALESCE(?species, "N A"))
FILTER (COALESCE(?tninfrasp, "N A") = COALESCE(?infrasp, "N A"))
does not work at all on our server, but is quite fast on lindas.
I am considering having both query-variants, and selecting depending on the endpoint which one to use. This should be SynoLib-user overridabe, but have hardcoded defaults for known servers (i.e. for those on the synospecies settings)
Preview on https://plazi.github.io/synolib/ The example page uses query parameters for options:
e.g. https://plazi.github.io/synolib/?q=Sadayoshia%20miyakei&show_col= |
i think after this the example is done and work should begin on synospecies proper
Open TODOs before releasing this:
|
Endpoint-Compatability:
Compare e.g. for Tyrannosaurus rex:
Update after 9663f68: Times are now down to ~25s (plazi endpoint) vs ~31s (lindas) in my very unscientifc testing. I think this is good enough for now. The missing CoL taxa on lindas are still a problem. However, it should not be the case that current synolib/synospecies finds something but new synolib does not regardless of the CoL-taxa |
there are no treatments without a date
|
|
Full architecture rework.
Breaking Changes all-around.