VOS.VirtRDFViewODSBlog

  • Topic
  • Discussion
  • VOS.VirtRDFViewODSBlog(1.1) -- DAVWikiAdmin? , 2017-06-13 05:48:37 Edit WebDAV System Administrator 2017-06-13 05:48:37

    RDF View for ODS Weblog

    IMPORTANT! The following code is part of the ODS global VIEW regarding the Weblog part, it is not a separate VIEW and is strongly recommended NOT to be executed directly. Instead, you should use the code from ODS RDF Views Deployment and Demo Scripts.
    sparql prefix ods: <http://www.openlinksw.com/virtuoso/ods/>
    
    create iri class ods:blog_forum "http://^{URIQADefaultHost}^/dataspace/%U/weblog/%U"
    		(in uname varchar not null, in forum_name varchar not null)
    		option (returns "http://^{URIQADefaultHost}^/dataspace/%U/weblog/%U") .
    	create iri class ods:blog_post "http://^{URIQADefaultHost}^/dataspace/%U/weblog/%U/%U"
    		(in uname varchar not null, in forum_name varchar not null, in postid varchar not null)
    		option (returns "http://^{URIQADefaultHost}^/dataspace/%U/weblog/%U/%U" ) .
    	create iri class ods:blog_comment "http://^{URIQADefaultHost}^/dataspace/%U/weblog/%U/%U/%d"
    		(in uname varchar not null, in forum_name varchar not null, in postid varchar not null, in comment_id int not null)
     	        option (returns  "http://^{URIQADefaultHost}^/dataspace/%U/weblog/%U/%U/%d" ) .
    	create iri class ods:tag "http://^{URIQADefaultHost}^/dataspace/%U/concept#%U"
    		(in uname varchar not null, in tag varchar not null)
                    option (returns  "http://^{URIQADefaultHost}^/dataspace/%U/concept#%U") .
    	create iri class ods:blog_post_text "http://^{URIQADefaultHost}^/dataspace/%U/weblog-text/%U/%U"
    		(in uname varchar not null, in forum_name varchar not null, in postid varchar not null)
    		option (returns "http://^{URIQADefaultHost}^/dataspace/%U/weblog-text/%U/%U" ) .
    


    sparql
        prefix sioc: <http://rdfs.org/sioc/ns#>
        prefix sioct: <http://rdfs.org/sioc/types#>
        prefix atom: <http://atomowl.org/ontologies/atomrdf#>
        prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
        prefix foaf: <http://xmlns.com/foaf/0.1/>
        prefix dc: <http://purl.org/dc/elements/1.1/>
        prefix dct: <http://purl.org/dc/terms/>
        prefix skos: <http://www.w3.org/2004/02/skos/core#>
        prefix geo: <http://www.w3.org/2003/01/geo/wgs84_pos#>
        prefix bm: <http://www.w3.org/2002/01/bookmark#>
        prefix exif: <http://www.w3.org/2003/12/exif/ns/>
        prefix ann: <http://www.w3.org/2000/10/annotation-ns#>
        prefix wikiont: <http://sw.deri.org/2005/04/wikipedia/wikiont.owl#>
        prefix calendar: <http://www.w3.org/2002/12/cal#>
        prefix ods: <http://www.openlinksw.com/virtuoso/ods/>
    
       alter quad storage virtrdf:DefaultQuadStorage
          from DB.DBA.ODS_BLOG_POSTS as blog_posts
          where (^{blog_posts.}^.B_OWNER = ^{users.}^.U_NAME)
          from DB.DBA.ODS_BLOG_POST_LINKS as blog_links
          where (^{blog_links.}^.B_OWNER = ^{users.}^.U_NAME)
          from DB.DBA.ODS_BLOG_POST_ATTS as blog_atts
          where (^{blog_atts.}^.B_OWNER = ^{users.}^.U_NAME)
          from DB.DBA.ODS_BLOG_POST_TAGS as blog_tags
          where (^{blog_tags.}^.U_NAME = ^{users.}^.U_NAME)
          from DB.DBA.ODS_BLOG_COMMENTS as blog_comms
          where (^{blog_comms.}^.U_NAME = ^{users.}^.U_NAME) 
    
    {
    	create virtrdf:ODS_DS as graph ods:graph (users.U_NAME) option (exclusive)
    	  {
    	    ods:user (users.U_NAME) a sioc:User ;
                sioc:id users.U_NAME ;
                sioc:name users.U_FULL_NAME ;
                sioc:email ods:mbox (users.E_MAIL) ;
                sioc:email_sha1 users.E_MAIL_SHA1 ;
                sioc:account_of ods:person (users.U_NAME) .
    
    	    ods:person (person.U_NAME) a foaf:Person ;
                foaf:nick person.U_NAME ;
    	    foaf:name person.U_FULL_NAME ;
    	    foaf:mbox ods:mbox (person.E_MAIL) ;
                foaf:mbox_sha1sum person.E_MAIL_SHA1 ;
                foaf:holdsAccount ods:user (person.U_NAME) ;
                foaf:firstName person.FIRST_NAME ;
                foaf:family_name person.LAST_NAME ;
                foaf:gender person.GENDER ;
                foaf:icqChatID person.ICQ ;
                foaf:msnChatID person.MSN ;
                foaf:aimChatID person.AIM ;
                foaf:yahooChatID person.YAHOO ;
                foaf:birthday person.BIRTHDAY ;
                foaf:organization person.ORG ;
                foaf:phone ods:phone (person.PHONE) ;
    	    foaf:based_near ods:geo_point (person.U_NAME)
    	    .
    
                # Weblog
    	    ods:blog_post (blog_posts.B_OWNER, blog_posts.B_INST, blog_posts.B_POST_ID) a sioct:BlogPost ;
    	    sioc:link ods:proxy (blog_posts.B_LINK) ;
    	    sioc:has_creator ods:user (blog_posts.B_CREATOR) ;
    	    foaf:maker ods:person (blog_posts.B_CREATOR) ;
    	    sioc:has_container ods:blog_forum (blog_posts.B_OWNER, blog_posts.B_INST) ;
    	    dc:title blog_posts.B_TITLE ;
    	    dct:created blog_posts.B_CREATED ;
    	    dct:modified blog_posts.B_MODIFIED ;
    	    sioc:content blog_posts.B_CONTENT .
    
    	    ods:blog_forum (blog_posts.B_OWNER, blog_posts.B_INST)
    	    sioc:container_of
    	    ods:blog_post (blog_posts.B_OWNER, blog_posts.B_INST, blog_posts.B_POST_ID) .
    
    	    ods:user (blog_posts.B_CREATOR)
    	    sioc:creator_of
    	    ods:blog_post (blog_posts.B_OWNER, blog_posts.B_INST, blog_posts.B_POST_ID) .
    
    	    ods:blog_post (blog_links.B_OWNER, blog_links.B_INST, blog_links.B_POST_ID)
    	    sioc:links_to
    	    ods:proxy (blog_links.PL_LINK) .
    	    # end Weblog
    	  } .
        } .
    ;
    

    CategoryVirtuoso CategoryRDF CategoryBlog