{"id":23410335,"url":"https://github.com/amirouche/copernic","last_synced_at":"2025-08-25T01:30:53.421Z","repository":{"id":96216516,"uuid":"499506285","full_name":"amirouche/foundation","owner":"amirouche","description":"Data, and its history, via change requests","archived":false,"fork":false,"pushed_at":"2023-06-08T08:05:34.000Z","size":35958,"stargazers_count":5,"open_issues_count":1,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2024-12-16T02:07:14.321Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/amirouche.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-06-03T12:38:59.000Z","updated_at":"2023-11-04T13:23:09.000Z","dependencies_parsed_at":"2024-07-30T23:08:58.782Z","dependency_job_id":null,"html_url":"https://github.com/amirouche/foundation","commit_stats":null,"previous_names":["amirouche/copernic"],"tags_count":4,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/amirouche%2Ffoundation","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/amirouche%2Ffoundation/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/amirouche%2Ffoundation/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/amirouche%2Ffoundation/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/amirouche","download_url":"https://codeload.github.com/amirouche/foundation/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":230859377,"owners_count":18291154,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-12-22T17:00:24.770Z","updated_at":"2024-12-22T17:00:59.982Z","avatar_url":"https://github.com/amirouche.png","language":"Python","funding_links":[],"categories":["Layers"],"sub_categories":[],"readme":"# [copernic](https://github.com/amirouche/copernic): awesome data store\n\n**alpha**\n\n![data](https://raw.githubusercontent.com/amirouche/copernic/master/data.jpg)\n\n## Abstract\n\ncopernic is web application that is (mostly) implemented with Python\nprogramming language.  It is supported by a database that is a triple\nstore versioned.  It is possible to do time traveling queries at any\npoint in history while still being efficient to query and modify the\nlatest version.  The versioned triple store is implemented using a novel\napproach dubbed generic tuple store.  copernic goal is to demonstrate\nthat versioned databases allow to implement workflows that ease\ncooperation.\n\n## Keywords\n\n- data management system\n- data science\n- knowledge base\n- open data\n- python programming language\n- quality assurance\n- reproducible science\n- version control system\n\n## Introduction\n\nVersioning in production systems is a trick everybody knows about\nwhether it is through backup, logging systems and ad-hoc [audit\ntrails](https://code.djangoproject.com/wiki/AuditTrail).  It allows to\ninspect, debug and in worst cases rollback to previous states. There\nis not need to explain the great importance of versioning in software\nmanagement as tools like git, mercurial, and fossil have shaped modern\ncomputing.\n\nHaving the power of versioning open the door to manyfold applications.\nLike, it allows to implement a mechanic similar to github's pull\nrequests and gitlab's merge requests in many products.  That very\nmechanic is explicit about the actual human workflow in entreprise\nsettings, in particular, when a person validates a change made by\nanother person.\n\nThe *versioned triple store* make the implementation of such mechanics\nmore systematic and less error prone as the implementation can be\nshared across various tools and organisations.\n\ncopernic takes the path of versioning data and apply the\nchange-request mechanic to collaborate around the making of a\nknowledge base, similar in spirit to\n[WikiData](https://wikidata.org/) and inspired from existing data\nmanagement systems like CKAN.\n\nThe use of a version control system to store [open\ndata](https://en.wikipedia.org/wiki/Open_data) is a good thing as it\ndraws a clear path for reproducible science.  But none, meets all the\nexpectations. **copernic aims to replace the use of git and make\npractical cooperation around the creation, publication, storage,\nre-use and maintenance of knowledge bases that are possibly bigger\nthan memory.** Resource Description Framework (RDF) offers a good\ncanvas for cooperation around open data but there is no solution that\nis good enough according to [Collaborative Open Data versioning: a\npragmatic approach using Linked Data, by Canova *et\nal.*](https://core.ac.uk/download/pdf/76527782.pdf)\n\ncopernic use a novel approach to store triples in an [ordered key-value\nstore](https://en.wikipedia.org/wiki/Ordered_Key-Value_Store). It use\n[FoundationDB database storage engine](https://www.foundationdb.org/)\nto deliver a pragmatic versatile ACID-compliant versioned triple store\nwhere people can cooperate around the making of knowledge.  copernic\nonly stores changes between versions.  It has also a snapshot of the\nlatest version.  copernic does not rely on the theory of patches\nintroduced by Darcs but re-use some its vocabulary.  copernic is the\nfuture.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Famirouche%2Fcopernic","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Famirouche%2Fcopernic","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Famirouche%2Fcopernic/lists"}