(2013-03-30, 16:09)garbear Wrote: i'm stuck on an easy concept. Basically, https://github.com/garbear/heimdall/comm...0e1f#L2R20 . I've defined the platform predicate in two namespaces and I use Heimdall for the conversion. I assume this translation part is an appropriate use of Heimdall (stop me now if it's an abuse...)
As I understand it you have one identifier, games.platform which you want to map to another, site specific, identifier? For this I think that the owl
ameAs is the way to do it. But that would only really work if the subject is the platform, which is probably not the case?
Another way would simply be to let the URI specify what ID it is, i.e. games.platform = [ thegamesdb.org/ID, mobygames.org/ID ] It should be rather clear from the URI here which is of interest and which is not?
(2013-03-30, 16:09)garbear Wrote: What concerns me more is, should I be using two virtually identical predicates? TheGamesDB, MobyGames, and other sites aren't 1:1 mappings, so they're not exactly identical in all situations (differing platform names for one, and e.g. multiple atari systems can be grouped under a single one on a different site). However, even though the objects could share an owlameAs edge, they have distinct IDs and are useless across different scrapers.
How can I represent all platforms, including collections of platforms (like the atari groups mentions above) using a single predicate? Or am I correct in that I'm thinking about this the wrong way, and that multiple predicates are the right way to do things?
I think you've outlined the biggested problems with semantic web and the ontologies. It gets very confusing and its rather hard to know when to add new ontologies, or when to adapt a site to an already created ontology. Atleast this is what I find extremely annoying
I'm not 100% versed in how consoles works so I might have missunderstood this but with platform names I think the best would be to create a global ID for each system and put in an ontology, if there doesn't already exist one? This each scraper (moby and thegamesdb) needs to use. They could obviously provide each of their, site specific, IDs in addition. With groups this obviously gets incredibly much more complex. Perhaps make the IDs hierarchical? So you have nintendo.nes and then you could provide nintendo just. I guess the problem is more that they might combine wii and wii u and snes and nes? And that it might be hard to create these groups naturally?
In general I'm somewhat starting to think that loosing the semantic web and ontology in favor of a less globally unique document structure might be beneficial.
So have each scraper return dicts with properties which are less globally unique. For example:
{
gamePlatform: "SNES"
}
And if its needed to have something more globally unique just prefix it with the site, e.g.
{
imdbID: tt812393
}
or
{
mobyPlatformID: X,
thegamesdbID: y
}
In the end this is essentially the same thing as semantics and ontology but a bit less tiresome to combine multiple ontologies and translate between ontologies and make sure it exists in the ontology (for example on your improvement PR I can't find the page stating if trailers is in the ontology of video) etc.
Thanks for pushing this and helping me with heimdall!