Max, just to be clear, are you basically saying that this problem is best solved by a relational db instead of a graph db?
Thanks, Aseem On Wed, Jun 8, 2011 at 11:21 PM, Max De Marzi Jr. <maxdema...@gmail.com>wrote: > Aseem, > > Which users tagged what? SELECT DISTINCT user_id FROM USER_TAGS WHERE > bookmark_id = x > Which bookmarks did a user tag? SELECT DISTINCT bookmark_id FROM > USER_TAGS WHERE user_id = x > Which bookmarks were tagged with x? SELECT DISTINCT bookmark_id FROM > USER_TAGS WHERE tag_id = x > > What question are you trying to answer that you can't get from a > relational table? > > I think it's better to make your model depending on the questions you > are trying to answer. > > I have a similar model (users tagging users) and I needed to answer: > Which users have been tagged by me or my network 6 degrees out? > What is the tagged distance a user is away from another user? > > Turns out, all I needed was User nodes with Tagged links. User -> > tagged -> User -> tagged -> User > Everything else I get from the relational db. > > When I start to care about which users have been tagged for by me or > my network 6 degrees out for this KEYWORD, then I'll create a more > complex model: > User -> UserKeyword -> tagged -> UserKeyword -> User > Keyword ---/ Keyword ---/ > > Regards, > Max > > On Thu, Jun 9, 2011 at 12:33 AM, Aseem Kishore <aseem.kish...@gmail.com> > wrote: > > Also forgot to add: now if you want to show all links (globally) for a > given > > tag, how do you do that? Are you indexing each tag-link (as a key-value > > pair) every time a tag is added? Removing from the index every time a tag > is > > deleted? > > > > Thanks, > > > > Aseem > > > > On Wed, Jun 8, 2011 at 10:31 PM, Aseem Kishore <aseem.kish...@gmail.com > >wrote: > > > >> I forgot to state this, but a key requirement of tags of course is that > you > >> can apply multiple of them to the same link. > >> > >> Would you still go that route then? > >> > >> If you want to delete a link from your bookmarks, it's a matter then of > >> deleting each tag edge? > >> > >> Aseem > >> > >> > >> On Wed, Jun 8, 2011 at 10:28 PM, Siddhartha Kasivajhula < > >> countvajh...@gmail.com> wrote: > >> > >>> Couldn't you use edges for "tags" instead of nodes? > >>> > >>> user1 --tag--> link1 > >>> user2 --tag--> link1 > >>> user1 --tag--> link2 > >>> > >>> > >>> On Wed, Jun 8, 2011 at 10:23 PM, Aseem Kishore < > aseem.kish...@gmail.com > >>> >wrote: > >>> > >>> > Hi guys, > >>> > > >>> > We're thinking about implementing tags in our system, and we're > >>> pondering a > >>> > few ideas for how we'd go about it, and none of them seem perfect. > I'd > >>> like > >>> > to ask you guys: how would you design an analogous case: Del.icio.us > ? > >>> > > >>> > At the core, *users bookmark links*, so it makes sense to have > "users" > >>> and > >>> > "links" as types of nodes, and "bookmark" as the type of edge that > >>> connects > >>> > them. Now, you can see all the links a given user has bookmarked, and > >>> all > >>> > the users that have bookmarked a given link. > >>> > > >>> > Now users can also *tag* links, of course, but the most interesting > >>> > requirement is that, when I'm looking at *my links*, I only want to > see > >>> *my > >>> > tags*. Thus, tags can't be tied just to links; they have to be tied > to > >>> > users > >>> > too. But most importantly, you have to maintain *which* user and > *which* > >>> > link *each* tag is for. > >>> > > >>> > Thus, it seems most intuitive to us if we could have "tags" be nodes > >>> > that *point > >>> > to the "bookmark" edges*. Unfortunately, that's a hypergraph, which > >>> Neo4j > >>> > doesn't support. > >>> > > >>> > We could use intermediate nodes for bookmarks maybe, but that sort of > >>> sucks > >>> > to lose the intuitiveness of the graph and introduce redundant edges, > >>> more > >>> > complexity which makes consistency harder, etc. > >>> > > >>> > We have some other ideas, but I'm curious if any of you guys have > >>> thought > >>> > about this already or have done it, or if you guys have thoughts. > Thanks > >>> in > >>> > advance! > >>> > > >>> > Aseem > >>> > _______________________________________________ > >>> > Neo4j mailing list > >>> > User@lists.neo4j.org > >>> > https://lists.neo4j.org/mailman/listinfo/user > >>> > > >>> _______________________________________________ > >>> Neo4j mailing list > >>> User@lists.neo4j.org > >>> https://lists.neo4j.org/mailman/listinfo/user > >>> > >> > >> > > _______________________________________________ > > Neo4j mailing list > > User@lists.neo4j.org > > https://lists.neo4j.org/mailman/listinfo/user > > > _______________________________________________ > Neo4j mailing list > User@lists.neo4j.org > https://lists.neo4j.org/mailman/listinfo/user > _______________________________________________ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user