Вопрос

У меня проблема с RDF.У меня есть пара троек, определенных как:

<User rdf:about="#T">
 <hasName rdf:datatype="http://www.w3.org/2001/XMLSchema#string">T</hasName>
 <hasFavourite rdf:resource="#x"/>
 <hasFavourite rdf:resource="#y"/>
</User>

Я хочу добавить к тройкам (user, hasFavourite, x) и (user, hasFavourite, y), так как мне нужно связать с ними целое число.Я немного не знаю, как сложить целое число с тройкой.Я уверен, что это должно быть просто, но я только разбираюсь в RDF, поэтому буду благодарен за любую помощь.

Спасибо, Элли.

Это было полезно?

Решение

Итак, если я правильно читаю вопрос и ваш комментарий к сообщению dajobe, вы, вероятно, захотите что-то вроде этого (опять же в нотации Turtle, поскольку это гораздо более читабельно):

@base <http://example.org/ns#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix : <> .

:T
    :hasFavourite :fave1, :fave2 ;
    :hasName "T" ;
    a :User .

:fave1 a :Favourite ;
       :band :x ;
       :playCount 10 .

:fave2 a :Favourite ;
       :band :y ;
       :playCount 4 .

:x a :Band ;
   :hasName "Band 1" .

:y a :Band ;
   :hasName "Band 2" .

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

Конечно, я могу быть совершенно неправ, и это может быть совсем не то, что вы на самом деле хотите!

Другие советы

Мне не совсем понятно, что вы хотите здесь смоделировать;что ресурс User имеет тройки с целочисленными значениями или ресурсы X и Y имеют целочисленные значения.Я предположу последнее, поскольку оно более сложное.

<?xml version="1.0" encoding="utf-8"?>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
   xmlns="http://example.org/ns#">
<User rdf:about="#T">
 <hasName rdf:datatype="http://www.w3.org/2001/XMLSchema#string">T</hasName>
 <hasFavourite rdf:resource="#x"/>
 <hasFavourite rdf:resource="#y"/>
</User>
 <hasFavourite rdf:about="#x">
   <integerThatMeansSomething rdf:datatype="http://www.w3.org/2001/XMLSchema#integer">10</integerThatMeansSomething>
 </hasFavourite>
 <hasFavourite rdf:about="#y">
   <integerThatMeansSomething rdf:datatype="http://www.w3.org/2001/XMLSchema#integer">20</integerThatMeansSomething>
 </hasFavourite>
</rdf:RDF>

В Turtle это немного легче читать:(преобразовано через rapper -q -o turtle foo.rdf 'http://example.org/ns#' от моего Раптор программное обеспечение)

@base <http://example.org/ns#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix : <> .

:T
    :hasFavourite :x, :y ;
    :hasName "T"^^<http://www.w3.org/2001/XMLSchema#string> ;
    a :User .

:x
    :integerThatMeansSomething 10 ;
    a :hasFavourite .

:y
    :integerThatMeansSomething 20 ;
    a :hasFavourite .

Отказ от ответственности:Я отредактировал rdf/xml, изобрел Turtle и написал вышеуказанное программное обеспечение!

Читаю выше вроде:«T — пользователь, имеет два избранных x и y и строковое имя.X является избранным и имеет целочисленное свойство со значением 10.» и т. д.для тебя.

Если бы это было первое, то rdf/xml был бы проще:

<User rdf:about="#T">
 <hasName rdf:datatype="http://www.w3.org/2001/XMLSchema#string">T</hasName>
 <hasFavourite rdf:datatype="http://www.w3.org/2001/XMLSchema#integer">10</hasFavourite>
 <hasFavourite rdf:datatype="http://www.w3.org/2001/XMLSchema#integer">20</hasFavourite>
</User>
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top