The Great Tree Forum Index The Great Tree
still kickin'
 
 FAQFAQ   SearchSearch   Poster ListPoster List   Member ListMember List  UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 
 Links:   great tree   uru live   uru obsession   drc site  

 Documentaries:    learn the story of the great tree

Planning a new MOUL directory: Rel.to
Goto page Previous  1, 2, 3, 4, 5, 6, 7, 8, 9, 10  Next
 
Post new topic   Reply to topic    The Great Tree Forum Index -> Randomness Forum
View previous topic :: View next topic  
Author Message
Erik
Great Tree Member
Great Tree Member


Joined: 23 Sep 2006
Posts: 1121
Location: the Netherlands

PostPosted: Sun Dec 09, 2007 1:41 pm    Post subject: Reply with quote

So you want a tag to be followed or not depending on the parents? Is that right?
It's possible... but it would really create the database overcomplicated and slow everything down if you ask me. Everything would have to be changed, while this is a rare case.
Back to top
View user's profile Send private message Visit poster's website
Durin Mephit
Great Tree Officer
Great Tree Officer


Joined: 29 Jan 2004
Posts: 3119
Location: Tigard, OR

PostPosted: Sun Dec 09, 2007 1:46 pm    Post subject: Reply with quote

Yes, Erik...

I know it's complicated. It's going to be challenging to come up with a way of building this tree that doesn't bog the system down and require many queries just to generate a single page.

I'm trying to see the benefit of organizing by parent rather than by child, but you can probably explain faster than I can figure it out Smile

I'll list some additional tags and how they're supposed to work, so the example is a little more thought out.

'mystonline' and 'uru' are non-primary tags associated with 'moul', which is attached to a site.

'incavern' and 'incharacter' are non-primary tags associated with 'ic', which is not attached to a site.

'drcwebsite' is a non-primary tag associated with 'drcsite', which is attached to a site.
_________________
Durin Mephit * Member of Guild of Messengers - Unless otherwise stated, opinions are mine only and not Guild endorsed.
rel.to | Marten KI: 59474 | Durin M KI: 11883768
Back to top
View user's profile Send private message
Erik
Great Tree Member
Great Tree Member


Joined: 23 Sep 2006
Posts: 1121
Location: the Netherlands

PostPosted: Sun Dec 09, 2007 2:00 pm    Post subject: Reply with quote

In the future new tags will be created.

Let's assume that I want to make to make a new tag called X, that has parents A, B and C.
With the current table lay-out, I can fill in (for the tag X) for parents "A;B;C".
So:
1) When making tag X -> set children to A;B;C

If a tag would list children instead of parents, it would be like this:

The script will have to require the parents from the database (A,B,C). After that, the children for A need to be updated, the children for B need to be updated and the children for C need to be updated.
So:
1) Require the id's of the parents for X
2) Retrieve the children from A
3) Add X to the list of children and update the record for A
4) Retrieve the children from B
5) Add X to the list of children and update the record for B
6) Retrieve the children from C
7) Add X to the list of children and update the record for C

Instead of 1 query you would have 7 queries and on top of that, you have to 'mess' with already existing tags. There is no right or wrong way here, but it just seems better to me if you can leave all the old tag untouched when creating new ones.

I hope that explains why I chose to list parents instead of children.

EDIT: About the last part of your post: you want a good set of substitutes for each tag. What if a new column called "synonym" or something is added to the database.

Like:
ID: 100
name: drcwebsite
parents: (empty)
follow: (empty)
synonym: 5
When someone requests the tag drcwebsite, the script will look if the synonym column is set. It is set to 5, so the script will use the details of record 5 (drcsite) for drcwebsite.

Something like that?


Last edited by Erik on Sun Dec 09, 2007 2:06 pm; edited 1 time in total
Back to top
View user's profile Send private message Visit poster's website
Durin Mephit
Great Tree Officer
Great Tree Officer


Joined: 29 Jan 2004
Posts: 3119
Location: Tigard, OR

PostPosted: Sun Dec 09, 2007 2:03 pm    Post subject: Reply with quote

That makes a lot of sense, Erik; but I was wondering what sort of query will be used to build the tree if the relationships are designed in the opposite direction.
_________________
Durin Mephit * Member of Guild of Messengers - Unless otherwise stated, opinions are mine only and not Guild endorsed.
rel.to | Marten KI: 59474 | Durin M KI: 11883768
Back to top
View user's profile Send private message
Erik
Great Tree Member
Great Tree Member


Joined: 23 Sep 2006
Posts: 1121
Location: the Netherlands

PostPosted: Sun Dec 09, 2007 2:22 pm    Post subject: Reply with quote

