1. NEED TO GO THROUGH A FILTER.
S2[
    PUBLISHER[
        CITKEY(@citkey=x1){functional},
        PUBNM(@pubname [KEY]=x2){functional}]]
:-
Document(Y1),Publisher(Y2),Thesis(Y3),
isa(Y3,Y1),Doc.Publisher(Y3,Y2),Doc.key(Y1,x1),
Agent.name(Y2,x2).

2. NEED TO GO THROUGH A FILTER.
S2[
    PUBLISHER[
        CITKEY(@citkey=x1){functional},
        PUBNM(@pubname [KEY]=x2){functional}]]
:-
Document(Y1),Publisher(Y2),Thesis(Y3),
[cites:cites](Y3,Y1),Doc.Publisher(Y3,Y2),Doc.key(Y1,x1),
Agent.name(Y2,x2).

3. NEED TO GO THROUGH A FILTER.
S2[
    PUBLISHER[
        CITKEY(@citkey=x1){functional},
        PUBNM(@pubname [KEY]=x2){functional}]]
:-
Document(Y1),Publisher(Y2),Conference(Y3),
Doc.Conference(Y1,Y3),Conf.Organization(Y3,Y2),Doc.key(Y1,x1),
Agent.name(Y2,x2).

4. NEED TO GO THROUGH A FILTER.
S2[
    PUBLISHER[
        CITKEY(@citkey=x1){functional},
        PUBNM(@pubname [KEY]=x2){functional}]]
:-
Document(Y1),Publisher(Y2),Periodical-Publication(Y3),
isa(Y3,Y1),Doc.Publisher(Y3,Y2),Doc.key(Y1,x1),
Agent.name(Y2,x2).

5. NEED TO GO THROUGH A FILTER.
S2[
    PUBLISHER[
        CITKEY(@citkey=x1){functional},
        PUBNM(@pubname [KEY]=x2){functional}]]
:-
Document(Y1),Publisher(Y2),Article(Y3),
isa(Y3,Y1),Doc.Publisher(Y3,Y2),Doc.key(Y1,x1),
Agent.name(Y2,x2).

6. NEED TO GO THROUGH A FILTER.
S2[
    PUBLISHER[
        CITKEY(@citkey=x1){functional},
        PUBNM(@pubname [KEY]=x2){functional}]]
:-
Document(Y1),Publisher(Y2),Article(Y3),
inDoc(Y3,Y1),Doc.Publisher(Y3,Y2),Doc.key(Y1,x1),
Agent.name(Y2,x2).

7. NEED TO GO THROUGH A FILTER.
S2[
    PUBLISHER[
        CITKEY(@citkey=x1){functional},
        PUBNM(@pubname [KEY]=x2){functional}]]
:-
Document(Y1),Publisher(Y2),Article(Y3),
[cites:anySlot:cites](Y3,Y1),Doc.Publisher(Y3,Y2),Doc.key(Y1,x1),
Agent.name(Y2,x2).

8. NEED TO GO THROUGH A FILTER.
S2[
    PUBLISHER[
        CITKEY(@citkey=x1){functional},
        PUBNM(@pubname [KEY]=x2){functional}]]
:-
Document(Y1),Publisher(Y2),Book(Y3),
isa(Y3,Y1),Doc.Publisher(Y3,Y2),Doc.key(Y1,x1),
Agent.name(Y2,x2).

9. NEED TO GO THROUGH A FILTER.
S2[
    PUBLISHER[
        CITKEY(@citkey=x1){functional},
        PUBNM(@pubname [KEY]=x2){functional}]]
:-
Document(Y1),Publisher(Y2),Proceedings(Y3),
isa(Y3,Y1),Doc.Publisher(Y3,Y2),Doc.key(Y1,x1),
Agent.name(Y2,x2).

10. NEED TO GO THROUGH A FILTER.
S2[
    PUBLISHER[
        CITKEY(@citkey=x1){functional},
        PUBNM(@pubname [KEY]=x2){functional}]]
:-
Document(Y1),Publisher(Y2),Miscellaneous-Publication(Y3),
isa(Y3,Y1),Doc.Publisher(Y3,Y2),Doc.key(Y1,x1),
Agent.name(Y2,x2).


