Comments (5)
Mid term solution: https://github.com/INCATools/semantic-sql/pull/77/files (this means these specific IRIs wont show up as invalid after the next OBO OAK release).
Please bring this issue to @cmungall attention.
from ontology-access-kit.
See also #688
In general the provider of upstream sources should try and provide prefix mappings such that the number of uncontracted URIs is minimal
I realize that this is harder than it should be for sql sources, due to the way semsql prefixes work. I apologize for this, and there will be a fix in place when we move away from rdftab. See INCATools/semantic-sql#41.
Even with this fix in place, there will inevitably be cases where URIs cannot be contracted (again, the number now is artifically high). In these cases we need to decide on the correct behavior:
- throw error
- treat URIs as if they are CURIEs (potentially renaming
CURIE
type toIDENTIFIER
) - Quote URIs to discriminate them from CURIEs (note: this is currently the behavior of the semsql adapter, but it's not the behavior of the rdf adapters, this inconsistency is confusing for users)
I tend towards 3. I think this was @joeflack4's instincts with #688. However, I would do it this way:
- rename
CURIE
toIDENTIFIER
, such that this is used universally in signatures. This will be a large diff, but it will not affect runtime - Formally define this as
IDENTIFIER = CURIE | QUOTED_URI
. Again, this is typing information that does not affect runtime, but it helps make the intentions clear
We would also need a PR to change the default behavior of the rdf adapter
from ontology-access-kit.
On the typing front, I approve of the IDENTIFIER
proposal.
from ontology-access-kit.
For completeness, there is also this option: ignore triples with entities that cannot be contracted and print a warning during semsql.
For programmatic usage its always going to be a bit annoying to have to distinguish between CURIE and "something else" based on some syntactic convention but I guess the "quote" solution is alright. Its not much different tbh the the <>
situation we have right now, but at least we don't have to use a.replace('<','')
anymore.
Maybe not a decision for Chrismtas period
from ontology-access-kit.
Related Issues (20)
- When using semsimiam implementation, opaque errors are omitted if no predicates are passed`
- semsimian implementation creates objects that use strings instead of floats
- Allow use of SSSOM LiteralProfile as an output format for annotate
- add semsim to OAK guide HOT 1
- Add operations for looking up and generating disjointness axioms HOT 1
- Add How to Cite in FAQ HOT 1
- Add ability to easily retrieve axiom annotations (metadata) on relationships HOT 1
- Optimization: `SqlImplementation.relationships_metadata()`
- problem with updating Wikidata import HOT 4
- `AttributeError` in `TranslatorImplementation` when using node normalizer endpoint HOT 1
- New sssom==0.3.42 breaks oaklib HOT 5
- Can't run tests without LinkML HOT 1
- sort the return of 'ancestors' by the chain of relations such that the nodes are arranged in order from leaf to root
- Add an option to have a default count of 1 for all terms when calculating IC
- Bug?: `.relationships()` filtering predicates even if `predicates` arg absent HOT 4
- Performance: `SqlImplementation.entity_metadata_map()` HOT 3
- `relationships`: Add warning/error when invalid predicates HOT 2
- Dumpers and loaders: Separate concept of syntax and datamodel HOT 1
- `.entities()` typedef update HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from ontology-access-kit.