Кодирование математических свойств в RDF
Я пытался найти решение для добавления отношений, таких как X имеет единицу A < 20 в существующую онтологию, но пока не смог найти решение.
Существующий граф знаний - RDF
- имеет много понятий и отношений. В попытке улучшить точность выводов, мы пытаемся добавить некоторые ключевые свойства к нескольким понятиям.
Пример:
Понятие X вызывает понятие Y. И теперь мы знаем, что понятие Y всегда имеет свойство ABC < 30.
Пожалуйста, предложите, как добавить этот вид отношений только для нескольких понятий в графе знаний - RDF
1 ответ
Как я уже упоминал в ответе на Функции для манипулирования коллекциями RDF в SPARQL, вы можете сделать некоторую математику в SPARQL, который является языком запросов для RDF. Для кодирования произвольных математических формул (что и подразумевается в заголовке) вас также может заинтересовать
Венцель, Кен и Хайнер Рейнхардт. " Математические вычисления для приложений со связанными данными с OpenMath". Совместные материалы 24-го семинара по OpenMath и 7-го семинара по математическим пользовательским интерфейсам (MathUI). 2012.
Все, что сказано, то, что вы здесь описываете (что значение некоторого свойства будет иметь значение меньше определенного числа), можно выразить в OWL. Ваша конкретная ситуация была:
Понятие X вызывает понятие Y. И теперь мы знаем, что понятие Y всегда имеет свойство ABC < 30.
Я не уверен, что вы подразумеваете под понятием, вызывающим другое, но вы можете сказать, что каждый экземпляр Y имеет только значения меньше 30 для свойства ABC. Это довольно просто. Это аксиома (в синтаксисе Манчестера)
Y subClassOf ABC only xsd: integer [< 30]
и в синтаксисе DL:
Y ⊑ ∀ABC.xsd: целое число [< 30]
В Protégé это выглядит так:
и в RDF-представлении онтологии OWL (в Turtle и RDF/XML):
@prefix : <https://stackru.com/q/24134785/1281433/facets#> .
@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
:ABC a owl:DatatypeProperty .
<https://stackru.com/q/24134785/1281433/facets>
a owl:Ontology .
:Y a owl:Class ;
rdfs:subClassOf [ a owl:Restriction ;
owl:allValuesFrom [ a rdfs:Datatype ;
owl:onDatatype xsd:integer ;
owl:withRestrictions ( [ xsd:maxExclusive
30 ] )
] ;
owl:onProperty :ABC
] .
<rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns="https://stackru.com/q/24134785/1281433/facets#"
xmlns:owl="http://www.w3.org/2002/07/owl#"
xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
xmlns:xsd="http://www.w3.org/2001/XMLSchema#">
<owl:Ontology rdf:about="https://stackru.com/q/24134785/1281433/facets"/>
<owl:Class rdf:about="https://stackru.com/q/24134785/1281433/facets#Y">
<rdfs:subClassOf>
<owl:Restriction>
<owl:onProperty>
<owl:DatatypeProperty rdf:about="https://stackru.com/q/24134785/1281433/facets#ABC"/>
</owl:onProperty>
<owl:allValuesFrom>
<rdfs:Datatype>
<owl:onDatatype rdf:resource="http://www.w3.org/2001/XMLSchema#integer"/>
<owl:withRestrictions rdf:parseType="Collection">
<rdf:Description>
<xsd:maxExclusive rdf:datatype="http://www.w3.org/2001/XMLSchema#integer"
>30</xsd:maxExclusive>
</rdf:Description>
</owl:withRestrictions>
</rdfs:Datatype>
</owl:allValuesFrom>
</owl:Restriction>
</rdfs:subClassOf>
</owl:Class>
</rdf:RDF>