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
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

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)