예제 #1
0
def convert_to_rdf():
    """
    Converts the read data to triples
    """

    print ""
    print "Convert to RDF..."

    movies = common.read_json(JSON_OUT_FILE)

    g = Graph()
    g.bind("", NS_OMDB)
    g.bind("dbpedia-owl", NS_DBPEDIA_OWL)
    g.bind("dbpprop", NS_DBPPROP)

    for m in movies:
        movie = URIRef(BASE_URI % common.encodeString(m["title"]))
        g.add((movie, RDF.type, NS_DBPEDIA_OWL.Film))
        g.add((movie, RDFS.label, Literal(m["title"])))
        g.add((movie, NS_DBPPROP.title, Literal(m["title"])))

        if "imdbID" in m:
            g.add((movie, NS_DBPEDIA_OWL.imdbId, Literal(m["imdbID"])))

    common.write_rdf(RDF_OUT_FILE, g)
예제 #2
0
def convert_to_rdf():
    """
    Converts the read data to triples
    """

    print ""
    print "Convert to RDF..."

    songs = common.read_json(JSON_OUT_FILE)

    g = Graph()
    g.bind("", NS_LASTFM)
    g.bind("dbpedia-owl", NS_DBPEDIA_OWL)
    g.bind("dbpprop", NS_DBPPROP)

    for s in songs:
        if "tags" not in s or len(s["tags"]) < 1:
            continue

        artist = URIRef(BASE_URI % common.encodeString(s["artist"]))
        g.add((artist, RDF.type, NS_DBPEDIA_OWL.MusicalArtist))
        g.add((artist, RDFS.label, Literal(s["artist"])))
        g.add((artist, NS_DBPPROP.name, Literal(s["artist"])))

        song = URIRef(BASE_URI % common.encodeString(u"{0:s} - {1:s}".format(s['artist'],  s["title"])))
        g.add((song, RDF.type, NS_DBPEDIA_OWL.Song))
        g.add((song, RDFS.label, Literal(u"{0:s} - {1:s}".format(s['artist'], s["title"]))))
        g.add((song, NS_DBPPROP.title, Literal(s["title"])))
        g.add((song, NS_DBPEDIA_OWL.artist, artist))

        for t in s["tags"]:
            g.add((song, NS_LASTFM.tagged, Literal(t)))

    common.write_rdf(RDF_OUT_FILE, g)
예제 #3
0
def convert_to_rdf():
    print ""
    print "Convert to RDF..."

    charts = common.read_json(JSON_OUT_FILE)

    g = Graph()
    g.bind("", NS_CHARTS)
    g.bind("dbpedia-owl", NS_DBPEDIA_OWL)
    g.bind("dbpprop", NS_DBPPROP)

    for c in charts:
        if c["date"] < "2005-01-01T00:00:00":
            continue

        chart = URIRef(BASE_URI % common.encodeString(
            datetime.strptime(c["date"],
                              "%Y-%m-%dT%H:%M:%S").strftime("%Y-%m-%d")))
        g.add((chart, RDF.type, NS_CHARTS.Chart))
        g.add((chart, NS_DBPEDIA_OWL.publicationDate,
               Literal(c["date"] + "Z", datatype=XSD.dateTime)))

        for t in c["tracks"]:
            artist = URIRef(BASE_URI % common.encodeString(t["artist"]))
            g.add((artist, RDF.type, NS_DBPEDIA_OWL.MusicalArtist))
            g.add((artist, RDFS.label, Literal(t["artist"])))
            g.add((artist, NS_DBPPROP.name, Literal(t["artist"])))

            song = URIRef(BASE_URI % common.encodeString(
                u"{0:s} - {1:s}".format(t['artist'], t["title"])))
            g.add((song, RDF.type, NS_DBPEDIA_OWL.Song))
            g.add((song, RDFS.label,
                   Literal(u"{0:s} - {1:s}".format(t['artist'], t["title"]))))
            g.add((song, NS_DBPPROP.title, Literal(t["title"])))
            g.add((song, NS_DBPEDIA_OWL.artist, artist))

            ranked = BNode()
            g.add((ranked, RDF.type, NS_CHARTS.RankedSong))
            g.add((ranked, NS_CHARTS.song, song))
            g.add((ranked, NS_CHARTS.position,
                   Literal(t["pos"], datatype=XSD.integer)))
            g.add((ranked, RDFS.label,
                   Literal(u"{0:s}: {1:s} - {2:s}".format(
                       t["pos"], t['artist'], t["title"]))))
            g.add((chart, NS_CHARTS.rankedSong, ranked))

    common.write_rdf(RDF_OUT_FILE, g)
