From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Andrew Hyatt Newsgroups: gmane.emacs.devel Subject: [ELPA] New package: triples Date: Tue, 25 Oct 2022 20:54:48 -0400 Message-ID: Mime-Version: 1.0 Content-Type: text/plain; format=flowed Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="19908"; mail-complaints-to="usenet@ciao.gmane.io" To: emacs-devel@gnu.org Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Wed Oct 26 02:58:53 2022 Return-path: Envelope-to: ged-emacs-devel@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1onUkv-00050z-6k for ged-emacs-devel@m.gmane-mx.org; Wed, 26 Oct 2022 02:58:53 +0200 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1onUhD-0006we-3e; Tue, 25 Oct 2022 20:55:03 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1onUhB-0006t4-Co for emacs-devel@gnu.org; Tue, 25 Oct 2022 20:55:01 -0400 Original-Received: from mail-qk1-x72d.google.com ([2607:f8b0:4864:20::72d]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1onUh9-0004Ro-KN for emacs-devel@gnu.org; Tue, 25 Oct 2022 20:55:01 -0400 Original-Received: by mail-qk1-x72d.google.com with SMTP id m6so9523325qkm.4 for ; Tue, 25 Oct 2022 17:54:58 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=mime-version:message-id:date:subject:to:from:from:to:cc:subject :date:message-id:reply-to; bh=IVF+JN4OV0cBR5oy/bWhxaePiw+1izlhoX3/UaYzRkk=; b=M1CgU53eh0dG+K+N9m2hFLs6dfveAzUptHuv/ue6cRImUlZCh8H5itGpw2oOYLGGBJ B7YSss+2O5eEde5UUZq2kC4c82FYyte4qGGkMP97pOiTJXe9ICZHt45y8+e+bkyiJPVK rEGoGMkYwX1hM/WAWlmp39bniH6deGv2X1ajY5CwmBfi5EWPrJ7t9J0rVVHcmgqb3tg9 p9L2VR47QH2/II6IkbFOFhdNhCIizvStgiGXPX/aDANc77FvqgePi/pmJHfZZnIUD0WM xCUM0/5vd7VW0RpMnoUj/MLjmeC5ZFe3gz4lY7T7W6kvZ5Eb6XW3H7RlDGDu4VGx++Zn ZXrQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=mime-version:message-id:date:subject:to:from:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=IVF+JN4OV0cBR5oy/bWhxaePiw+1izlhoX3/UaYzRkk=; b=6KshOAZB5Mo7BnU3mQVSXZxdzPeFYb3n5H74jjvuRRCbghp/q0sP/gCvIkS5CNw0Ud jH2fZJPDDt+/0hqf/Hki5IBQHKT1VhbUNW3HfWFOB/2n9yPpiDDUp17/d3uLyGMutUiu fjt4UoW8D9iW/d6FUwOnGplmD6hUW2e5Cqol445FuOMEdDlRiaYcOeZMPC8Qf3wCGSQM 5HSMZ0z4YVvs+GyPGRKRkmRt9pWFF23jUr9YYz5V9gZLsaKQrqJXarLthcZ6w5240zma qCmnnLVHXTMkoTANiryjbFtGfEe+fXg2N2quBuiJed/oWwG/a5/BQJtdaGbipM53RXju OcJg== X-Gm-Message-State: ACrzQf2jVv/kIZQEvf1xvzxjj0wcr+uetkJSOWIuSVTVohovSFdxY/y/ aEZ8lOUTmkHnuiSDqSccVi3q5RqHCLo= X-Google-Smtp-Source: AMsMyM4lNZUvNwNFZvjrMyV+y7kF2eGLA9qFIWNkOCvR6ZNhiGCnWkxwBm8x1LFAFX6HxZOU0eljpQ== X-Received: by 2002:a05:620a:448d:b0:6cf:2a91:9a31 with SMTP id x13-20020a05620a448d00b006cf2a919a31mr28976305qkp.660.1666745697738; Tue, 25 Oct 2022 17:54:57 -0700 (PDT) Original-Received: from andrews-mbp.lan (pool-71-183-193-81.nycmny.fios.verizon.net. [71.183.193.81]) by smtp.gmail.com with ESMTPSA id x10-20020ac84a0a000000b00398ed306034sm2392587qtq.81.2022.10.25.17.54.56 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 25 Oct 2022 17:54:56 -0700 (PDT) Received-SPF: pass client-ip=2607:f8b0:4864:20::72d; envelope-from=ahyatt@gmail.com; helo=mail-qk1-x72d.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Original-Sender: "Emacs-devel" Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Xref: news.gmane.io gmane.emacs.devel:298505 Archived-At: Hi everyone, I've created a new package, triples, which can be found at https://github.com/ahyatt/triples. I'd like to add this to some ELPA, and would prefer the gnu ELPA. I will be talking about this package, and examples of its use, in the upcoming Emacs conference. The package is a library which is a layer on top of sqlite, designed to store data in a particular format, where everything goes into one table. All data is expressed as "triples", a link between a subject, and an object, via a predicate. This is similar to the RDF standard. With the triples package, a schema can be defined, which also is stored in the same triples data. The schema controls what are valid representations in the database. This takes the form of types and their properites. Data about entities, and their types and properties can be stored and retrieved according to that schema, and the schema can be added by other clients, letting packages build on top of the data by adding new types, and letting the data live together in a way that's difficult to do otherwise. For example, one package could provide a way to store contact information in the database. Another package could layer on an annotation package onto that that lets contact and any other entities contain annotations. Another way to think of this is that it's a database that allows independent types, each type having a predefined set of properties, and entities that are stored can have an arbitrary set of those types. You can see a use of this in my other package that I'm developing: https://github.com/ahyatt/ekg. The package does work, and I am using ekg regularly at the moment without issues. I am the sole contributor, and have FSF papers.