2016-05-23 3 views
1

В моем графике у меня есть эти тройки:Заменить: hasName с RDFS: этикетки в RDF

:Pieta    :hasName "Pieta". 
:David    :hasName "David". 
:MasaTacerii  :hasName "Masa Tacerii". 
:USA    :hasName "United States of America"@en, "Etats Unis d'Amerique"@fr. 

Я хочу, чтобы заменить: hasName с RDFS: этикетки. Могу ли я сделать это с использованием свойства sameAs? Или у меня есть другая возможность?

ответ

3

owl:sameAs создаст заявление о вашем ресурсе RDF. Но сам по себе он полностью инертен. Если выполняется со стандартным аргументом OWL, он создаст тройки, которые делают каждый ресурс у субъекта, а объект owl:sameAs имеет те же значения свойств. Логика OWL не является общей системой обработки, это тип FOPL, монотонный (т. Е. Факты могут быть вставлены и выведены, но не отведены).

Однако операция вы хотите имеет прямое внедрение в SPARQL:

DELETE { 
    ?s :hasName ?o . 
} 
INSERT { 
    ?s rdfs:label ?o . 
} 
WHERE { 
    ?s :hasName ?o . 
} 

В принципе, найти все :hasName свойства, удалять их и добавлять rdfs:label вместо этого.