2017-06-05 3 views
-2

Hallo
i eine Ontologie in Protege gemacht 4.3 für Anwender an, dass 1 meiner Ontologie Unterklasse der Klasse Benutzer sind:

1- „Interesse“ und Klasse „Interesse“ haben Unterklassen: "OnlineGaming", "OnlineMovie", "Onlineshopping", ... und jede Unterklasse hat individuelle: täglich, einmalWochen, einmalMonate)

und ich habe 3 Datentyp Eigenschaft für jeden Benutzer: (Internetspeed, InternetTraffic, Preis)

Daten gesammelt anhand eines Fragebogens
Ich muss nur aus dieser Ontologie, wie wichtig diese 3 Datentyp Eigenschaftenfaktoren für Internet-Nutzer
Ich muss einige SWRL-Regeln in Protege zu Infer Benutzerinteresse Gewicht machen, zum Beispiel, wenn ein Benutzer onlineMovie jeden Tag eine +3 zu InternetTraffic DataProperty hinzufügen.Updating Datentyp Eigenschaft Wertebasis auf SWRL Regeln

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) 

Wie soll ich das in den SWRL-Regeln richtig schreiben?
und meine zweite Frage ist, wie kann ich den Wert dieser 3 Datentyp Eigenschaft für jeden Benutzer in Sparql und speichern Sie das Ergebnis?

Danke für Ihre Hilfe

+1

Ihre ganze Modellierung ist wirklich schlecht! Eine Klasse 'userInterest' ist eine Unterklasse von' User'. "Ja wirklich?" Sie wissen, dass dies bedeutet, dass jeder "userInterest" ein Benutzer ist? Und 'userInterest' enthält Personen wie' alltag' - das bedeutet 'alltags' ist ein' userInterest'. "Ja wirklich?" – AKSW

+1

Und eine Klasse 'userInterestRate' (wiederum aus irgendeinem Grund als Unterklasse des Benutzers)" mit 3 Datentyp Eigenschaft ". Was bedeutet "mit"? Eine Klasse besitzt keine Eigenschaft. – AKSW

+1

Es wäre besser, wenn Sie die Ontologie in formale Syntax, beste Lösung in Manchester OWL-Syntax zeigen. Ihr Regelbeispiel zeigt einige Eigenschaften, aber niemand weiß ihre Definition und ob es andere gibt. – AKSW

Antwort

2

Zunächst einmal; es ist nicht klar, was Sie tun/welche Technologie verwenden usw., bitte überlegen Sie, Ihre Frage zu klären. Darüber hinaus scheint das konzeptionelle, das Sie entwickelt haben, nicht stichhaltig. Sind Sie sicher, dass dies die beste Möglichkeit ist, die gewünschten Informationen darzustellen? Zum Beispiel, warum würde ein UserInterest ein subClassOf User sein? Ich glaube, Sie meinen, dass UserInterest und UserInterestRate Bereiche für eine Objekteigenschaft sind, die User mit ihnen verbinden, d. H. hasInterest rdfs:domain User und hasInterest rdfs:range UserInterest.

Kommen Sie zu Ihren Fragen, verwenden Sie Protege? Wenn Sie es verwenden, können Sie diese SWRL-Regeln unter Verwendung der SWRL tab in Protege implementieren.

Nachdem Sie dies richtig umgesetzt haben, können Sie einfach eine SPARQL-Abfrage ähnlich verwenden:

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

danke für deine antwort habe ich nur einige änderungen an meiner frage vorgenommen –

Verwandte Themen