예제 #4
0
def convert_to_rdf():
    """
    Converts the read data to triples
    """

    print ""
    print "Convert to RDF..."

    charts = common.read_json(JSON_OUT_FILE)

    g = Graph()
    g.bind("", NS_CHARTS)
    g.bind("dbpedia-owl", NS_DBPEDIA_OWL)
    g.bind("dbpprop", NS_DBPPROP)

    for c in charts:

        if c["date"] < CONVERT_FROM_DATE:
            continue

        chart = URIRef(
            BASE_URI % common.encodeString(datetime.strptime(c["date"], "%Y-%m-%dT%H:%M:%S").strftime("%Y-%m-%d")))
        g.add((chart, RDF.type, NS_CHARTS.Chart))
        g.add((chart, NS_DBPEDIA_OWL.publicationDate, Literal(c["date"] + "Z", datatype=XSD.dateTime)))

        for t in c["tracks"]:
            artist = URIRef(BASE_URI % common.encodeString(t["artist"]))
            g.add((artist, RDF.type, NS_DBPEDIA_OWL.MusicalArtist))
            g.add((artist, RDFS.label, Literal(t["artist"])))
            g.add((artist, NS_DBPPROP.name, Literal(t["artist"])))

            song = URIRef(BASE_URI % common.encodeString(u"{0:s} - {1:s}".format(t['artist'], t["title"])))
            g.add((song, RDF.type, NS_DBPEDIA_OWL.Song))
            g.add((song, RDFS.label, Literal(u"{0:s} - {1:s}".format(t['artist'], t["title"]))))
            g.add((song, NS_DBPPROP.title, Literal(t["title"])))
            g.add((song, NS_DBPEDIA_OWL.artist, artist))

            ranked = BNode()
            g.add((ranked, RDF.type, NS_CHARTS.RankedSong))
            g.add((ranked, NS_CHARTS.song, song))
            g.add((ranked, NS_CHARTS.position, Literal(t["pos"], datatype=XSD.integer)))
            g.add((ranked, RDFS.label, Literal(u"{0:s}: {1:s} - {2:s}".format(t["pos"], t['artist'], t["title"]))))

            g.add((chart, NS_CHARTS.rankedSong, ranked))

    common.write_rdf(RDF_OUT_FILE, g)
예제 #5
0
def convert_to_rdf():
    """
    Converts the read data to triples
    """

    print ""
    print "Convert to RDF..."

    movies = common.read_json(JSON_OUT_FILE)

    g = Graph()
    g.bind("", NS_TUNEFIND)
    g.bind("dbpedia-owl", NS_DBPEDIA_OWL)
    g.bind("dbpprop", NS_DBPPROP)

    for m in movies:
        movie = URIRef(BASE_URI % common.encodeString(m["title"]))
        g.add((movie, RDF.type, NS_DBPEDIA_OWL.Film))
        g.add((movie, RDFS.label, Literal(m["title"])))
        g.add((movie, NS_DBPPROP.title, Literal(m["title"])))

        for s in m["soundtrack"]:
            artist = URIRef(BASE_URI % common.encodeString(s["artist"]))
            g.add((artist, RDF.type, NS_DBPEDIA_OWL.MusicalArtist))
            g.add((artist, RDFS.label, Literal(s["artist"])))
            g.add((artist, NS_DBPPROP.name, Literal(s["artist"])))

            song = URIRef(BASE_URI % common.encodeString(
                u"{0:s} - {1:s}".format(s['artist'], s["title"])))
            g.add((song, RDF.type, NS_DBPEDIA_OWL.Song))
            g.add((song, RDFS.label,
                   Literal(u"{0:s} - {1:s}".format(s['artist'], s["title"]))))
            g.add((song, NS_DBPPROP.title, Literal(s["title"])))
            g.add((song, NS_DBPEDIA_OWL.artist, artist))

            g.add((movie, NS_TUNEFIND.contains, song))

    common.write_rdf(RDF_OUT_FILE, g)
