wie kann ich erkennen Objekt-Eigenschaften vs Datentyp-Eigenschaften?
Mein Ontologie Buch Einstufung Bibliothek. Ich habe Probleme in diesem.
Ich will bauen Sie ein Buch-Klassifikation Ontologie von protégé 4.1, diese Klassifikation ist in 14 Kategorien, neben dem Geschwister-Klassen Autor, Buch, Isbn. Personen im Buch Klasse Buch das Thema(über 600 Themen) , und Personen, die in der Autor Klasse sind name der Autorin und auch die isbn-Klasse.
dann bin ich verwirrt in object properties und datatype properties. wenn hasEdition ist in den Eigenschaften in meiner Ontologie dann sage ich, dass jedes Buch in der Klasse Buch die relation mit Ausgabe Klasse. also ich benutze Objekt-Eigenschaften, sondern die einzelnen in dieser Klasse(edition Klasse) ist integer<9. dann, wie kann es sagen? ist es ein Datentyp oder Objekt?
und können mit dem Objekt-Eigenschaften vs Datentyp-Eigenschaften? (gleiche Namen)
InformationsquelleAutor sima412 | 2013-07-18
Du musst angemeldet sein, um einen Kommentar abzugeben.
Auf Objekt-und Datentyp-Eigenschaften
In Schützling es gibt verschiedene Registerkarten für die Erstellung von Object Properties und Datatype Properties. Wenn eine Eigenschaft beziehen soll Privatpersonen, Einzelpersonen, dann muss es ein Objekt sein Eigentum, und wenn es Sie betrifft Personen, Literale, dann muss es eine datatype-Eigenschaft.
Wenn Sie eine Immobilie haben, die
hasEdition
deren DomäneBook
, dann stellt sich die Frage, was der Bereich sein sollte. Wenn Sie erwarten, dass verdreifacht wie:denen der Wert sind Literale, dann
hasEdition
sollte eine datatype-Eigenschaft. Wenn auf der anderen Seite, haben Sie eine KlasseEdition
mit einigen bestimmten Personen, z.B.,so, dass man
dann
hasEdition
sollte eine Objekt-Eigenschaft.Wenn Sie benötigen, zu betrachten, die RDF-Serialisierung und bestimmen die Typen der Eigenschaften sind, sollten Sie die Abfrage für die Klassen
owl:ObjectProperty
undowl:DatatypeProperty
(und, der Vollständigkeit halber,owl:AnnotationProperty
). Das ist, je nachdem, obhasEdition
ist eine Objekt-Eigenschaft oder eine datatype-Eigenschaft, die Sie sehen würde:oder
Entscheidung, welche zu verwenden
Ob Sie eine
hasEdition
- Eigenschaft auf eine datatype-Eigenschaft oder eine Objekt-Eigenschaft hängt wirklich davon ab, welche Art von Daten willst du speichern, und das hängt von Ihrer Anwendung. Wenn Sie nur die Darstellung einfacher Informationen wie"first"
,"second"
usw., dann wollen Sie wahrscheinlich die Verwendung einer datatype-Eigenschaft, die sich ein Buch zu seiner edition. Dies ist wahrscheinlich eine gute route, wenn Sie die Vertretung von Büchern in den abstrakten ich.e, nicht einzelne Instanzen Bücher (im Gegensatz zu einer Bookseller inventory-system, die würde sein, die sich mit einzelnen Instanzen der Bücher).Wenn auf der anderen Seite, was Sie tatsächlich vertreten sind Instanzen Bücher. E. g., wenn Sie ein Buchhändler und auf Lager haben 25 Exemplare Semantic Web für die Arbeits-Ontologe und 27 Exemplare Die Programmierung des Semantic Web), dann könnte man wirklich daran interessiert sein, die einzelne Editionen von Büchern, auf denen der Titel, ISBN, und das würde wahrscheinlich gespeichert werden, auf die edition, nicht das Buch, die einzelnen.
Dies ist nur eine Meinung, und Sie haben wirklich eine Menge Flexibilität bei der Wahl Ihres Datenmodells. Normalerweise dauert es einige Erfahrung, um schöne Datenmodelle und Erfahrung braucht Zeit. Auch so, Sie haben gute Werkzeuge für die Manipulation und Transformation der Daten, so können Sie Experimentieren mit verschiedenen Darstellungen, und die Karte von einem zum anderen.
Ein Beispiel für die Folgen der Wahl einer oder der anderen
Ich schlage vor, Sie nehmen einen Blick auf die RDF Primer. Ressourcen und Literale sind verschiedene Dinge. Ressourcen, die anonym sind oder identifiziert durch eine IRI und können die Subjekte von Aussagen (und damit Mitglied der Klassen, die aufgrund der Anweisung
Literale, wie der string
"Herman Melville
" nicht die Subjekte der Sätze, und somit auch nicht Mitglieder von Klassen. Mit Autoren wie Ressourcen (Individuen), die Sie tun können,In diesem Fall
hasAuthor
ist eine Objekt-Eigenschaft undhasName
ist eine datatype-Eigenschaft.Auf der anderen Seite, können Sie machen
hasAuthor
eine datatype-Eigenschaft und stattdessen tunWenn Sie dies tun, obwohl, dann müssen Sie nicht haben eine bequeme Möglichkeit, um zusätzliche Informationen über den Autor, da die wörtliche
"Herman Melville"@en
sind, können nicht Gegenstand einer dreifach, also kann man nicht sagen wir zum Beispiel,in der Erwägung, dass im ersten Fall könnte man sagen
Es ist wirklich nur eine Frage des wie, die Sie wollen in der Lage sein, um die Daten abzufragen. In dem Fall, dass
hasAuthor
ist eine Objekt-Eigenschaft kann ich eine Abfrage schreiben, wie diese Bücher zu finden, geschrieben von Autoren, die lebten, at Arrowhead:oder noch prägnanter (aber gleichwertig):
Auf der anderen verfügen, wenn
hasAuthor
ist eine datatype-Eigenschaft, die sich ein Buch auf den Namen des Autors, können wir noch eineAuthor
Klasse, deren Instanzen in Zusammenhang mit Ihrem Namen durch diehasName
Eigenschaft, aber es macht das Abfragen der Daten etwas komplizierter, da diehasAuthor
Eigenschaft zwingt eine Schicht der Dereferenzierung (den Namen des Autors des Buches, dann finden Sie den Autor, der diesen Namen), so haben wir Anfragen wie:Diese Abfrage kann nicht vereinfacht werden, so schön. Es kommt wirklich darauf an, wie Sie möchten in der Lage sein, um die Daten abzufragen, und was ist bequem für Sie. Beachten Sie, dass einige Abfragen, die Sie schreiben können in SPARQL sind viel schwerer zu schreiben als OWL-DL-Ausdrücke. Wenn
hasAuthor
ist eine Objekt-Eigenschaft, Klasse der Bücher, deren Autoren lebten an der Pfeilspitze ist gegeben durch den Ausdruck:die einfach ist die Klasse der Dinge, die einen Autor, lebte in der Pfeilspitze. Wenn
hasAuthor
ist eine datatype-Eigenschaft, es ist wesentlich schwieriger, wenn nicht unmöglich zu schreiben, wie ein Ausdruck, weil Sie brauchen, zu finden, zwei Dinge (ein Buch und ein Autor), die das gleiche literal value (string, ist der name des Autors).Ich habe aktualisiert sich meine Antwort mit einigen Gedanken auf, wenn Sie vielleicht machen
hasEdition
einem Datentyp oder Objekt-Eigenschaft. Für so etwas wiehasAuthor
können Sie entweder Autoren Einzelpersonen werden, die dann, z.B., Namen (von denhasName
data-Eigenschaft), oder Sie könnenhasAuthor
eine datatype-Eigenschaft, in dem Fall bezieht sich das Buch der name des Autors.ok. also, wenn hasAuthor als Objekt propeties und ich mache andere Eigenschaften Enthalten, dass der name des Autors (gleiche hasName). Habe ich das richtig verstanden? aber was ist Beziehung betwean hasAuthor und hasName?bedeutet : wie sage ich, dass Es einen Zusammenhang betwean hasAuthor und hasName? sorry joshua und danke
bezieht sich ein Buch an eine Person, die ein Mitglied der Klasse
Author
.hasName
bezieht sich der Autor den einzelnen, um den Namen des Autors. Der graph Aussehen würde, in der Art, wie[book] --hasAuthor--> [author] --hasName--> "Herman Melville"
.Ich habe eine Frage. wenn die einzelnen Autor-Klasse sind die Namen der Autor dann muss ich hasName Eigenschaften? da Individuen in Autor-Autor ' name. ich beziehen kann Mitglied der book-Klasse(Moby-Dick), mit den der Autor der Klasse(herman meville) von hasAuthor-Eigenschaften(object properties).ohne hasName prpoerties?
InformationsquelleAutor Joshua Taylor