Like I said here
Quote:
If someone goes to http://rel.to/IC the script looks in the tags table for a tag named ‘IC’. The script finds tag ‘1’. The script looks if there is an entry for ‘3’ in the table entries. No, there isn’t, so the script has to build a tree. The script will look in the tags database if there are tags with ‘1’ as their parent. The script finds children 3:tgt, 4:sf243 and 5:drcsite. The script now looks if those children have children of their own, except for 5:drcsite because ‘follow’=0. No, they haven’t, so the script has reached the end station. The script also looks up the titles and descriptions for 3:tgt, 4:sf243 and 5:drcsite in the entries database. The end result is displayed.


If tag X is requested, the script will look in the tag table if there are tags that have X as a parent. And then it will look if those children have children of their own in the same way. It should be equally fast than the other way 'round unless I'm forgetting something.

And I've just seen your edits on the previous page...
Quote:
I also think you have the parent data for "drc forums" set to the wrong element?
Yes, the 4 is supposed to be a 5. Embarassed
Back to top
View user's profile Send private message Visit poster's website
Durin Mephit
Great Tree Officer
Great Tree Officer


Joined: 29 Jan 2004
Posts: 3119
Location: Tigard, OR

PostPosted: Sun Dec 09, 2007 9:06 pm    Post subject: Reply with quote

I'm confused, Erik. Sad But that's ok, it's common these days.

Erik wrote:
If someone goes to http://rel.to/IC the script looks in the tags table for a tag named ‘IC’. The script finds tag ‘1’. The script looks if there is an entry for ‘3’ in the table entries. No, there isn’t, so the script has to build a tree.


The script looks in the "tags" table for a match of "Name:IC". It finds one match, "ID:1, Name:IC, Parents:0, Follow:1."

That much I understand. Now... why does the script look in the "entries" table for a 3? This is the part where I'm lost. How does looking for a 3 tell it that it needs to build a tree?

Erik wrote:
If tag X is requested, the script will look in the tag table if there are tags that have X as a parent. And then it will look if those children have children of their own in the same way. It should be equally fast than the other way 'round unless I'm forgetting something.


Let me see.
You're building a query where in table 'tags', name='ic', and the ID of the found tag must match a value in 'parents' of other tags in the same table.

With no recursion of that process, that generates this set:

ic
|--tgt
|--sf243
└--drcsite

In the scheme so far, it looks to me like 'entries' only needs to be accessed to see if a URL is assigned or not. Whether or not a URL is assigned shouldn't affect whether a tree is built or not... a tree should always be built unless a 'nofollow' is encountered.
_________________
Durin Mephit * Member of Guild of Messengers - Unless otherwise stated, opinions are mine only and not Guild endorsed.
rel.to | Marten KI: 59474 | Durin M KI: 11883768
Back to top
View user's profile Send private message
Erik
Great Tree Member
Great Tree Member


Joined: 23 Sep 2006
Posts: 1121
Location: the Netherlands

PostPosted: Mon Dec 10, 2007 4:40 am    Post subject: Reply with quote

That is because of what you wrote earlier:
Marten wrote:
* If the user accesses a tag by URL, e.g. http://rel.to/moul, and the tag is associated with a link, the user will be forwarded to that website.
* If the user accesses a tag by URL that has no associated link, the site will check the children and generate a tree.


Here is the full context:
Quote:
If someone goes to http://rel.to/tgt the script looks in the tags table for a tag named ‘tgt’. The script finds tag ‘3’. The script looks if there is an entry for ‘3’ in the table entries. Yes, there is; the user is redirected.
If someone goes to http://rel.to/IC the script looks in the tags table for a tag named ‘IC’. The script finds tag ‘1’. The script looks if there is an entry for ‘3’ in the table entries. No, there isn’t, so the script has to build a tree.

So if someone accesses a tag by URL, the script will search for the id of that tag in "tags" and then it will look in "entries" to see if there is an entry for that id, which means that there is an URL associated with it.
If the script finds an entry, the user will be redirected at once. If there isn't, the tree will be built and displayed.
Back to top
View user's profile Send private message Visit poster's website
dcos
Great Tree Member
Great Tree Member


Joined: 21 Feb 2006
Posts: 1174

PostPosted: Mon Dec 10, 2007 5:57 am    Post subject: Reply with quote

Shocked Uh... yes, I agree. Smile
Back to top
View user's profile Send private message
Durin Mephit
Great Tree Officer
Great Tree Officer


Joined: 29 Jan 2004
Posts: 3119
Location: Tigard, OR

PostPosted: Mon Dec 10, 2007 9:02 pm    Post subject: Reply with quote

Alright. Um... yeah. I missed that part without the context.

Next question?
_________________
Durin Mephit * Member of Guild of Messengers - Unless otherwise stated, opinions are mine only and not Guild endorsed.
rel.to | Marten KI: 59474 | Durin M KI: 11883768
Back to top
View user's profile Send private message
Durin Mephit
Great Tree Officer
Great Tree Officer


Joined: 29 Jan 2004
Posts: 3119
Location: Tigard, OR

PostPosted: Fri Jan 04, 2008 12:25 am    Post subject: Reply with quote

Erik,