예제 #6
0
def convert_to_rdf():
    """
    Converts the read data to triples
    """

    print ""
    print "Convert to RDF..."

    movies = common.read_json(JSON_OUT_FILE)

    g = Graph()
    g.bind("", NS_TUNEFIND)
    g.bind("dbpedia-owl", NS_DBPEDIA_OWL)
    g.bind("dbpprop", NS_DBPPROP)

    for m in movies:
        movie = URIRef(BASE_URI % common.encodeString(m["title"]))
        g.add((movie, RDF.type, NS_DBPEDIA_OWL.Film))
        g.add((movie, RDFS.label, Literal(m["title"])))
        g.add((movie, NS_DBPPROP.title, Literal(m["title"])))

        for s in m["soundtrack"]:
            artist = URIRef(BASE_URI % common.encodeString(s["artist"]))
            g.add((artist, RDF.type, NS_DBPEDIA_OWL.MusicalArtist))
            g.add((artist, RDFS.label, Literal(s["artist"])))
            g.add((artist, NS_DBPPROP.name, Literal(s["artist"])))

            song = URIRef(BASE_URI % common.encodeString(u"{0:s} - {1:s}".format(s['artist'],  s["title"])))
            g.add((song, RDF.type, NS_DBPEDIA_OWL.Song))
            g.add((song, RDFS.label, Literal(u"{0:s} - {1:s}".format(s['artist'],  s["title"]))))
            g.add((song, NS_DBPPROP.title, Literal(s["title"])))
            g.add((song, NS_DBPEDIA_OWL.artist, artist))

            g.add((movie, NS_TUNEFIND.contains, song))

    common.write_rdf(RDF_OUT_FILE, g)
예제 #7
0
def convert_to_rdf():
    """
    Converts the read data to triples
    """

    print ""
    print "Convert to RDF..."

    songs = common.read_json(JSON_OUT_FILE)

    g = Graph()
    g.bind("", NS_LASTFM)
    g.bind("dbpedia-owl", NS_DBPEDIA_OWL)
    g.bind("dbpprop", NS_DBPPROP)

    for s in songs:
        if "tags" not in s or len(s["tags"]) < 1:
            continue

        artist = URIRef(BASE_URI % common.encodeString(s["artist"]))
        g.add((artist, RDF.type, NS_DBPEDIA_OWL.MusicalArtist))
        g.add((artist, RDFS.label, Literal(s["artist"])))
        g.add((artist, NS_DBPPROP.name, Literal(s["artist"])))

        song = URIRef(BASE_URI % common.encodeString(u"{0:s} - {1:s}".format(
            s['artist'], s["title"])))
        g.add((song, RDF.type, NS_DBPEDIA_OWL.Song))
        g.add((song, RDFS.label,
               Literal(u"{0:s} - {1:s}".format(s['artist'], s["title"]))))
        g.add((song, NS_DBPPROP.title, Literal(s["title"])))
        g.add((song, NS_DBPEDIA_OWL.artist, artist))

        for t in s["tags"]:
            g.add((song, NS_LASTFM.tagged, Literal(t)))

    common.write_rdf(RDF_OUT_FILE, g)
예제 #8
0
def convert_to_rdf():
    """
    Converts the read data to triples
    """

    print ""
    print "Convert to RDF..."

    movies = common.read_json(JSON_OUT_FILE)

    g = Graph()
    g.bind("", NS_IMDB)
    g.bind("dbpedia-owl", NS_DBPEDIA_OWL)
    g.bind("dbpprop", NS_DBPPROP)

    for m in movies:
        if not release_filter(m):
            continue

        movie = URIRef(BASE_URI % common.encodeString(m["title"]))
        g.add((movie, RDF.type, NS_DBPEDIA_OWL.Film))
        g.add((movie, RDFS.label, Literal(m["title"])))
        g.add((movie, NS_DBPPROP.title, Literal(m["title"])))
        g.add((movie, NS_DBPEDIA_OWL.imdbId, Literal(m["imdbID"])))

        if "directors" in m:
            for name in m["directors"]:
                director = URIRef(BASE_URI % common.encodeString(name))
                g.add((director, RDF.type, NS_DBPEDIA_OWL.Person))
                g.add((director, RDFS.label, Literal(name)))
                g.add((director, NS_DBPPROP.name, Literal(name)))
                g.add((movie, NS_DBPEDIA_OWL.director, director))

        if "cast" in m:
            for cast in m["cast"][:CONVERT_MAX_CAST]:
                if cast["screen_name"] == "":
                    continue

                actor = URIRef(BASE_URI % common.encodeString(cast["name"]))
                g.add((actor, RDF.type, NS_DBPEDIA_OWL.Actor))
                g.add((actor, RDFS.label, Literal(cast["name"])))
                g.add((actor, NS_DBPPROP.name, Literal(cast["name"])))

                character = BNode()
                g.add((character, RDF.type, NS_IMDB.Character))
                g.add((character, RDFS.label, Literal(cast["screen_name"])))
                g.add((character, NS_IMDB.actedBy, actor))
                g.add((character, NS_IMDB.screenName, Literal(cast["screen_name"])))
                g.add((movie, NS_IMDB.cast, character))

        if "release_info" in m:
            for info in m["release_info"]:
                if "date" not in info:
                    continue

                if info["country"] not in CONVERT_RELEASE_COUNTRY:
                    continue

                release = BNode()
                g.add((release, RDF.type, NS_IMDB.ReleaseCountry))
                g.add((release, RDFS.label,
                       Literal(info["country"] if info["event"] == "" else info["country"] + " - " + info["event"])))
                g.add((release, NS_DBPEDIA_OWL.publicationDate, Literal(info["date"] + "Z", datatype=XSD.dateTime)))
                g.add((release, NS_DBPEDIA_OWL.comment, Literal(info["event"])))
                g.add((release, NS_DBPEDIA_OWL.country,
                       URIRef("http://dbpedia.org/resource/%s" % common.encodeString(info["country"]))))
                g.add((movie, NS_IMDB.releasedIn, release))

    common.write_rdf(RDF_OUT_FILE, g)
