2017-06-05 44 views
-2


我已經爲用戶做了一個本體保護4.3,假設我的本類用戶的本體子類中有1個是:

1-「興趣」和類「興趣」子網:「onlineGaming」,「onlineMovie」,「onlineshoping」,...和每個子類都有個人:每天,每週一次,每月一次)

和我有3個數據類型屬性爲每個用戶:(internetspeed,internetTraffic,Price)

基於問卷收集的數據
我只需要從這個本體論推斷這3種數據類型屬性因子對於互聯網用戶有多重要
我需要制定一些SWRL規則來推斷用戶的興趣權重,例如,如果用戶在線電影每天在internetTraffic數據屬性中添加+3。基於SWRL規則更新數據類型屬性值

user(?u)^hasOnlineMovieInterest(?u , everyday)-> add +3 to user(?u,InternetTraffic) 
user(?u)^hasOnlineGamingInterest(?u , OnceAweek) and hasOnlineMovieInterest(?u , everyday)-> add +2 to user(?u,internetSpeed) 

我應該如何正確寫入SWRL規則?
和我的第二個問題是,我如何能夠爲sparql中的每個用戶獲得這3個數據類型屬性的值並保存結果?

感謝您的幫助

+1

你的整個造型實在是太差了!一個類userInterest是User的一個子類。真?你知道這意味着每個'userInterest'都是一個用戶嗎? 'userInterest'包含像'everyday'這樣的個人 - 這意味着''''''是'userInterest'。真? – AKSW

+1

和一個類'userInterestRate'(再次爲什麼作爲用戶的子類)「與3數據類型屬性」。什麼意思是「與」?一個班級沒有「擁有」財產。 – AKSW

+1

如果以正式語法顯示本體,那麼將會更好,這是曼徹斯特OWL語法中的最佳解決方案。你的規則示例顯示了一些屬性,但沒有人知道它們的定義,以及是否有其他屬性。 – AKSW

回答

2

首先,不清楚你在做什麼/使用哪種技術等,請考慮澄清你的問題。而且,你開發的概念似乎並不健全。您確定這是表示您想要的信息的最佳方式嗎?例如,爲什麼UserInterestsubClassOf User?我認爲你的意思是UserInterestUserInterestRate是將User連接到它們的對象屬性的範圍,即hasInterest rdfs:domain UserhasInterest rdfs:range UserInterest

回到你的問題,你使用Protege嗎?如果您使用它,則可以使用SWRL tab in Protege來實施這些SWRL規則。

您正確實施之後,你可以簡單地使用一些類似SPARQL查詢:

select ?user ?r1 ?r2 ?r3 Where { 
    ?user rdf:type yourNamespacePrefix:User. 
    ?user yourNamespacePrefix:rate1 ?r1. 
    ?user yourNamespacePrefix:rate2 ?r2. 
    ?user yourNamespacePrefix:rate3 ?r3. 
} 
+0

感謝您的回覆,我只是對我的問題做了一些更改 –