2017-01-17 9 views
0

При указании схемы в RDF, как определить тип коллекции? Например, у меня есть свойство, называемое hobbies. Может быть более одного hobbies. Также требуется, чтобы каждый член в списке должен был быть экземпляром класса Hobby. Хотя я могу указать что-то вроде -Можно ли указать свойство Type to collection в RDF

myschema:hobbies 
    a   rdf:Property; 
    rdfs:domain myschema:Student; 
    rdfs:range rdf:bag 
    . 

Как я могу определить, что каждый член этой коллекции должен быть типа myschema:Hobby?

Заранее благодарен!

ответ

5

Как я могу указать, что каждый член в этой коллекции должен иметь тип myschema: Hobby?

С RDF/RDFS в одиночку вы не можете. Вы можете сделать это с помощью OWL, например:

myschema:hobbies 
    a rdf:Property; 
    rdfs:range rdf:Bag, [ 
    a owl:Restriction; 
    owl:onProperty rdfs:member; 
    owl:allValuesFrom myschema:Hobby 
    ] . 

Это не в OWL DL. Зачем вам hobbies относится к rdf:Bag? За исключением особых и редких ситуациях, это почти всегда лучше просто иметь свойство, которое имеет отношение к членам непосредственно, как так:

myschema:hobby 
    a rdf:Property; 
    rdfs:range myschema:Hobby . 

Тогда вы можете связать вещь с набором хобби, как это:

_:something myschema:hobby :hobby1, :hobby2, :hobby3 . 

На самом деле проблема, о которой вы спрашиваете, это, пожалуй, просто новая проблема, которую вы создаете, выбрав неправильный дизайн. Чего вы хотите достичь?

+0

Спасибо за ответ @ antoine-zimmermann. Я начинаю здесь. Имея мой большой опыт работы в java, я думал, что могу указать свойство, которое является типизированной коллекцией. Я не знал, что список владения имуществом не обязательно должен указываться как коллекция/сумка. Поэтому я хотел указать этот путь. Пойду с вашей рекомендацией и дам вам знать, как это происходит. –