2015-05-19 3 views
0

Я хочу создать схему RDFS о месте встречи, которая содержит, например:Определить дополнительные свойства для существующего класса в RDFS?

адресная информация и xxx информация.

Обнаруживаю другую схему: https://schema.org/Place. Он содержит больше свойств о адресной информации, но не содержит информации о xxx.

Так

Должен ли я сделать мое место схемы в качестве подкласса https://schema.org/Place и добавить новые свойства?

<?xml version="1.0"?> 

    <rdf:RDF 
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" 
    xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" 
    xmlns:place="https://schema.org/Place#" 
    xml:base="http://localhost:3000/VenueSchema#"> 
    <rdfs:Class rdf:ID="Venue"> 
    <rdfs:subClassOf rdf:resource="https://schema.org/Place"/> 
    </rdfs:Class> 
    <rdf:Property rdf:ID="xxx"> 
     <rdfs:domain rdf:resource= "#Venue"> 
     <rdfs:range rdf:resource="http://www.w3.org/2000/01/rdf-schema#Literal"/> 
    </rdf:Property> 

    </rdf:RDF> 

Если я использую подкласс, это место автоматически имеет свойство от https://schema.org/Place?

Или вместо подклассов, я должен просто повторно использовать https://schema.org/Place но объявить дополнительные свойства для https://schema.org/Place? Что-то вроде следующего кода:

<?xml version="1.0"?> 

<rdf:RDF 
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" 
xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" 
xmlns:place="https://schema.org/Place#" 
xml:base="http://localhost:3000/VenueSchema#"> 

<rdf:Property rdf:ID="xxx"> 
    <rdfs:domain rdf:resource= "https://schema.org/Place"> 
    <rdfs:range rdf:resource="http://www.w3.org/2000/01/rdf-schema#Literal"/> 
</rdf:Property> 

</rdf:RDF> 
+1

Могу ли я спросить, из интереса, почему вы используете RDF/XML вместо более «удобной для человека» сериализации RDF (например, Turtle)? – unor

+0

@unor Возможно, потому что все остальные? Google «пример rdfs» и посмотрите, какие (не) различные синтаксисы вы придумали. –

ответ

2

Должен ли я сделать мое место схемы в качестве подкласса https://schema.org/Place и добавить новые свойства?

Если вы объявляется о описании класса Venue, то имеет смысл сделать это подкласс некоторых других Место класса, что кто-то заявил, если вы хотите достичь какой-то степени совместимости с этим лексиконом. Это просто означает, что вы бы сделали Место проведения rdfs: subClassOf Место.

Если я использую подкласс, это место автоматически имеет свойство от https://schema.org/Place?

Классы RDFS (и OWL) не совсем такие же, как классы в объектно-ориентированном языке программирования. Свойства не относятся к классам, а классы не наследуют свойства от своих суперклассов.

Когда вы говорите, что домен свойства Р является класс D, то это означает, что, что, когда у вас есть тройной х Р у, вы можете вывод что х РДФ: тип D.

Таким образом, вы можете использовать любое из свойств, которые имеют домен место с экземплярами Место проведения, и вы не будете выводя любую дополнительную информацию о них (за исключением имущества утверждения).
То есть, если вы уже знаете, что v является Место, и использовать свойство р которого домен Место с ним, можно сделать вывод, что v является Место, но вы мог бы сделать это, потому что вы заявили, что Место проведения является подклассом Место.

Или вместо подклассов, я должен просто повторно использовать https://schema.org/Place но объявить дополнительные свойства для https://schema.org/Place? Что-то вроде следующего кода:

Вы можете объявить новые свойства, которые имеют место как домен, а также. Все, что означает аксиомы домена, заключается в том, что если свойство используется с отдельным человеком, то вы можете сделать вывод о том, что человек является Место.