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

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
(Created page with "==About== * '''Purpose''': specifications for all SMW Objects that point to wiki pages (existing or not) * '''Refers to''': {{l/same|smw_object_ids}} ==SQL== <mysql> delimiter...")
 
(→‎relationships: improved query)
 
(5 intermediate revisions by the same user not shown)
Line 1: Line 1:
 
==About==
 
==About==
* '''Purpose''': specifications for all SMW Objects that point to wiki pages (existing or not)
+
* '''Purpose''': specifications for all SMW Objects where the value is a possible wiki page title (existing or not)
 
* '''Refers to''': {{l/same|smw_object_ids}}
 
* '''Refers to''': {{l/same|smw_object_ids}}
 +
==Fields==
 +
* '''p_id''': page on which the property appears
 +
* '''s_id''': page for property name
 +
* '''o_od''': page for property value
 
==SQL==
 
==SQL==
<mysql>
+
<syntaxhighlight lang=mysql>
delimiter $$
 
 
 
 
CREATE TABLE `smw_di_wikipage` (
 
CREATE TABLE `smw_di_wikipage` (
 
   `s_id` int(8) unsigned NOT NULL,
 
   `s_id` int(8) unsigned NOT NULL,
Line 13: Line 15:
 
   KEY `p_id` (`p_id`,`o_id`),
 
   KEY `p_id` (`p_id`,`o_id`),
 
   KEY `o_id` (`o_id`)
 
   KEY `o_id` (`o_id`)
) ENGINE=InnoDB DEFAULT CHARSET=binary$$
+
) ENGINE=InnoDB DEFAULT CHARSET=binary
</mysql>
+
</syntaxhighlight>
 
===Example===
 
===Example===
<mysql>
+
====values====
SELECT s_id
+
<syntaxhighlight lang=mysql>
   , s.smw_namespace AS s_namespace
+
SELECT
 +
    s_id,
 +
    p_id,
 +
    o_id,
 +
    o.smw_namespace AS o_namespace,
 +
    CAST(o.smw_title AS CHAR) AS o_title
 +
FROM
 +
    smw_di_wikipage AS r
 +
        LEFT JOIN
 +
    smw_object_ids AS o ON r.o_id = o.smw_id;
 +
</syntaxhighlight>
 +
====relationships====
 +
<source lang=mysql>
 +
SELECT
 +
s_id
 +
   , s.smw_namespace AS s_ns
 
   , CAST(s.smw_title AS char) AS s_title
 
   , CAST(s.smw_title AS char) AS s_title
   , p.smw_namespace AS p_namespace
+
  , p_id
 +
   , p.smw_namespace AS p_ns
 
   , CAST(p.smw_title AS char) AS p_title
 
   , CAST(p.smw_title AS char) AS p_title
   , o.smw_namespace AS o_namespace
+
  , o_id
 +
   , o.smw_namespace AS o_ns
 
   , CAST(o.smw_title AS char) AS o_title
 
   , CAST(o.smw_title AS char) AS o_title
 
   FROM
 
   FROM
Line 29: Line 48:
 
     LEFT JOIN smw_object_ids AS p ON r.p_id=p.smw_id)
 
     LEFT JOIN smw_object_ids AS p ON r.p_id=p.smw_id)
 
     LEFT JOIN smw_object_ids AS o ON r.o_id=o.smw_id
 
     LEFT JOIN smw_object_ids AS o ON r.o_id=o.smw_id
ORDER BY s_id,p_title, o_title
+
ORDER BY s.smw_title, s_id, p_title, o_title</source>
</mysql>
 
 
* 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)
 
* 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)

Latest revision as of 21:11, 9 July 2020

About

  • Purpose: specifications for all SMW Objects where the value is a possible wiki page title (existing or not)
  • Refers to: smw_object_ids

Fields

  • p_id: page on which the property appears
  • s_id: page for property name
  • o_od: page for property value

SQL

CREATE TABLE `smw_di_wikipage` (
  `s_id` int(8) unsigned NOT NULL,
  `p_id` int(8) unsigned NOT NULL,
  `o_id` int(8) unsigned DEFAULT NULL,
  KEY `s_id` (`s_id`,`p_id`),
  KEY `p_id` (`p_id`,`o_id`),
  KEY `o_id` (`o_id`)
) ENGINE=InnoDB DEFAULT CHARSET=binary

Example

values

SELECT 
    s_id,
    p_id,
    o_id,
    o.smw_namespace AS o_namespace,
    CAST(o.smw_title AS CHAR) AS o_title
FROM
    smw_di_wikipage AS r
        LEFT JOIN
    smw_object_ids AS o ON r.o_id = o.smw_id;

relationships

SELECT
 s_id
  , s.smw_namespace AS s_ns
  , CAST(s.smw_title AS char) AS s_title
  , p_id
  , p.smw_namespace AS p_ns
  , CAST(p.smw_title AS char) AS p_title
  , o_id
  , o.smw_namespace AS o_ns
  , CAST(o.smw_title AS char) AS o_title
  FROM
    ((smw_di_wikipage 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)
    LEFT JOIN smw_object_ids AS o ON r.o_id=o.smw_id
ORDER BY s.smw_title, s_id, p_title, o_title
  • 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)