substance / texture

A visual editor for research.
MIT License
1k stars 84 forks source link

Making CSL/JSON the default interface for expressing references in Texture #679

Open michael opened 6 years ago

michael commented 6 years ago

We use an internal Substance model during editing since we don't want to have nested JSON structures. However since we have an API abstraction now we are thinking of introducing the following methods:

api.getReference('r1') // returning a CSL/JSON record
api.addReference('r2', {...})  // taking a CSL/JSON record

The advantage will be that we build on an existing standard without introducing a new JSON schema. Of course for serialization we will use the JATS element-citation tag, but reflecting the same fields.

Some open questions:

@zuphilip does CSL/JSON have an answer for math and more complex annotated titles etc.? Would you be able to help us with that transition to make Texture speak CSL/JSON fluently? :)

@Melissa37 do you think CSL/JSON have all fields we need? We need to compare this with: https://github.com/substance/dar/blob/master/DarArticle.md#ref

Melissa37 commented 6 years ago

I am sorry and a bit out of understanding this model, so I will just ask some questions that I think are of relevance to this:

Cheers

michael commented 6 years ago

@Melissa37 you can view a reference just as an object with properties, each consisting of a value. JATS or CSL/JSON are just serialisations. Of course if CSL/JSON is missing a property we then need to introduce it. Wether a property is displayed or not is an independent story. That's the rendering part.

About PubMed/Crossref validation we should start a separate thread on. I don't yet understand how this works and what is checked.