Difference between revisions of "Semantic MediaWiki/data/smw di blob"

from HTYP, the free directory anyone can edit if they can prove to me that they're not a spambot
Jump to navigation Jump to search
(fields)
(another useful query)
 
Line 19: Line 19:
 
</syntaxhighlight>
 
</syntaxhighlight>
 
===Example===
 
===Example===
 +
====titles====
 +
<syntaxhighlight lang=mysql>
 +
SELECT
 +
    s_id,
 +
    s.smw_namespace AS s_namespace,
 +
    CAST(s.smw_title AS CHAR) AS s_title
 +
FROM
 +
    (smw_di_blob AS r
 +
    LEFT JOIN smw_object_ids AS s ON r.s_id = s.smw_id)
 +
</syntaxhighlight>
 +
* Filter for <code>p_id</code> to get pages that use a specific property.
 +
* Filter for <code>p_id</code> and <code>o_hash</code> to find pages where a specific property has a specific text value.
 +
* Note that this table only applies to property values that do not link to wiki pages; see {{l/same|smw_di_wikipage}} for those that do.
 +
====relations====
 
<syntaxhighlight lang=mysql>
 
<syntaxhighlight lang=mysql>
 
SELECT s_id, p_id
 
SELECT s_id, p_id

Latest revision as of 12:04, 2 February 2018

About

  • Purpose: specifications for all SMW Objects that are text-blobs (i.e. long text which cannot be associated with a wiki page)
  • Refers to: smw_object_ids

Fields

  • s_id: ID of wiki page on which the property appears
  • p_id: ID of wiki page for the property name
  • o_blob: value when text is too long for o_hash; otherwise NULL
  • o_hash: exact value of text if o_blob is null; otherwise, truncated value with hash appended (purpose unclear)

SQL

CREATE TABLE `smw_di_blob` (
  `s_id` int(8) unsigned NOT NULL,
  `p_id` int(8) unsigned NOT NULL,
  `o_blob` mediumblob,
  `o_hash` varbinary(255) DEFAULT NULL,
  KEY `s_id` (`s_id`,`p_id`),
  KEY `p_id` (`p_id`,`o_hash`)
) ENGINE=InnoDB DEFAULT CHARSET=binary

Example

titles

SELECT 
    s_id,
    s.smw_namespace AS s_namespace,
    CAST(s.smw_title AS CHAR) AS s_title
FROM
    (smw_di_blob AS r
    LEFT JOIN smw_object_ids AS s ON r.s_id = s.smw_id)
  • Filter for p_id to get pages that use a specific property.
  • Filter for p_id and o_hash to find pages where a specific property has a specific text value.
  • Note that this table only applies to property values that do not link to wiki pages; see smw_di_wikipage for those that do.

relations

SELECT s_id, p_id
  , s.smw_namespace AS s_namespace
  , CAST(s.smw_title AS char) AS s_title
  , p.smw_namespace AS p_namespace
  , CAST(p.smw_title AS char) AS p_title
  , CAST(o_blob AS CHAR) as text
  , CAST(o_hash AS CHAR) as hash
FROM
    (smw_di_blob AS r
    LEFT JOIN smw_object_ids AS s ON r.s_id=s.smw_id)
    LEFT JOIN smw_object_ids AS p ON r.p_id=p.smw_id
ORDER BY s_id
  • p_namespace will probably always be the "property:" namespace, which defaults to 102 (unless there's some way to use a page outside that namespace as a property)