Do you have any spare time to do some more thinking on the proposed design?
_________________
Durin Mephit * Member of Guild of Messengers - Unless otherwise stated, opinions are mine only and not Guild endorsed.
rel.to | Marten KI: 59474 | Durin M KI: 11883768
Back to top
View user's profile Send private message
Erik
Great Tree Member
Great Tree Member


Joined: 23 Sep 2006
Posts: 1121
Location: the Netherlands

PostPosted: Fri Jan 04, 2008 5:16 am    Post subject: Reply with quote

Not sure, but I'll see. Wink Perhaps the whole database lay-out needs to be revised now that I understand you better, so that it is a bit more flexible.
Back to top
View user's profile Send private message Visit poster's website
Durin Mephit
Great Tree Officer
Great Tree Officer


Joined: 29 Jan 2004
Posts: 3119
Location: Tigard, OR

PostPosted: Fri Jan 04, 2008 12:08 pm    Post subject: Reply with quote

Agreed. If you have any ideas on how we can "flatten" the db... maybe one approach is to only, ever, drill down one level... and if someone clicks on one of the children, any grandchildren then appear.
_________________
Durin Mephit * Member of Guild of Messengers - Unless otherwise stated, opinions are mine only and not Guild endorsed.
rel.to | Marten KI: 59474 | Durin M KI: 11883768
Back to top
View user's profile Send private message
Erik
Great Tree Member
Great Tree Member


Joined: 23 Sep 2006
Posts: 1121
Location: the Netherlands

PostPosted: Fri Jan 04, 2008 1:07 pm    Post subject: Reply with quote

Sounds like a good idea, then the pages would load faster. It would take quite some performance if the complete tree would be built every time. It would also make the idea of children somewhat useless: why go to such lengths to create a good structure if all (grand)(grand)children are displayed anyway.

On a side note, I went to a software development company recently for teaching practice. It's a company that works with huge database structures for their applications (they create software for universities and scientific institutions among others, so these applications are huge!). So I got to see how they worked, saw a few bits of source code from smaller projects, talked with the owner of the company who told how they made a design for their projects, how they came to a good structure for a database. Things like that. It was pretty cool.
Anyway, one of the tools they used to come up with a good structure for a database was creating a entity-relationship model. I'll see if I can create a similar diagram for Rel.to. Perhaps that makes it easier... Smile
Back to top
View user's profile Send private message Visit poster's website
Durin Mephit
Great Tree Officer
Great Tree Officer


Joined: 29 Jan 2004
Posts: 3119
Location: Tigard, OR

PostPosted: Tue Jan 08, 2008 3:37 am    Post subject: Reply with quote

I've standardized the look and feel of rel.to's pages although it isn't the final appearance by any stretch of the imagination.

I added a new page ("personal"). I also have started adding new links to all of the pages; I had a backlog of notes that I hadn't incorporated, and I still have more to process.

Some of the pages are getting a bit long Cool
_________________
Durin Mephit * Member of Guild of Messengers - Unless otherwise stated, opinions are mine only and not Guild endorsed.
rel.to | Marten KI: 59474 | Durin M KI: 11883768
Back to top
View user's profile Send private message
Durin Mephit
Great Tree Officer
Great Tree Officer


Joined: 29 Jan 2004
Posts: 3119
Location: Tigard, OR

PostPosted: Wed Jan 09, 2008 1:57 am    Post subject: Reply with quote

The "directory" page is now gone; everything except the Embassy Nexus seems to fit better on another page.

For now, the Nexus reference is on the front page again along with other misc links that I haven't decided how to manage yet.

Stylesheet information has been extracted and dumped into relto.css.

Minimal links to a 2nd sublevel appear here and there... these are items that won't appear in the same listings once everything is db driven, but they'll be accessible by drilling down (asking for more information on a specific entry).

I'm thinking that in the database built pages, entries will look a bit like this:

Code:
marten     |  Marten's Uru Videos
           |  http://marten.treeweasel.com/Uru/
           |  Click Here for more details

montgomery |  Montgomery's In-Cavern Blog
           |  http://montgomery-journal.blogspot.com/
           |  Click Here for more details


Clicking for more details would bring up a more detailed entry for that site, such as including "Created On" and "Last Modified On" data, and any "child links". A good example of this would be the Bahroglyph Study Group that is a child of the D'ni Linguistic Fellowship. A tag for the study group exists for direct access (bsgs), but it wouldn't show up in the standard group listing. You'd only find it by clicking on the Linguistic Fellowship's information and seeing that it has children.

Thoughts?
_________________
Durin Mephit * Member of Guild of Messengers - Unless otherwise stated, opinions are mine only and not Guild endorsed.
rel.to | Marten KI: 59474 | Durin M KI: 11883768
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    The Great Tree Forum Index -> Randomness Forum All times are GMT - 5 Hours
Goto page Previous  1, 2, 3, 4, 5, 6, 7, 8, 9, 10  Next
Page 3 of 10

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum



RescueTime
Offering Time Management Software for Individuals &
Employee Time Tracking Software for Businesses