####################### ROADMAP ############################

### v1.0 ###

DEVELOPMENT

- introduce nq

WRITE DOCUMENTATION

- write documentation
- structured data embedding: https://developers.google.com/search/docs/guides/intro-structured-data?hl=de
- https://www.w3.org/TR/rdf11-concepts/#resources-and-statements

Hydra

* https://demo.api-platform.com/.jsonld
* https://demo.api-platform.com/docs.jsonld
* https://demo.api-platform.com/books.jsonld

RDF*

-- https://www.ontotext.com/knowledgehub/fundamentals/what-is-rdf-star/
-- https://json-ld.github.io/json-ld-star/
-- https://w3c.github.io/rdf-star/cg-spec/2021-07-01.html
-- MIME type: https://github.com/w3c/rdf-star/issues/43

### v1.1 ###

- new icons for add fieldControl, entity and property

- TCA fieldControl for looking up IRIs in external knowledge bases (lookUp)
-- https://docs.typo3.org/m/typo3/reference-coreapi/master/en-us/ApiOverview/FormEngine/Rendering/Index.html?highlight=fieldcontrol#add-fieldcontrol-example
-- https://stackoverflow.com/questions/49816958/how-to-add-custom-wizards-in-typo3-9-tca
-- connect to dbpedia/wikidata and other apis and select + create IRIs
--- fieldControl should be next to value field
--- which knowledge base to connect is set through selected namespace
--- knowledge base connection is configured in TSConfig for a given namespace (ex. wikidata)

- IRI Link Handler for RTE
-- @see: https://docs.typo3.org/m/typo3/reference-coreapi/9.5/en-us/ApiOverview/LinkBrowser/Linkhandler/Index.html
-- @see: https://docs.typo3.org/m/typo3/reference-coreapi/9.5/en-us/ApiOverview/LinkBrowser/LinkBrowserApi/Index.html#linkbrowser-api
-- make it possible to create IRIs in Link Browser
-- search field and suggestions for look up in external knowledge bases
--- on linkage soft ref should get parsed and IRI created in DB (use case wikidata/dbpedia)

- implement linked data fragments: https://linkeddatafragments.org/
-- add to response: https://github.com/OParl/spec/issues/165#issuecomment-45837074
-- allow full IRIs (namespace + value) in s,p,o filter
-- allow literal "xyz" in object position
-- take into account implicit statements that come from fields
--- develop a field = statement mapping syntax that does this for a given table
-- add graph field

### v1.2 ###

- tableTracking
-- map fields of a record to statements that will be created on save (example news_author => schema:author)
-- create sets of statements based on patterns defined in TSConfig (or via graph with empty positions?)

- extend support for inverse properties
-- https://www.semanticarts.com/named-property-inverses-yay-or-nay/
-- http://richard.cyganiak.de/blog/2006/06/an-rdf-design-pattern-inverse-property-labels/

- statement/sparql plugin (similar to api plugin)
-- support for basic SPARQL select queries
--- http://base.url/typo3-plugin-page?query=XYZ
-- filter statement list with graph param
--- https://www.w3.org/TR/sparql11-http-rdf-update/
--- http://base.url/typo3-plugin-page?qraph=http://base.url/id/graph => list of statements belonging to graph record

- named graphs
-- add named graph structures to ttl, json-ld and nt templates
-- maybe graph could serve as collection of statements added to records etc.

- hydra:view has no alternative serialisations in none of the serialisation formats

### v1.2 ###

- RDF importer

- api plugin
-- think about cacheable actions => configurable cHash calculation during redirection => check performance

- resolver
-- call different typolink handlers according to $representation->getAuthority();
-- implement language negotiation
