1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | PREFIX m: <http://data.linkedmdb.org/resource/movie/> SELECT DISTINCT ?actorName WHERE { ?dir1 m:director_name "Sofia Coppola". ?dir2 m:director_name "Francis Ford Coppola". ?dir1film m:director ?dir1; m:actor ?actor. ?dir2film m:director ?dir2; m:actor ?actor. ?actor m:actor_name ?actorName. } |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>Find common actors between two directors</title> <link href="simple.css" type="text/css" rel="stylesheet" /> </head> <body> <h1>Find common actors between two directors</h1> <form action="commonActors.cgi" method="get"> <p>Enter the "official" name of each director (check <a href="http://www.imdb.com">IMDB</a> if you're not sure) and click "Search" to list actors who have appeared in movies by both directors.</p> <p> <input type="text" name="dir1"/> <input type="text" name="dir2"/> <input type="submit" value="search"/> </p> </form> </body> </html> |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 | #!/usr/local/bin/python import sys sys.path.append('/usr/home/bobd/lib/python/') # needed for hosted version from SPARQLWrapper import SPARQLWrapper, JSON import string import urllib import cgi def main(): form = cgi.FieldStorage() dir1name = form.getvalue('dir1') dir2name = form.getvalue('dir2') sparql = SPARQLWrapper("http://data.linkedmdb.org/sparql") queryString = """ PREFIX m: <http://data.linkedmdb.org/resource/movie/> SELECT DISTINCT ?actorName WHERE { ?dir1 m:director_name "DIR1-NAME". ?dir2 m:director_name "DIR2-NAME". ?dir1film m:director ?dir1; m:actor ?actor. ?dir2film m:director ?dir2; m:actor ?actor. ?actor m:actor_name ?actorName. } """ queryString = queryString.replace("DIR1-NAME",dir1name) queryString = queryString.replace("DIR2-NAME",dir2name) sparql.setQuery(queryString) sparql.setReturnFormat(JSON) try: ret = sparql.query() results = ret.convert() requestGood = True except Exception, e: results = str(e) requestGood = False print """Content-type: text/html <html> <head> <title>results</title> <link href="simple.css" type="text/css" rel="stylesheet" /> </head> <body> """ if requestGood == False: print "<h1>Problem communicating with the server</h1>" print "<p>" + results + "</p>" elif (len(results["results"]["bindings"]) == 0): print "<p>No results found.</p>" else: for result in results["results"]["bindings"]: print "<p>" + result["actorName"]["value"] + "</p>" print "</body></html>" main() |
欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) | Powered by Discuz! 7.0.0 |