簡體   English   中英

在Drupal中查詢Sparql

[英]Query Sparql in Drupal

在我的網站上,我的文章充滿了rdf屬性。 我無法弄清楚什么是Sparql查詢只是檢索作者是管理員的文章的所有標題。

在此輸入圖像描述

我通過以下方式檢索了所有用戶名:

PREFIX foaf:  <http://xmlns.com/foaf/0.1/>
SELECT ?name
WHERE {
    ?person foaf:name ?name .
}

然后我嘗試:

PREFIX dc:    <http://purl.org/dc/elements/1.1/>
PREFIX foaf:  <http://xmlns.com/foaf/0.1/>
SELECT ?dc:title
WHERE {
    ?person sioc:has_creator 1 .
}
LIMIT 5

但結果是:

Could not properly handle &quot;PREFIX foaf:  &lt;http://xmlns.co&quot; in ARC2_SPARQLPlusParser

如果我刪除未使用的foaf我得到:

Could not properly handle &quot;SELECT ?dc:title  WHERE {     &quot; in ARC2_SPARQLPlusParser.

更新01

查詢輸出的數據樣本:

select ?s ?p ?o where { ?s ?p ?o } limit 300

結果:

[...]
{
    "s": {
      "type": "uri",
      "value": "http://drupal.test/users/admin"
    },

    "p": {
      "type": "uri",
      "value": "http://www.w3.org/1999/02/22-rdf-syntax-ns#type"
    },

    "o": {
      "type": "uri",
      "value": "http://rdfs.org/sioc/ns#UserAccount"
    }
  },
  {
    "s": {
      "type": "uri",
      "value": "http://drupal.test/users/admin"
    },

    "p": {
      "type": "uri",
      "value": "http://xmlns.com/foaf/0.1/name"
    },

    "o": {
      "type": "literal",
      "value": "admin"
    }
  },
[...]
  {
    "s": {
      "type": "uri",
      "value": "http://drupal.test/content/consectetuer-dignissim-luptatum-tego"
    },

    "p": {
      "type": "uri",
      "value": "http://www.w3.org/1999/02/22-rdf-syntax-ns#type"
    },

    "o": {
      "type": "uri",
      "value": "http://xmlns.com/foaf/0.1/Document"
    }
  },
  {
    "s": {
      "type": "uri",
      "value": "http://drupal.test/content/consectetuer-dignissim-luptatum-tego"
    },

    "p": {
      "type": "uri",
      "value": "http://purl.org/rss/1.0/modules/content/encoded"
    },

    "o": {
      "type": "literal",
      "value": "<p>Dignissim luptatum neo te. Damnum decet pala proprius quadrum sagaciter vel. Defui erat qui. Distineo esca macto nisl probo. Humo illum luctus nimis singularis sino sit valde wisi. Consequat eum iaceo paratus velit. Bene dolus esca eu fere mauris pala refero saepius suscipit.<\/p>\n<p>Camur dignissim facilisi genitus huic humo nimis. Ad conventio jumentum pala plaga praemitto premo quibus rusticus. Huic ibidem iriure macto nimis vel. Cui esca euismod sagaciter. Bene eros feugiat genitus jugis pagus quidem sudo valde vicis.<\/p>\n<p>Esca letalis odio tum. Abigo commodo probo quidne singularis. Eros iriure ullamcorper. Antehabeo aptent erat mauris molior oppeto validus verto wisi.<\/p>\n<p>Adipiscing aptent decet mos nostrud similis ullamcorper. Camur commoveo hendrerit jus odio uxor. Decet ea eum illum iriure natu os proprius ratis. Appellatio comis ibidem. Dolore molior neo pertineo. Autem consectetuer hendrerit patria.<\/p>\n<p>Blandit conventio eum te tego. Illum lobortis paratus wisi. Facilisi quibus singularis ulciscor. Illum in lucidus mos torqueo velit. Appellatio bene caecus hendrerit hos qui velit. Praemitto premo vereor. Acsi nulla ratis. Amet commodo consequat defui luctus vereor verto.<\/p>\n<p>Eligo ibidem illum iusto loquor neque oppeto utrum validus. At commodo eligo facilisi hos.<\/p>\n<p>Fere immitto pecus praemitto sino. Damnum hos jus laoreet letalis suscipere. Hos mauris nibh odio paulatim tation tego usitas.<\/p>\n<p>Abluo exputo iaceo volutpat. Abico duis et minim refoveo saluto validus vereor virtus voco. Ex minim vero. Commodo consequat interdico nobis singularis vel wisi. Ea fere hos quis saepius singularis torqueo virtus vulputate. Aliquip consectetuer defui ea ex quidem sudo usitas.<\/p>\n"
    }
  },

更新02

描述文章:

describe 
<http://drupal.test/content/consectetuer-dignissim-luptatum-tego>

結果:

{
  "http://drupal.test/content/consectetuer-dignissim-luptatum-tego" : {
    "http://www.w3.org/1999/02/22-rdf-syntax-ns#type" : [
      { "value" : "http://xmlns.com/foaf/0.1/Document", "type" : "uri" }
    ],
    "http://purl.org/rss/1.0/modules/content/encoded" : [
      { "value" : "<p>Dignissim luptatum neo te. Damnum decet pala proprius quadrum sagaciter vel. Defui erat qui. Distineo esca macto nisl probo. Humo illum luctus nimis singularis sino sit valde wisi. Consequat eum iaceo paratus velit. Bene dolus esca eu fere mauris pala refero saepius suscipit.</p>\n", "type" : "literal" }
    ],
    "http://purl.org/dc/terms/title" : [
      { "value" : "Consectetuer Dignissim Luptatum Tego", "type" : "literal" }
    ],
    "http://purl.org/dc/terms/date" : [
      { "value" : "2014-06-11T08:22:09-07:00", "type" : "literal", "datatype" : "xsd:dateTime" }
    ],
    "http://purl.org/dc/terms/created" : [
      { "value" : "2014-06-11T08:22:09-07:00", "type" : "literal", "datatype" : "xsd:dateTime" }
    ],
    "http://purl.org/dc/terms/modified" : [
      { "value" : "2014-06-11T08:22:09-07:00", "type" : "literal", "datatype" : "xsd:dateTime" }
    ]
  } 
}

給我一篇關於文章的三重奏:

select ?p ?o where { <http://drupal.test/content/consectetuer-dignissim-luptatum-tego> ?p ?o }

結果:

{
  "head": {
    "vars": [
      "p",
      "o"
    ]
  },
  "results": {
    "bindings": [
      {
        "p": {
          "type": "uri",
          "value": "http://www.w3.org/1999/02/22-rdf-syntax-ns#type"
        },

        "o": {
          "type": "uri",
          "value": "http://xmlns.com/foaf/0.1/Document"
        }
      },
      {
        "p": {
          "type": "uri",
          "value": "http://purl.org/rss/1.0/modules/content/encoded"
        },

        "o": {
          "type": "literal",
          "value": "<p>Dignissim luptatum neo te. Damnum decet pala proprius quadrum sagaciter vel. Defui erat qui. Distineo esca macto nisl probo. Humo illum luctus nimis singularis sino sit valde wisi. Consequat eum iaceo paratus velit. Bene dolus esca eu fere mauris pala refero saepius suscipit.<\/p>\n"
        }
      },
      {
        "p": {
          "type": "uri",
          "value": "http://purl.org/dc/terms/title"
        },

        "o": {
          "type": "literal",
          "value": "Consectetuer Dignissim Luptatum Tego"
        }
      },
      {
        "p": {
          "type": "uri",
          "value": "http://purl.org/dc/terms/date"
        },

        "o": {
          "type": "typed-literal",
          "value": "2014-06-11T08:22:09-07:00",
          "datatype": "xsd:dateTime"
        }
      },
      {
        "p": {
          "type": "uri",
          "value": "http://purl.org/dc/terms/created"
        },

        "o": {
          "type": "typed-literal",
          "value": "2014-06-11T08:22:09-07:00",
          "datatype": "xsd:dateTime"
        }
      },
      {
        "p": {
          "type": "uri",
          "value": "http://purl.org/dc/terms/modified"
        },

        "o": {
          "type": "typed-literal",
          "value": "2014-06-11T08:22:09-07:00",
          "datatype": "xsd:dateTime"
        }
      }
    ]
  }
}

這個查詢沒有意義:

SELECT ?dc:title
WHERE {
    ?person sioc:has_creator 1 .
}

我不認為dc:title可以是變量的名稱,即使它是,你也不會使用它來查詢。 三重模式?person sioc:has_creator 1正在尋找的東西(將被綁定到變量?person具有1作為屬性sioc:has_creator的值的sioc:has_creator 。我不能肯定地說,但我懷疑1是許多事情的創造者,除非像Clive在評論中提到的那樣, sioc:has_creator的值是用戶的id ,而不是代表用戶正確的一些資源。你應該從一個探索性的查詢開始

select ?s ?p ?o where { ?s ?p ?o } limit 300

找出你的數據中有三倍的三元組。 然后,根據您所看到的內容,您將更好地了解可以針對它編寫哪種查詢。

在沒有看到您的數據的情況下,我們無法真正幫助您編寫所需的查詢,但我希望如此

只需檢索作者是管理員的文章的所有標題。

你最終會做這樣的事情:

select ?title where {
  ?article dc:title ?title .
  ?article sioc:has_creator ?creator .
  ?creator foaf:name "admin" .
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM