Page 1 of 1
SCA Events Search Engine?
Posted: Thu May 08, 2008 4:50 pm
by Vermillion
After 10 years out of the society, I was just getting back to going to a few events, so I started looking around the net for likely events to attend.
I haven't found a very easy way. Is there a good search engine for SCA Events ? Especially one that would map the location with one of the popular mapping applications (google, mapquest, etc.) ?
The only way I found, was the old click on kingdom event calendar (and there are 3-5 kingdoms within easy drive of me) scroll thru long html pages, try to figure out where the "Barony of Flaming Skulls" is located.

Finally go to the event, and then find out that 3 fighters in armor showed up. Just kidding, but you get my point.
I figured in this day and age, someone would have had a fancy society wide search engine/mapping application with detailed information about each event. But I wasn't able to find anything.
Anything I missed?
Posted: Thu May 08, 2008 5:16 pm
by Kenwrec Wulfe
Nope. Didnt miss a thing. I think a database like that would be an awesome thing... and I have to say (in the words of my Pelican) - Why dont you run with that?
I think that would be an awesome idea, but a HUGE undertaking.
I would love to see something like that for practices too (His Grace, Duke Logan has started something along those lines, but it does not map everything out.) Again - it would be a HUGE undertaking that would require every groups KM to communicate things to the site manager.
Wish I could be more helpful, but the tried and true HTML lists are the thing to do right now.

Posted: Thu May 08, 2008 5:24 pm
by Dmitriy
Working on it (see thread on offtopic board).
How do you envision the query to work?
"sca events in [Kingdom|Zip Code|State" ?
-D
Posted: Thu May 08, 2008 5:43 pm
by Vermillion
I thought about what it would take today at work, when I had a brief slow period.
Each component would individually not be too difficult to do. HTML website, The CGI search form, a SQL database, code to return the results and then use the Google Maps API to map it (plenty of examples out there to do this). I've done each part before, but not all of them together in a single application.
I'm just not sure I have the time to do it, in a reasonable timeframe.
The SQL database, would have the event, the address, and would be geocoded to produce the Lat Lon of the site, along with lots of other information.
You could search by State, Region, Kingdom, barony/shire (but this level would take a fair bit of knowledge of every small SCA group in the US), zipcode, or lots of other ways. Or just date. Of course you would start simple and add features as you go.
The truely difficult item would be to populate the database, and would require quite a bit of cooperation from all the kingdoms.
Posted: Thu May 08, 2008 6:05 pm
by Dmitriy
that, or you have
1) a mapping on all meta-places to zip codes
2) scrapers for kingdom event websites
3) a flexible enough schema design to allow for a variety of available data (some events have websites, some don't, some publish addresses, some don't, etc).
I have made quite a bit of headway on 2), but not the rest..
Someone else might have made 1) already... Rogan has something along those lines. I'll see if I can simply get a datadump from him.
-D
Posted: Thu May 08, 2008 6:32 pm
by Vermillion
Yah, that was one thing I didn't mention.
I looked at each kingdom's event calendars, and tried to think about what it would take to write an automated script that would extract the pertinent data.
Of course each is wildly different, contains different data, and of different levels of quality\information. It would be possible to write a different script for each kingdom, but in the end would be of limited use. Thats where cooperation in filling the database would be key.
What mapping functions were you looking at using? zipcodes or physical addresses are both easy to geocode, so that you can translate it to Lat/Lon which is what you eventually use to map it with.
Filtering for the events you want to search for can be done with standard SQL queries, in fields such as Date, Event Type, Region, SCA Kingdom. The most difficult to program, and computationally intensive on the Server, would be the X distance from Y location. Not hard to program, but hard to do in a way that you don't crash the webserver, when you start to get a large number of events in the dbase.
Just thinking out loud. Some of you who have looked at this already are probably much further along.
FYI, I don't claim to be a professional web designer. I'm simply an engineer who writes a lot of python programs/scripts mostly dealing with data storage, conversion, and usage, including a lot of GIS mapping work.

But thats far from being a professional in the web industry.
Posted: Thu May 08, 2008 6:58 pm
by Oswyn_de_Wulferton
Then comes the fun of the "hosting group" being over 100miles from the actual site of the event...
Posted: Thu May 08, 2008 7:13 pm
by Dmitriy
roughy something like this, without verifying syntax.. I *believe* mysql allows custom functions, and I know Postgres does, so it would "just a matter of coding" to create a view that knows the distances between different zip-codes.
create or replace table zip {
id number,
zip_code number,
lat number,
long number
constraint zip_pk primary key (id)
constraint zip_uk unique key(zip_code),
);
create or replace table entity (
id number autoincrement,
entity_name varchar2(4000) ,
entity_parent number,
entity_kind number,
constraint entity_parent_fk foreign key references (entity.id),
constraint entity_kind_fk foreign key references (entity.id),
constraint entity_pk primary key (id),
)
create or replace table entity_zip_map (
id number autoincrement
entity_id number,
zip_code number
constraint entity_zip_map_pk primary key (id),
constraint entity_zip_map_ent_fk foreign key references (entity.id),
constraint entity_zip_map_zip_fk foreign key references (zip.id),
);
create or replace table entity_kinds (
id number autoincrement,
kind varchar2(4000),
constraint entity_kinds_pk primary key (id),
)
Entities have a many-to-many mapping to zip codes, so you can do a direct lookup.
There is also a concept of parent entities, so that you can self-join to get a countiy's state, a barony's Kingdom, etc. These can be tiled, if necessary. For every enitity there is also a "kind" of entity it is -- state, kingdom, barony, etc.
Haven't thought about indexes yet. A list of upcoming events would probably trigger a materialized view, so all this stuff is flattened out for the existing intersections without having to do expensive joins.
-D
Posted: Wed May 14, 2008 10:19 pm
by dukelogan
fighterpractice.com was a project that i really wanted to make something with. but ive fallen dreadfully behind with it and will get caught up soon. i promise. ive just got so many things im involved in in my real life that it makes it hard to keep up with everything. hopefully once i have this wrist surgery i will have some down time to get that and my hh website caught up (tons of new videos are waiting for me to edit and upload).
sorry guys.
logan
Kenwrec Wulfe wrote:Nope. Didnt miss a thing. I think a database like that would be an awesome thing... and I have to say (in the words of my Pelican) - Why dont you run with that?

I think that would be an awesome idea, but a HUGE undertaking.
I would love to see something like that for practices too (His Grace, Duke Logan has started something along those lines, but it does not map everything out.) Again - it would be a HUGE undertaking that would require every groups KM to communicate things to the site manager.
Wish I could be more helpful, but the tried and true HTML lists are the thing to do right now.
