日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

音乐知识图谱用例

發布時間:2024/1/4 综合教程 28 生活家
生活随笔 收集整理的這篇文章主要介紹了 音乐知识图谱用例 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

例子用的是音樂的例子,數據和代碼在百度網盤,鏈接: https://pan.baidu.com/s/1Uj5VgwRMBtWxVIcPxtLpbQ 密碼: mv76:


使用python代碼隨機生成一些數據示例,為了演示方便,生成的數據中沒有artist_name這個屬性,后面演示通過SPARQLUpdate語句添加


首先執行腳本python kg_music_triples.py,默認生成1000個三元組,生成的文件在當前目錄,文件名為music_1000_triples.nt (例如,python kg_music_triples.py 500 ,傳入參數500,則會生成500個三元組,文件名為music_500_triples.nt)


接下來啟動服務/usr/local/apache-jena-fuseki-3.12.0/fuseki-server,并在瀏覽器中打開http://localhost:3030/(在linux系統中)
導入剛才生成的music_1000_triples.nt文件,導入成功后,并查看導入了多少三元組/usr/local/apache-jena-fuseki-3.12.0/run/databases/music


好數據已經準備好了,接下來進行查詢和更新,在中間的編輯器中國添加我們自己的SPARQL語句,然后點擊編輯器右上的執行按鈕就可以執行SPARQL查詢了


點擊query,來到SPARQL查詢界面,選擇對應的設置,我們就可以開始查詢圖譜了
1.查詢某一藝術家的所有歌曲

1 PREFIX music: <http://kg.course/music/>
2 SELECT  DISTINCT   ?trackID
3 WHERE {
4   ?trackID  music:track_artist  music:artist_001
5 }


2.查詢某一藝術家的所有歌曲的歌曲名

PREFIX music: <http://kg.course/music/> 
SELECT ?name 
WHERE {   
    ?trackID  music:track_artist music:artist_01  .   
    ?trackID  music:track_name  ?name 
}


3.查詢某一首歌曲名的專輯信息

PREFIX music: <http://kg.course/music/>

SELECT ?trackID ?ablumID ?name
WHERE {
    ?trackID    music:track_name     "track_name_00001"  .  
    ?trackID    music:track_album    ?ablumID .
    ?ablumID    music:ablum_name     ?name
}


4. 查詢某一首歌曲名的專輯信息,使用中文來當變量名

PREFIX music: <http://kg.course/music/>

SELECT ?歌曲id ?專輯id ?專輯名
WHERE {
  ?歌曲id  music:track_name   "track_name_00001"   .
  ?歌曲id  music:track_album  ?專輯id  .
  ?專輯id  music:album_name   ?專輯名
}


5.查詢某一首歌曲名的專輯信息,變量名添加描述

PREFIX music: <http://kg.course/music/>

SELECT ?歌曲id ?專輯id (CONCAT("專輯名",":",?專輯名) AS ?專輯信息)
WHERE {
  ?歌曲id  music:track_name   "track_name_00001"   .
  ?歌曲id  music:track_album  ?專輯id  .
  ?專輯id  music:album_name   ?專輯名
}


6.查詢某個專輯里面的所有歌曲

PREFIX music: <http://kg.course/music/>

SELECT  ?trackID
WHERE {
  ?albumID    music:album_name   "album_name_0002"  .  
  ?trackID    music:track_album   ?albumID
}


7.查詢某個專輯里面的所有歌曲,限制前2

PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>

SELECT  ?trackID
WHERE {
  ?albumID    music:album_name   "album_name_0002"  .  
  ?trackID    music:track_album   ?albumID
}
limit 2


8.對某個專輯里面的所有歌曲計數

PREFIX music: <http://kg.course/music/>

SELECT  (COUNT(?trackID) as ?num)
WHERE {
  ?albumID    music:album_name   "album_name_0002"  .  
  ?trackID    music:track_album   ?albumID
}

9.查詢某一首歌是哪一個藝術家的作品

PREFIX music: <http://kg.course/music/>

SELECT ?trackID  ?artistID
WHERE {  
 ?trackID  music:track_name   "track_name_00001"  .  
 ?trackID music:track_artist ?artistID
}

10.查詢某一首歌屬于什么歌曲類型

PREFIX music: <http://kg.course/music/>

SELECT  ?trackID ?tag_name
WHERE {  
  ?trackID  music:track_name   "track_name_00001" .  
  ?trackID  music:track_tag    ?tag_name  
}

11.查詢某一藝術家唱過歌曲的所有標簽

PREFIX music: <http://kg.course/music/>

SELECT  DISTINCT ?tag_name
WHERE {
 ?trackID    music:track_artist  music:artist_001  .  
 ?trackID    music:track_tag    ?tag_name
}

12.查詢某一藝術家唱過歌曲的所有類型并排序

PREFIX music: <http://kg.course/music/>

SELECT  DISTINCT ?tag_name
WHERE {
?trackID    music:track_artist  music:artist_001  .  
?trackID    music:track_tag    ?tag_name
}

ORDER BY ?tag_name

13.查詢某幾類歌曲標簽中的歌曲的數目

PREFIX music: <http://kg.course/music/>

SELECT  (COUNT(?trackID ) AS ?num)
WHERE {  
{    
?trackID  music:track_tag    "tag_name_01" .  
}   
UNION
{   
   ?trackID music:track_tag   "tag_name_02"  .  
}
}

PREFIX music: <http://kg.course/music/>

SELECT  (count(?trackID ) as ?num)
WHERE {
?trackID music:track_tag  ?tag_name
FILTER (?tag_name = "tag_name_01"|| ?tag_name = "tag_name_02")
}

14.查詢所有歌曲中帶有’xx’字符的歌曲名

PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
SELECT ?subject  ?object
WHERE {
  ?subject <http://kg.course/music/track_name>  ?object .
  FILTER  regex(?object,"088")
}

15.詢問是否存在帶有’xx’字符的歌曲名

PREFIX music: <http://kg.course/music/>

ASK  
{
  ?trackID  music:track_name  ?track_name .
  FILTER    regex(?track_name,"008")
}

16.給藝術家id新增屬性藝術家名字

PREFIX music: <http://kg.course/music/>

INSERT DATA
{
  music:arttist_01  music:artist_name  "artist_name_01" .
  music:arttist_02  music:artist_name  "artist_name_02" .
  music:arttist_03  music:artist_name  "artist_name_03" .
}

PREFIX music: <http://kg.course/music/>

SELECT  ?artistID  ?artist_name
WHERE {
  ?artistID  music:artist_name ?artist_name
}

17.刪除增加的屬性藝術家名字

PREFIX music: <http://kg.course/music/>

DELETE
{  
  music:artist_02   music:artist_name ?x .
}
WHERE
{
   music:artist_02  music:artist_name ?x .
}

PREFIX music: <http://kg.course/music/>

SELECT  ?artistID  ?artist_name
WHERE {
  ?artistID  music:artist_name ?artist_name
}

總結

以上是生活随笔為你收集整理的音乐知识图谱用例的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。