예제 #9
0
def convert_to_rdf():
    """
    Converts the read data to triples
    """

    print ""
    print "Convert to RDF..."

    movies = common.read_json(JSON_OUT_FILE)

    g = Graph()
    g.bind("", NS_IMDB)
    g.bind("dbpedia-owl", NS_DBPEDIA_OWL)
    g.bind("dbpprop", NS_DBPPROP)

    for m in movies:
        if not release_filter(m):
            continue

        movie = URIRef(BASE_URI % common.encodeString(m["title"]))
        g.add((movie, RDF.type, NS_DBPEDIA_OWL.Film))
        g.add((movie, RDFS.label, Literal(m["title"])))
        g.add((movie, NS_DBPPROP.title, Literal(m["title"])))
        g.add((movie, NS_DBPEDIA_OWL.imdbId, Literal(m["imdbID"])))

        if "directors" in m:
            for name in m["directors"]:
                director = URIRef(BASE_URI % common.encodeString(name))
                g.add((director, RDF.type, NS_DBPEDIA_OWL.Person))
                g.add((director, RDFS.label, Literal(name)))
                g.add((director, NS_DBPPROP.name, Literal(name)))
                g.add((movie, NS_DBPEDIA_OWL.director, director))

        if "cast" in m:
            for cast in m["cast"][:CONVERT_MAX_CAST]:
                if cast["screen_name"] == "":
                    continue

                actor = URIRef(BASE_URI % common.encodeString(cast["name"]))
                g.add((actor, RDF.type, NS_DBPEDIA_OWL.Actor))
                g.add((actor, RDFS.label, Literal(cast["name"])))
                g.add((actor, NS_DBPPROP.name, Literal(cast["name"])))

                character = BNode()
                g.add((character, RDF.type, NS_IMDB.Character))
                g.add((character, RDFS.label, Literal(cast["screen_name"])))
                g.add((character, NS_IMDB.actedBy, actor))
                g.add((character, NS_IMDB.screenName,
                       Literal(cast["screen_name"])))
                g.add((movie, NS_IMDB.cast, character))

        if "release_info" in m:
            for info in m["release_info"]:
                if "date" not in info:
                    continue

                if info["country"] not in CONVERT_RELEASE_COUNTRY:
                    continue

                release = BNode()
                g.add((release, RDF.type, NS_IMDB.ReleaseCountry))
                g.add(
                    (release, RDFS.label,
                     Literal(info["country"] if info["event"] ==
                             "" else info["country"] + " - " + info["event"])))
                g.add((release, NS_DBPEDIA_OWL.publicationDate,
                       Literal(info["date"] + "Z", datatype=XSD.dateTime)))
                g.add(
                    (release, NS_DBPEDIA_OWL.comment, Literal(info["event"])))
                g.add((release, NS_DBPEDIA_OWL.country,
                       URIRef("http://dbpedia.org/resource/%s" %
                              common.encodeString(info["country"]))))
                g.add((movie, NS_IMDB.releasedIn, release))

    common.write_rdf(RDF_OUT_FILE, g)