2009-05-29 3 views
2

Я собираю сборку из своей онтологии OWL, но при анализе онтологии он вызывает сообщение об ошибке в «свойствах типа данных», где объявлен тип, и указаны некоторые значения. Я написал свою онтологию с помощью Protege v3.4.Проблема сборки сборки OWL (OWLGrinder)

Например, одним из свойств типа данных, вызывающим ошибку, является «Язык» с типом «строка» и значения типа «Английский & Farsi». Ссылки перечислены ниже, сделаны протеже:

<rdf:RDF xml:base="http://www.owl-ontologies.com/Ontology1243411901.owl" 
xmlns="http://www.owl-ontologies.com/Ontology1243411901.owl#" 
xmlns:owl="http://www.w3.org/2002/07/owl#" 
xmlns:protege="http://protege.stanford.edu/plugins/owl/protege#" 
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" 
xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" 
xmlns:swrl="http://www.w3.org/2003/11/swrl#" 
xmlns:swrlb="http://www.w3.org/2003/11/swrlb#" xmlns:xsd="http://www.w3.org/2001/XMLSchema#" 
xmlns:xsp="http://www.owl-ontologies.com/2005/08/07/xsp.owl#"> 

И свойство «Язык» упоминается ниже:

<owl:DatatypeProperty rdf:ID="language"> 
     <rdfs:range> 
      <owl:DataRange> 
       <owl:oneOf rdf:parseType="Resource"> 
        <rdf:rest rdf:parseType="Resource"> 
         <rdf:rest rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#nil"/> 
         <rdf:first rdf:datatype="http://www.w3.org/2001/XMLSchema#string">Farsi</rdf:first> 
        </rdf:rest> 
        <rdf:first rdf:datatype="http://www.w3.org/2001/XMLSchema#string">English</rdf:first> 
       </owl:oneOf> 
      </owl:DataRange> 
     </rdfs:range> 
     <rdfs:domain> 
      <owl:Class> 
       <owl:unionOf rdf:parseType="Collection"> 
        <owl:Class rdf:about="#Teacher"/> 
        <owl:Class rdf:about="#ClassOfCourse"/> 
        <owl:Class rdf:about="#LearningResource"/> 
        <owl:Class rdf:about="#Discussion"/> 
        <owl:Class rdf:about="#Student"/> 
       </owl:unionOf> 
      </owl:Class> 
     </rdfs:domain> 
    </owl:DatatypeProperty> 

Я просто добавить одну онтологию OWLGrinder. Эта ошибка сделана при генерации:

Assembly generation failed. 
OWL property 'http://www.owl-ontologies.com/Ontology1243411901.owl#language' has a range declaration that points to _:bnode10579059 but its definition is missing. 
Are you missing an ontology which declares this class? 

Число перед «_: bnode» изменяется каждый раз, когда я нажмите кнопку «Создать». При удалении значений из свойства «Язык» возникает другая ошибка, связанная со следующим свойством DataType. Это означает, что каждое свойство DataType, которое определено (и имеет некоторые значения, определенные ему), вызывает ошибку в OWLGrinder.

Мне было интересно, может ли кто-нибудь помочь мне справиться с этой ошибкой.

ответ

1

В настоящее время ROWLEX OwlGrinder ожидает, что диапазон будет литералом или обычным классом. Я рекомендую создать класс-оболочку 'LanguageList', который содержит ваше перечисление внутри, назначая его как диапазон. Я не тестировал это, но я ожидаю, что он сработает.

+0

Большое спасибо за ответ. Проблема решена путем создания одного класса для каждого диапазона типов данных. – Ehsan

0

Я скопировал/вставлял вашу онтологию в http://www.mygrid.org.uk/OWL/Validator: он говорит, что эта онтология (по крайней мере) не является онтологией OWL-lite. Это может быть проблемой для вашей конфигурации Protege?

+0

Привет Пьер, Большое спасибо за ответы. Я наклеил всю свою онтологию на этом сайте валидатора, и сайт подтвердил это как OWL-DL. Работает ли OWLGrinder с OWL-Lite? Есть ли другой инструмент для сборки из онтологии? – Ehsan

2

Я не знаком с OWLGrinder, но вы можете попробовать объявить именованный класс, такой как ExpectedLanguages (дать вашему анонимному узлу URI), а затем использовать его как диапазон для вашего предиката language. Сокращенный пример (в формате Turtle):

:ExpectedLanguages 
    a owl:DataRange ; 
    owl:oneOf (
     "Farsi"^^xsd:string 
     "English"^^xsd:string 
    ); 
. 

:languages 
    rdfs:range :ExpectedLanguages ; 
. 

Ваше использование OWL enumerated datatype требует, чтобы ваш код/​​анализатор/рассуждающий быть OWL-DL соответствует минимальным.

Причина, по которой _:bnodeXXX (пустой узел/анонимный узел) имеет новый идентификатор, потому что он пуст. Однако для идентификации в графике (модели) RDF в памяти идентификатор должен быть сгенерирован для каждого анонимного узла при его загрузке, поэтому, когда модель анализируется, каждый узел (анонимный или именованный) может быть идентифицирован однозначно поэтому его входящие и исходящие ссылки могут быть идентифицированы.

+0

Большое спасибо, мистер Фил М. Мне очень многое нужно узнать из вашего ответа. Проблема решена путем создания одного класса для каждого диапазона типов данных. – Ehsan

1

Intellidimension предоставляет SDK, который может конвертировать OWL-Lite, OWL-Full или OWL-DL в классы .NET. Вы можете взглянуть на это.

Sidenote
Я думаю, что вы путаете семантику домена в вашей онтологии. Похоже, вы пытаетесь сказать, что «Язык может существовать только в Teacher, ClassOfCourse, LearningResource, Discussion, Student», когда на самом деле вы говорите «Если язык используется для описания экземпляра, который может быть выведен для того, чтобы быть преподавателем UnionOf , ClassOfCourse, LearningResource, Обсуждение и Студент. ".Это обычное неверное истолкование семантики OWL, поскольку он чувствует, что домен должен ограничивать использование свойств, если на самом деле это не функция OWL (схема/валидация). OWL используется только для описания того, что должно быть определено путем использования, оно не предусматривает использование.

Domain semantics described in OWL guide.

Используя UnionOf в области собственности языка вы говорите, что «Все, что описывается с помощью свойства языка, учитель, или ClassOfCourse, или LearningResource, или Обсуждение или Студент". Я бы сказал, что это обычно не имеет смысла.

UnionOf semantic described in OWL guide.

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

Range described in OWL guide.

 Смежные вопросы

  • Нет связанных вопросов^_^