Если вы просто хотите представлять, а не рассуждать над написанными вами предложениями или формулами, то вам просто нужно найти кодировку .Любая кодировка, которую вы можете разобрать в исходных предложениях, будет работать.В качестве примера, вот предложение.
Рассмотрим два примера:
A and B cause C
A or B cause C
В обоих случаях вы можете разбить предложение на 3 части:
something causes something
Это тройка!Давайте сделаем IRI для предиката «причины»: http://example.com/causes
, сокращенно ex:causes
.Второе «что-то» справа - C в примерах.Давайте отождествим это с ex:C
.Оставшаяся часть, первое «что-то» в левой части более сложное, потому что нам нужно закодировать, что это составная структура.В первом случае это нечто, являющееся соединением, имеющим компоненты A и B. Это может быть закодировано как пустой узел с типом ex:Conjunction
(например) и двумя тройками, которые соединяют его с ex:A
и * 1016.* (например).Тогда в синтаксисе Turtle мы могли бы иметь:
[
a ex:Conjunction;
ex:component ex:A, ex:B
] ex:causes ex:C .
или:
[
a ex:Disjunction;
ex:component ex:A, ex:B
] ex:causes ex:C .
Если вам нужно что-то более сложное, например:
(A and B) or (C and D and E) causes (F or (G and H))
youможно написать:
[
a ex:Disjunction;
ex:component [
a ex:Conjunction;
ex:component ex:A, ex:B
], [
a ex:Conjunction;
ex:component ex:C, ex:D, ex:E
]
] ex:causes [
a ex:Disjunction;
ex:component ex:F, [
a ex:Conjunction;
ex:component ex:G, ex:H
]
] .
и т. д.Невозможно выразить причинность в семантике RDF или OWL.Таким образом, вам придется проанализировать это и перевести это в логику причинности, если вы хотите сделать интересные выводы.В этом смысле представление RDF не намного более "семантическое", чем, скажем, кодировка XML или JSON.Единственное (важное) отличие от кодировки XML или JSON заключается в том, что вы используете IRI для всего, что позволяет формально присоединять больше информации ко всем компонентам распределенным, модульным и гипермедиа способом.