-
-
Notifications
You must be signed in to change notification settings - Fork 67
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Renaming SubgraphMatrix #273
Comments
This is a good question. One caveat is that the name
For the algebraic objects, there are three possible transforms, as shown in https://derwen.ai/s/kcgh#37
Different library integrations and applications will need to mix & match different cases of these. The term subgraph has a meaning in W3C using labels to denotes subsets of triples: https://dvcs.w3.org/hg/rdf/raw-file/default/rdf-mt/index.html#notation Labeled property graphs have related features, ergo the "label" notation. In either case, this definition has become rather archaic: it's too explicit, often seriously constrained in practice (either SPARQL or Cypher had odd limitations), and not really quite what's needed in a world were ML applications are widespread. A more contemporary definition – and what's intended here – is that some repeatable process can be used to identify regions of interest within a relatively larger overall graph. It's important to note that a subgraph could be produced by several competing or even conflicting means other than explicit labels or other annotations: declarative (queries), empirical (Graph ML), algorithmic (connected components), probabilistic (PSL), topological, counterfactuals, etc. Our our So one might think of industry use cases for KGs, where there's some very large graph, but then particular data objects which are subgraphs that been constructed from some common set of definitions. These data objects might be repeated many times, for example with Bill of Materials within customer data. We've had some lively discourse among researchers who are actively pursuing research in this area, and applications that would fit. FWIW, I started out with a reinforcement learning demo for topological categories. I'd definitely loop in: @maparent @jmueller5 @mbesta @jelisf @paoespinozarias @neobernad Thinking about subgraphs has certainly evolved much since these library components were named in late 2020, with many thanks to @jmueller5 as the prime force of nature for pragmatic ideas about leveraging subgraphs! Here's a summary of different possible subgraph construction approaches we've encountered, so far: Elements for formal descriptions of subgraphs
The core idea is we must be able to blend any of the above. On the one hand I want to be careful not to introduce misnomers (e.g., my conflation of "transform" vs. "subset" operations). On the other hand, we should not optimize this area to be too specific to a given instance (e.g., SPARQL => matrix). And (speaking as a person with formal math background who loves functional programming) we should not let the Linear Algebra camp dictate definitions ;) Decades of that got us into the current mess! I would much rather follow the brilliant lessons from projects such as |
Thanks for summing up the scope so well, this will keep the discussion on the right footing.
Ok so it would be better to have pluggable classes that inherit somehow from
I support this approach My main question was about having a clear entrypoint to all these functionalities via an instatiation of a generic class (
This will allow to keep the current workflow using Anyway, if EDITED |
Excellent plan! Having a And I really agree with what you pointed out about the name "matrix", that does lead to confusion when people don't have exposure to algebraic graph theory. How about if we used naming conventions similar to NumPy?
|
Both naming conventions are clear, but vector/matrix/tensor are generally understood concepts within all of computer science, while "ND" without any context may be somewhat confusing. That said, the latter is shorter to write... haha |
Hello,
Thanks for sharing - I'm working on a closely related stuff these days (will send a link once it's out).
Best,
Maciej
…-------------------------------------
Maciej Besta
https://people.inf.ethz.ch/bestam
Dept. of Computer Science
ETH Zürich
Universitätsstrasse 6
Zurich-8092, Switzerland
________________________________________
From: Paco Nathan ***@***.***
Sent: Monday, September 19, 2022 7:29 PM
To: DerwenAI/kglab
Cc: Besta Maciej; Mention
Subject: Re: [DerwenAI/kglab] Renaming SubgraphMatrix (Issue #273)
Excellent plan!
Having a Frame class works well. Connotations of the word "Frame" (more general than "DataFrame" which is a table) fit well here.
And I really agree with what you pointed out about the name "matrix", that does lead to confusion when people don't have exposure to algebraic graph theory.
How about if we used naming conventions similar to NumPy?
* instead of "vector" => "1D"
* instead of "matrix" => "2D"
* instead of "tensor" => "ND"
—
Reply to this email directly, view it on GitHub<#273 (comment)>, or unsubscribe<https://github.com/notifications/unsubscribe-auth/ACBPFSQKSPY5AS2FKAXPVZDV7CPGVANCNFSM6AAAAAAQGVP734>.
You are receiving this because you were mentioned.Message ID: ***@***.***>
[ { ***@***.***": "http://schema.org", ***@***.***": "EmailMessage", "potentialAction": { ***@***.***": "ViewAction", "target": "#273 (comment)", "url": "#273 (comment)", "name": "View Issue" }, "description": "View this Issue on GitHub", "publisher": { ***@***.***": "Organization", "name": "GitHub", "url": "https://github.com" } } ]
|
SubGraphMatrix
(and in perspectiveSubGraphTensor
) is the reference class for graph algebra and network analysis. Would it be better to rename thesubg.py
module and classes therein for encompassing a more general approach?For example:
subg.py
-> ?SubGraphMatrix
: keeping the fact that a SPARQL query is needed (so the subgraph naming), it would be better from a data scientist point-of-view to have this class to follow some more popular convention like for exampleGraphFrame
orDataGraph
orNetFrame
(just throw a die with the right naming permutations, I though about this names: graph, frame, net, datagram, data, table, ...)SubGraphTensor
-> as above for future applicationscc: @ceteri @tomaarsen
The text was updated successfully, but these errors were encountered: