Nick Smith
08/10/2020, 12:16 PMAndrew McNutt
08/10/2020, 12:54 PMChris Knott
08/10/2020, 1:13 PMperson #father#banned #blond
person #father #blond#banned
(person #father #blond)#banned
These could be used to represent, person banned for being a father, banned for being blond, and banned for being a blond father. The top one would match a query of #banned
, #father
, #blond
and #banned#father
but not #banned#blond
o you could remember what filter the object is being considered under at the time the tag is applied.Jack Rusher
08/10/2020, 2:18 PMChris Knott
08/10/2020, 2:24 PMNick Smith
08/10/2020, 2:27 PMNick Smith
08/10/2020, 2:37 PMChris Knott
08/10/2020, 2:41 PMNick Smith
08/10/2020, 2:54 PMS.M Mukarram Nainar
08/10/2020, 3:30 PMJack Rusher
08/10/2020, 4:09 PM#baker
and #skilled_baker
are different tags
* (semantic) person hasRole Baker with a property on this
instance of the hasRole property that indicates mastery
* (statistical 1) mastery is inferred from another property (years
baking, number of awards won)
* (statistical 2) mastery is inferred from the position of the entity
in some vector space (think Word2Vec and friends)Jack Rusher
08/10/2020, 4:11 PMAndrew F
08/10/2020, 5:04 PMStefan
08/10/2020, 5:07 PMAndrew F
08/10/2020, 5:15 PMAndrew F
08/10/2020, 5:22 PMbob (#baker) (#writer (#skilled))
, where you can think of the nesting as expanding to #writer #writer/skilled
for a hierarchy-oblivious system. From a logic perspective it might be more accurate to call it #writer->skilled
, i.e. invoking implication, but I haven't quite figured out how that works, either...Robert Butler
08/10/2020, 7:39 PMNick Smith
08/11/2020, 1:21 AM#skilled_baker
is an atomic tag, then you can't add qualifiers (extra adjectives) programmatically, unless you feel like playing with string parsing. I feel like qualifiers could be really important in a tag-based programming system: you can use it to organise/sort information within a specific context (noun), i.e. you don't pollute the global tag space and thereby risk the accidental inclusion of an entity into some faraway dataset that happened to use the same qualifier. You can use qualifiers to programmatically sort your `#user`s into #free
`#user`s and #premium
`#user`s.
• (semantic) To me, this is the "graph view" of the problem. A graph-based model is an alternative to a tag-based model, in my mind (though some might argue you can combine them or switch between them). Some people are doing graphs, but I'm personally trying to avoid graphs where possible.
• (statistical 1) This is about code (inference), not merely data! I think code is an important layer, but we can (and should) keep the layers separate. Code is not a tag, but code can apply tags. That still leaves us with the original question of what the tagging model should be.
• (statistical 2) Ditto.Nick Smith
08/11/2020, 1:27 AMNick Smith
08/11/2020, 1:36 AMwtaysom
08/11/2020, 5:28 AMJack Rusher
08/11/2020, 6:37 AMNick Smith
08/11/2020, 7:06 AMNick Smith
08/11/2020, 7:14 AMNick Smith
08/11/2020, 7:21 AMStefan
08/11/2020, 9:41 AMNick Smith
08/11/2020, 10:15 AMNick Smith
08/11/2020, 10:20 AMAndrew F
08/11/2020, 6:15 PMRobert Butler
08/11/2020, 8:10 PMRobert Butler
08/11/2020, 8:27 PMRobert Butler
08/11/2020, 8:55 PMRobert Butler
08/11/2020, 9:01 PMRobert Butler
08/11/2020, 9:04 PMNick Smith
08/12/2020, 12:06 AMNick Smith
08/12/2020, 1:05 AMNick Smith
08/12/2020, 1:15 AMRobert Butler
08/15/2020, 12:02 AMRobert Butler
08/15/2020, 12:06 AMRobert Butler
08/15/2020, 12:09 AMRobert Butler
08/15/2020, 12:09 AMNick Smith
08/15/2020, 12:20 AMNick Smith
08/15/2020, 12:25 AMNick Smith
08/15/2020, 12:26 AMNick Smith
08/15/2020, 12:28 AMNick Smith
08/15/2020, 12:30 AMNick Smith
08/15/2020, 12:33 AMNick Smith
08/15/2020, 12:35 AMChris Knott
04/26/2022, 12:26 PMNick Smith
04/27/2022, 12:01 AMChris Knott
04/27/2022, 6:29 AMNick Smith
04/27/2022, 6:38 AMJoakim Ahnfelt-Rønne
04/28/2022, 3:54 PM= value
, > value
, etc.
Example entity:
#baker[skill="high" since=2018] #father[child=anna] #father[child=bob]
Example query (highly skilled baker who is also a father):
#baker[skill="high"] #father
Chris Knott
04/28/2022, 4:46 PM#*[skill="high"]
Joakim Ahnfelt-Rønne
04/28/2022, 4:58 PMskill
really mean the same thing in different contexts?
The syntax I suggested also makes a bunch of other things awkward/impossible:
• Nested queries (e.g. find fathers of highly skilled bakers)
• Field relations (e.g. field1=field2)
For my use case, this is by design, because it only allows specifying "fast" queries. But another system might want to lift those restrictions.