{"id":17328308,"url":"https://github.com/mvarela/clj-bibtex","last_synced_at":"2026-05-19T07:34:44.255Z","repository":{"id":144756356,"uuid":"222068559","full_name":"mvarela/clj-bibtex","owner":"mvarela","description":"A simple wrapper around the jbibtex library, allowing to work with BibTeX bibliographies as data","archived":false,"fork":false,"pushed_at":"2019-12-05T10:14:19.000Z","size":90,"stargazers_count":5,"open_issues_count":3,"forks_count":1,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-09-16T18:22:22.028Z","etag":null,"topics":["bibtex","clojure","clojure-library","latex"],"latest_commit_sha":null,"homepage":null,"language":"TeX","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"epl-1.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mvarela.png","metadata":{"files":{"readme":"README.org","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":"2019-11-16T08:20:33.000Z","updated_at":"2025-09-13T20:03:18.000Z","dependencies_parsed_at":null,"dependency_job_id":"8fc492c3-a5be-49b0-ad35-614592d16e1a","html_url":"https://github.com/mvarela/clj-bibtex","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/mvarela/clj-bibtex","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mvarela%2Fclj-bibtex","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mvarela%2Fclj-bibtex/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mvarela%2Fclj-bibtex/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mvarela%2Fclj-bibtex/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mvarela","download_url":"https://codeload.github.com/mvarela/clj-bibtex/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mvarela%2Fclj-bibtex/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33206320,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-19T07:16:55.748Z","status":"ssl_error","status_checked_at":"2026-05-19T07:16:54.366Z","response_time":58,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["bibtex","clojure","clojure-library","latex"],"created_at":"2024-10-15T14:23:24.582Z","updated_at":"2026-05-19T07:34:44.234Z","avatar_url":"https://github.com/mvarela.png","language":"TeX","funding_links":[],"categories":[],"sub_categories":[],"readme":"* clj-bibtex\n[[https://circleci.com/gh/mvarela/clj-bibtex][https://circleci.com/gh/mvarela/clj-bibtex.svg?style=svg]]\n[[https://clojars.org/fi.varela/clj-bibtex][https://img.shields.io/clojars/v/fi.varela/clj-bibtex.svg]]\n[[https://codecov.io/gh/mvarela/clj-bibtex][https://codecov.io/gh/mvarela/clj-bibtex/branch/master/graph/badge.svg]]\n\n\n\n  A simple wrapper around [[https://github.com/jbibtex/jbibtex][jbibtex]] for handling BibTeX bibliographies..\n\n  =jbibtex= is a nice, robust library, but it is a bit too OO to use with direct\n  interop. =clj-bibtex= provides a way to load a =.bib= file into plain Clojure\n  data structures, and optionally into a Datascript database, allowing fuzzy\n  searches and de-duplication of entries.\n\n  The idea is to build on top of this some functionality for managing the\n  bibliography ()\n** Usage\n   The API is quite basic. It has functionality to parse and serialize\n   bibliographies (in =fi.varela.clj-bibtex.core=), and to feed them into a\n   Datascript DB (in =fi.varela.clj-bibtex.db=), from where we can also do\n   queries, and re-build (normalized) BibTeX output.\n\n   The DB API supports fuzzy searches, and finding similar author names or paper\n   titles, which sometimes can sneak into a .bib file used in several papers.\n   \n** Options\n\n   None! Simple, isn't it? \n\n** Examples\n\n   If you start a REPL in this project, you can test it with  \n#+begin_src clojure :exports code\n  (in-ns 'user)\n\n  (require '[fi.varela.clj-bibtex.core :as b]\n           '[fi.varela.clj-bibtex.db :as d]\n           '[clojure.java.io :as io]\n           '[clojure.string :as string])\n\n  (def biblio  (b/parse-bibliography (-\u003e\u003e \"samples/literature.bib\"\n                                      io/resource\n                                      io/as-file\n                                      (#(.getPath %)))))\n\n  (def conn (d/make-conn))\n\n  (d/ingest-bibliography! conn biblio)\n  ;; =\u003e [\"Cannot add #datascript/Datom [559 :publication/title \\\"A machine learning approach to classifying YouTube QoE based on encrypted network traffic\\\" 536871073 true] because of unique constraint: (#datascript/Datom [407 :publication/title \\\"A machine learning approach to classifying YouTube QoE based on encrypted network traffic\\\" 536871023 true])\" \"Cannot add #datascript/Datom [607 :publication/title \\\"SDNDASH: Improving QoE of HTTP Adaptive Streaming Using Software Defined Networking\\\" 536871088 true] because of unique constraint: (#datascript/Datom [152 :publication/title \\\"SDNDASH: Improving QoE of HTTP Adaptive Streaming Using Software Defined Networking\\\" 536870953 true])\" \"Cannot add #datascript/Datom [651 :publication/title \\\"Understanding the impact of video quality on user engagement\\\" 536871105 true] because of unique constraint: (#datascript/Datom [431 :publication/title \\\"Understanding the impact of video quality on user engagement\\\" 536871034 true])\" \"Cannot add #datascript/Datom [713 :publication/title \\\"QoE-centric service delivery: A collaborative approach among OTTs and ISPs\\\" 536871124 true] because of unique constraint: (#datascript/Datom [316 :publication/title \\\"QoE-centric service delivery: A collaborative approach among OTTs and ISPs\\\" 536870994 true])\"]\n  ;; Duplicate entries are not added to the DB, currently\n\n  (d/fuzzy-by-author @conn \"atzor\")\n  ;; =\u003e [{:publication/publisher \"Elsevier\",\n  ;;   :publication/volume \"110\",\n  ;;   :publication/pages \"168–179\",\n  ;;   :publication/author\n  ;;   [#:author{:name \"Ahmad, Arslan\"}\n  ;;    #:author{:name \"Floris, Alessandro\"}\n  ;;    #:author{:name \"Atzori, Luigi\"}],\n  ;;   :publication/type :article,\n  ;;   :publication/journal \"Computer Networks\",\n  ;;   :publication/title\n  ;;   \"QoE-centric service delivery: A collaborative approach among OTTs and ISPs\",\n  ;;   :db/id 316,\n  ;;   :publication/key \"ahmad2016qoe\",\n  ;;   :publication/year 2016}\n  ;;  {:publication/pages \"1–6\",\n  ;;   :publication/booktitle\n  ;;   \"Quality of Multimedia Experience (QoMEX), 2016 Eighth International Conference on\",\n  ;;   :publication/author\n  ;;   [#:author{:name \"Ahmad, Arslan\"}\n  ;;    #:author{:name \"Floris, Alessandro\"}\n  ;;    #:author{:name \"Atzori, Luigi\"}],\n  ;;   :publication/type :inproceedings,\n  ;;   :publication/organization \"IEEE\",\n  ;;   :publication/title\n  ;;   \"QoE-aware service delivery: a joint-venture approach for content and network providers\",\n  ;;   :db/id 360,\n  ;;   :publication/key \"ahmad2016qoeQOMEX16\",\n  ;;   :publication/year 2016}\n  ;;    ...\n\n  (d/fuzzy-by-title @conn \"level ag\")\n  ;; =\u003e [{:publication/pages \"1741–1746\",\n  ;;      :publication/booktitle\n  ;;      \"2015 IEEE International Conference on Communication Workshop (ICCW)\",\n  ;;      :publication/author\n  ;;      [#:author{:name \"Varela, Martn\"}\n  ;;       #:author{:name \"Zwickl, Patrick\"}\n  ;;       #:author{:name \"Schulzrinne, Henning\"}\n  ;;       #:author{:name \"Reichl, Peter\"}\n  ;;       #:author{:name \"Xie, Min\"}],\n  ;;      :publication/type :inproceedings,\n  ;;      :publication/organization \"IEEE\",\n  ;;      :publication/title\n  ;;      \"From Service Level Agreements (SLA) to Experience Level Agreements (ELA): The Challenges of Selling QoE to the User\",\n  ;;      :db/id 651,\n  ;;      :publication/key \"varela2015service\",\n  ;;      :publication/year 2015}]\n\n  (doseq [entry (map b/-\u003ebib  (d/fuzzy-by-title @conn \"management\"))]\n    (println entry))\n  ;; =\u003e\n  ;; @inproceedings{bertozzi2002power,\n  ;; \tvolume: {2},\n  ;; \tpages: {926–930},\n  ;; \tbooktitle: {Wireless Communications and Networking Conference, 2002. WCNC2002. 2002 IEEE},\n  ;; \tauthor: {Bertozzi, Davide and Benini, Luca and Ricco, Bruno},\n  ;; \torganization: {IEEE},\n  ;; \ttitle: {{Power aware network interface management for streaming multimedia}},\n  ;; \tyear: {2002},\n  ;; }\n  ;; @article{wang2017data,\n  ;; \tpublisher: {IEEE},\n  ;; \tvolume: {24},\n  ;; \tpages: {102–110},\n  ;; \tauthor: {Wang, Ying and Li, Peilong and Jiao, Lei and Su, Zhou and Cheng, Nan and Shen, Xuemin Sherman and Zhang, Ping},\n  ;; \tjournal: {IEEE Wireless Communications},\n  ;; \ttitle: {{A data-driven architecture for personalized QoE management in 5G wireless networks}},\n  ;; \tnumber: {1},\n  ;; \tyear: {2017},\n  ;; }\n  ;; @inproceedings{hossfeld2017betas,\n  ;; \tpages: {1011–1016},\n  ;; \tbooktitle: {Integrated Network and Service Management (IM), 2017 IFIP/IEEE Symposium on},\n  ;; \tauthor: {Hoßfeld, Tobias and Fiedler, Markus and Gustafsson, Jörgen},\n  ;; \torganization: {IEEE},\n  ;; \ttitle: {{Betas: Deriving quantiles from mos-qos relations of iqx models for qoe management}},\n  ;; \tyear: {2017},\n  ;; }\n  ;; @inproceedings{awobuluyi:video-quality,\n  ;; \tpages: {1657-1662},\n  ;; \tbooktitle: {2015 IEEE International Conference on Computer and Information Technology; Ubiquitous Computing and Communications; Dependable, Autonomic and Secure Computing; Pervasive Intelligence and Computing},\n  ;; \tauthor: {Awobuluyi, O. and Nightingale, J. and Wang, Q. and Alcaraz-Calero, J. M.},\n  ;; \ttitle: {{Video Quality in 5G Networks: Context-Aware QoE Management in the SDN Control Plane}},\n  ;; \tdoi: {10.1109/CIT/IUCC/DASC/PICOM.2015.250},\n  ;; \tyear: {2015},\n  ;; \tmonth: {Oct},\n  ;; }\n  ;; ...\n\n\n  (similar-titles @conn)\n  ;;=\u003e\n  ;;[[\"Adaptive psychometric scaling for video quality assessment\"\n  ;;\"Adaptive testing for video quality assessment\"\n  ;;0.8085106382978723]\n  ;;[\"OTT-ISP Joint Service Management: A Customer Lifetime Value Based Approach\"\n  ;;\"OTT-ISP Joint service management: a customer lifetime value based approach\"\n  ;;0.7786259541984732]\n  ;;[\"OTT-ISP Joint service management: a customer lifetime value based approach\"\n  ;;\"OTT-ISP joint service management: a Customer Lifetime Value based approach \"\n  ;;0.8702290076335878]\n  ;;[\"Understanding the impact of network dynamics on mobile video user engagement\"\n  ;;\"Understanding the impact of video quality on user engagement\"\n  ;;0.743801652892562]]\n\n  (similar-authors @conn :fuzz-level 0.9)\n  ;;=\u003e\n  ;;[[\"Heegaard, Poul\" \"Heegaard, Poul E\" 0.9285714285714286]\n  ;;[\"Heegaard, Poul E\" \"Heegaard, Poul E.\" 0.967741935483871]\n  ;;[\"Kara, Peter A\" \"Kara, Peter A.\" 0.96]\n  ;;[\"Liu, Xi\" \"Liu, Xin\" 0.9230769230769231]\n  ;;[\"Martini, Maria G\" \"Martini, Maria G.\" 0.9629629629629629]\n  ;;[\"Schatz, Raimund\" \"Schatz, Raimund.\" 0.9655172413793104]\n  ;;[\"Skorin-Kapov, L.\" \"Skorin-Kapov, Lea\" 0.9032258064516129]\n  ;;[\"Yang, Zhe\" \"Yang, Zhen\" 0.9411764705882353]]\n\n\n#+end_src \n*** Bugs\n\n...\n\n\n** License\n\nCopyright © 2019 Martín Varela\n\nDistributed under the Eclipse Public License either version 1.0 or (at\nyour option) any later version.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmvarela%2Fclj-bibtex","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmvarela%2Fclj-bibtex","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmvarela%2Fclj-bibtex/lists"}