diff options
Diffstat (limited to 'paper/lua-filters/cito/cito.lua')
-rw-r--r-- | paper/lua-filters/cito/cito.lua | 138 |
1 files changed, 0 insertions, 138 deletions
diff --git a/paper/lua-filters/cito/cito.lua b/paper/lua-filters/cito/cito.lua deleted file mode 100644 index a1a3421..0000000 --- a/paper/lua-filters/cito/cito.lua +++ /dev/null @@ -1,138 +0,0 @@ --- Copyright © 2017–2019 Albert Krewinkel, Robert Winkler --- --- This library is free software; you can redistribute it and/or modify it --- under the terms of the MIT license. See LICENSE for details. - -local _version = '1.0.0' -local properties_and_aliases = { - agrees_with = { - 'agree_with' - }, - citation = { - }, - cites = { - }, - cites_as_authority = { - 'as_authority', - 'authority' - }, - cites_as_data_source = { - "as_data_source", - "data_source" - }, - cites_as_evidence = { - 'as_evidence', - 'evidence' - }, - cites_as_metadata_document = { - 'as_metadata_document', - 'metadata_document', - 'metadata' - }, - cites_as_recommended_reading = { - 'as_recommended_reading', - 'recommended_reading' - }, - disagrees_with = { - 'disagree', - 'disagrees' - }, - disputes = { - }, - documents = { - }, - extends = { - }, - includes_excerpt_from = { - 'excerpt', - 'excerpt_from' - }, - includes_quotation_from = { - 'quotation', - 'quotation_from' - }, - obtains_background_from = { - 'background', - 'background_from' - }, - refutes = { - }, - replies_to = { - }, - updates = { - }, - uses_data_from = { - 'data', - 'data_from' - }, - uses_method_in = { - 'method', - 'method_in' - }, -} - -local default_cito_property = 'citation' - ---- Map from cito aliases to the actual cito property. -local properties_by_alias = {} -for property, aliases in pairs(properties_and_aliases) do - -- every property is an alias for itself - properties_by_alias[property] = property - for _, alias in pairs(aliases) do - properties_by_alias[alias] = property - end -end - ---- Split citation ID into cito property and the actual citation ID. If ---- the ID does not seem to contain a CiTO property, the ---- `default_cito_property` will be returned, together with the ---- unchanged input ID. -local function split_cito_from_id (citation_id) - local pattern = '^(.+):(.+)$' - local prop_alias, split_citation_id = citation_id:match(pattern) - - if properties_by_alias[prop_alias] then - return properties_by_alias[prop_alias], split_citation_id - end - - return default_cito_property, citation_id -end - ---- Citations by CiTO properties. -local function store_cito (cito_cites, prop, cite_id) - if not prop then - return - end - if not cito_cites[prop] then - cito_cites[prop] = {} - end - table.insert(cito_cites[prop], cite_id) -end - ---- Returns a Cite filter function which extracts CiTO information and ---- add it to the given collection table. -local function extract_cito (cito_cites) - return function (cite) - for k, citation in pairs(cite.citations) do - local cito_prop, cite_id = split_cito_from_id(citation.id) - store_cito(cito_cites, cito_prop, cite_id) - citation.id = cite_id - end - return cite - end -end - ---- Lists of citation IDs, indexed by CiTO properties. -local citations_by_property = {} - -return { - { - Cite = extract_cito(citations_by_property) - }, - { - Meta = function (meta) - meta.cito_cites = citations_by_property - return meta - end - } -} |