Skip to content
This repository has been archived by the owner on Sep 24, 2019. It is now read-only.

Move rdf functionality into separate gem #89

Open
abargnesi opened this issue Nov 19, 2015 · 4 comments
Open

Move rdf functionality into separate gem #89

abargnesi opened this issue Nov 19, 2015 · 4 comments

Comments

@abargnesi
Copy link
Member

What?

bel.rb provides the following RDF functionality:

  • Translate BEL to an RDF model.
  • Access RDF Resources for BEL namespaces and annotations.

These features have been integrated within bel.rb with a soft dependency on other gems (e.g. rdf, addressable, uuid, rdf-turtle). Additionally the rdf-mongo is used as a soft dependency when enabling the Mongo RDF Repository plugin (e.g. BEL::RdfRepository::Plugins::Mongo).

To me this is is starting to feel unmanageable and hard to communicate to users.

Here I am suggesting that the RDF translator and Mongo RDF Repository be moved to separate gems. They will both declare hard dependencies on the gems they need.

Why?

  • Easier to communicate to users and explicit. For example if you want to have an RDF translator available then install bel and bel-translator-rdf.
  • No longer have to carry/copy soft dependency code in bel.rb. The plugin design makes using plugins as easy as installing them.
  • More separation between RDF functionaliy and core bel.rb.
  • Having more plugin repositories increases the exemplars that users can build on.
@abargnesi
Copy link
Member Author

@nbargnesi @wshayes thoughts on this?

@nbargnesi
Copy link
Member

Seems like you're driving bel.rb towards a pluggable and extensible BEL Swiss Army Knife, so this make sense. It does make bel.rb inherently more elegant and maintainable. There's a cost in managing the other projects and the added dependencies and lifecycles. Even with the cost, I'm in favor of it.

I could see having a gem that just groups all translators together too, along with whatever other plugin categories might exist. E.g., bel-translators.

@abargnesi
Copy link
Member Author

Great idea! 👏

I'm in favor of grouping together commonly-used plugins.

Thanks for the feedback.

@abargnesi
Copy link
Member Author

Punting this for now due to necessary bugfixing within BEL to RDF conversion (#65, #66, #69).

@abargnesi abargnesi added the RDF label Feb 23, 2016
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

No branches or pull requests

2 participants