message_board_LOD_server.py 文件源码

python
阅读 15 收藏 0 点赞 0 评论 0

项目:programming-the-semantic-web 作者: utecht 项目源码 文件源码
def servedata(environ):
    #Additional ns' for the queries 
    ourserver = "http://" + server_addr + ":" + str(server_port) + "/"
        MBMSG = Namespace(ourserver + "messages/")
    MBUSR = Namespace(ourserver + "users/")

    path = environ["PATH_INFO"]

    resp = {"status":"200 OK"}  
    resp["headers"] = [("Content-type", "application/rdf+xml")]

    if environ["PATH_INFO"].find("users") != -1:
        #user request query
        userid = "mbusr:" + path[path.rindex("/") + 1:]
        query = """CONSTRUCT { 
                       """ + userid + """ sioc:creator_of ?msg .
               ?msg dc:title ?title .
                       """ + userid + """ foaf:name ?name .
           } WHERE { 
               ?msg sioc:has_creator """ + userid + """ .
                       ?msg dc:title ?title .
                       """ + userid + """ foaf:name ?name .
                   } """
    else:
                #message request query                                            
        msgid = "mbmsg:" + path[path.rindex("/") + 1:]
        query = """CONSTRUCT {
                        """ + msgid + """ dc:title ?title .
                        """ + msgid + """ sioc:has_creator ?user .
                        """ + msgid + """ sioc:content ?content .
                    } WHERE { 
                        """ + msgid + """ dc:title ?title .
                        """ + msgid + """ sioc:has_creator ?user .
                        """ + msgid + """ sioc:content ?content .  
            } """

    bindingdict = {'sioc':SIOC,
                       'dc':DC,
                       'dcterms':DCTERMS,
                       'foaf':FOAF,
                       'rdfs':RDFS,
                       'mb':MB,
               'mbmsg':MBMSG,
               'mbusr':MBUSR}

    resp["body"] = [sg.query(query, initNs=bindingdict).serialize(format='xml')]

    return resp
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号