RDFとN3論理、どうすりゃいい、あとデータ

PRel = PolyRel を使う。

  • 名付け〈naming | identification | {一意}?識別〉は多関係のなかで単射写像になるもの。PRel(I → X|injective)
  • トリプルは、PRel(P → S, O| function) の要素〈多射〉の要素〈レコード〉
  • 他に、PRel(P → S, O, O'|function) とかも考えて良い。
  • Pはバンチでもよい。バンチは型定義になる。タプル、リスト、バッグ、集合、ディクショナリ、修飾付きコレクション、入れ子を許す。
  • 部分と全体の関係が組み込みで在る。is-part-of
  • ストリング図表示とテンソル表示がある。
  • プロファイルにゲンツェンシーケントを使う。
  • テレスコープ概念
  • 多関係とデータ変換写像の二重圏

トリプルは、関係を構成するペア〈レコード〉の集合(それが関係だが)に述語名で名付けている、と考えるべき。つまり、関係と名付けに分解できる。関係は多関係に一般化する。名付けは、単なるトークンラベルから、プロパティを持つプロパティ・ディクショナリ〈JSONオブジェクト〉による名付けに一般化する。すると、述語の名前の空間に伴意関係が入る。伴意関係と関係の包含関係が強調するように名付ける。

関係空間=関係圏のホムセットが自然に順序集合であるので、その順序と述語名前空間の順序が順序準同型写像で結ばれるようにする。データ空間に対する型空間〈分類子空間〉も順序構造を持つ。至るところ順序構造。

データ

論理の話とは関係ないけど(ついでに);

データ:

  • 番号 名字 名前 性別 勤務営業所
  • 1. 田中 アキラ M 1
  • 2. 高橋 コウタ M 2
  • 3. 田中 ユリコ F 1
  • 4. 鈴木 アユミ F 2
  • 5. 村上 チエ F 2

データ:

  • 番号 営業所名 住所
  • 1. 東京本社 東京某所
  • 2. 千葉営業所 千葉のあそこ

データ 顧客:

  • 番号 名字 名前 担当〈PIC〉
  • 1. 大森 次郎 1
  • 2. 金田 桃子 4
  • 3. 川島 正男 4
  • 4. 鈴木 良枝 1
  • 5. 鈴木 大介 2
  • 6. 冨永 早苗 4
create table member (
  no integer primary key,
  familyName text,
  givenName text,
  gender varchar(1),
  office integer
  );
insert into member values
  (1, '田中', 'アキラ', 'M', 1),
  (2, '高橋', 'コウタ', 'M', 2),
  (3, '田中', 'ユリコ', 'F', 1),
  (4, '鈴木', 'アユミ', 'F', 2),
  (5, '村上', 'チエ', 'F', 2);

create table office (
  no integer primary key,
  name text,
  address text
  );
insert into office values
  (1, '東京本社', '東京某所'),
  (2, '千葉営業所', '千葉のあそこ');

select member.givenName, office.address from
  member inner join office on member.office = office.no;

create table customer (
  no integer primary key,
  familyName text,
  givenName text,
  pic integer  
  );
insert into customer values
  (1, '大森', '次郎', 1),
  (2, '金田', '桃子', 4),
  (3, '川島', '正男', 4),
  (4, '鈴木', '良枝', 1),
  (5, '鈴木', '大介', 2),
  (6, '冨永', '早苗', 4);
digraph {
  rankdir=LR
  subgraph cluster_M {
    N1[label="アキラ"]
    N2[label="コウタ"]
    N3[label="ユリコ"]
    N4[label="アユミ"]
    N5[label="チエ"]

    N1 -> N2[color=blue]
    N1 -> N3[color=red]
    N3 -> N1[color=blue]
    N4 -> N1[color=red]
    N3 -> N4[color=blue]
  }
  subgraph cluster_C {
    C1[label="次郎"]
    C2[label="桃子"]
    C3[label="正男"]
    C4[label="良枝"] 
    C5[label="大介"]
    C6[label="早苗"]
  }
  N1 -> C1
  N4 -> C2
  N4 -> C3
  N1 -> C4
  N2 -> C5
  N4 -> C6