Nano Hash - криптовалюты, майнинг, программирование

Создайте экземпляры unionOf с помощью OWL/RDF/XML

У меня есть этот пример OWL ниже, и я хочу знать, как запустить и создать экземпляр (для отдельных лиц) для "unionOf"

Я хочу знать, как сделать экземпляр этого

<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:owl="http://www.w3.org/2002/07/owl#" >

<owl:Class rdf:ID="house" />
<owl:Class rdf:ID="room" />
<owl:Class rdf:ID="kitchen" />
<owl:Class rdf:ID="garden" />
<owl:Class rdf:ID="table" />
<owl:Class rdf:ID="chair" />

<owl:ObjectProperty rdf:about="house_composedBy">
    <rdfs:domain rdf:resource="#house"/>
    <rdfs:range>
        <owl:Class>
            <owl:unionOf rdf:parseType="Collection">
                <owl:Class rdf:about="room" />
                <owl:Class rdf:about="kitchen" />
                <owl:Class rdf:about="garden" />
            </owl:unionOf>
        </owl:Class>
    </rdfs:range>
</owl:ObjectProperty>

I started like this but I stopped because I don't know which object i'm adding if I don't know the type of.

Пример,

<u:house rdf:ID="p_house01">
    <u:house_composedBy about="room01" />
    <u:house_composedBy about="room02" />
    <u:house_composedBy about="kitchen" />
    <u:house_composedBy about="garden" />
</u:house> 

Теперь я не знаю, как различать людей, правильно ли это делать с unionOf ??

С уважением.

21.02.2014

Ответы:


1

Зачем вам нужны экземпляры класса union?

Хотя остальная часть моего ответа будет посвящена тому, как вы можете создавать экземпляры класса объединения, я думаю, что вы должны учитывать причину, по которой вы это делаете. Если это связано с вашим предыдущим вопросом, отношение композиции uml к RDF и OWL, что кажется вероятным, и вы пытаетесь сказать, что диапазон свойства является классом объединения, например,

hasComponent rdfs:диапазон (TypeA или TypeB)

вам не нужно объявлять, что некоторый отдельный x имеет тип (TypeA или TypeB), чтобы использовать его в качестве объекта инструкции hasComponent. Напротив. Все объявление rdfs:range здесь дает вам возможность наблюдать оператор

у имеет компонент х

и сделать из этого вывод, что

x rdf:тип (TypeA или TypeB)

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

Как вы можете их создать

Я не уверен, о чем именно вы спрашиваете (пытаетесь ли вы сгенерировать RDF/XML-сериализацию некоторых аксиом или что-то еще), но я думаю, что мы можем найти решение. Используя Protégé, легко создать индивидуума и объявить, что он имеет в качестве типа какой-либо класс объединения. Например, мы можем утверждать, что

x : A или B или C

в Протеже:

unionOf пример

Мы можем взглянуть на сериализацию RDF этой онтологии OWL. Сериализацию Turtle легче всего читать и проще всего писать, если вам по какой-то причине нужно написать это вручную:

@prefix :      <http://www.example.org/unionof-example#> .
@prefix rdfs:  <http://www.w3.org/2000/01/rdf-schema#> .
@prefix owl:   <http://www.w3.org/2002/07/owl#> .
@prefix xsd:   <http://www.w3.org/2001/XMLSchema#> .
@prefix rdf:   <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .

## Ontology declaration
<http://www.example.org/unionof-example>
        a       owl:Ontology .

## Three classes
:A      a       owl:Class .
:B      a       owl:Class .
:C      a       owl:Class .

## x is a thing, a named individual, and 
## an (A or B or C).
:x      a       owl:Thing , owl:NamedIndividual ;
        a       [ a            owl:Class ;
                  owl:unionOf  ( :A :B :C )
                ] .

Если вам действительно нужно это в RDF/XML, это просто еще одна сериализация графа RDF:

<rdf:RDF
    xmlns="http://www.example.org/unionof-example#"
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:owl="http://www.w3.org/2002/07/owl#"
    xmlns:xsd="http://www.w3.org/2001/XMLSchema#"
    xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#">
  <owl:Ontology rdf:about="http://www.example.org/unionof-example"/>
  <owl:Class rdf:about="http://www.example.org/unionof-example#A"/>
  <owl:Class rdf:about="http://www.example.org/unionof-example#B"/>
  <owl:Class rdf:about="http://www.example.org/unionof-example#C"/>
  <owl:Thing rdf:about="http://www.example.org/unionof-example#x">
    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#NamedIndividual"/>
    <rdf:type>
      <owl:Class>
        <owl:unionOf rdf:parseType="Collection">
          <owl:Class rdf:about="http://www.example.org/unionof-example#A"/>
          <owl:Class rdf:about="http://www.example.org/unionof-example#B"/>
          <owl:Class rdf:about="http://www.example.org/unionof-example#C"/>
        </owl:unionOf>
      </owl:Class>
    </rdf:type>
  </owl:Thing>
</rdf:RDF>

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

<rdf:RDF
    xmlns="http://www.example.org/unionof-example#"
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:owl="http://www.w3.org/2002/07/owl#"
    xmlns:xsd="http://www.w3.org/2001/XMLSchema#"
    xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" > 
  <rdf:Description rdf:about="http://www.example.org/unionof-example#A">
    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#Class"/>
  </rdf:Description>
  <rdf:Description rdf:nodeID="A0">
    <rdf:first rdf:resource="http://www.example.org/unionof-example#B"/>
    <rdf:rest rdf:nodeID="A1"/>
  </rdf:Description>
  <rdf:Description rdf:about="http://www.example.org/unionof-example#B">
    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#Class"/>
  </rdf:Description>
  <rdf:Description rdf:nodeID="A2">
    <rdf:first rdf:resource="http://www.example.org/unionof-example#A"/>
    <rdf:rest rdf:nodeID="A0"/>
  </rdf:Description>
  <rdf:Description rdf:about="http://www.example.org/unionof-example#C">
    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#Class"/>
  </rdf:Description>
  <rdf:Description rdf:nodeID="A3">
    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#Class"/>
    <owl:unionOf rdf:nodeID="A2"/>
  </rdf:Description>
  <rdf:Description rdf:nodeID="A1">
    <rdf:first rdf:resource="http://www.example.org/unionof-example#C"/>
    <rdf:rest rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#nil"/>
  </rdf:Description>
  <rdf:Description rdf:about="http://www.example.org/unionof-example">
    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#Ontology"/>
  </rdf:Description>
  <rdf:Description rdf:about="http://www.example.org/unionof-example#x">
    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#Thing"/>
    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#NamedIndividual"/>
    <rdf:type rdf:nodeID="A3"/>
  </rdf:Description>
</rdf:RDF>
21.02.2014
  • Еще одна информация, которая может быть полезна при непосредственном написании/разборе RDF/XML, — это стандартное сопоставление между OWL 2 и RDF: w3.org/TR/owl2-mapping-to-rdf Тем не менее, я бы рекомендовал использовать библиотеку для этих операций, поскольку они сложны и подвержены ошибкам. 22.02.2014
  • Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..