- 1 front-end app
- 1 back-end app
- Monorepo
- Run from source
- Node.js
- Bare HTML output
- Understands
http://schema.org/Article
andhttp://schema.org/name
- Will pass through unknown properties
- Has
CreateArticle
andSearch
actions - Ignore server-sent events
- JSON-LD only
- Run
make
(ormake docker
) - Open http://localhost:8080 to see the public-facing app
- Fill out the 'Create an article' form
- See the result appear in the list and basic search
- Look at the logs to see responses from the API (lines beginning
[Axios][Response]
)- Especially actions being created, which have their own URI.
- Open http://localhost:8081 to see the API
- See links that can be followed, and actions that can be performed
- JSON-LD will need a wrapper around it, as it can be in lots of different forms (eg single value, multiple value)
- Doesn't appear to exist though?
- Sci.pe have their own library, with helpers like
get-value()
- No tooling available about using Schema.org as hypermedia
- Got me thinking about Hydra again, which does having tooling in JS (eg Alcaeus)
- Still hard to understand, and not sure it adds anything over Schema.org
- Got me thinking about Hydra again, which does having tooling in JS (eg Alcaeus)
- Would Schema.org really be better than going for more specialist vocabularies (eg the SPAR Ontologies)?
- Feels easier to adopt (probably a lot more familiar), but won't cover everything that we need
- Started to look at rdflib.js
- JSON-LD support appears to be broken, Turtle worked
- API is quite nice, but going all in on RDF is probably a set to far
- Hard to see how it would be persisted without using something completely unfamiliar (SPARQL, supported by Amazon Neptune)
- Got Tim Berners-Lee behind it (used in https://solid.inrupt.com/)
- Things that need investigating:
- Authentication/authorization
- API can be accessed, but also through local services like a web app and third-party integrations
- Combining multiple APIs
- Is there one entrypoint or many?
- Authentication/authorization
- JSON-LD context resolution needs to be considered (at least HTTP caching, but ideally using local context files, like https://github.com/science-periodicals/ontology/blob/gh-pages/context.js)