Coder Social home page Coder Social logo

insightsoftwareconsortium / insightjournal Goto Github PK

View Code? Open in Web Editor NEW
9.0 9.0 5.0 19.86 MB

Insight Journal

Home Page: https://insight-journal.org

License: Apache License 2.0

JavaScript 68.39% Python 30.98% Hack 0.21% HTML 0.42%
ipfs journal open-science reproducible-research web3

insightjournal's People

Contributors

bnmajor avatar dependabot[bot] avatar jhlegarreta avatar josephsnyder avatar phcerdan avatar thewtex avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

insightjournal's Issues

IPFS layout question

Hi @thewtex,

try {
await ipfs.files.stat(`/articles/${publication.publication_id}`)
} catch (error) {
await ipfs.files.mkdir(`/articles/${publication.publication_id}`, { cidVersion: 1, parents: true })
}
try {
await ipfs.files.stat(`/articles/${publication.publication_id}/${revision}.pdf`)
} catch (error) {
await ipfs.files.cp(`/ipfs/${articleCid}`, `/articles/${publication.publication_id}/${revision}.pdf`, { cidVersion: 1 })

A question about ipfs, from the code above, that "path" of /articles/${pub_id}, from where is it coming?
It's because you uploaded the files with that structure?
Is there a way I can explore the ipfs layout? Just out of curiosity. Thanks!

I have to download the latest revision data, to parse the citations of each article, and not sure if doing it via ipfs, or https://data.kitware.com/#collection/5cb75e388d777f072b41e8db

Comments / Reviews section

Hi,

Thanks for the update to the journal website ! It is really welcome !

I know that the previous version comment section was polluted with spam bots...However, some codes samples age badly and I found some comments really helpful to update them.

Is there a way to make a safe comment section ? Maybe linked to discourse logins.
Another idea would be the mention of compatible ITK versions.

Cheers.

Enable new submissions via web page form

We could use Netlify CMS with GitHub integration and web3.storage API's.

New plan, greatly simplified and more capable: base on GitHub Actions, GitHub pull request forms! 🚀 ✨

Using the setup of @jcfr for the Project Week website. Refs:

We can likely avoid the issue creation and go forward directly with a PR from the form.

Add script to query citation list of each publication in Crossref

IJ publications cite other IJ publications.
Now that we have DOI's, we should rerun the query of the citation list in Crossref, to see if we can get a new score (a DOI match) for IJ articles. Right now, we have an unstructured citation with the parsed content from the publication pdf.

We do not need to parse the pdf again, it would be good to have an independent script to update the citation list from unstructured to doi match.

Add citation_list to each publication

citation_list is required by XML crossref for modern (<= 2 years) submissions.
It's a list of the references that the publication is citing.

We will extract it from either tex+bib file, or from PDF.

Resolving Citations (we don’t need no stinkin’ parser) - Crossref

From tex + bib:

From pdf:

This is hard.

GitHub - CeON/CERMINE: Content ExtRactor and MINEr is recommended by Crossref and used in production by OpenAIRE.

In Java, download .jar from github. (tested with 1.13), and put WaveletArticle.pdf in /tmp/pdfs (for example, the script recursively search all pdfs in input and below folders).

java -cp ~/Downloads/cermine-impl-1.13-jar-with-dependencies.jar \ 
pl.edu.icm.cermine.ContentExtractor -path /tmp/pdfs

This results in the file WaveletArticle.cermxml that honestly makes a better job than anystyle (a parser, see below). The article title is usually in the field article-title, and sometimes fails and ends in source.

The next step is to use the REST API from crossref. The API is public, so we can start working on it even before being Crossref members (on schedule).
With the output of the cermine parsing, we use a free-text query to the Crossref REST API. See GitHub - CrossRef/rest-api-doc: Documentation for Crossref's REST API

For a general query, use query.bibliographic under the work field.

Please notice that some characters need to be escaped in the url.
See HTML URL Encoding Reference for a reference.

Example:

<https://api.crossref.org/works?query.bibliographic=Carberry%2C+Josiah.+%E2%80%9CToward+a+Unified+Theory+of+High-Energy+Metaphysics%3A+Silly+String+Theory.%E2%80%9D+Journal+of+Psychoceramics+5.11+%282008%29%3A+1-3.#>

This will always give you results(!). Check the score value of each item.

See below a simplified response.

{
  "status": "ok",
  "message-type": "work-list",
  "message-version": "1.0.0",
  "message": {
    "facets": {},
    "total-results": 1903215,
    "items": [
      {
        "indexed": {
          "date-parts": [[2021, 5, 12]],
          "date-time": "2021-05-12T03:27:09Z",
          "timestamp": 1620790029774
        },
        "update-to": [
          {
            "updated": {
              "date-parts": [[2018, 1, 1]],
              "date-time": "2018-01-01T00:00:00Z",
              "timestamp": 1514764800000
            },
            "DOI": "10.5555/12345678",
            "type": "corrigendum",
            "label": "Corrigendum"
          }
        ],
        "reference-count": 1,
        "publisher": "Society of Psychoceramics",
        
        "score": 122.59374,
        "issued": { "date-parts": [[2008, 8, 13]] },
        "references-count": 1,
        "journal-issue": {
          "issue": "11",
          "published-online": { "date-parts": [[2008, 2, 29]] },
          "published-print": { "date-parts": [[2008, 2, 29]] }
        },
        "URL": "http://dx.doi.org/10.5555/12345678",
        "DOI": "10.5555/12345678",
        "type": "journal-article",
      },
      #More 
    ],
    "items-per-page": 20,
    "query": { "start-index": 0, "search-terms": null }
  }
}

Check status, check that top item, ordered by score, has a reasonable score value (TODO: which one?). The objective of this query is to get a DOI.

Then, use the the crossref DOI content negotiation to get that publication content in whatever format you want. See DOI Content Negotiation for options.

curl -LH "Accept: application/x-bibtex" http://dx.doi.org/10.5555/12345678  
@article{Carberry_2008,
        doi = {10.5555/12345678},
        url = {https://doi.org/10.5555%2F12345678},
        year = 2008,
        month = {aug},
        publisher = {Society of Psychoceramics},
        volume = {5},
        number = {11},
        pages = {1--3},
        author = {Josiah Carberry},
        title = {Toward a Unified Theory of High-Energy Metaphysics: Silly String Theory},
        journal = {Journal of Psychoceramics}
}% 

For XML crossref use: "Accept: application/vnd.crossref.unixref+xml"

Discarded solutions

anystyle (pdf parser)

From SO: Is it possible to extract the bibliography from a PDF file as a .bibtex? - TeX - LaTeX Stack Exchange
The anwers point to anystyle (ruby): GitHub - inukshuk/anystyle: Fast and smart citation reference parsing
gem install anystyle-cli rexml
gem find article.pdf returns a json.
It seems pretty bad when testing it with my own IJ article: GitHub - phcerdan/InsightJournal-IsotropicWavelets: Template of Technical Report to be submitted to the Insight Journal

Search box, issues when empty

  • When the search box is empty, pressing the search button should not display that tiny floating rectangle. See gif.

ij_search_empty

Style suggestion: Maybe center the box and the button in the header row, instead of the button going off grid.

Workshop proceedings missing / DOI links do not resolve

Greetings,

It appears that quite some publications went missing. I noticed that one of my own publications, which was part of the MICCAI 2014 Workshop on Image-Guided Adaptive Radiation Therapy (IGART) is not available anymore.

The handle and DOI links

http://hdl.handle.net/10380/3491
http://dx.doi.org/10.54294/lgcmkl

lead to the following error message:
ipfs resolve -r /ipfs/bafybeigcuragxgowyanltzo4t5wmzwdvlv5qxkyme3rdlfpb4nvdqp33pe/browse/publication/938: no link named "938" under Qme5S1jdJsrgd6GS3DSX41n1ZFbUeZhkUQa5kG6qQgnUqF

They are still listed/referenced in the file data/issues/383.json:

...
"issue": {
"date": "2014",
"issue_id": 383,
"name": "MICCAI 2014 Workshop: Image-Guided Adaptive Radiation Therapy (IGART)",
"publications": [925,937,938,939,940,941,942,945,946,947,948,958],
"short_description": "The workshop aims at presenting leading edge applications of medical image processing in the field of radiotherapy. The workshop provides an invaluable opportunity to present and discuss recent and preliminary research in this exciting field, in addition to providing a good forum to get constructive feedback from fellow researchers on more developed pieces of work."
...

They are also not listed on the website anymore, when I use, for instance, the search functionality or browse issues by year. Other workshop proceedings seem to be affected by this issue as well.

I hope this issue can get resolved somehow. Thank you,
Matthias

Add more metadata to the crossref xml submission

image

  • Orcid IDS: This might require sending a google form to our submittors. Another option is to check if crossref itself has a way to query this after submission. I have been asked about authorship every know and then by multiple platforms.
  • Text mining URL. See #75 . URL's for pdf's provided in #86 .
  • Add Abstracts, PR incoming on this. (#85 )

Can we expose an url to article.pdf and source_code.zip?

I am building the XML that we are going to handle to Crossref for them to register.
There is a <resource> tag where we can directly link an url to the article.pdf or the source code associated to the publication.

I wonder if we have an exposed url to directly that file?

I see that when the user press the button Download PDF on the article tab it downloads it, but not sure if there is an url.

@thewtex

Add InsightJournal to list of openjournals at https://www.theoj.org/

After reviewing the following, I suggest to evaluate adding the InsightJournal to https://www.theoj.org/

Ownership & Governance

Open Journals and each of its journals are community-organized and volunteer-led, with an editor-in-chief who leads each journal. Open Journals is fiscally sponsored by NumFOCUS, and has a documented governance structure.

Source: https://www.theoj.org/

References:

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.