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).