Quantcast
Viewing latest article 23
Browse Latest Browse All 36

how to apply a function on an literal in SPARQL

I have this SPARQL query:

construct {
  ?subject0 ?predicate0 ?similairty0.
    ?subject1 ?predicate1 ?similairty1
}
WHERE {
  {
  ?subject0 ?predicate0 ?object0.
  owbes:Dies_Irae ?predicate0 ?object0.
    ?predicate0 owbes:hasSimilarityValue ?similairty0
  }
  union {
    ?subject1 ?predicate ?object.
    ?object ?predicate1 ?object1.
    ?predicate1 owbes:hasSimilarityValue ?similairty1.
    owbes:Dies_Irae ?predicateHelper ?objectHelper.
    ?objectHelper ?predicate1 ?object1
  }
}

Where ?similarity0 and ?similarity1 are integer value.

I want to multiply the similarity0 by 0.5

how please? (I could do with select, but I want construct)

To make it easy for you, this is the result of my query:

<http://www.welovethesemanticweb.com/recommendation-systems#Requiem:_Sequentia>
        recommendation-systems:fromEra  "0.1"^^xsd:double ;
        recommendation-systems:hasArtist
                "0.4"^^xsd:double .

recommendation-systems:Le_nozze_di_Figaro
        recommendation-systems:fromEra  "0.1"^^xsd:double ;
        recommendation-systems:hasArtist
                "0.4"^^xsd:double .

recommendation-systems:5th_Symphony
        recommendation-systems:fromEra  "0.1"^^xsd:double .

recommendation-systems:Dies_Irae
        recommendation-systems:fromEra  "0.1"^^xsd:double ;
        recommendation-systems:hasArtist
                "0.4"^^xsd:double .

Update

I tried now this solution:

construct {
  ?subject0 ?predicate0 ?similairty0.
    ?subject1 ?predicate1 ?similairty1
}
WHERE {
  {
  ?subject0 ?predicate0 ?object0.
  owbes:Dies_Irae ?predicate0 ?object0.
    ?predicate0 owbes:hasSimilarityValue ?similairty0Helper.
    BIND(?similairty0Helper * 4 AS ?similairty0)

  }
  union {
    ?subject1 ?predicate ?object.
    ?object ?predicate1 ?object1.
    ?predicate1 owbes:hasSimilarityValue ?similairty1Helper.
    owbes:Dies_Irae ?predicateHelper ?objectHelper.
    ?objectHelper ?predicate1 ?object1
     BIND(?similairty1Helper * 2 AS ?similairty1)
  }
}

which gives me this result:

<http://www.welovethesemanticweb.com/recommendation-systems#Requiem:_Sequentia>
        recommendation-systems:fromEra  0.2e0 ;
        recommendation-systems:hasArtist
                1.6e0 .

recommendation-systems:Le_nozze_di_Figaro
        recommendation-systems:fromEra  0.2e0 ;
        recommendation-systems:hasArtist
                1.6e0 .

recommendation-systems:5th_Symphony
        recommendation-systems:fromEra  0.2e0 .

recommendation-systems:Dies_Irae
        recommendation-systems:fromEra  0.2e0 ;
        recommendation-systems:hasArtist
                1.6e0 .

I don't know what this e0 means. Plus I don't know if this is the correct solution. could you help me please?


Viewing latest article 23
Browse Latest Browse All 36

Trending Articles