2015-05-19 7 views
1

Я хочу создать RDFS схему о месте проведения Информация, которая содержит, например:пересмотреть и объявить свойство в RDFS

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

Обнаружил другую схему: 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="address"> 
     <rdf:type source:"https://schema.org/Place#address"> 
    </rdf:Property> 

    </rdf:RDF> 

Второй вопрос можно переопределить адрес свойства? Может ли он получить эффекты переопределения или перегрузки?

<?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="address"> 
    <rdfs:domain rdf:resource= "#Venue"> 
    <rdfs:range rdf:resource="http://www.w3.org/2000/01/rdf-schema#Literal"/> 
</rdf:Property> 

</rdf:RDF> 

ответ

2

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

Классы не имеют свойств в RDFS. Свойства могут иметь объявленные домены и диапазоны, но это не приводит к тому, что свойства относятся к классам. Когда вы говорите, что

                р RDFS: домен D

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

                hasFoot RDFS: домен Elephant

и

                hasFoot RDFS: домен человеческого

тогда, когда вы увидите, что Jimbo hasFoot foot73, вы сможете сделать вывод, что Jimbo - Человек и Слон.

Второй вопрос: могу ли я переопределить адрес недвижимости?Может ли это добиться эффекта переопределения или перегрузки?

Вы можете сказать дополнительные сведения о ресурсах; это одна из замечательных вещей о семантической сети. Однако вы не можете заставить кого-либо отказаться от того, о чем они говорили, хотя вы можете игнорировать то, что они сказали. То есть вы можете включать объявления свойства, даже если кто-то еще их объявил. Модель данных RDF основана на наборах троек, а тройки не включают дубликаты, поэтому нет никакой разницы, говорите ли вы что-то один раз или сто раз.

Однако не имеет смысла говорить о перегрузке или перегрузке. Я уже говорил об этом в ответах на некоторые из ваших предыдущих вопросов, но RDF не является объектно-ориентированным языком программирования, хотя он имеет понятие свойств и классов. Недвижимость - это всего лишь ИРИ. Он не имеет никакого поведения или побочных эффектов. Вы можете сказать дополнительные вещи о собственности, и вы игнорируете вещи, о которых другие говорили о них, но есть смысл, в которых вы можете переопределить или перегрузить свойство.

Вы можете определить под-свойства, которые могут быть полезны. Например, вы можете сказать:

:hasParent a rdfs:Property ; 
      rdfs:range :Human . 

:hasMother a rdfs:Property ; 
      rdfs:range :Woman ; 
      rdfs:subPropertyOf :hasParent . 

Если вы сделаете это, то, когда вы говорите х hasMother у, можно сделать вывод, что у является Женщина и Human, и вы можете сделать вывод, это x естьParent y.

+0

Предположим: hasParent a rdfs: Property; rdfs: range: Human. определенный в файле1. Когда я писал только в файле2 без упоминания диапазона и домена и только имел: hasParent source: file1 # hasParent. Имеет ли файл2 диапазон и домен в файле1? – AlexWei

+0

@AlexWei Я не знаю, что "hasParent источник: file1 # hasParent." подразумевается. Если вы не загрузите первый файл, у вас не будет содержимого в первом файле. –

+0

Здесь я имею в виду в файле 2: я хочу указать, что hasParent уже определен в файле1. Будет ли файл2 получить диапазон и домен в файле1 таким образом? – AlexWei